slugos: Added NAS100d image support
authorRod Whitby <rod@whitby.id.au>
Mon, 25 Dec 2006 03:30:53 +0000 (03:30 +0000)
committerRod Whitby <rod@whitby.id.au>
Mon, 25 Dec 2006 03:30:53 +0000 (03:30 +0000)
conf/distro/debianslug.conf
conf/distro/openslug.conf
packages/images/slugos-image.bb
packages/slugos-init/files/reflash

index 0bcdac1..2904db1 100644 (file)
@@ -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
index dec16d8..8634d09 100644 (file)
@@ -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
index a85179f..df8a4d6 100644 (file)
@@ -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
index 2a3a3e3..131f0b6 100644 (file)
@@ -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