summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorJohn Bowler <jbowler@nslu2-linux.org>2005-10-26 21:05:31 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-10-26 21:05:31 +0000
commit08c9668df356fc47f01cde8e421d3dc24adc4c9e (patch)
tree87d94226fa641abf40160f20663f54f30a912266 /conf
parent760961336989b539a2546f43e8ce3d84a92a3c0f (diff)
slugos, openslug, ucslugc: move to new slugos base distro in openslug 3.0, ucslugc 3
- all the nslu2-???.conf files are now slugos-???.conf and slugos has been made - the base for both openslug and ucslugc. OpenSlug now enables thumb interwork.
Diffstat (limited to 'conf')
-rw-r--r--conf/distro/nslu2-bag.conf12
-rw-r--r--conf/distro/nslu2-bau.conf12
-rw-r--r--conf/distro/nslu2-btu.conf12
-rw-r--r--conf/distro/nslu2-lag.conf12
-rw-r--r--conf/distro/nslu2-lau.conf12
-rw-r--r--conf/distro/nslu2-ltu.conf12
-rw-r--r--conf/distro/openslug.conf13
-rw-r--r--conf/distro/slugos-bag.conf20
-rw-r--r--conf/distro/slugos-bau.conf18
-rw-r--r--conf/distro/slugos-btu.conf20
-rw-r--r--conf/distro/slugos-lag.conf16
-rw-r--r--conf/distro/slugos-lau.conf16
-rw-r--r--conf/distro/slugos-ltu.conf16
-rw-r--r--conf/distro/slugos.conf (renamed from conf/distro/nslu2-dist.conf)117
-rw-r--r--conf/distro/ucslugc.conf20
-rw-r--r--conf/distro/unslung.conf13
-rw-r--r--conf/machine/nslu2.conf199
17 files changed, 298 insertions, 242 deletions
diff --git a/conf/distro/nslu2-bag.conf b/conf/distro/nslu2-bag.conf
deleted file mode 100644
index 0a9c4eb88d..0000000000
--- a/conf/distro/nslu2-bag.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-BAG
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "b"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "g"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-bau.conf b/conf/distro/nslu2-bau.conf
deleted file mode 100644
index f27f7db709..0000000000
--- a/conf/distro/nslu2-bau.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-BAU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "b"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-btu.conf b/conf/distro/nslu2-btu.conf
deleted file mode 100644
index 2e37ebdf91..0000000000
--- a/conf/distro/nslu2-btu.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-BTU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "b"
-NSLU2_INSTRUCTION_SET = "t"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-lag.conf b/conf/distro/nslu2-lag.conf
deleted file mode 100644
index 9e9a4bbf8e..0000000000
--- a/conf/distro/nslu2-lag.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-LAG
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "l"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "g"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-lau.conf b/conf/distro/nslu2-lau.conf
deleted file mode 100644
index 9f54c0ecc2..0000000000
--- a/conf/distro/nslu2-lau.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-LAU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "l"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-ltu.conf b/conf/distro/nslu2-ltu.conf
deleted file mode 100644
index f48671d0c4..0000000000
--- a/conf/distro/nslu2-ltu.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-LTU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "l"
-NSLU2_INSTRUCTION_SET = "t"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf
index a7c21bca2f..e9f88311c2 100644
--- a/conf/distro/openslug.conf
+++ b/conf/distro/openslug.conf
@@ -6,7 +6,7 @@
# STANDARD OpenSlug DEFINITIONS
#----------------------------------------------------------------------------------
DISTRO_NAME = "OpenSlug"
-DISTRO_VERSION = "2.8-beta"
+DISTRO_VERSION = "3.0-beta"
DISTRO_FEED = "unstable"
DISTRO_TYPE = "beta"
@@ -25,6 +25,7 @@ OPENSLUG_EXTRA_BBFILES ?= ""
# (such as a local feed) can be defined in local.conf
#----------------------------------------------------------------------------------
# Add to the user's feeds from local.conf (there may be none)
+#FIXME: this is temporary until the changeover to slugos-bag is complete.
FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/openslug/cross/${DISTRO_FEED}"
FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/openslug/native/${DISTRO_FEED}"
@@ -111,8 +112,8 @@ kernel-module-nls-utf8 \
# a bootable, useable, system however they *are* expected to be present
# in OpenSlug - see nslu2-bag for a more minimal configuration and some
# more instructions about how to make a non-openslug image.
-NSLU2_EXTRA_DEPENDS = "${OPENSLUG_STANDARD_DEPENDS}"
-NSLU2_EXTRA_RDEPENDS = "${OPENSLUG_STANDARD_RDEPENDS}"
+SLUGOS_EXTRA_DEPENDS = "${OPENSLUG_STANDARD_DEPENDS}"
+SLUGOS_EXTRA_RDEPENDS = "${OPENSLUG_STANDARD_RDEPENDS}"
#----------------------------------------------------------------------------------
# PACKAGE VERSION CONTROL
@@ -123,9 +124,7 @@ PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r29"
# BASE VERSION SELECTION
#----------------------------------------------------------------------------------
# b - big-endian
-# a - ARM instruction set, no interwork
+# a - ARM instruction set
# g - glibc
#
-# Interwork must be turned off here
-NSLU2_INTERWORK = ""
-include conf/distro/nslu2-bag.conf
+include conf/distro/slugos-bag.conf
diff --git a/conf/distro/slugos-bag.conf b/conf/distro/slugos-bag.conf
new file mode 100644
index 0000000000..9d59722b48
--- /dev/null
+++ b/conf/distro/slugos-bag.conf
@@ -0,0 +1,20 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-BAG
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# See slugos.conf for an explanation of this file.
+
+# This slugos variant corresponds to OpenSlug
+DISTRO_NAME ?= "slugos-bag"
+DISTRO_VERSION ?= "3.0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "beta"
+
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux"
+
+FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-bag/cross/${DISTRO_FEED}"
+FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-bag/native/${DISTRO_FEED}"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-bau.conf b/conf/distro/slugos-bau.conf
new file mode 100644
index 0000000000..ab25777a07
--- /dev/null
+++ b/conf/distro/slugos-bau.conf
@@ -0,0 +1,18 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-BAU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# See slugos.conf for an explanation of this file.
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-bau"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux-uclibc"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-btu.conf b/conf/distro/slugos-btu.conf
new file mode 100644
index 0000000000..6c96441076
--- /dev/null
+++ b/conf/distro/slugos-btu.conf
@@ -0,0 +1,20 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-BTU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# See slugos.conf for an explanation of this file.
+
+# This slugos variant corresponds to UcSlugC
+DISTRO_NAME ?= "slugos-btu"
+DISTRO_VERSION ?= "3-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "beta"
+
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "thumb"
+TARGET_OS = "linux-uclibc"
+
+FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-btu/cross/${DISTRO_FEED}"
+FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-btu/native/${DISTRO_FEED}"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-lag.conf b/conf/distro/slugos-lag.conf
new file mode 100644
index 0000000000..644c09b6ed
--- /dev/null
+++ b/conf/distro/slugos-lag.conf
@@ -0,0 +1,16 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-LAG
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-lag"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "le"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-lau.conf b/conf/distro/slugos-lau.conf
new file mode 100644
index 0000000000..0866f80763
--- /dev/null
+++ b/conf/distro/slugos-lau.conf
@@ -0,0 +1,16 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-LAU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-lau"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "le"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux-uclibc"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-ltu.conf b/conf/distro/slugos-ltu.conf
new file mode 100644
index 0000000000..06193c9169
--- /dev/null
+++ b/conf/distro/slugos-ltu.conf
@@ -0,0 +1,16 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-LTU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-ltu"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "le"
+ARM_INSTRUCTION_SET = "thumb"
+TARGET_OS = "linux-uclibc"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/nslu2-dist.conf b/conf/distro/slugos.conf
index de6c8d9173..7151f2e8b3 100644
--- a/conf/distro/nslu2-dist.conf
+++ b/conf/distro/slugos.conf
@@ -1,70 +1,71 @@
#@TYPE: Distribution
-#@NAME: NSLU2
-#@DESCRIPTION: UcSlugC Linux Distribution for the NSLU2
+#@NAME: SlugOS
+#@DESCRIPTION: SlugOS Linux Distribution for the NSLU2
+
+# WARNING: this file should not be used directly, use one of
+# the supported slugos-???.conf instead:
# Explanation of the naming
#
# nslu2-dist - the base distro configuration for an NSLU2
# nslu2-[bl][at][gu] - a specific configuration encoded as follows:
-# b or l - big or little endian
-# a or t - ARM or Thumb instructions in the low level libraries
-# g or u - glibc or uclibc libc implementation
+#
+# b or l - big or little endian
+# set ARCH_BYTE_SEX to match
+#
+# a or t - ARM or Thumb instructions in the low level libraries
+# set ARM_INSTRUCTION_SET to match
+#
+# g or u - glibc or uclibc libc implementation
+# set TARGET_OS to match
+#
+# The following names are deprecated:
#
# openslug - the historical name of a canonical nslu2-bag distro,
# used generically for NSLU2 specific distro features and
# the default OVERRIDE for all these NSLU2 builds
-# ucslugc - the historical (and obsolte) name of nslu2-btu
+# ucslugc - the historical (and obsolete) name of nslu2-btu
# also the name of a standard nslu2-btu distro with a package feed
#
#----------------------------------------------------------------------------------
-# STANDARD NSLU2 DEFINITIONS
+# STANDARD SLUGOS DEFINITIONS
#----------------------------------------------------------------------------------
# The following must be set in the top level distro file:
+#
#DISTRO_NAME
#DISTRO_VERSION
#DISTRO_FEED
#DISTRO_TYPE
# The following must also be set, they define the basic format of the build
-# The definitions, where present, are the standard defaults.
-#NSLU2_ARCH_TYPE = "b" (big-endian) or "l" (little-endian)
-#NSLU2_INSTRUCTION_SET = "a" (ARM, 32 bit instructions) or "t" (Thumb, 16 bit instructions)
-#NSLU2_OS = "g" (glibc - linx) or "u" (uclibc - linux-uclibc)
-#NSLU2_INTERWORK = ":thumb-interwork" or ""
-NSLU2_INTERWORK ?= ":thumb-interwork"
+#
+#ARCH_BYTE_SEX "be" or "le"
+#ARM_INSTRUCTION_SET "arm" or "thumb"
+#TARGET_OS "linux" or "linux-uclibc"
+
+# The following need not be set, the defaults should be adequate
#USE_NLS = "no" or "yes"
USE_NLS ?= "no"
-# These are default values, changed in the top level.
-DISTRO_NAME ?= "nslu2-${NSLU2_ARCH_TYPE}${NSLU2_INSTRUCTION_SET}${NSLU2_OS}"
-DISTRO_VERSION ?= "private"
-DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "alpha"
+# To make errors easier to identify:
+DISTRO_NAME ?= "INVALID-${ARCH_BYTE_SEX}-${ARM_INSTRUCTION_SET}-${TARGET_OS}"
+DISTRO_VERSION ?= "INVALID"
+DISTRO_FEED ?= "INVALID"
+DISTRO_TYPE ?= "INVALID"
# The following must not be changed.
TARGET_FPU = "soft"
-TARGET_OS = "${@['linux-uclibc', 'linux'][bb.data.getVar('NSLU2_OS', d, 1) == 'g']}"
-TARGET_ARCH = "${@['arm', 'armeb'][bb.data.getVar('NSLU2_ARCH_TYPE', d, 1) == 'b']}"
-
-# Select thumb-interwork and thumb
-ARM_INSTRUCTION_SET = "${@[':thumb', ''][bb.data.getVar('NSLU2_INSTRUCTION_SET', d, 1) == 'a']}"
-ARM_INTERWORK = "${NSLU2_INTERWORK}"
# glib-2.0 builds require USE_NLS to be overridden
USE_NLS_glib-2.0 = "yes"
INHERIT += "package_ipk debian"
-# The value of NSLU2_BASE_DISTRO is added to the OVERRIDES after the DISTRO, this
-# is set to 'openslug' to pick up the original openslug overrides. See
-# conf/machine/nslu2.conf to find out how this works.
-NSLU2_BASE_DISTRO = ":openslug"
-
-# We are building packages which are armvteb (big endian) for arm or thumbv5tb for
-# thumb instructions. The PACKAGE_ARCH should reflect this because generated code
-# requires that instruction set support.
-PACKAGE_ARCH = "${NSLU2_PACKAGE_ARCH}"
+# The value of DISTRO_BASE is set to 'openslug' to pick up the original openslug
+# overrides, slugos is the preferred override!
+#FIXME: remove openslug
+DISTRO_BASE = ":slugos:openslug"
# pull in the frozen list of bbfiles - this sets BBFILES and this will override any
# setting in local.conf Since this depends on ${DISTRO} it doesn't actually do
@@ -73,28 +74,38 @@ include conf/distro/freeze.conf
#----------------------------------------------------------------------------------
# FEEDS
-# The following lines define where on the internet UcSlugC looks for packages
+# The FEED_URIS lines define where on the internet SlugOS looks for packages
# when downloading new packages or updating existing packages. Additional feeds
# (such as a local feed) can be defined in local.conf
#----------------------------------------------------------------------------------
-# Add to the user's feeds from local.conf (there may be none)
+# Add to the user's feeds from local.conf (there may be none).
+# In general slugos-[bl][at][gu] is sufficient to identify a set of packages which
+# will work on any derived distro. The slugos-???.conf files set the FEED_URIS to
+# an appropriate ipkg.nslu2-linux.org default if nslu2-linux is actually building
+# such a feed:
#
-# This must be specified in the top level distro file, because a feed for one
-# distro will not work for another.
-#FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/cross/${DISTRO_FEED}"
-#FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/native/${DISTRO_FEED}"
+#FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/cross/${DISTRO_FEED}"
+#FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/native/${DISTRO_FEED}"
#
-#FEED_URIS_append += "unstable_cross##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/cross/unstable"
-#FEED_URIS_append += "unstable_native##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/native/unstable"
+# When such a feed exists the corresponding 'unstable' feed will normally also
+# exist - the packages in unstable are the latest but very unlikely to be the
+# greatest. Use at your own risk!
+#
+#FEED_URIS_append += "unstable_cross##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/cross/unstable"
+#FEED_URIS_append += "unstable_native##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/native/unstable"
#----------------------------------------------------------------------------------
# FIRMWARE CONFIGURATION
#----------------------------------------------------------------------------------
# IMAGE BUILD OPTIONS
# -------------------
+#FIXME: this is historical, there should be a minimal slugos device table and
+# this stuff shouldn't be in here at all (put it in slugos-image.bb!)
+# Why have anything in the config file to control the image build - why not
+# just select a different image .bb file (e.g. slugos-ramdisk-image.bb) to
+# build with different options.
IMAGE_FSTYPES = "jffs2"
-IMAGE_SEX = "${@['little-endian', 'big-endian'][bb.data.getVar('NSLU2_ARCH_TYPE', d, 1) == 'b']}"
-
+IMAGE_SEX = "${@['big-endian', 'little-endian'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
OPENSLUG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-openslug.txt')}"
EXTRA_IMAGECMD_jffs2 = "--pad --${IMAGE_SEX} --eraseblock=0x20000 -D ${OPENSLUG_DEVICE_TABLE}"
@@ -104,9 +115,9 @@ EXTRA_IMAGECMD_jffs2 = "--pad --${IMAGE_SEX} --eraseblock=0x20000 -D ${OPENSLUG_
# issues in the kernel need to cancel this (set CMDLINE_DEBUG empty in local.conf)
CMDLINE_DEBUG = "noirqdebug"
-# IMAGE_PREPROCESS_COMMAND is run before making the image. In UcSlugC the
+# IMAGE_PREPROCESS_COMMAND is run before making the image. In SlugOS the
# kernel image is removed from the root file system to recover the space used -
-# UcSlugC is assumed to boot from a separate kernel image in flash (not in the
+# SlugOS is assumed to boot from a separate kernel image in flash (not in the
# root file system), if this is not the case the following must not be done!
IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;"
@@ -125,28 +136,30 @@ IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;"
#NOTE: you do not actually need the boot loader in normal use because it is
# *not* overwritten by a standard upslug upgrade, so you can make an image with
# just non-LinkSys software which can be flashed into the NSLU2.
-
+#FIXME: this should not be here, only slugos-image.bb needs this
#INHERIT += "nslu2-jffs2-image"
# EXTRA PACKAGES
# --------------
-# UcSlugC builds an openslug-image with no extra packages - to add packages to the
+# SlugOS builds an image with no extra packages - to add packages to the
# firmware copy this file (to make a new 'distro' configuration file) and change
# the definition below to include the requirements.
# NOTE: as built this system will *not* be able to boot off anything other than
# the flash file system ('turnup' will not work). You need to add the filesystem
# modules for your chosen root file system (and any others which will be used).
# See openslug.conf for a more full-featured system!
-NSLU2_EXTRA_RDEPENDS ?= ""
-NSLU2_EXTRA_DEPENDS ?= ""
+SLUGOS_EXTRA_RDEPENDS ?= ""
+SLUGOS_EXTRA_DEPENDS ?= ""
# These depends define native utilities - they do not get put in the flash.
# upslug2 (in tmp/work/upslug2-native-*) is the program to write the NSLU2 flash
# Override this as desired - it makes no difference to the final image.
-NSLU2_NATIVE_DEPENDS ?= "upslug2-native"
+SLUGOS_NATIVE_DEPENDS ?= "upslug2-native"
-OPENSLUG_EXTRA_INSTALL = "${NSLU2_EXTRA_RDEPENDS}"
-OPENSLUG_EXTRA_DEPENDS = "${NSLU2_EXTRA_DEPENDS} ${NSLU2_NATIVE_DEPENDS}"
+#FIXME: this is for openslug-image, slugos-image should be called slugos!
+#FIXME: I find these names confusing, lets just use RDEPENDS and DEPENDS.
+OPENSLUG_EXTRA_INSTALL = "${SLUGOS_EXTRA_RDEPENDS}"
+OPENSLUG_EXTRA_DEPENDS = "${SLUGOS_EXTRA_DEPENDS} ${SLUGOS_NATIVE_DEPENDS}"
#----------------------------------------------------------------------------------
# PACKAGE VERSION CONTROL
diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf
index fa3f1ba886..2de9010a90 100644
--- a/conf/distro/ucslugc.conf
+++ b/conf/distro/ucslugc.conf
@@ -2,15 +2,11 @@
#@NAME: UcSlugC
#@DESCRIPTION: UcSlugC Linux Distribution for the NSLU2
-# This is NSLU2-BTU with a feed and a name...
+# This is SLUGOS-BTU with a different name...
DISTRO_NAME = "UcSlugC"
DISTRO_VERSION = "3-beta"
DISTRO_FEED = "unstable"
-DISTRO_TYPE ?= "beta"
-
-# Official UcSlugC feeds:
-FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/ucslugc/cross/${DISTRO_FEED}"
-FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/ucslugc/native/${DISTRO_FEED}"
+DISTRO_TYPE = "beta"
# NOTE: to build new packages set UCSLUGC_EXTRA_BBFILES to the full path name to
# the .bb files for the packages to build - see ucslugc-packages.conf in this
@@ -24,12 +20,8 @@ UCSLUGC_EXTRA_RDEPENDS ?= ""
UCSLUGC_EXTRA_DEPENDS ?= ""
UCSLUGC_NATIVE_DEPENDS ?= "upslug2-native"
#
-NSLU2_EXTRA_RDEPENDS ?= "${UCSLUGC_EXTRA_RDEPENDS}"
-NSLU2_EXTRA_DEPENDS ?= "${UCSLUGC_EXTRA_DEPENDS}"
-NSLU2_NATIVE_DEPENDS ?= "${UCSLUGC_NATIVE_DEPENDS}"
-
-include conf/distro/nslu2-btu.conf
+SLUGOS_EXTRA_RDEPENDS ?= "${UCSLUGC_EXTRA_RDEPENDS}"
+SLUGOS_EXTRA_DEPENDS ?= "${UCSLUGC_EXTRA_DEPENDS}"
+SLUGOS_NATIVE_DEPENDS ?= "${UCSLUGC_NATIVE_DEPENDS}"
-#FIXME
-# This seems to be required with thumb.
-#PREFERRED_VERSION_samba ?= "3.0.14a"
+include conf/distro/slugos-btu.conf
diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf
index 482f47881a..22b041f521 100644
--- a/conf/distro/unslung.conf
+++ b/conf/distro/unslung.conf
@@ -17,6 +17,19 @@ include conf/distro/freeze.conf
TARGET_FPU = "soft"
TARGET_OS = "linux"
+# select distro specific options to match that of the original LinkSys build
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "arm"
+THUMB_INTERWORK = "no"
+
+# for compatibility PACKAGE_ARCH stays as TARGET_ARCH and TARGET_ARCH is hard-wired
+# to armeb - this makes this stuff independent of changes in machine/nslu2.conf
+TARGET_ARCH = "armeb"
+PACKAGE_ARCH = "${TARGET_ARCH}"
+# IPKG_ARCHS has the full list of supported architectures (from nslu2.conf)
+
+# match the optimisation settings to that which has traditionally been used
+# in unslung
FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
INHERIT += " package_ipk nslu2-jffs2-image"
diff --git a/conf/machine/nslu2.conf b/conf/machine/nslu2.conf
index 737d4e7c17..d0f089be2a 100644
--- a/conf/machine/nslu2.conf
+++ b/conf/machine/nslu2.conf
@@ -2,127 +2,132 @@
#@NAME: Linksys NSLU2
#@DESCRIPTION: Machine configuration for the Linksys NSLU2 product
-# NOTE: conf/${DISTRO}.conf is included after this file and may be
-# used to modify variables set here.
+#-------------------------------------------------------------------------------
+# INPUTS
+#-------------------------------------------------------------------------------
+# conf/${DISTRO}.conf is included after this file and should be used to modify
+# variables identified as 'INPUTS' to the required values for the DISTRO, this
+# will cause the board specific settings (which depend for the most part on the
+# exact CPU used) to be set correctly within this file. The results are the
+# variables identifies here as 'OUTPUTS'
+#
+#variable = "default"
+# <possible values>
+# description
+
+ARCH_BYTE_SEX = "be"
+# "be" "le"
+# The memory byte sex and (on correctly implemented hardware - the NSLU2 is
+# correct) the byte sex of the buses within the system. 'be' (big-endian)
+# means that the first byte is the most significant byte on a bus, 'le'
+# (little-endian) means that the first byte is the least significant byte.
+
+ARM_INSTRUCTION_SET = "arm"
+# "arm" "thumb"
+# The instruction set the compiler should use when generating application
+# code. The kernel is always compiled with arm code at present. arm code
+# is the original 32 bit ARM instruction set, thumb code is the 16 bit
+# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size)
+# but requires more instructions (140% for 70% smaller code) so may be
+# slower.
+
+THUMB_INTERWORK = "yes"
+# "yes" "no"
+# Whether to compile with code to allow interworking between the two
+# instruction sets. This allows thumb code to be executed on a primarily
+# arm system and vice versa. It is strongly recommended that DISTROs not
+# turn this off - the actual cost is very small.
+
+DISTRO_BASE = ""
+# "" ":<base>"
+# If given this must be the name of a 'distro' to add to the bitbake OVERRIDES
+# after ${DISTRO}, this allows different distros to share a common base of
+# overrides. The value given must include a leading ':' or chaos will result.
#-------------------------------------------------------------------------------
-# Processor and compilation options
+# OUTPUTS
#-------------------------------------------------------------------------------
+
#OVERRIDES
-# ARM processors support both 32('arm') and 16('thumb') bit instruction sets,
-# The procedure call standard has special provision for inter-calling without
-# the need to know whether the instruction set of the target procedure
-# ('interwork'). These options control the instruction set and whether or not
-# interworking is supported.
-#
-# ARM_INTERWORK may be set to :thumb-interwork if required, empty otherwise.
-# ARM_THUMB may be set to ":thumb" (exactly that, with the leading :) if thumb
-# instructions are required, empty otherwise.
+# The standard ':' separated list of overrides used by bitbake - see the
+# basic setting in bitbake.conf. This list is based on that used for the
+# standard setting however :<base>, :thumb and :thumb-interwork will be
+# inserted at appropriate points if a base distro, default use of thumb or
+# arm/thumb interworking are enabled in the inputs.
+OVERRIDE_THUMB = "${@['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+OVERRIDE_INTERWORK = "${@['', ':thumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
+OVERRIDES = "local:${MACHINE}:${DISTRO}${DISTRO_BASE}:${TARGET_OS}:${TARGET_ARCH}${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}:build-${BUILD_OS}"
+
+# TARGET_CC_ARCH
+# TARGET_CC_KERNEL_ARCH
+# TARGET_LD_ARCH
+# TARGET_LD_KERNEL_ARCH
+# Compiler and linker options for application code and kernel code. These
+# options ensure that the compiler has the correct settings for the selected
+# instruction set and interworking.
+ARM_INTERWORK_M_OPT = "${@['-mno-thumb-interwork', '-mthumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
+ARM_THUMB_M_OPT = "${@['-mno-thumb', '-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
#
-# These two variables define the instruction set used for compilation and
-# whether the other (16 or 32 bit) instruction set is supported by the distro.
-# These options may be changed on a per-package basis, however interwork is
-# required if the package instruction set does not match the distro option.
-# To set these in a package simply set the relevant variable to the correct
-# value, in each case *non-empty* means 'true' - -mthumb-interwork or -mthumb
-# in the compilation options.
-#ARM_INTERWORK = ":thumb-interwork"
-ARM_INTERWORK = ""
-#ARM_INSTRUCTION_SET = ":thumb"
-ARM_INSTRUCTION_SET = ""
-
-# The OVERRIDES are modified here so that 'NSLU2_BASE_DISTRO' overrides are
-# picked up if present (${DISTRO} overrides take precedence), ARM_INTERWORK
-# and ARM_INSTRUCTION_SET overrides are for handling bugs in packages which
-# cannot deal with the -mthumb-interwork or -mthumb settings.
-#NSLU2_BASE_DISTRO = ":openslug"
-NSLU2_BASE_DISTRO = ""
-OVERRIDES = "local:${MACHINE}:${DISTRO}${NSLU2_BASE_DISTRO}:${TARGET_OS}:${TARGET_ARCH}${ARM_INSTRUCTION_SET}${ARM_INTERWORK}:build-${BUILD_OS}"
-
-#COMPILER
-# Compiler options - passed to TARGET_CC_ARCH
-ARM_INTERWORK_M_OPT = "${@['-mthumb-interwork', '-mno-thumb-interwork'][bb.data.getVar('ARM_INTERWORK', d, 1) == '']}"
-ARM_THUMB_M_OPT = "${@['-mthumb', '-mno-thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '']}"
-
-# This was 'include tune-xscale.conf' but that doesn't work
-# (it would need to be conf/machine/tune-xscale.conf) and
-# anyway it sets the package architecture to armeb.
TARGET_CC_ARCH = "-march=armv5te -mtune=xscale ${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}"
TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale -mno-thumb-interwork -mno-thumb"
TARGET_LD_ARCH = ""
TARGET_LD_KERNEL_ARCH = ""
-# Optimization settings. Os works fine and is significantly
-# better than O2. The other settings are somewhat arbitrary.
-# The optimisations chosen here include the ones which 'break'
-# symbolic debugging (because the compiler does not include
-# enough information to allow the debugger to know where given
-# values are.) The -fno options are an attempt to cancel explicit
-# use of space consuming options found in some packages (this isn't
-# a complete list, this is just the ones which package writers seem
-# to know about and abuse).
+# FULL_OPTIMIZATION
+# Optimization settings. Os works fine and is significantly better than O2.
+# The other settings are somewhat arbitrary. The optimisations chosen here
+# include the ones which 'break' symbolic debugging (because the compiler does
+# not include enough information to allow the debugger to know where given
+# values are.) The -fno options are an attempt to cancel explicit use of space
+# consuming options found in some packages (this isn't a complete list, this is
+# just the ones which package writers seem to know about and abuse).
FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers \
-fno-unroll-loops -fno-inline-functions \
-fweb -funit-at-a-time"
-# uClibc does not include sinf or cosf, so the gcc auto-use of
-# these functions must be disabled (this only occurs with -O)
-#This should be fixed in uclibc 0.9.28 and later
-#FULL_OPTIMIZATION_append_linux-uclibc = " -fno-builtin-sin -fno-builtin-cos"
+# TARGET_ARCH
+# The correct setting for the system endianness (ARCH_BYTE_SEX). This will
+# be arm (le) or armeb (be) - it is difficult to be more precise in the
+# setting because of the large number of ways it is used within OpenEmbedded.
+TARGET_ARCH = "${@['armeb', 'arm'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
-#-------------------------------------------------------------------------------
-# 'ARCH' options - package architecture and the 'target' architecture
-#-------------------------------------------------------------------------------
-# Historically the 'arch' is armeb, but this causes problems because it is
-# generic ('armeb' should really only use instructions present on all ARM
-# processors). Correcting it is difficult, however, because it is written in
-# to so many places.
-#
-# TARGET_ARCH is *wrong* it should be armv5teb or, maybe, thumbv5teb
-# however many packages have been modified to recognised 'armeb' inside
-# configure scripts, fixing this up to handle arm*eb or thumb*eb is a
-# lot of work, so has not yet been done.
-#NOTE: do *not* change this is a distro.conf, a lot of work is required
-# to get this fixed.
-NSLU2_ARCH_TYPE = "b"
-TARGET_ARCH = "arme${NSLU2_ARCH_TYPE}"
-# To change to little endian see distro/nslu2-dist.conf
-
-# The list of valid architectures for thumb or arm on NSLU2. The arm list is
-# derived from the architecture settings known to gcc, the thumb list is then
-# derived from that (only the 't' architectures of course). Note: NSLU2 is
-# assumed to imply 'big-endian', though in fact this need not be the case.
-NSLU2_ARM_ARCHITECTURES = "${TARGET_ARCH} armv2${NSLU2_ARCH_TYPE} armv2a${NSLU2_ARCH_TYPE} armv3${NSLU2_ARCH_TYPE} armv3m${NSLU2_ARCH_TYPE} armv4${NSLU2_ARCH_TYPE} armv4t${NSLU2_ARCH_TYPE} armv5${NSLU2_ARCH_TYPE} armv5t${NSLU2_ARCH_TYPE} armv5e${NSLU2_ARCH_TYPE} armv5te${NSLU2_ARCH_TYPE} xscale${NSLU2_ARCH_TYPE}"
-NSLU2_THUMB_ARCHITECTURES = "thumbe${NSLU2_ARCH_TYPE} thumbv4t${NSLU2_ARCH_TYPE} thumbv5t${NSLU2_ARCH_TYPE}"
-
-# NOTE: this list contains just the things which rootfs_ipk.bbclass does not
-# add, rootfs_ipk.bbclass evaluates:
+# PACKAGE_ARCH
+# The correct setting for the generated packages. This corresponds to the
+# -march flag passed to the compiler because that limits the architectures
+# on which the generated code will run.
+BYTE_SEX_CHAR = "${@['b', 'l'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
+PACKAGE_ARCH_BASE = "${@['armv5te', 'thumbv5t'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+PACKAGE_ARCH = "${PACKAGE_ARCH_BASE}${BYTE_SEX_CHAR}"
+
+# IPKG_ARCHS
+# The full list of package architectures which should run on the system.
+# This takes into account both the board level issues and the INPUTS set
+# by the distro. The arm list is derived from the architecture settings
+# known to gcc, the thumb list is then derived from that (only the 't'
+# architectures of course).
+ARM_ARCHITECTURES = "${TARGET_ARCH} armv2${BYTE_SEX_CHAR} armv2a${BYTE_SEX_CHAR} armv3${BYTE_SEX_CHAR} armv3m${BYTE_SEX_CHAR} armv4${BYTE_SEX_CHAR} armv4t${BYTE_SEX_CHAR} armv5${BYTE_SEX_CHAR} armv5t${BYTE_SEX_CHAR} armv5e${BYTE_SEX_CHAR} armv5te${BYTE_SEX_CHAR} xscale${BYTE_SEX_CHAR}"
+THUMB_ARCHITECTURES = "thumbe${BYTE_SEX_CHAR} thumbv4t${BYTE_SEX_CHAR} thumbv5t${BYTE_SEX_CHAR}"
+
+# NOTE: this list contains just the things which rootfs_ipk.bbclass does
+# not add, rootfs_ipk.bbclass evaluates:
#
-# ipkgarchs="all any noarch ${TARGET_ARCH} ${IPKG_ARCHS} ${MACHINE}"
+# ipkgarchs="all any noarch ${TARGET_ARCH} ${IPKG_ARCHS} ${MACHINE}"
#
-# This is a priority ordered list - most desireable architecture at the end, so
-# put NSLU2_(ARM_INSTRUCTION_SET)_ARCHITECTURES at the end and, if ARM_INTERWORK
-# precede this with the other architectures.
+# This is a priority ordered list - most desireable architecture at the end,
+# so put <ARM_INSTRUCTION_SET>_ARCHITECTURES at the end and, if
+# THUMB_INTERWORK precede this with the other architectures.
IPKG_ARCHS = "${@(lambda arch_thumb, arch_arm, is_arm, interwork: \
(interwork and (is_arm and arch_thumb or arch_arm) + ' ' or '') \
+ (is_arm and arch_arm or arch_thumb)) \
- (bb.data.getVar('NSLU2_THUMB_ARCHITECTURES', d, 1), \
- bb.data.getVar('NSLU2_ARM_ARCHITECTURES', d, 1), \
- bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '', \
- bb.data.getVar('ARM_INTERWORK', d, 1) != '')}"
-
-# The package architecture is 'wrong' - it should be armv5teb or thumbv5teb -
-# however this setting is retained for backward compatibility as changing it
-# would mean that old systems would not accept new packages! (armv5teb is not
-# in the old system list).
-#NOTE: new distros with independent feeds are encouraged to fix this, the
-# variable NSLU2_PACKAGE_ARCH is provided for this purpose.
-PACKAGE_ARCH = "${TARGET_ARCH}"
-NSLU2_PACKAGE_ARCH = "${@['thumbv5t${NSLU2_ARCH_TYPE}', 'armv5te${NSLU2_ARCH_TYPE}'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '']}"
+ (bb.data.getVar('THUMB_ARCHITECTURES', d, 1), \
+ bb.data.getVar('ARM_ARCHITECTURES', d, 1), \
+ bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) != 'thumb', \
+ bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes')}"
#-------------------------------------------------------------------------------
# Miscellany
#-------------------------------------------------------------------------------
+# The correct settings for the NSLU2 board:
SERIAL_CONSOLE = "115200 ttyS0"
KERNEL_CONSOLE = "ttyS0,115200n8"
USE_VT = "0"