diff options
author | John Bowler <jbowler@nslu2-linux.org> | 2005-10-26 21:05:31 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-10-26 21:05:31 +0000 |
commit | 08c9668df356fc47f01cde8e421d3dc24adc4c9e (patch) | |
tree | 87d94226fa641abf40160f20663f54f30a912266 /conf | |
parent | 760961336989b539a2546f43e8ce3d84a92a3c0f (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.conf | 12 | ||||
-rw-r--r-- | conf/distro/nslu2-bau.conf | 12 | ||||
-rw-r--r-- | conf/distro/nslu2-btu.conf | 12 | ||||
-rw-r--r-- | conf/distro/nslu2-lag.conf | 12 | ||||
-rw-r--r-- | conf/distro/nslu2-lau.conf | 12 | ||||
-rw-r--r-- | conf/distro/nslu2-ltu.conf | 12 | ||||
-rw-r--r-- | conf/distro/openslug.conf | 13 | ||||
-rw-r--r-- | conf/distro/slugos-bag.conf | 20 | ||||
-rw-r--r-- | conf/distro/slugos-bau.conf | 18 | ||||
-rw-r--r-- | conf/distro/slugos-btu.conf | 20 | ||||
-rw-r--r-- | conf/distro/slugos-lag.conf | 16 | ||||
-rw-r--r-- | conf/distro/slugos-lau.conf | 16 | ||||
-rw-r--r-- | conf/distro/slugos-ltu.conf | 16 | ||||
-rw-r--r-- | conf/distro/slugos.conf (renamed from conf/distro/nslu2-dist.conf) | 117 | ||||
-rw-r--r-- | conf/distro/ucslugc.conf | 20 | ||||
-rw-r--r-- | conf/distro/unslung.conf | 13 | ||||
-rw-r--r-- | conf/machine/nslu2.conf | 199 |
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" |