# !/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="altboot sample" # We can use that to deactivate certain scripts: exit 0 # 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. # run_module can be used to display interactive prompts to the user (see the USB storage script # for examples). remember_last_setting updates /etc/altboot.last to "remember" which item was selected # by the user the previous time run_module() { remember_last_setting "$MENU_POSITION" } # exec_module is used to actually execute the pivot_root part of the script exec_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 ########################################## # Mount /proc, etc init_rootfs echo -n "Loading SD kernel module..." /sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed" echo -n "Mounting $SD_MOUNTPOINT..." >/dev/tty0 /bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT >/dev/null 2>&1 && echo ok >/dev/tty0|| die "/bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_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 "$SD_MOUNTPOINT" >/dev/tty0 # Done :) } case "$1" in title) echo "$M_TITLE" ;; run) run_module test "$OFFLINE_CONFIG" != true && exec_module ;; autorun) exec_module "$3" ;; flags) echo "" ;; esac