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

rcS: export SCREEN and source functions in user-home.sh
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 29 17:43:22 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