slitaz-boot-scripts annotate etc/init.d/hwconf.sh @ rev 170

hwconf.sh: Add screen=auto option to autodetect screen resolution
author Christophe Lincoln <pankso@slitaz.org>
date Mon Apr 27 15:57:21 2009 +0200 (2009-04-27)
parents 052f4f60ee36
children 75125fb17674
rev   line source
pankso@11 1 #!/bin/sh
pankso@153 2 # /etc/init.d/hwconf.sh - SliTaz hardware configuration.
pankso@153 3 #
pankso@153 4 # This script configure the sound card and screen. Tazhw is used earlier
pankso@153 5 # at boot time to autoconfigure PCI and USB devices.
pankso@11 6 #
pankso@12 7 . /etc/init.d/rc.functions
pankso@11 8
pankso@169 9 # Parse cmdline args for boot options (See also rcS and bootopts.sh).
pankso@169 10 for opt in `cat /proc/cmdline`
pankso@169 11 do
pankso@169 12 case $opt in
pankso@169 13 sound=*)
pankso@169 14 DRIVER=${opt#sound=} ;;
pankso@169 15 xargs=*)
pankso@169 16 XARGS=${opt#xargs=} ;;
pankso@169 17 screen=*)
pankso@169 18 SCREEN=${opt#screen=} ;;
pankso@169 19 *)
pankso@169 20 continue ;;
pankso@169 21 esac
pankso@169 22 done
pankso@169 23
pankso@81 24 # Sound configuration stuff. First check if sound=no and remove all
pankso@76 25 # sound Kernel modules.
pankso@169 26 if [ -n "$DRIVER" ]; then
pascal@42 27 case "$DRIVER" in
pascal@42 28 no)
pascal@42 29 echo -n "Removing all sound kernel modules..."
pascal@42 30 rm -rf /lib/modules/`uname -r`/kernel/sound
pascal@42 31 status
pascal@42 32 echo -n "Removing all sound packages..."
pascal@42 33 for i in $(grep -l '^DEPENDS=.*alsa-lib' /var/lib/tazpkg/installed/*/receipt) ; do
pascal@42 34 pkg=${i#/var/lib/tazpkg/installed/}
pascal@42 35 echo 'y' | tazpkg remove ${pkg%/*} > /dev/null
pascal@42 36 done
pankso@53 37 for i in alsa-lib mhwaveedit asunder libcddb ; do
pankso@53 38 echo 'y' | tazpkg remove $i > /dev/null
pankso@53 39 done
pankso@169 40 status ;;
pascal@42 41 noconf)
pankso@169 42 echo "Sound configuration was disabled from cmdline..." ;;
pascal@42 43 *)
pascal@61 44 if [ -x /usr/sbin/soundconf ]; then
pascal@61 45 echo "Using sound kernel module $DRIVER..."
pascal@61 46 /usr/sbin/soundconf -M $DRIVER
pankso@169 47 fi ;;
pascal@42 48 esac
MikeDSmith25@107 49 # Sound card may already be detected by PCI-detect.
pankso@76 50 elif [ -d /proc/asound ]; then
pankso@136 51 # Restore sound config for installed system.
pankso@136 52 if [ -s /etc/asound.state ]; then
pankso@136 53 echo -n "Restoring last alsa configuration..."
pankso@136 54 alsactl restore
pankso@136 55 status
pankso@136 56 else
pankso@136 57 /usr/sbin/setmixer
pankso@136 58 fi
pankso@140 59 # Start soundconf to config driver and load module for Live mode
pankso@140 60 # if not yet detected.
pankso@140 61 /usr/bin/amixer >/dev/null || /usr/sbin/soundconf
pankso@140 62 else
pankso@140 63 echo "Unable to configure sound card."
pankso@11 64 fi
pascal@42 65
MikeDSmith25@107 66 # Screen size config for slim/Xvesa (last config dialog before login).
pascal@80 67 if [ ! -s /etc/X11/screen.conf -a -x /usr/bin/slim ]; then
pankso@76 68 # $HOME is not yet set.
pankso@76 69 HOME=/root
pankso@169 70 if [ -n "$XARGS" ]; then
pascal@145 71 # Add an extra argument to xserver_arguments (xarg=-2button)
pascal@145 72 sed -i "s|-screen|$XARG -screen|" /etc/slim.conf
pascal@145 73 fi
pankso@169 74 if [ -n "$SCREEN" ]; then
pankso@170 75 case "$SCREEN" in
pankso@170 76 text)
pankso@170 77 # Disable X.
pankso@170 78 echo -n "Disabling X login manager: slim..."
pankso@170 79 . /etc/rcS.conf
pankso@170 80 RUN_DAEMONS=`echo $RUN_DAEMONS | sed s/' slim'/''/`
pankso@170 81 sed -i s/"RUN_DAEMONS.*"/"RUN_DAEMONS=\"$RUN_DAEMONS\"/" /etc/rcS.conf
pankso@170 82 status ;;
pankso@170 83 auto)
pankso@170 84 # Auto detect screen resolution.
pankso@170 85 export NEW_SCREEN=`Xvesa -listmodes 2>&1 | grep ^0x | \
pankso@170 86 awk '{ printf "%s %s\n",$2 }' \
pankso@170 87 | sort -nr | grep x[1-2][4-6] | head -n 1`
pankso@170 88 tazx `cat /etc/X11/wm.default` ;;
pankso@170 89 *)
pankso@170 90 # Use specified screen resolution.
pankso@170 91 export NEW_SCREEN=$SCREEN
pankso@170 92 tazx `cat /etc/X11/wm.default` ;;
pankso@170 93 esac
pascal@40 94 else
pankso@64 95 tazx `cat /etc/X11/wm.default`
pascal@40 96 fi
pankso@28 97 fi