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 |