diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-01-30 22:19:01 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-01-30 22:19:01 +0100 |
commit | 6051971c313ca3558c05631dc7f1c2c4b23a0114 (patch) | |
tree | df4f26cd85a2e71c3acc867452161b8f6d6b7d75 /package | |
parent | 185f177980b01d3481df460ccd2feaea16f9734b (diff) |
implement installation on nand and fix nand bootup
rb532 nand usage fixed. Rename cfinstall to adkinstall
to abstract from backend device used.
Diffstat (limited to 'package')
-rw-r--r-- | package/Config.in | 4 | ||||
-rw-r--r-- | package/adkinstall/Makefile (renamed from package/cfinstall/Makefile) | 14 | ||||
-rw-r--r-- | package/adkinstall/src/adkinstall (renamed from package/cfinstall/src/cfinstall) | 0 | ||||
-rw-r--r-- | package/adkinstall/src/adkinstall.rb532 | 78 | ||||
-rw-r--r-- | package/cfgfs/Makefile | 4 | ||||
-rw-r--r-- | package/cfinstall/src/cfinstall.rb532 | 49 |
6 files changed, 89 insertions, 60 deletions
diff --git a/package/Config.in b/package/Config.in index 298a36152..31867be26 100644 --- a/package/Config.in +++ b/package/Config.in @@ -4,18 +4,18 @@ menu "Package selection" menu "Basesystem" +source "package/adkinstall/Config.in" source "package/base-files/Config.in" source "package/busybox/Config.in.manual" source "package/cfgfs/Config.in" -source "package/cfinstall/Config.in" source "package/cryptinit/Config.in" source "package/uclibc/Config.in.manual" source "package/glibc/Config.in.manual" source "package/eglibc/Config.in.manual" source "package/libc/Config.in.manual" -source "package/rpm/Config.in" source "package/grub/Config.in" source "package/grub-bin/Config.in" +source "package/rpm/Config.in" endmenu menu "Bluetooth" diff --git a/package/cfinstall/Makefile b/package/adkinstall/Makefile index fb64446f3..d250a1e70 100644 --- a/package/cfinstall/Makefile +++ b/package/adkinstall/Makefile @@ -3,10 +3,10 @@ include ${TOPDIR}/rules.mk -PKG_NAME:= cfinstall +PKG_NAME:= adkinstall PKG_VERSION:= 1.0 PKG_RELEASE:= 3 -PKG_DESCR:= compact flash installer +PKG_DESCR:= installer for compact flash or nand/mtd devices PKG_SECTION:= base PKG_DEPENDS:= parted sfdisk @@ -17,7 +17,7 @@ NO_DISTFILES:= 1 include ${TOPDIR}/mk/package.mk -$(eval $(call PKG_template,CFINSTALL,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,ADKINSTALL,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) BUILD_STYLE:= manual INSTALL_STYLE:= manual @@ -26,12 +26,12 @@ pre-configure: mkdir -p ${WRKBUILD} do-install: - ${INSTALL_DIR} $(IDIR_CFINSTALL)/sbin + ${INSTALL_DIR} $(IDIR_ADKINSTALL)/sbin ifeq ($(ADK_LINUX_MIPS_RB532),y) - ${INSTALL_BIN} ./src/cfinstall.rb532 \ - $(IDIR_CFINSTALL)/sbin/cfinstall + ${INSTALL_BIN} ./src/adkinstall.rb532 \ + $(IDIR_ADKINSTALL)/sbin/adkinstall else - ${INSTALL_BIN} ./src/cfinstall $(IDIR_CFINSTALL)/sbin + ${INSTALL_BIN} ./src/adkinstall $(IDIR_ADKINSTALL)/sbin endif include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/cfinstall/src/cfinstall b/package/adkinstall/src/adkinstall index 7e9a0d1ad..7e9a0d1ad 100644 --- a/package/cfinstall/src/cfinstall +++ b/package/adkinstall/src/adkinstall diff --git a/package/adkinstall/src/adkinstall.rb532 b/package/adkinstall/src/adkinstall.rb532 new file mode 100644 index 000000000..ca2ffde0d --- /dev/null +++ b/package/adkinstall/src/adkinstall.rb532 @@ -0,0 +1,78 @@ +#!/bin/sh +# installs a rootfs tar archive from OpenADK onto +# a Compact Flash disk or NAND device +# special script for routerboard rb532 + +nandinstall=0 +cfinstall=0 + +if [ -z $1 ];then + printf "Please give your target device as first parameter [cf|nand]\n" + exit 1 +fi +if [ -z $2 ];then + printf "Please give your root tar archive as second parameter\n" + exit 1 +fi +if [ -z $3 ];then + printf "Please give your kernel as third parameter\n" + exit 1 +fi +case $1 in + nand) + nandinstall=1 + ;; + cf) + cfinstall=1 + ;; + *) + printf "Target not recognized\n" + exit 1 + ;; +esac + +if [ $cfinstall -eq 1 ];then + # create empty partition table + printf "Creating partition scheme\n" + parted -s /dev/sda mklabel msdos + sleep 2 + maxsize=$(env LC_ALL=C parted /dev/sda -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//') + rootsize=$(($maxsize-2)) + parted -s /dev/sda unit cyl mkpart primary ext2 0 1 + parted -s /dev/sda unit cyl mkpartfs primary ext2 1 $rootsize + parted -s /dev/sda unit cyl mkpart primary fat32 $rootsize $maxsize + parted -s /dev/sda set 1 boot on + sfdisk --change-id /dev/sda 1 27 >/dev/null 2>&1 + sfdisk --change-id /dev/sda 3 88 >/dev/null 2>&1 + sleep 2 + sync + printf "Installing kernel\n" + dd if=$3 of=/dev/sda1 bs=2048 >/dev/null 2>&1 + sync + mount -t ext2 /dev/sda2 /mnt +fi + +if [ $nandinstall -eq 1 ];then + printf "Installing kernel\n" + mount -t yaffs2 /dev/mtdblock0 /mnt + cp $3 /mnt/kernel + sync + umount /mnt + mount -t yaffs2 /dev/mtdblock1 /mnt + rm -rf /mnt/* >/dev/null 2>&1 +fi + +printf "Extracting install archive\n" +tar -C /mnt -xzpf $2 + +chmod 1777 /mnt/tmp +chmod 4755 /mnt/bin/busybox + +printf "Creating device nodes\n" +mknod -m 666 /mnt/dev/null c 1 3 +mknod -m 622 /mnt/dev/console c 5 1 +mknod -m 666 /mnt/dev/tty c 5 0 + +umount /mnt +printf "Successfully installed.\n" +exit 0 diff --git a/package/cfgfs/Makefile b/package/cfgfs/Makefile index 3d89f2072..806da3199 100644 --- a/package/cfgfs/Makefile +++ b/package/cfgfs/Makefile @@ -8,12 +8,12 @@ PKG_VERSION:= 1.0.6 PKG_RELEASE:= 5 PKG_DESCR:= compressed config filesystem PKG_SECTION:= base -PKG_TARGET_DEPENDS:= alix1c alix2d alix2d13 wrap foxboard ag241 rb532 +PKG_TARGET_DEPENDS:= alix wrap foxboard ag241 rb532 WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION} NO_DISTFILES:= 1 -CFLINE_CFGFS:= select BUSYBOX_COMM\n\tselect BUSYBOX_MD5SUM\n\tselect BUSYBOX_XARGS\n\tselect BUSYBOX_FEATURE_SORT_BIG\n\tdepends on !ADK_TARGET_ROOTFS_NFSROOT +CFLINE_CFGFS:= select BUSYBOX_COMM\n\tselect BUSYBOX_MD5SUM\n\tselect BUSYBOX_XARGS\n\tselect BUSYBOX_FEATURE_SORT_BIG\n\tdepends on !ADK_TARGET_ROOTFS_NFSROOT\n\tdepends on !ADK_TARGET_ROOTFS_YAFFS include ${TOPDIR}/mk/package.mk diff --git a/package/cfinstall/src/cfinstall.rb532 b/package/cfinstall/src/cfinstall.rb532 deleted file mode 100644 index 900d6dc18..000000000 --- a/package/cfinstall/src/cfinstall.rb532 +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# installs a rootfs tar archive from OpenADK onto a Compact Flash disk -# special script for routerboard rb532 - -if [ -z $1 ];then - printf "Please give your root tar archive as first parameter\n" - exit 1 -fi -if [ -z $2 ];then - printf "Please give your kernel as second parameter\n" - exit 1 -fi -# create empty partition table -parted -s /dev/sda mklabel msdos -sleep 2 -maxsize=$(env LC_ALL=C parted /dev/sda -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//') -rootsize=$(($maxsize-2)) - -parted -s /dev/sda unit cyl mkpart primary ext2 0 1 -parted -s /dev/sda unit cyl mkpartfs primary ext2 1 $rootsize -parted -s /dev/sda unit cyl mkpart primary fat32 $rootsize $maxsize -parted -s /dev/sda set 1 boot on -sfdisk --change-id /dev/sda 1 27 >/dev/null 2>&1 -sfdisk --change-id /dev/sda 3 88 >/dev/null 2>&1 -if [ $? -eq 0 ];then - printf "Successfully created partition ${rootpart}\n" -else - printf "Partition creation failed, Exiting.\n" - exit 1 -fi -sleep 2 -sync -printf "Installing kernel\n" -dd if=$2 of=/dev/sda1 bs=2048 >/dev/null 2>&1 -sync -mount -t ext2 /dev/sda2 /mnt -printf "Extracting install archive\n" -tar -C /mnt -xzpf $1 -chmod 1777 /mnt/tmp -chmod 4755 /mnt/bin/busybox - -printf "Creating device nodes\n" -mknod -m 666 /mnt/dev/null c 1 3 -mknod -m 622 /mnt/dev/console c 5 1 -mknod -m 666 /mnt/dev/tty c 5 0 - -umount /mnt -printf "Successfully installed.\n" -exit 0 |