summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Bowler <jbowler@nslu2-linux.org>2005-10-05 18:15:38 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-10-05 18:15:38 +0000
commita2e86652b541c85a5cb3ba83875f2c21d365405c (patch)
tree4d4ad286a756fc9e0225f245e5d67fe6c4713055
parent2260652d80d4481e2a4950677bf1ffee2e9ab02b (diff)
openslug-init(modprobe.conf),nslu2.conf: generate the correct ixp-eth alias, support le
modprobe.conf is now machine generated to use the PROVIDER of virtual/ixp-eth in place of a hard code module name - PREFERRED_PROVIDER_virtual/ixp-eth must be specified to make this work, the configuration files have been updated appropriate. openslug-image now pulls in virtual/ixp-eth, not a specific provider and uses the PREFERRED_PROVIDER of that module as the RDEPENDS. nslu2.conf and ucslugc.conf have changes to support configuration of the build endianness correctly - not fully functional because the flash read code still needs word swapping on LE.
-rw-r--r--conf/distro/openslug.conf16
-rw-r--r--conf/distro/ucslugc.conf44
-rw-r--r--conf/machine/nslu2.conf12
-rw-r--r--packages/meta/openslug-image.bb6
-rw-r--r--packages/openslug-init/openslug-init-0.10/modprobe.conf7
-rw-r--r--packages/openslug-init/openslug-init_0.10.bb6
6 files changed, 65 insertions, 26 deletions
diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf
index bbccbf25d4..72c23978a6 100644
--- a/conf/distro/openslug.conf
+++ b/conf/distro/openslug.conf
@@ -161,16 +161,28 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
+# compiler/binary/library versions (unslung uses different ones so these
+# cannot be in nslu2.conf)
+PREFERRED_VERSION_binutils ?= "2.16"
+PREFERRED_VERSION_binutils-cross ?= "2.16"
+PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4"
+PREFERRED_VERSION_gcc-cross ?= "3.4.4"
+PREFERRED_VERSION_gcc ?= "3.4.4"
+PREFERRED_VERSION_glibc ?= "2.3.5+cvs20050627"
+
# Select the smallest provider of x11 libraries
PREFERRED_PROVIDER_x11 ?= "diet-x11"
-CVSDATE_diet-xll ?= "20050930"
+CVSDATE_diet-x11 ?= "20051005"
# Select the correct versions of the kernel and modules
PREFERRED_PROVIDER_virtual/kernel ?= "openslug-kernel"
PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}depmod:module-init-tools-cross"
-PREFERRED_VERSION_openslug-kernel ?= "2.6.14-rc2"
+PREFERRED_VERSION_openslug-kernel ?= "2.6.14-rc3"
+PREFERRED_PROVIDER_virtual/ixp-eth ?= "ixp425-eth"
PREFERRED_VERSION_ixp4xx-csr ?= "1.4"
PREFERRED_VERSION_ixp425-eth ?= "1.1"
+PREFERRED_VERSION_ixp-osal ?= "2.0"
+PREFERRED_VERSION_ixp400-eth ?= "1.4"
PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r29"
diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf
index c4db50c1e3..fee0c0f9af 100644
--- a/conf/distro/ucslugc.conf
+++ b/conf/distro/ucslugc.conf
@@ -10,12 +10,21 @@ DISTRO_VERSION = "3-beta"
DISTRO_FEED = "unstable"
DISTRO_TYPE ?= "beta"
+# Overridable settings
+#DANGER: overriding any of these builds something very different from the base
+# usclugc!
+UCSLUGC_OS ?= "linux-uclibc"
+UCSLUGC_INTERWORK ?= ":thumb-interwork"
+UCSLUGC_INSTRUCTION_SET ?= ":thumb"
+UCSLUGC_ARCH_TYPE ?= "b"
+
+# Target OS - uclibc or glibc(linux)
TARGET_FPU = "soft"
-TARGET_OS = "linux-uclibc"
+TARGET_OS = "${UCSLUGC_OS}"
-# Select thumb-interwork and (TBD) thumb
-ARM_INTERWORK = ":thumb-interwork"
-ARM_INSTRUCTION_SET = ":thumb"
+# Select thumb-interwork and thumb
+ARM_INTERWORK = "${UCSLUGC_INTERWORK}"
+ARM_INSTRUCTION_SET = "${UCSLUGC_INSTRUCTION_SET}"
USE_NLS ?= "no"
USE_NLS_glib-2.0 = "yes"
@@ -26,6 +35,11 @@ INHERIT += " package_ipk debian"
# present (ucslugc overrides take precedence).
NSLU2_BASE_DISTRO = ":openslug"
+# The standard arch is big-endian - "b", set to "l" for a little-endian
+# build
+NSLU2_ARCH_TYPE = "${UCSLUGC_ARCH_TYPE}"
+TARGET_ARCH = "${@['arm', 'armeb'][bb.data.getVar('UCSLUGC_ARCH_TYPE', d, 1) == 'b']}"
+
# 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.
@@ -129,18 +143,28 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
-# Select the smallest provider of x11 libraries
-PREFERRED_PROVIDER_x11 ?= "diet-x11"
-CVSDATE_diet-xll ?= "20050930"
+# compiler/binary/library versions (unslung uses different ones so these
+# cannot be in nslu2.conf)
+PREFERRED_VERSION_binutils ?= "2.16"
+PREFERRED_VERSION_binutils-cross ?= "2.16"
+PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4"
+PREFERRED_VERSION_gcc-cross ?= "3.4.4"
+PREFERRED_VERSION_gcc ?= "3.4.4"
+PREFERRED_VERSION_glibc ?= "2.3.5+cvs20050627"
# Select the correct versions of the kernel and modules
PREFERRED_PROVIDER_virtual/kernel ?= "openslug-kernel"
PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}depmod:module-init-tools-cross"
-PREFERRED_VERSION_openslug-kernel ?= "2.6.14-rc2"
+PREFERRED_VERSION_openslug-kernel ?= "2.6.14-rc3"
+PREFERRED_PROVIDER_virtual/ixp-eth ?= "ixp425-eth"
PREFERRED_VERSION_ixp4xx-csr ?= "1.4"
PREFERRED_VERSION_ixp425-eth ?= "1.1"
+PREFERRED_VERSION_ixp-osal ?= "2.0"
+PREFERRED_VERSION_ixp400-eth ?= "1.4"
-PREFERRED_VERSION_samba ?= "3.0.14a"
+# Select the smallest provider of x11 libraries
+PREFERRED_PROVIDER_x11 ?= "diet-x11"
+CVSDATE_diet-x11 ?= "20051005"
-PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r29"
+PREFERRED_VERSION_samba ?= "3.0.14a"
diff --git a/conf/machine/nslu2.conf b/conf/machine/nslu2.conf
index 03af44953c..d22c3b5568 100644
--- a/conf/machine/nslu2.conf
+++ b/conf/machine/nslu2.conf
@@ -84,14 +84,16 @@ FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers \
# 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.
-TARGET_ARCH = "armeb"
+NSLU2_ARCH_TYPE = "b"
+TARGET_ARCH = "arme${NSLU2_ARCH_TYPE}"
+# To change to little endian see distro/ucslugc.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 = "armeb armv2b armv2ab armv3b armv3mb armv4b armv4tb armv5b armv5tb armv5eb armv5teb xscaleb"
-NSLU2_THUMB_ARCHITECTURES = "thumbeb thumbv4tb thumbv5tb"
+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:
@@ -115,8 +117,8 @@ IPKG_ARCHS = "${@(lambda arch_thumb, arch_arm, is_arm, interwork: \
# 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 = "armeb"
-NSLU2_PACKAGE_ARCH = "${@['thumbv5tb', 'armv5teb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '']}"
+PACKAGE_ARCH = "${TARGET_ARCH}"
+NSLU2_PACKAGE_ARCH = "${@['thumbv5t${NSLU2_ARCH_TYPE}', 'armv5te${NSLU2_ARCH_TYPE}'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '']}"
#-------------------------------------------------------------------------------
# Miscellany
diff --git a/packages/meta/openslug-image.bb b/packages/meta/openslug-image.bb
index 4916711564..177ce25737 100644
--- a/packages/meta/openslug-image.bb
+++ b/packages/meta/openslug-image.bb
@@ -1,4 +1,4 @@
-PR = "r13"
+PR = "r14"
IMAGE_BASENAME = "openslug"
@@ -11,7 +11,7 @@ OPENSLUG_HIDDEN_PACKAGES = "ipkg-native ipkg-utils-native fakeroot-native ${PATC
DEPENDS = "virtual/kernel base-files base-passwd \
busybox dropbear hotplug-ng initscripts-openslug netbase \
sysvinit tinylogin portmap \
- ixp4xx-csr ixp425-eth openslug-init \
+ virtual/ixp-eth openslug-init \
module-init-tools modutils-initscripts \
ipkg-collateral ipkg ipkg-link diffutils \
cpio findutils mtd-utils udev \
@@ -23,7 +23,7 @@ DEPENDS = "virtual/kernel base-files base-passwd \
IPKG_INSTALL = "base-files base-passwd \
busybox dropbear hotplug-ng initscripts-openslug netbase \
update-modules sysvinit tinylogin portmap \
- ixp4xx-csr ixp425-eth openslug-init \
+ ${PREFERRED_PROVIDER_virtual/ixp-eth} openslug-init \
module-init-tools modutils-initscripts \
ipkg-collateral ipkg ipkg-link diffutils \
cpio findutils \
diff --git a/packages/openslug-init/openslug-init-0.10/modprobe.conf b/packages/openslug-init/openslug-init-0.10/modprobe.conf
index 9ed854742e..08482e8c6d 100644
--- a/packages/openslug-init/openslug-init-0.10/modprobe.conf
+++ b/packages/openslug-init/openslug-init-0.10/modprobe.conf
@@ -1,4 +1,3 @@
-# Add an alias for eth0 to ixp425_eth to cause the S40networking
-# init script to load the ixp425_eth driver on the frist boot
-alias eth0 ixp425_eth
-
+# Add an alias for eth0 to MODULE to cause the S40networking
+# init script to load the MODULE driver on the first boot
+alias eth0 MODULE
diff --git a/packages/openslug-init/openslug-init_0.10.bb b/packages/openslug-init/openslug-init_0.10.bb
index e5665d4519..fa85d9c6f7 100644
--- a/packages/openslug-init/openslug-init_0.10.bb
+++ b/packages/openslug-init/openslug-init_0.10.bb
@@ -3,7 +3,7 @@ SECTION = "console/network"
LICENSE = "GPL"
DEPENDS = "base-files devio"
RDEPENDS = "busybox devio"
-PR = "r43"
+PR = "r44"
SRC_URI = "file://linuxrc \
file://boot/flash \
@@ -99,7 +99,9 @@ do_install() {
# Configuration files
install -m 0644 conffiles ${D}${sysconfdir}/default
- install -m 0644 modprobe.conf ${D}${sysconfdir}/
+ # Change MODULE in modprobe.conf to the correct module name
+ rm -f ${D}${sysconfdir}/modprobe.conf
+ sed 's/MODULE/'"$(echo '${PREFERRED_PROVIDER_virtual/ixp-eth}'|sed 's/-/_/g')"'/g' modprobe.conf >${D}${sysconfdir}/modprobe.conf
set +ex
}