From 0d36579720e688f85f694d436035faca6f41496c Mon Sep 17 00:00:00 2001 From: Matthias Hentges Date: Wed, 10 Aug 2005 16:30:28 +0000 Subject: altboot: Fix /etc/altboot.rc scanning and adjust the "Master Password" notice to 240x320 screens --- packages/altboot/altboot.bb | 2 +- packages/altboot/files/altboot.func | 4 ++-- packages/altboot/files/init.altboot | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'packages/altboot') diff --git a/packages/altboot/altboot.bb b/packages/altboot/altboot.bb index 80e22d1924..882336e598 100644 --- a/packages/altboot/altboot.bb +++ b/packages/altboot/altboot.bb @@ -6,7 +6,7 @@ MAINTAINER = "Matthias 'CoreDump' Hentges " LICENSE = "GPL" -PR = "r5" +PR = "r6" SRC_URI = "file://altboot-menu \ diff --git a/packages/altboot/files/altboot.func b/packages/altboot/files/altboot.func index 251368a577..3a6c743f0d 100644 --- a/packages/altboot/files/altboot.func +++ b/packages/altboot/files/altboot.func @@ -182,9 +182,9 @@ set_password() { mount -o remount,rw / if test -z "$MASTER_PASSWORD" then - echo -e "\nAltboot is a boot-manager which allows to boot from SD, CF and NFS" + echo -e "\nAltboot is a boot-manager which allows to boot from SD,\nCF and NFS" echo -e "\nFor security reasons altboot requires a password\nto boot into init=/bin/sh." - echo -e "${C_RED}This is *not* your root password! It is used by altboot alone!${C_RESET}" + echo -e "${C_RED}This is *not* your root password!\nIt is used by altboot alone!${C_RESET}" echo -e "${C_BLUE}\nNote:\tThe password will be echoed to the screen\n\tand it will be asked twice for confirmation.${C_RESET}" echo -e "\nPlease enter a new master password:\n" diff --git a/packages/altboot/files/init.altboot b/packages/altboot/files/init.altboot index 26b4639ccd..5c28edb5f3 100644 --- a/packages/altboot/files/init.altboot +++ b/packages/altboot/files/init.altboot @@ -252,11 +252,11 @@ else # Execute scripts in /etc/altboot.rc before doing anything else. # Required for special situations, like booting spitz - RC_FILES=`ls /etc/altboot.rc | grep \\\\.sh$` + RC_FILES=`ls /etc/altboot.rc | grep \.sh$` for file in $RC_FILES do - . $file >/dev/tty1 2>&1 || echo "/etc/altboot.rc/$file failed!" + . /etc/altboot.rc/$file >/dev/tty1 2>&1 || echo "/etc/altboot.rc/$file failed!" done if test "$ENABLE_ALTBOOT" != "yes" -- cgit v1.2.3 From 28edabd1a8d2e4fea1232319903ad888aa7cae4b Mon Sep 17 00:00:00 2001 From: Justin Patrin Date: Thu, 11 Aug 2005 17:18:46 +0000 Subject: Fix typo in postinst for spitz, add more robust checking Add a postrm for spitz (untested) --- packages/altboot/altboot.bb | 56 ++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 16 deletions(-) (limited to 'packages/altboot') diff --git a/packages/altboot/altboot.bb b/packages/altboot/altboot.bb index 882336e598..cf0d9c563e 100644 --- a/packages/altboot/altboot.bb +++ b/packages/altboot/altboot.bb @@ -39,27 +39,32 @@ pkg_postinst() { } pkg_postinst_spitz() { - # Note: Spitz support is a royal pain in the ass. # Since Spitz pivot_roots by default, there is no real way # a user can install an altboot.ipk into the flash FS. # So we need to do that manually (*SIGH*) - + # /l/m only exists on the HDD on spitz if test -d /lib/modules then - if [ -e /media/realroot/sbin/init ]; then - ROOT_MOUNT_POINT="/media/realroot" - elif [ -e /media/ROM/sbin/init ]; then - ROOT_MOUNT_POINT="/media/ROM" - fi - ROOT_MOUNT_DEVICE = `cat /proc/mounts | grep $REALROOT | grep jffs2 | cut -d " " -f 1` - mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT - cp -R /etc/altboot* $ROOT_MOUNT_POINT/etc - cp /sbin/init.altboot $ROOT_MOINT_POINT/sbin - mv $ROOT_MOUNT_POINT/sbin/init $ROOT_MOUNT_POINT/sbin/init.orig - ln -s /sbin/init.altboot $ROOT_MOUNT_POINT/sbin/init - fi + if [ -e /media/realroot/sbin/init ]; then + ROOT_MOUNT_POINT="/media/realroot" + elif [ -e /media/ROM/sbin/init ]; then + ROOT_MOUNT_POINT="/media/ROM" + fi + if [ ! "$ROOT_MOUNT_POINT" = "" ]; then + ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` + if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then + mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT + cp -R /etc/altboot* $ROOT_MOUNT_POINT/etc + cp /sbin/init.altboot $ROOT_MOUNT_POINT/sbin + if [ -f $ROOT_MOUNT_POINT/sbin/init ]; then + mv $ROOT_MOUNT_POINT/sbin/init $ROOT_MOUNT_POINT/sbin/init.orig + fi + ln -s /sbin/init.altboot $ROOT_MOUNT_POINT/sbin/init + fi + fi + fi } pkg_postrm() { @@ -67,6 +72,25 @@ pkg_postrm() { } pkg_postrm_spitz() { - # FIXME: To be written - a=a # do nothing + if test -d /lib/modules + then + if [ -e /media/realroot/sbin/init ]; then + ROOT_MOUNT_POINT="/media/realroot" + elif [ -e /media/ROM/sbin/init ]; then + ROOT_MOUNT_POINT="/media/ROM" + fi + if [ ! "$ROOT_MOUNT_POINT" = "" ]; then + ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` + if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then + mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT + if [ -f $ROOT_MOUNT_POINT/sbin/init.orig ]; then + rm $ROOT_MOUNT_POINT/sbin/init + rm $ROOT_MOUNT_POINT/sbin/init.altboot + mv $ROOT_MOUNT_POINT/sbin/init.orig $ROOT_MOUNT_POINT/sbin/init + else + echo "$ROOT_MOUNT_POINT/sbin/init.orig not found, not uninstalling altboot!" + fi + fi + fi + fi } -- cgit v1.2.3 From 073641a242674d79964829763bc622e772aba84c Mon Sep 17 00:00:00 2001 From: Justin Patrin Date: Thu, 11 Aug 2005 17:42:34 +0000 Subject: CoreDump was right, the REAL_INIT is init.sysvinit --- packages/altboot/files/spitz/altboot.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/altboot') diff --git a/packages/altboot/files/spitz/altboot.cfg b/packages/altboot/files/spitz/altboot.cfg index 2640d9279a..be90c62eb4 100644 --- a/packages/altboot/files/spitz/altboot.cfg +++ b/packages/altboot/files/spitz/altboot.cfg @@ -4,7 +4,7 @@ # the ROM. This is currently broken. ENABLE_ALTBOOT="yes" TIMEOUT="3" -REAL_INIT="/sbin/init" +REAL_INIT="/sbin/init.sysvinit" SH_SHELL="/bin/sh" IMAGE_PATH="boot-images" IMAGE_TYPE="ext3" -- cgit v1.2.3 From 4123d3bf3cdc1412fb0ff49cc30204a04af023c0 Mon Sep 17 00:00:00 2001 From: Matthias Hentges Date: Thu, 11 Aug 2005 17:55:56 +0000 Subject: altboot: Add forgotten "boot hdd3" option for spitz --- .../altboot/files/spitz/altboot-menu/25-bootHDD3 | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 packages/altboot/files/spitz/altboot-menu/25-bootHDD3 (limited to 'packages/altboot') diff --git a/packages/altboot/files/spitz/altboot-menu/25-bootHDD3 b/packages/altboot/files/spitz/altboot-menu/25-bootHDD3 new file mode 100644 index 0000000000..4280cdd35c --- /dev/null +++ b/packages/altboot/files/spitz/altboot-menu/25-bootHDD3 @@ -0,0 +1,80 @@ +# !/bin/sh +# +# Copyright Matthias Hentges (c) 2005 +# +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the GPL) + + +# This file will teach you how to implement your own scripts while using existing altboot +# code. + +# /sbin/init.altboot searches /etc/altboot-menu for scripts. It will only list scripts which +# return a title when run with the "title" parameter. +# Script which do not return a title will never be shown in the boot menu! +# +M_TITLE="Boot from images on HDD3" + +# The "title" parameter is implemented at the end of this script so it will never be reached +# and the script will simply be ignored by altboot. + + +# The die() function aborts the boot if something goes wrong and sets STDIN / STDERR / STDOUT +# correctly. +die() { + echo "ERROR: $1" >/dev/tty0 + exec $SH_SHELL /dev/tty0 2>&1 +} + +# This function is activated by init.altboot by calling this script with the "run" option +run_module() { + + # altboot.func contains re-useable code. If you intend to use check_target (see below) + # you must keep this line. If not, delete it. + test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!" + + + # The only thing you'll have to do is get your medium mounted. + # The following lines mount a SD card on 2.4-series kernels on a Zaurus + + ########################################## + + + echo -n "Mounting rootfs rw..." >/dev/tty0 + mount -o remount,rw / >/dev/tty0 2>&1 && echo ok >/dev/tty0|| die "mount -o remount,rw / failed" + + #echo -n "Generating device files..." >/dev/tty0 + #/etc/init.d/devices start && echo ok >/dev/tty0|| die "FAILED" + + cardmgr -o < /dev/tty0 > /dev/tty0 2>&1 || echo "cardmgr -o failed!" + + check_fs $HDD3_DEVICE $HDD3_TYPE + + echo -n "Mounting $HDD3_MOUNTPOINT..." >/dev/tty0 + if [ "$HDD3_TYPE" = "" ]; then + HDD3_TYPE="auto" + fi + /bin/mount -t $HDD3_TYPE -o defaults,noatime $HDD3_DEVICE $HDD3_MOUNTPOINT >/dev/null 2>&1 && echo ok >/dev/tty0|| die "/bin/mount -t auto -o defaults,noatime $HDD3_DEVICE $HDD3_MOUNTPOINT failed" + + echo "" + + # Give the SD and CF mounting some time. This is a must for SD + sleep 2 + ########################################## + + # Once the medium (be it a CF or SD card, or even a NFS drive) is mounted somewhere, + # just call check_target with the mountpoint as parameter. + # check_target searches the medium for a real filesystem and loop-images and + # asks the user what to boot if there are several choices. + + # Check for a real fs and loop-images. + check_target "$HDD3_MOUNTPOINT" >/dev/tty0 + + # Done :) + +} + + +case "$1" in +title) echo "$M_TITLE";; +run) run_module "$2";; +esac -- cgit v1.2.3 From 020cd0bc53849b297cae8737173c1fe8d5420898 Mon Sep 17 00:00:00 2001 From: Justin Patrin Date: Thu, 11 Aug 2005 18:16:44 +0000 Subject: Add /dev/loop0 to list of modules to be created --- packages/altboot/files/spitz/altboot-menu/00-Default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/altboot') diff --git a/packages/altboot/files/spitz/altboot-menu/00-Default b/packages/altboot/files/spitz/altboot-menu/00-Default index 06ed038473..01818262a3 100644 --- a/packages/altboot/files/spitz/altboot-menu/00-Default +++ b/packages/altboot/files/spitz/altboot-menu/00-Default @@ -38,7 +38,7 @@ run_module() { # There are no device files on Spitz yet, requires HDD (bad for testing # with CF) - for n in 1 2 3 4 5 + for n in 0 1 2 3 4 5 do ! test -e /dev/loop$n && mknod /dev/loop$n b 7 $n done -- cgit v1.2.3 From bece5b20b67cbd731804da824758eda49875eef9 Mon Sep 17 00:00:00 2001 From: Justin Patrin Date: Thu, 11 Aug 2005 18:20:14 +0000 Subject: Bump PR --- packages/altboot/altboot.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/altboot') diff --git a/packages/altboot/altboot.bb b/packages/altboot/altboot.bb index cf0d9c563e..a0b5996d6c 100644 --- a/packages/altboot/altboot.bb +++ b/packages/altboot/altboot.bb @@ -6,7 +6,7 @@ MAINTAINER = "Matthias 'CoreDump' Hentges " LICENSE = "GPL" -PR = "r6" +PR = "r7" SRC_URI = "file://altboot-menu \ -- cgit v1.2.3