Browse Source

implement installation on nand and fix nand bootup

rb532 nand usage fixed. Rename cfinstall to adkinstall
to abstract from backend device used.
Waldemar Brodkorb 14 years ago
parent
commit
6051971c31

+ 1 - 1
mk/rootfs.mk

@@ -18,7 +18,7 @@ $(eval $(call rootfs_template,archive,ARCHIVE))
 $(eval $(call rootfs_template,initramfs,INITRAMFS))
 $(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK))
 $(eval $(call rootfs_template,squashfs,SQUASHFS))
-$(eval $(call rootfs_template,yaffs,YAFFS))
+$(eval $(call rootfs_template,yaffs,YAFFS,root=/dev/mtdblock1))
 $(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp init=/init))
 $(eval $(call rootfs_template,encrypted,ENCRYPTED))
 

+ 2 - 2
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"

+ 7 - 7
package/cfinstall/Makefile → 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

+ 0 - 0
package/cfinstall/src/cfinstall → package/adkinstall/src/adkinstall


+ 78 - 0
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

+ 2 - 2
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
 

+ 0 - 49
package/cfinstall/src/cfinstall.rb532

@@ -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

+ 1 - 2
target/rb532/TODO

@@ -1,2 +1 @@
-- enable watchdog
-- test yaffs2 support
+- implement cfgfs for NAND/YAFFS2 rootfs