summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/distro/debianslug.conf2
-rw-r--r--conf/distro/openslug.conf2
-rw-r--r--packages/images/slugos-image.bb95
-rw-r--r--packages/slugos-init/files/reflash30
4 files changed, 80 insertions, 49 deletions
diff --git a/conf/distro/debianslug.conf b/conf/distro/debianslug.conf
index 0bcdac1db5..2904db1108 100644
--- a/conf/distro/debianslug.conf
+++ b/conf/distro/debianslug.conf
@@ -13,7 +13,7 @@ SLUGOS_IMAGENAME = "debianslug"
SLUGOS_IMAGESEX = "little-endian"
# debianslug builds a complete image (not just the parts)
-SLUGOS_FLASH_IMAGE = "nslu2"
+SLUGOS_FLASH_IMAGE = "1"
# NOTE: to build new packages set DEBIANSLUG_EXTRA_BBFILES to the full path name to
# the .bb files for the packages to build - see debianslug-packages.conf in this
diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf
index dec16d8cd7..8634d091f0 100644
--- a/conf/distro/openslug.conf
+++ b/conf/distro/openslug.conf
@@ -13,7 +13,7 @@ SLUGOS_IMAGENAME = "openslug"
SLUGOS_IMAGESEX = "big-endian"
# openslug builds a complete image (not just the parts)
-SLUGOS_FLASH_IMAGE = "nslu2"
+SLUGOS_FLASH_IMAGE = "1"
# NOTE: to build new packages set OPENSLUG_EXTRA_BBFILES to the full path name to
# the .bb files for the packages to build - see ucslugc-packages.conf in this
diff --git a/packages/images/slugos-image.bb b/packages/images/slugos-image.bb
index a85179f174..df8a4d6222 100644
--- a/packages/images/slugos-image.bb
+++ b/packages/images/slugos-image.bb
@@ -6,7 +6,7 @@
DESCRIPTION = "Generic SlugOS image"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-PR = "r42"
+PR = "r43"
COMPATIBLE_MACHINE = "nslu2"
@@ -111,50 +111,63 @@ python () {
# LinkSys have made "EraseAll" available, however, (this does overwrite RedBoot)
# it is a bad idea to produce flash images without a valid RedBoot - that allows
# an innocent user upgrade attempt to instantly brick the NSLU2.
-PACK_IMAGE += "${@['', 'nslu2_pack_image;'][bb.data.getVar('SLUGOS_FLASH_IMAGE', d, 1) == 'nslu2']}"
+PACK_IMAGE += "${@['', 'slugos_pack_image;'][bb.data.getVar('SLUGOS_FLASH_IMAGE', d, 1) == '1']}"
PACK_IMAGE_DEPENDS += "${@['', 'slugimage-native nslu2-linksys-firmware apex ixp4xx-npe'][bb.data.getVar('SLUGOS_FLASH_IMAGE', d, 1) == 'nslu2']}"
NSLU2_SLUGIMAGE_ARGS ?= ""
-nslu2_pack_image() {
- if test '${SLUGOS_FLASH_IMAGE}' = nslu2
- then
- install -d ${DEPLOY_DIR_IMAGE}/slug
- install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
- ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
- ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
- ${DEPLOY_DIR_IMAGE}/slug/
- install -m 0644 ${STAGING_LOADER_DIR}/apex.bin ${DEPLOY_DIR_IMAGE}/slug/
- install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-nslu2${ARCH_BYTE_SEX} \
- ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
- install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
- ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
- install -m 0644 ${STAGING_FIRMWARE_DIR}/NPE-B ${DEPLOY_DIR_IMAGE}/slug/
- cd ${DEPLOY_DIR_IMAGE}/slug
- slugimage -p -b RedBoot -s SysConf -L apex.bin -k vmlinuz \
- -r Flashdisk:flashdisk.jffs2 -m NPE-B -t Trailer \
- -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flashdisk.img \
- ${NSLU2_SLUGIMAGE_ARGS}
- rm -rf ${DEPLOY_DIR_IMAGE}/slug
-
- # Create an image for the DSM-G600 as well
- install -d ${DEPLOY_DIR_IMAGE}/firmupgrade
- install -m 0755 ${DEPLOY_DIR_IMAGE}/zImage-dsmg600${ARCH_BYTE_SEX} \
- ${DEPLOY_DIR_IMAGE}/firmupgrade/ip-ramdisk
- install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
- ${DEPLOY_DIR_IMAGE}/firmupgrade/rootfs.gz
- touch ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
- chmod 0644 ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
- echo "hwid=1.0.1" >${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
- echo "model=dsm-g600" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
- echo "vendor=dlink" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
- echo "" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
- chmod 0744 ${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
- tar -c -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.dsmg600.bin \
- -C ${DEPLOY_DIR_IMAGE} firmupgrade
- rm -rf ${DEPLOY_DIR_IMAGE}/firmupgrade
-
- fi
+slugos_pack_image() {
+ install -d ${DEPLOY_DIR_IMAGE}/slug
+ install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
+ ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
+ ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
+ ${DEPLOY_DIR_IMAGE}/slug/
+ install -m 0644 ${STAGING_LOADER_DIR}/apex.bin ${DEPLOY_DIR_IMAGE}/slug/
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-nslu2${ARCH_BYTE_SEX} \
+ ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+ ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
+ install -m 0644 ${STAGING_FIRMWARE_DIR}/NPE-B ${DEPLOY_DIR_IMAGE}/slug/
+ cd ${DEPLOY_DIR_IMAGE}/slug
+ slugimage -p -b RedBoot -s SysConf -L apex.bin -k vmlinuz \
+ -r Flashdisk:flashdisk.jffs2 -m NPE-B -t Trailer \
+ -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nslu2.bin \
+ ${NSLU2_SLUGIMAGE_ARGS}
+ rm -rf ${DEPLOY_DIR_IMAGE}/slug
+
+ # Create an image for the DSM-G600 as well
+ install -d ${DEPLOY_DIR_IMAGE}/firmupgrade
+ install -m 0755 ${DEPLOY_DIR_IMAGE}/zImage-dsmg600${ARCH_BYTE_SEX} \
+ ${DEPLOY_DIR_IMAGE}/firmupgrade/ip-ramdisk
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+ ${DEPLOY_DIR_IMAGE}/firmupgrade/rootfs.gz
+ touch ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+ chmod 0644 ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+ echo "hwid=1.0.1" >${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ echo "model=dsm-g600" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ echo "vendor=dlink" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ echo "" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ chmod 0744 ${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ tar -c -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-dsmg600.bin \
+ -C ${DEPLOY_DIR_IMAGE} firmupgrade
+ rm -rf ${DEPLOY_DIR_IMAGE}/firmupgrade
+
+ # Create an image for the NAS 100d as well
+ install -d ${DEPLOY_DIR_IMAGE}/firmupgrade
+ install -m 0755 ${DEPLOY_DIR_IMAGE}/zImage-nas100d${ARCH_BYTE_SEX} \
+ ${DEPLOY_DIR_IMAGE}/firmupgrade/ip-ramdisk
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+ ${DEPLOY_DIR_IMAGE}/firmupgrade/rootfs.gz
+ touch ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+ chmod 0644 ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+ echo "hwid=1.0.1" >${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ echo "model=koala" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ echo "vendor=iomega" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ echo "" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ chmod 0744 ${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+ tar -c -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nas100d.bin \
+ -C ${DEPLOY_DIR_IMAGE} firmupgrade
+ rm -rf ${DEPLOY_DIR_IMAGE}/firmupgrade
}
# upslug2 (in tmp/work/upslug2-native-*) is the program to write the NSLU2 flash
diff --git a/packages/slugos-init/files/reflash b/packages/slugos-init/files/reflash
index 2a3a3e356c..131f0b67de 100644
--- a/packages/slugos-init/files/reflash
+++ b/packages/slugos-init/files/reflash
@@ -17,21 +17,36 @@ case "$(machine)" in
nslu2)
isnslu2=1
isdsmg600=
+ isnas100d=
imageok=1
+ apexpart="Loader"
usrpart=
kpart="Kernel"
ffspart="Flashdisk";;
+nas100d)
+ isnslu2=
+ isdsmg600=
+ isnas100d=1
+ imageok=1
+ apexpart=
+ usrpart="usr"
+ kpart="kernel"
+ ffspart="filesystem";;
dsmg600)
isnslu2=
isdsmg600=1
+ isnas100d=
imageok=1
+ apexpart=
usrpart="usr"
kpart="kernel"
ffspart="filesystem";;
*)
isnslu2=
isdsmg600=
+ isnas100d=
imageok=
+ apexpart=
usrpart=
kpart="kernel"
ffspart="filesystem";;
@@ -67,8 +82,8 @@ do
shift;;
-i) shift
test -n "$imageok" || {
- echo "reflash: -i: only supported on the LinkSys NSLU2" >&2
- echo " and the D-Link DSM-G600 systems; use -k and -j" >&2
+ echo "reflash: -i: only supported on the LinkSys NSLU2," >&2
+ echo " Iomega NAS 100d and D-Link DSM-G600 systems; use -k and -j" >&2
echo " to specify the kernel and root file system instead." >&2
exit 1
}
@@ -123,7 +138,11 @@ then
# works in ash, no guarantees about other shells!
while read size base name
do
- if test "$name" = "$kpart"
+ if test "$name" = "$apexpart"
+ then
+ imgapexsize="$size"
+ imgapexoffset="$base"
+ elif test "$name" = "$kpart"
then
imgksize="$size"
imgkoffset="$base"
@@ -180,7 +199,7 @@ EOI
echo "reflash: $imgfile: failed to find $ffspart" >&2
exit 1
}
- elif test -r "$imgfile" -a -n "$isdsmg600"
+ elif test -r "$imgfile" -a \( -n "$isdsmg600" -o -n "$isnas100d" \)
then
#
# For the DSM-G600, this is really easy - the image is just
@@ -203,7 +222,7 @@ EOI
# to make sure that it matches the native firmware's kernel
# and rootfs that we're now flashing back onto the device.
- echo "reflash: unpacking DSM-G600 image file" >&2
+ echo "reflash: unpacking DSM-G600/NAS-100d image file" >&2
tar -x -f "$imgfile" -C /var/tmp || {
echo "reflash: unable to unpack image file to be flashed" >&2
exit 1
@@ -224,7 +243,6 @@ EOI
echo "reflash: Native flash being restored" >&2
usrfile="/var/tmp/firmupgrade/usr.cramfs"
preserve_config=
- dsmg600_native_flash=1
fi
else