slitaz-boot-scripts annotate etc/init.d/bootopts.sh @ rev 254

Huge change in boot... we start X as soon as possible by default, for this we have to config keymap, locale, user and home before, let do that in rcS. Also some fixes such as TZ
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 29 16:06:08 2011 +0200 (2011-04-29)
parents 9f875fdcde50
children f1c0f8f8c116
rev   line source
pankso@6 1 #!/bin/sh
pankso@6 2 # /etc/init.d/bootopts.sh - SliTaz boot options from the cmdline.
pankso@6 3 #
pankso@160 4 # Earlier boot options are in rcS, ex: config= and modprobe=
pankso@153 5 #
pankso@6 6 . /etc/init.d/rc.functions
pankso@6 7
gokhlayeh@241 8 # Update fstab for swapon/swapoff
pascal@132 9 add_swap_in_fstab()
pascal@132 10 {
pankso@153 11 grep -q "$1 " /etc/fstab || cat >> /etc/fstab <<EOT
pascal@132 12 $1 swap swap default 0 0
pascal@132 13 EOT
pascal@132 14 }
pascal@132 15
pankso@160 16 # Default user account without password (uid=1000). In live mode the option
paul@181 17 # user=name can be used, but user must be added before home= to have home dir.
paul@181 18 # This option is not handled by a loop and case like others and has no
paul@181 19 # effect on an installed system.
pankso@166 20 if ! grep -q "100[0-9]:100[0-9]" /etc/passwd; then
pankso@95 21 if grep -q "user=" /proc/cmdline; then
pankso@95 22 USER=`cat /proc/cmdline | sed 's/.*user=\([^ ]*\).*/\1/'`
pankso@96 23 # Avoid usage of an existing system user or root.
pankso@96 24 if grep -q ^$USER /etc/passwd; then
pankso@99 25 USER=tux
pankso@96 26 fi
pankso@95 27 else
pankso@99 28 USER=tux
pankso@95 29 fi
pankso@95 30 echo -n "Configuring user and group: $USER..."
slaxemulator@235 31 adduser -D -s /bin/sh -g "SliTaz User" -G users -h /home/$USER $USER
pankso@238 32 passwd -d $USER >/dev/null
pankso@95 33 status
pankso@199 34 # Audio and cdrom group.
pankso@199 35 addgroup $USER audio
pankso@199 36 addgroup $USER cdrom
slaxemulator@223 37 addgroup $USER video
slaxemulator@235 38 addgroup $USER tty
pankso@95 39 # /home/$USER files from /etc/skel.
pankso@254 40 # make user be only read/write by user
pankso@254 41 chmod -R 700 /home/$USER
pankso@95 42 # Slim default user.
pankso@95 43 if [ -f /etc/slim.conf ]; then
pascal@119 44 sed -i s/"default_user .*"/"default_user $USER"/\
pankso@95 45 /etc/slim.conf
pankso@95 46 fi
pankso@95 47 fi
pankso@95 48
pankso@160 49 # Parse /proc/cmdline for boot options.
pankso@160 50 echo "Parsing kernel cmdline for SliTaz live options... "
pankso@162 51
pankso@160 52 for opt in `cat /proc/cmdline`
pankso@160 53 do
pankso@160 54 case $opt in
pankso@160 55 eject)
pankso@160 56 # Eject cdrom.
pankso@160 57 eject /dev/cdrom ;;
pankso@160 58 laptop)
pankso@167 59 # Laptop option to load related Kernel modules.
pankso@162 60 echo "Loading laptop modules: ac, battery, fan, yenta_socket..."
pankso@162 61 for mod in ac battery fan yenta_socket
pankso@162 62 do
pankso@162 63 modprobe $mod
pankso@171 64 done
gokhlayeh@241 65 grep -qs batt /etc/lxpanel/default/panels/panel ||
pascal@182 66 sed -i 's/= cpu/= batt\n}\n\nPlugin {\n type = cpu/' \
pascal@182 67 /etc/lxpanel/default/panels/panel 2> /dev/null
pankso@171 68 # Enable Kernel Laptop mode.
pankso@171 69 echo "5" > /proc/sys/vm/laptop_mode ;;
pankso@160 70 mount)
pankso@160 71 # Mount all ext3 partitions found (opt: mount).
pankso@160 72 # Get the list of partitions.
pascal@228 73 DEVICES_LIST=`fdisk -l | sed '/83 Linux/!d;s/ .*//'`
pankso@160 74 # Mount filesystems rw.
pankso@160 75 for device in $DEVICES_LIST
pankso@160 76 do
pankso@160 77 name=${device#/dev/}
pankso@160 78 # Device can be already used by home=usb.
pankso@160 79 if ! mount | grep ^$device >/dev/null; then
pankso@160 80 echo "Mounting partition: $name on /mnt/$name"
pankso@160 81 mkdir /mnt/$name
pankso@160 82 mount $device /mnt/$name
pankso@160 83 fi
pankso@160 84 done ;;
pankso@160 85 mount-packages)
gokhlayeh@241 86 # Mount and install packages-XXX.iso (useful without Internet
pankso@160 87 # connection).
pankso@160 88 PKGSIGN="LABEL=\"packages-$(cat /etc/slitaz-release)\" TYPE=\"iso9660\""
pankso@160 89 PKGDEV=$(blkid | grep "$PKGSIGN" | cut -d: -f1)
pankso@160 90 [ -z "$PKGDEV" -a -L /dev/cdrom ] && \
pankso@160 91 PKGDEV=$(blkid /dev/cdrom | grep "$PKGSIGN" | cut -d: -f1)
pankso@160 92 if [ -n "$PKGDEV" ]; then
pankso@160 93 echo -n "Mounting packages archive from $PKGDEV..."
pankso@160 94 mkdir /packages && mount -t iso9660 -o ro $PKGDEV /packages
pankso@160 95 status
pankso@160 96 /packages/install.sh
pankso@160 97 fi ;;
pankso@160 98 *)
pankso@160 99 continue ;;
pankso@160 100 esac
pankso@160 101 done
pankso@160 102
pankso@160 103 # Activate an eventual swap file or partition.
pankso@6 104 if [ "`fdisk -l | grep swap`" ]; then
pascal@228 105 for SWAP_DEV in `fdisk -l | sed '/swap/!d;s/ .*//'`; do
pankso@27 106 echo "Swap memory detected on: $SWAP_DEV"
pascal@132 107 add_swap_in_fstab $SWAP_DEV
pankso@6 108 done
pankso@6 109 fi
pascal@132 110 if grep -q swap /etc/fstab; then
pascal@132 111 echo "Activating swap memory..."
pascal@132 112 swapon -a
pascal@132 113 fi