slitaz-boot-scripts annotate etc/init.d/hwconf.sh @ rev 137
hwconf.sh: module can be listed but not installed
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Wed Feb 18 01:35:59 2009 +0100 (2009-02-18) |
parents | d3bf7f751e5f |
children | 7f56f98aef11 |
rev | line source |
---|---|
pankso@11 | 1 #!/bin/sh |
pankso@11 | 2 # /etc/init.d/hwconf.sh - SliTaz hardware autoconfiguration. |
pankso@11 | 3 # |
pankso@12 | 4 . /etc/init.d/rc.functions |
pankso@11 | 5 |
pankso@81 | 6 # Detect PCI devices and load kernel module only at first boot |
pankso@76 | 7 # or in LiveCD mode. |
pascal@80 | 8 if [ ! -s /var/lib/detected-modules ]; then |
erjo@93 | 9 |
erjo@93 | 10 . /etc/rcS.conf |
erjo@93 | 11 |
pankso@134 | 12 # We need module_name to match output of lsmod. |
pankso@76 | 13 echo "Detecting PCI devices..." |
pankso@76 | 14 MODULES_LIST=`lspci -k | grep "modules" | cut -d ":" -f 2 | sed s/-/_/g` |
pankso@76 | 15 for mod in $MODULES_LIST |
pankso@76 | 16 do |
pankso@137 | 17 if ! lsmod | grep -q "$mod"; then |
pankso@137 | 18 if [ -f "$(modprobe -l $mod)" ]; then |
pankso@137 | 19 echo "Loading Kernel modules: $mod" |
pankso@137 | 20 detect="$detect $mod" |
pankso@137 | 21 /sbin/modprobe $mod |
pankso@137 | 22 else |
pankso@137 | 23 echo "Missing module: $mod" |
pankso@137 | 24 fi |
pankso@76 | 25 fi |
pankso@76 | 26 done |
pankso@76 | 27 # yenta_socket = laptop |
pankso@76 | 28 if `lsmod | grep -q "yenta_socket"`; then |
pankso@76 | 29 detect="$detect ac battery" |
pankso@76 | 30 modprobe ac |
pankso@76 | 31 modprobe battery |
pascal@133 | 32 sed -i 's/= cpu/= batt\n}\n\nPlugin {\n type = cpu/' \ |
pascal@133 | 33 /etc/lxpanel/default/panels/panel 2> /dev/null |
pankso@76 | 34 fi |
pankso@76 | 35 echo "$detect" > /var/lib/detected-modules |
pankso@76 | 36 # Now add modules to rcS.conf |
pankso@76 | 37 load=`echo "$LOAD_MODULES $detect" | sed s/" "/" "/g` |
pankso@76 | 38 sed -i s/"LOAD_MODULES=\"$LOAD_MODULES\""/"LOAD_MODULES=\"$load\""/ \ |
pankso@76 | 39 /etc/rcS.conf |
pankso@76 | 40 # Retry a network connection with DHCP. |
pankso@84 | 41 if ifconfig -a | grep -q "eth0"; then |
pankso@86 | 42 if [ ! -f /var/run/udhcpc.eth0.pid ]; then |
pankso@86 | 43 echo "Starting udhcpc client on: eth0... " |
pankso@86 | 44 /sbin/udhcpc -b -i eth0 -p /var/run/udhcpc.eth0.pid |
pankso@86 | 45 fi |
pankso@76 | 46 fi |
pankso@76 | 47 fi |
pankso@76 | 48 |
pankso@81 | 49 # Sound configuration stuff. First check if sound=no and remove all |
pankso@76 | 50 # sound Kernel modules. |
pascal@48 | 51 if grep -q "sound=" /proc/cmdline; then |
pascal@42 | 52 DRIVER=`cat /proc/cmdline | sed 's/.*sound=\([^ ]*\).*/\1/'` |
pascal@42 | 53 case "$DRIVER" in |
pascal@42 | 54 no) |
pascal@42 | 55 echo -n "Removing all sound kernel modules..." |
pascal@42 | 56 rm -rf /lib/modules/`uname -r`/kernel/sound |
pascal@42 | 57 status |
pascal@42 | 58 echo -n "Removing all sound packages..." |
pascal@42 | 59 for i in $(grep -l '^DEPENDS=.*alsa-lib' /var/lib/tazpkg/installed/*/receipt) ; do |
pascal@42 | 60 pkg=${i#/var/lib/tazpkg/installed/} |
pascal@42 | 61 echo 'y' | tazpkg remove ${pkg%/*} > /dev/null |
pascal@42 | 62 done |
pankso@53 | 63 for i in alsa-lib mhwaveedit asunder libcddb ; do |
pankso@53 | 64 echo 'y' | tazpkg remove $i > /dev/null |
pankso@53 | 65 done |
pascal@42 | 66 status;; |
pascal@42 | 67 noconf) |
MikeDSmith25@107 | 68 echo "Sound configuration was disabled from cmdline...";; |
pascal@42 | 69 *) |
pascal@61 | 70 if [ -x /usr/sbin/soundconf ]; then |
pascal@61 | 71 echo "Using sound kernel module $DRIVER..." |
pascal@61 | 72 /usr/sbin/soundconf -M $DRIVER |
pascal@61 | 73 fi;; |
pascal@42 | 74 esac |
MikeDSmith25@107 | 75 # Sound card may already be detected by PCI-detect. |
pankso@76 | 76 elif [ -d /proc/asound ]; then |
pankso@76 | 77 cp /proc/asound/modules /var/lib/sound-card-driver |
pankso@82 | 78 /usr/bin/amixer >/dev/null || /usr/sbin/soundconf |
pankso@136 | 79 # Restore sound config for installed system. |
pankso@136 | 80 if [ -s /etc/asound.state ]; then |
pankso@136 | 81 echo -n "Restoring last alsa configuration..." |
pankso@136 | 82 alsactl restore |
pankso@136 | 83 status |
pankso@136 | 84 else |
pankso@136 | 85 /usr/sbin/setmixer |
pankso@136 | 86 fi |
pankso@76 | 87 # Start soundconf to config driver and load module for Live mode |
pankso@76 | 88 # if not yet detected. |
pascal@80 | 89 elif [ ! -s /var/lib/sound-card-driver ]; then |
pascal@43 | 90 if [ -x /usr/sbin/soundconf ]; then |
pascal@42 | 91 /usr/sbin/soundconf |
pankso@11 | 92 else |
MikeDSmith25@107 | 93 echo "Unable to find: /usr/sbin/soundconf" |
pankso@11 | 94 fi |
pankso@11 | 95 fi |
pascal@42 | 96 |
MikeDSmith25@107 | 97 # Screen size config for slim/Xvesa (last config dialog before login). |
pascal@80 | 98 if [ ! -s /etc/X11/screen.conf -a -x /usr/bin/slim ]; then |
pankso@76 | 99 # $HOME is not yet set. |
pankso@76 | 100 HOME=/root |
pascal@40 | 101 if grep -q "screen=*" /proc/cmdline; then |
pascal@40 | 102 export NEW_SCREEN=`cat /proc/cmdline | sed 's/.*screen=\([^ ]*\).*/\1/'` |
pascal@40 | 103 if [ "$NEW_SCREEN" = "text" ]; then |
pascal@40 | 104 echo -n "Disabling X login manager: slim..." |
pascal@40 | 105 sed -i s/'slim'/''/ /etc/rcS.conf |
pascal@40 | 106 status |
pascal@40 | 107 else |
pankso@64 | 108 tazx `cat /etc/X11/wm.default` |
pascal@40 | 109 fi |
pascal@40 | 110 else |
pankso@64 | 111 tazx `cat /etc/X11/wm.default` |
pascal@40 | 112 fi |
pankso@28 | 113 fi |