[oe-commits] org.oe.dev altboot: Update to latest version

coredump2 commit openembedded-commits at lists.openembedded.org
Tue Mar 27 22:26:12 UTC 2007


altboot: Update to latest version

Author: coredump2 at openembedded.org
Branch: org.openembedded.dev
Revision: 7ab8b86e6a186c603ee048b23f8308df0e9063f3
ViewMTN: http://monotone.openembedded.org/revision.psp?id=7ab8b86e6a186c603ee048b23f8308df0e9063f3
Files:
1
packages/altboot/files/nslu2le
packages/altboot/files/nslu2le/altboot-handlers
packages/altboot/files/nslu2le/altboot-menu
packages/altboot/files/nslu2le/altboot.rc
packages/altboot/files/nslu2le/altboot-2.6.cfg
packages/altboot/files/nslu2le/altboot-handlers/05-USB-Storage
packages/altboot/files/nslu2le/altboot-handlers/10-Onboard-Flash
packages/altboot/files/nslu2le/altboot-menu/00-Default
packages/altboot/files/nslu2le/altboot-menu/30-bootUSB-Stick
packages/altboot/files/nslu2le/altboot-menu/55-bin-sh
packages/altboot/files/set-bootdev
packages/altboot/files/altboot-menu/Advanced/55-bin-sh
packages/altboot/files/altboot.func
packages/altboot/files/init.altboot
mtn:execute
true
Diffs:

#
# mt diff -racd3cb121191d59fc54c0f331e951fc1122ebe61 -r7ab8b86e6a186c603ee048b23f8308df0e9063f3
#
# 
# 
# add_dir "packages/altboot/files/nslu2le"
# 
# add_dir "packages/altboot/files/nslu2le/altboot-handlers"
# 
# add_dir "packages/altboot/files/nslu2le/altboot-menu"
# 
# add_dir "packages/altboot/files/nslu2le/altboot.rc"
# 
# add_file "packages/altboot/files/nslu2le/altboot-2.6.cfg"
#  content [a64ff6b4f2a699bbd4ac1f0cb0de1af6f493fad6]
# 
# add_file "packages/altboot/files/nslu2le/altboot-handlers/05-USB-Storage"
#  content [7bfeaf1106c921485a73a0d846cee56d751f7197]
# 
# add_file "packages/altboot/files/nslu2le/altboot-handlers/10-Onboard-Flash"
#  content [f17f11ae4d1100bdd485099dc73bda441ff24a1d]
# 
# add_file "packages/altboot/files/nslu2le/altboot-menu/00-Default"
#  content [bb6b07a15bc021e016b46360be7774025ff297d2]
# 
# add_file "packages/altboot/files/nslu2le/altboot-menu/30-bootUSB-Stick"
#  content [705dcc87ed1cd45f7cf632cb4b10f75c8bcc9819]
# 
# add_file "packages/altboot/files/nslu2le/altboot-menu/55-bin-sh"
#  content [5c362e7ebd0439a25f482b163871bf4edd5f09ca]
# 
# add_file "packages/altboot/files/set-bootdev"
#  content [91c7bf06c8d31c80e04acfff5cffa5d27d838557]
# 
# patch "packages/altboot/files/altboot-menu/Advanced/55-bin-sh"
#  from [c0b00b8687d282eca3358a0606aa4ce7cb393a5f]
#    to [bea2ca1472054034f745dd32ace7142df1f6a8e6]
# 
# patch "packages/altboot/files/altboot.func"
#  from [f775541a80520c416174b670909791d07ba517e7]
#    to [a638cd04c98e56f00bce301a79819140d48bc61b]
# 
# patch "packages/altboot/files/init.altboot"
#  from [7dee43373cc44563a93d797ef3eabf5cfd99a099]
#    to [3d6b167f409a774a47067b1515721cee172657ec]
# 
#   set "packages/altboot/files/set-bootdev"
#  attr "mtn:execute"
# value "true"
# 
============================================================
--- packages/altboot/files/nslu2le/altboot-2.6.cfg	a64ff6b4f2a699bbd4ac1f0cb0de1af6f493fad6
+++ packages/altboot/files/nslu2le/altboot-2.6.cfg	a64ff6b4f2a699bbd4ac1f0cb0de1af6f493fad6
@@ -0,0 +1,55 @@
+#
+# Altboot machine configuration for: NSLU2 / Kernel 2.6
+#
+
+# Handled by /sbin/init.altboot
+# Allow booting images from SD or CF instead of booting
+# the ROM. 
+ENABLE_ALTBOOT="yes"
+
+# If set to "0" the menu will always be shown, if set to
+# "[none]" there will be no menu and no delay
+TIMEOUT="[none]"
+
+REAL_INIT="/sbin/init.sysvinit"
+SH_SHELL="/bin/sh"
+
+ENABLE_SOUND="no"
+
+IMAGE_PATH="boot-images"
+IMAGE_TYPE="ext2"
+FSCK_IMAGES="yes"
+
+
+# Can't do that due to missing console
+ENABLE_IMAGECONF="no"
+
+SD_DEVICE=""
+SD_KERNEL_MODULE=""
+
+
+USB_HOST_AVAILABLE="yes"
+USB_STORAGE_MODULES="ohci_hcd usb_storage sd_mod"
+USB_STORAGE_PARTITION="/dev/sda1"
+USB_STORAGE_WAIT="4"
+
+USB_NETWORKING_AVAILABLE="no"
+USB_NW_MODULES="usbcore pxa27x_udc ohci-hcd g_ether"
+USB_NW_DEVICE="usb0"
+
+INIT_RUNLEVEL="3"
+NO_GUI_RL=""
+
+# The if set to "", altboot will force you to set a master password on 
+# first-boot
+MASTER_PASSWORD="[none]"
+ASK_PW_ON_BOOT="no"
+
+SD_MOUNTPOINT="/media/card"
+CF_MOUNTPOINT="/media/cf"
+
+DISABLE_SD_BOOT="yes"
+DISABLE_CF_BOOT="yes"
+DISABLE_NOGUI_BOOT="yes"
+DISABLE_BINSH_BOOT="yes"
+DISABLE_INSTTGZ_BOOT="yes"
============================================================
--- packages/altboot/files/nslu2le/altboot-handlers/05-USB-Storage	7bfeaf1106c921485a73a0d846cee56d751f7197
+++ packages/altboot/files/nslu2le/altboot-handlers/05-USB-Storage	7bfeaf1106c921485a73a0d846cee56d751f7197
@@ -0,0 +1,90 @@
+#!/bin/sh
+# NOTE: Ported to altboot by CoreDump <oe at hentges.net>
+# Based on the original turnup helper script.
+#
+# All parts by Matthias 'CoreDump' Hentges are hereby placed
+# under the terms of the GPL
+#
+# boot from the hard disk partition "$1" (which
+# must be given) using options from the rest of
+# the command line.
+#
+
+M_TITLE="Boot USB Storage"
+test "$USB_HOST_AVAILABLE" = "yes" || exit 0
+
+run_module() {
+	x=x
+}
+
+case "$1" in
+title)	echo "$M_TITLE" ; exit 0 ;;
+run)	run_module "$2";;
+esac
+
+nslu2_feeback heartbeat
+
+bootdev_data="$*"
+bootdev_mode="`echo "$bootdev_data" | awk '{print $1}'`"
+bootdev_name="`echo "$bootdev_data" | awk '{print $2}'`"
+bootdev_uuid="`echo "$bootdev_data" | awk '{print $3}'`"				
+
+
+# Use the standard init path (see /etc/init.d/rcS)
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+#
+# Load the helper functions
+. /etc/default/functions
+. /etc/default/modulefunctions
+#
+leds boot system
+#
+if test -n "$1"
+then
+	device="$bootdev_name"
+	UUID="$bootdev_uuid"
+	
+	shift
+        # proc is needed for UUID mount and module load
+        mount -t proc proc /proc
+        # load USB & SCSI storage modules (/proc required!)
+        echo "boot: loading modules required for disk boot"
+        loaddiskmods
+	# waiting for disk (FIXME)
+	sleep=6
+	test "$sleep" -gt 0 && sleep "$sleep"
+	#
+	# fire the boot
+	echo "boot: rootfs: mount $* $device [$UUID]"
+	#
+	# Mount read-write because before exec'ing init
+	# If a UUID is given (in the environment) this
+	# is used in preference to the device, but if
+	# the UUID mount fails a standard device mount
+	# is attempted.
+	if	test -n "$UUID" &&
+		mount "$@" -U "$UUID" /mnt ||
+		mount "$@" "$device" /mnt
+	then
+		# checkmount checks for sh, chroot, init
+		# and /mnt (i.e. /mnt/mnt in this case)
+		if checkmount /mnt
+		then
+			# pivot to /initrd if available, else /mnt
+			cd /
+			if test -d /mnt/initrd
+			then
+				swivel mnt initrd
+			else
+				swivel mnt mnt
+			fi
+			# swivel failed
+		fi
+		# Failure: unmount the partition
+		umount /mnt
+	fi
+fi
+
+# fallback - use the flash boot
+nslu2_feeback failure
+exec /boot/flash
============================================================
--- packages/altboot/files/nslu2le/altboot-handlers/10-Onboard-Flash	f17f11ae4d1100bdd485099dc73bda441ff24a1d
+++ packages/altboot/files/nslu2le/altboot-handlers/10-Onboard-Flash	f17f11ae4d1100bdd485099dc73bda441ff24a1d
@@ -0,0 +1,18 @@
+#! /bin/sh
+#
+# Copyright Matthias Hentges <devel at hentges.net> (c) 2007
+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
+#
+# Filename: 10-Onboard-Flash
+# Date: 20070218 (YMD)
+
+leds beep
+. /etc/default/functions
+leds boot system
+test -x /sbin/init && exec /sbin/init
+# fallback if /sbin/init has been deleted (bad!)
+leds boot system panic
+exec <>/dev/console >&0 2>&0
+test -x /sbin/sulogin && exec /sbin/sulogin
+test -x /bin/sh && exec /bin/sh
+exit 1
============================================================
--- packages/altboot/files/nslu2le/altboot-menu/00-Default	bb6b07a15bc021e016b46360be7774025ff297d2
+++ packages/altboot/files/nslu2le/altboot-menu/00-Default	bb6b07a15bc021e016b46360be7774025ff297d2
@@ -0,0 +1,17 @@
+# !/bin/sh
+M_TITLE="Flash"
+
+
+run_module() {
+	leds beep
+	leds boot system
+	exec $REAL_INIT "$INIT_RUNLEVEL"
+	exit 0
+}
+
+case "$1" in
+title)	echo "$M_TITLE";;
+run)	run_module;;
+*)	echo "Unknown parameter [$1]";;
+esac
+
============================================================
--- packages/altboot/files/nslu2le/altboot-menu/30-bootUSB-Stick	705dcc87ed1cd45f7cf632cb4b10f75c8bcc9819
+++ packages/altboot/files/nslu2le/altboot-menu/30-bootUSB-Stick	705dcc87ed1cd45f7cf632cb4b10f75c8bcc9819
@@ -0,0 +1,174 @@
+# !/bin/sh
+#
+# Copyright Matthias Hentges (c) 2005
+#
+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the GPL)
+
+
+M_TITLE="USB Attached Storage"
+
+test "$USB_HOST_AVAILABLE" = "yes" || exit 0
+       
+# This function is activated by init.altboot by calling this script with the "run" option
+run_module() {
+	
+	test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!"
+	
+	# Mount /proc, etc
+	init_rootfs
+
+	echo -e "\nStarting USB..."
+	
+	for module in $USB_STORAGE_MODULES
+	do
+		echo -en "\t - $module: "
+		modprobe "$module" >/dev/null 2>&1 && echo ok || die "Failed to modprobe [$module]"
+	done
+
+	echo ""
+	scan_devices
+	usb_show_menu 
+		
+#	echo -n "Mounting $USB_STORAGE_PARTITION..."  >/dev/tty0
+#	
+#	mkdir -p /media/usb-storage >/dev/null 2>&1
+#	
+#	sleep "$USB_STORAGE_WAIT"
+#	
+#	/bin/mount -t auto -o defaults,noatime $USB_STORAGE_PARTITION /media/usb-storage >/dev/null 2>&1 && echo ok  >/dev/tty0|| die "/bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT failed"
+#		
+#	echo ""	
+#	
+#	# Check for a real fs and loop-images.
+#	check_target "/media/usb-storage" >/dev/tty0		
+}
+
+scan_devices() {
+	reset_pref "available_devices"
+
+	cnt=1	
+	
+	for scsi_disk in `ls -1 /sys/block/ | grep ^sd`
+	do
+		scsi_disk_name="`echo "$scsi_disk" | awk '{printf("%s\n",toupper($0))}'`"
+		test -e /sys/block/$scsi_disk/device/vendor && HDD_VENDOR="`cat /sys/block/$scsi_disk/device/vendor | sed "s/\ $//"`" 
+		test -z "$HDD_VENDOR" && HDD_VENDOR="Unknown Vendor"
+
+		test -e /sys/block/$scsi_disk/device/model && HDD_MODEL="`cat /sys/block/$scsi_disk/device/model`" 
+		test -z "$HDD_MODEL" && HDD_MODEL="Unknown Model"
+
+		scsi_disk_partition_cnt="`ls -1 /sys/block/$scsi_disk | grep ^$scsi_disk | wc -l | tr -d " "`"
+		test "$scsi_disk_partition_cnt" -gt 1 && scsi_disk_partition_cnt="$scsi_disk_partition_cnt partitions" || scsi_disk_partition_cnt="$scsi_disk_partition_cnt partition"
+		
+		set_pref "available_devices" "$cnt" "$scsi_disk_name ( $HDD_VENDOR $HDD_MODEL with $scsi_disk_partition_cnt)"
+		set_pref "available_devices_short" "$cnt" "$scsi_disk"	
+		set_pref "available_devices_type" "$cnt" "usb"	
+		
+		let cnt=$cnt+1
+	done
+	
+}
+
+usb_show_menu() {		
+
+	cnt2=0 ; let cnt=$cnt-1	
+	while test "$cnt" != "$cnt2"
+	do
+		let cnt2=$cnt2+1
+		get_pref "available_devices" "$cnt2" dev
+		
+		echo -e "\t[$cnt2] - $dev"			
+	done
+	
+	while test -z "$selected_dev"
+	do	
+		echo -en "\nYour choice: "
+		read junk
+		get_pref "available_devices" "$junk" selected_dev
+		get_pref "available_devices_type" "$junk" part_mode
+		
+#		debug_echo "show_menu(): selected: [$selected_dev]"
+	done
+	
+	if ( echo "$selected_dev" | grep -q "^Flash" )
+	then
+		boot_from flash		
+	else
+		get_pref "available_devices_short" "$junk" selected_dev
+#		debug_echo "show_menu(): selected_devices_short: [$selected_dev]"
+		
+		partitions="`ls -1 /sys/block/$selected_dev|grep ^$selected_dev`"
+		test -z "$partitions" && die "No partitions found on /dev/$selected_dev!"
+		
+		
+		echo -e "\nPlease select a partition on $selected_dev to boot from:\n"
+		
+		cnt=1
+		for partition in $partitions
+		do			
+			# We assume that partitions with a "size" < 10 are extended partitions
+			# and should not be listed. TYPE=swap is blacklisted as well.
+			part_size="`cat /sys/block/$selected_dev/$partition/size`"
+			part_type="`blkid -s TYPE -o value /dev/$partition`"		
+			
+			if test "$part_size" -gt 10 -a "$part_type" != "swap"
+			then
+				let part_size="($part_size/2)/1000"
+				echo -e "\t[$cnt] $partition (~ ${part_size}Mb, $part_type)"	
+				set_pref "available_partitions" "$cnt" "$partition"
+				
+				let cnt=$cnt+1			
+			fi
+		done
+		
+		while test -z "$selected_partition"
+		do
+			echo -en "\nYour choice: "	
+			read junk	
+			get_pref "available_partitions" "$junk" selected_partition						
+		done
+		
+		part_uuid="`blkid -c /dev/null -s UUID -o value /dev/$selected_partition`"
+					
+		boot_from "$part_mode" "$selected_partition" "$part_uuid"		
+	fi				
+}	
+
+boot_from() {
+	debug_echo "boot_from() [$*]"
+	
+	part_mode="$1"
+	part_name="$2"
+	part_uuid="$3"
+	
+	case "$part_mode" in 
+	usb)		umount /tmp/mnt.set-bootdev >/dev/null 2>&1
+			rm -rf /tmp/mnt.set-bootdev ; mkdir -p /tmp/mnt.set-bootdev
+
+			if ! ( mount -U "$part_uuid" /tmp/mnt.set-bootdev )
+			then
+				echo "** Note: UUID mount for $part_name failed"
+				mount /dev/$part_name /tmp/mnt.set-bootdev && echo "** Note: Normal mount for $part_name successful"
+			fi
+
+			if ! test -e /tmp/mnt.set-bootdev/sbin/init.sysvinit
+			then
+				copy_rootfs /tmp/mnt.set-bootdev/
+			else
+				umount /tmp/mnt.set-bootdev
+				echo -e "\nSetting /dev/$part_name as boot-partition"
+				echo "3 $part_name $part_uuid" > /etc/altboot.last
+			fi
+			;;
+	esac
+}
+
+copy_rootfs() {
+	debug_echo "copy_rootfs() [$*]"
+}
+
+case "$1" in
+title)	echo "$M_TITLE";;
+run)	run_module "$2";;
+esac
+
============================================================
--- packages/altboot/files/nslu2le/altboot-menu/55-bin-sh	5c362e7ebd0439a25f482b163871bf4edd5f09ca
+++ packages/altboot/files/nslu2le/altboot-menu/55-bin-sh	5c362e7ebd0439a25f482b163871bf4edd5f09ca
@@ -0,0 +1,27 @@
+# !/bin/sh
+M_TITLE="init=/bin/sh"
+
+test "$DISABLE_BINSH_BOOT" = yes && exit 0
+
+run_module() {
+	
+	test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!"
+	
+	test "$ASK_PW_ON_BOOT" != "yes" && verify_master_pw >$OUT_TTY
+	
+	# Mount /proc, etc
+	init_rootfs
+	
+	echo -e "\nBoot system with 'exec /sbin/init 5'\n"
+	while true
+	do
+		exec $SH_SHELL <$OUT_TTY >$OUT_TTY 2>&1
+		echo "WARNING: Shell was killed!"
+	done
+}
+
+case "$1" in
+title)	echo "$M_TITLE";;
+run)	run_module;;
+esac
+
============================================================
--- packages/altboot/files/set-bootdev	91c7bf06c8d31c80e04acfff5cffa5d27d838557
+++ packages/altboot/files/set-bootdev	91c7bf06c8d31c80e04acfff5cffa5d27d838557
@@ -0,0 +1,150 @@
+#!/bin/sh
+
+VERSION="0.0.1"
+ENABLE_DEBUG="yes"
+
+die() {
+	echo -e "ERROR: $1" 
+	exit 1
+}
+
+. /etc/altboot.func || die "/etc/altboot.func is missing!"
+test -d /sys/block || die "Sysfs problem? (/sys/block not found)"
+
+debug_echo() {
+	test "$ENABLE_DEBUG" = "yes" && echo -e "${C_YELLOW}DEBUG:${C_RESET}${C_WHITE} $1 ${C_RESET}" 
+}
+
+scan_devices() {
+	reset_pref "available_devices"
+
+	cnt=1	
+	set_pref "available_devices" "$cnt" "Flash" ; let cnt=$cnt+1
+	
+	for scsi_disk in `ls -1 /sys/block/ | grep ^sd`
+	do
+		scsi_disk_name="`echo "$scsi_disk" | awk '{printf("%s\n",toupper($0))}'`"
+		test -e /sys/block/$scsi_disk/device/vendor && HDD_VENDOR="`cat /sys/block/$scsi_disk/device/vendor | sed "s/\ $//"`" 
+		test -z "$HDD_VENDOR" && HDD_VENDOR="Unknown Vendor"
+
+		test -e /sys/block/$scsi_disk/device/model && HDD_MODEL="`cat /sys/block/$scsi_disk/device/model`" 
+		test -z "$HDD_MODEL" && HDD_MODEL="Unknown Model"
+
+		scsi_disk_partition_cnt="`ls -1 /sys/block/$scsi_disk | grep ^$scsi_disk | wc -l | tr -d " "`"
+		test "$scsi_disk_partition_cnt" -gt 1 && scsi_disk_partition_cnt="$scsi_disk_partition_cnt partitions" || scsi_disk_partition_cnt="$scsi_disk_partition_cnt partition"
+		
+		set_pref "available_devices" "$cnt" "$scsi_disk_name ( $HDD_VENDOR $HDD_MODEL with $scsi_disk_partition_cnt)"
+		set_pref "available_devices_short" "$cnt" "$scsi_disk"	
+		set_pref "available_devices_type" "$cnt" "usb"	
+		
+		let cnt=$cnt+1
+	done
+	
+}
+	
+show_menu() {		
+	echo -e "\nset-bootdev v$VERSION\n"	
+
+	echo -e "Please select the device you wish to boot from:\n"
+	
+	cnt2=0 ; let cnt=$cnt-1	
+	while test "$cnt" != "$cnt2"
+	do
+		let cnt2=$cnt2+1
+		get_pref "available_devices" "$cnt2" dev
+		
+		echo -e "\t[$cnt2] - $dev"			
+	done
+	
+	while test -z "$selected_dev"
+	do	
+		echo -en "\nYour choice: "
+		read junk
+		get_pref "available_devices" "$junk" selected_dev
+		get_pref "available_devices_type" "$junk" part_mode
+		
+#		debug_echo "show_menu(): selected: [$selected_dev]"
+	done
+	
+	if ( echo "$selected_dev" | grep -q "^Flash" )
+	then
+		boot_from flash		
+	else
+		get_pref "available_devices_short" "$junk" selected_dev
+#		debug_echo "show_menu(): selected_devices_short: [$selected_dev]"
+		
+		partitions="`ls -1 /sys/block/$selected_dev|grep ^$selected_dev`"
+		test -z "$partitions" && die "No partitions found on /dev/$selected_dev!"
+		
+		
+		echo -e "\nPlease select a partition on $selected_dev to boot from:\n"
+		
+		cnt=1
+		for partition in $partitions
+		do			
+			# We assume that partitions with a "size" < 10 are extended partitions
+			# and should not be listed. TYPE=swap is blacklisted as well.
+			part_size="`cat /sys/block/$selected_dev/$partition/size`"
+			part_type="`blkid -s TYPE -o value /dev/$partition`"		
+			
+			if test "$part_size" -gt 10 -a "$part_type" != "swap"
+			then
+				let part_size="($part_size/2)/1000"
+				echo -e "\t[$cnt] $partition (~ ${part_size}Mb, $part_type)"	
+				set_pref "available_partitions" "$cnt" "$partition"
+				
+				let cnt=$cnt+1			
+			fi
+		done
+		
+		while test -z "$selected_partition"
+		do
+			echo -en "\nYour %s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list