Date: Saturday, January 14, 2012 @ 05:51:13
  Author: tpowa
Revision: 146612

archrelease: copy trunk to testing-any

Added:
  hwdetect/repos/testing-any/
  hwdetect/repos/testing-any/PKGBUILD
    (from rev 146611, hwdetect/trunk/PKGBUILD)
  hwdetect/repos/testing-any/hwdetect
    (from rev 146611, hwdetect/trunk/hwdetect)

----------+
 PKGBUILD |   19 ++
 hwdetect |  575 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 594 insertions(+)

Copied: hwdetect/repos/testing-any/PKGBUILD (from rev 146611, 
hwdetect/trunk/PKGBUILD)
===================================================================
--- testing-any/PKGBUILD                                (rev 0)
+++ testing-any/PKGBUILD        2012-01-14 10:51:13 UTC (rev 146612)
@@ -0,0 +1,19 @@
+# $Id$
+# Maintainer: Tobias Powalowski <tp...@archlinux.org>
+pkgname=hwdetect
+pkgver=2012.01
+pkgrel=1
+pkgdesc="Hardware detection script with loading modules and mkinitcpio.conf / 
rc.conf support"
+arch=(any)
+license=('GPL')
+depends=('sh' 'awk' 'grep' 'coreutils' 'sed' 'e2fsprogs')
+optdepends=('cryptsetup: for encrypt mkinitcpio config support'
+            'dmraid:     for dmraid mkinitcpio config support'
+            'lvm2:       for lvm2 mkinitcpio config support'
+            'mdadm:      for raid mkinitcpio config support')
+source=(hwdetect)
+
+build() {
+  install -D -m 755 ${srcdir}/hwdetect ${pkgdir}/sbin/hwdetect
+}
+md5sums=('cdb979d7642145274bd1e57a8c4b9b83')

Copied: hwdetect/repos/testing-any/hwdetect (from rev 146611, 
hwdetect/trunk/hwdetect)
===================================================================
--- testing-any/hwdetect                                (rev 0)
+++ testing-any/hwdetect        2012-01-14 10:51:13 UTC (rev 146612)
@@ -0,0 +1,575 @@
+#! /bin/sh
+# Autodetection script for scanning /sys for hardware
+# for Archlinux by Tobias Powalowski <tp...@archlinux.org>
+# '--modules-not-loaded' patch by Grzegorz Wierzowiecki 
<grzegorz.wierzowiecki_4t_pjwstk.edu.pl>
+usage () {
+       echo "$0 [options]"
+       echo ""
+       echo " This is a tool that detects/lists modules that are exported by 
/sys"
+       echo ""
+       echo "  Options:"
+       echo "    --kernel_version=      use kernel version (no autodetect)"
+       echo "    --ide-legacy           use old ide modules instead of pata"
+       echo "    --load-modules         load all detected modules"
+       echo "    --unload-modules       unload all detected modules"
+       echo "    --show-modules         show all detected modules"
+       echo "    --show-modules-order   shows load order of detected modules"
+       echo "    --show-agp             show AGP modules"
+       echo "    --show-acpi            show ACPI modules"     
+       echo "    --show-ide             show IDE modules"
+       echo "    --show-pata            show PATA modules"
+       echo "    --show-scsi            show SCSI modules"
+       echo "    --show-sata            show SATA modules"
+       echo "    --show-usb             show USB modules"
+       echo "    --show-fw              show FIREWIRE modules"
+       echo "    --show-net             show NETWORK modules"
+       echo "    --show-input           show INPUT modules"
+       echo "    --show-irda            show IRDA modules"
+       echo "    --show-isdn            show ISDN modules"
+       echo "    --show-pcmcia          show PCMCIA modules"
+       echo "    --show-sound           show SOUND modules"
+       echo "    --show-staging         show STAGING modules"
+       echo "    --show-video           show VIDEO modules"
+       echo "    --show-other           show OTHER modules"
+       echo ""
+       echo "  For /etc/mkinitcpio.conf use:"
+       echo "    --filesystem           add filesystems to MODULES="
+       echo "    --hostcontroller       show MODULES= for all hostcontrollers"
+       echo "    --ati-kms              add ati kernel mode setting" 
+       echo "    --intel-kms            add intel kernel mode setting"
+       echo "    --nvidia-kms           add nvidia kernel mode setting"
+        echo "" 
+       echo "    --rootdevice=          autodetected advanced features of 
rootdevice"
+       echo "    --hooks-dir=           use this directory for HOOKS check"
+       echo "    --advanced             show autodetected advanced HOOKS"
+       echo "    --hooks                show HOOKS="
+       echo "    --dmraid               add dmraid to HOOKS="
+       echo "    --keymap               add keymap to HOOKS="
+       echo "    --usb                  add usb to HOOKS="
+       echo "    --usbinput             add usbinput to HOOKS="
+       echo "    --fw                   add fw to HOOKS="
+       echo "    --pcmcia               add pcmcia to HOOKS="
+       echo "    --nfs                  add net to HOOKS="
+       echo "    --btrfs                add btrfs to HOOKS="
+       echo "    --shutdown             add shutdown to HOOKS="
+       echo ""
+       echo "  For persistent sound and network files use:"
+       echo "    --net                  generate /tmp/network_persistent.rules"
+       echo "    --sound                generate /tmp/sound_persistent.conf"
+       echo ""
+       echo "    --modules              show all detected MODULES"
+       echo "    --modules-not-loaded   show all detected MODULES but not 
actually loaded"
+       echo ""
+       exit 1
+}
+
+[ "$1" = "" ]       && usage
+[ "$1" = "--help" ] && usage
+[ "$1" = "-h" ]     && usage
+
+# setting kernel version
+case $1 in
+       --kernel_version=*)
+       KERNEL_VERSION="$(echo $1 | awk -F= '{print $2;}')"
+       ;;
+       --rootdevice=*)
+       ROOTDEVICE="$(echo $1 | awk -F= '{print $2;}')"
+       ;;
+esac
+
+if [ "$KERNEL_VERSION" = "" ]; then
+       KERNEL_VERSION="$(uname -r)"
+fi
+
+# IDE/PATA switch
+[ "$(echo $* | grep '\-ide-legacy')" ] && IDE_LEGACY=1
+
+# uvesafb switch
+[ "$(echo $* | grep '\-uvesafb')" ] && UVESAFB=1
+
+# dmraid switch
+[ "$(echo $* | grep '\-dmraid')" ] && DMRAID=1
+
+# keymap switch
+[ "$(echo $* | grep '\-keymap')" ] && KEYMAP=1
+
+# usb switch
+[ "$(echo $* | grep '\-usb ')" ] && USB=1
+
+# usbinput switch
+[ "$(echo $* | grep '\-usbinput')" ] && USBINPUT=1
+
+# fw switch
+[ "$(echo $* | grep '\-fw')" ] && FW=1
+
+# pcmcia switch
+[ "$(echo $* | grep '\-pcmcia')" ] && PCMCIA=1
+
+# nfs switch
+[ "$(echo $* | grep '\-nfs')" ] && NFS=1
+
+# btrfs switch
+[ "$(echo $* | grep '\-btrfs')" ] && BTRFS=1
+
+# shutdown switch
+[ "$(echo $* | grep '\-shutdown')" ] && SHUTDOWN=1
+
+# hooks switch
+[ "$(echo $* | grep '\-hooks')" ] && HOOKS=1
+
+ADVANCED=""
+# root device check
+if ! [ "$ROOTDEVICE" = "" ]; then
+        # check device mapper devices
+       if [ "$(echo "$ROOTDEVICE" | grep "/dev/mapper")" ]; then
+               # check if encryption is used
+               if [ "$(cryptsetup status $ROOTDEVICE 2>/dev/null)" ]; then
+                       ADVANCED="encrypt"
+                       # check on lvm
+                       realdevice="$(cryptsetup status $ROOTDEVICE 2>/dev/null 
| grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
+                       if [ "$(lvs $realdevice 2>/dev/null)" ]; then
+                               ADVANCED="lvm2 encrypt"
+                               vg="$(echo $(lvs -o vg_name --noheading 
$realdevice))"
+                               # check on raid
+                               [ "$(pvs -o pv_name,vg_name --noheading | grep 
"$vg$" | grep "/dev/md")" ] && ADVANCED="mdadm lvm2 encrypt"
+                       fi
+                       # check on raid
+                       if [ "$(cryptsetup status $ROOTDEVICE 2>/dev/null | 
grep "device:.*/dev/md" | sed -e 's#.*\ ##g')" ]; then
+                               ADVANCED="mdadm encrypt"
+                               realdevice="$(cryptsetup status $ROOTDEVICE 
2>/dev/null | grep "device:.*/dev/md" | sed -e 's#.*\ ##g')"
+                               # check on lvm
+                               [ "$(mdadm --detail $realdevice | grep 
"/dev/dm-")" ] && ADVANCED="lvm2 mdadm encrypt"
+                       fi
+               fi
+               # check if lvm is used
+               if [ "$(lvs $ROOTDEVICE 2>/dev/null)" ]; then
+                       ADVANCED="lvm2"
+                       vg="$(echo $(lvs -o vg_name --noheading $ROOTDEVICE))"
+                       # check on encrypt
+                       if [ "$(pvs -o pv_name,vg_name --noheading | grep 
"$vg$" | grep "/dev/dm-")" ]; then 
+                               ADVANCED="encrypt lvm2"
+                               # check on raid
+                               [ "$(pvs -o pv_name,vg_name --noheading | grep 
"$vg$" | grep "/dev/md")" ] && ADVANCED="mdadm encrypt lvm2"
+                               for i in "$(pvs -o pv_name,vg_name --noheading 
| grep "$vg$" | grep "/dev/dm-")"; do
+                                       realdevice="$(echo $i | cut -d ' ' -f1)"
+                                       #getsymlink="$(readlink $realdevice)"
+                                       #correctdevice="$(echo $getsymlink | 
sed -e 's#\.\.#/dev#g')"
+                                       [ "$(cryptsetup status $realdevice 
2>/dev/null | grep "device:.*/dev/md")" ] && ADVANCED="mdadm encrypt lvm2"
+                               done
+                       fi
+                       # check on raid
+                       if [ "$(pvs -o pv_name,vg_name --noheading | grep 
"$vg$" | grep "/dev/md")" ]; then
+                               ADVANCED="mdadm lvm2"
+                               #check on encrypt
+                               [ "$(pvs -o pv_name,vg_name --noheading | grep 
"$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt mdadm lvm2"
+                               for i in "$(pvs -o pv_name,vg_name --noheading 
| grep "$vg$" | grep "/dev/md")"; do
+                                       realdevice="$(echo $i | cut -d ' ' -f1)"
+                                       [ "$(mdadm --detail $realdevice | grep 
"/dev/dm-")" ] && ADVANCED="encrypt mdadm lvm2"
+                               done
+                       fi
+               fi
+       fi
+       # check md device
+       if [ "$(echo "$ROOTDEVICE" | grep "/dev/md")" ]; then
+               ADVANCED="mdadm"
+               # raid partitions or raid?
+               if [ "$(echo "$ROOTDEVICE" | grep "/dev/md*p")" ]; then
+                       realdevice="$(echo $ROOTDEVICE | sed -e 's#p.*##g' -e 
's#/dev/##g')"
+                       if ! [ "$(find /sys/block/$realdevice/slaves/ -name 
'dm*' 2>/dev/null)" = "" ]; then
+                               SET_LVM=""
+                               SET_ENCRYPT=""
+                               for k in $(find /sys/block/$realdevice/slaves/ 
-name 'dm*' 2>/dev/null); do
+                                       [ "$(lvs /dev/mapper/$(cat $k/dm/name) 
2>/dev/null)" ] && SET_LVM="1"
+                                       [ "$(cryptsetup status $(cat 
$k/dm/name) 2>/dev/null)" ] && SET_ENCRYPT="1"
+                                       # check on lvm
+                                       [ "$(lvs /dev/mapper/$(cat $k/dm/name) 
2>/dev/null)" ] && ADVANCED="lvm2 mdadm"
+                                       # check on encrypt
+                                       [ "$(cryptsetup status $(cat 
$k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm"
+                                       # check encrypted volume device
+                                       realdevice="$(cryptsetup status $(cat 
$k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
+                                       [ "$(lvs $realdevice 2>/dev/null)" ] && 
ADVANCED="lvm2 encrypt mdadm"
+                                       vg="$(echo $(lvs -o vg_name --noheading 
/dev/mapper/$(cat $k/dm/name) 2>/dev/null))"
+                                       [ "$(pvs -o pv_name,vg_name --noheading 
| grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt lvm2 mdadm"
+                               done
+                               [ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && 
ADVANCED="lvm2 encrypt mdadm"
+                       fi
+               else
+                       realdevice="$(echo $ROOTDEVICE | sed -e 's#/dev/##g')"
+                       if ! [ "$(find /sys/block/$realdevice/slaves/ -name 
'dm*' 2>/dev/null)" = "" ]; then
+                               SET_LVM=""
+                               SET_ENCRYPT=""
+                               for k in $(find /sys/block/$realdevice/slaves/ 
-name 'dm*' 2>/dev/null); do
+                                       [ "$(lvs /dev/mapper/$(cat $k/dm/name) 
2>/dev/null)" ] && SET_LVM="1"
+                                       [ "$(cryptsetup status $(cat 
$k/dm/name) 2>/dev/null)" ] && SET_ENCRYPT="1"
+                                       # check on lvm
+                                       [ "$(lvs /dev/mapper/$(cat $k/dm/name) 
2>/dev/null)" ] && ADVANCED="lvm2 mdadm"
+                                       # check on encrypt
+                                       [ "$(cryptsetup status $(cat 
$k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm"
+                                       # check encrypted volume device
+                                       realdevice="$(cryptsetup status $(cat 
$k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')"
+                                       [ "$(lvs $realdevice 2>/dev/null)" ] && 
ADVANCED="lvm2 encrypt mdadm"
+                                       vg="$(echo $(lvs -o vg_name --noheading 
/dev/mapper/$(cat $k/dm/name) 2>/dev/null))"
+                                       [ "$(pvs -o pv_name,vg_name --noheading 
| grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt lvm2 mdadm"
+                               done
+                               [ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && 
ADVANCED="lvm2 encrypt mdadm"
+                       fi
+               fi
+       fi
+fi
+
+# checking /sys
+if ! [ -d /sys/ ]; then
+       echo "/sys/ is not present -- mount /sys first" >&2
+       exit 1
+fi
+
+: >/tmp/modules-plain
+: >/tmp/modules-stripped
+: >/tmp/modules-sorted
+: >/tmp/moduleslist
+: >/tmp/.blkid
+
+# generate blkid
+/sbin/blkid -c /dev/null -s TYPE > /tmp/.blkid
+
+# find pci aliases
+aliases=$(find /sys/ -noleaf -name modalias  -exec cat {} +)
+
+# check for empty aliases
+if [ "$aliases" = "" ]; then
+       echo "hwdetect aborted -- you need a kernel >= 2.6.12" >&2
+       exit 1
+fi
+
+# generate files for the different actions
+modprobe -i -a --set-version=$KERNEL_VERSION --show-depends $aliases >> 
/tmp/modules-plain 2>/dev/null
+
+# fix ide cdrom detection on proliant 1600
+if [ "$(echo $aliases | grep 
'pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00')" ]; then
+       modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-generic >> 
/tmp/modules-plain 2>/dev/null
+fi
+
+# find PNP devices like parports, soundcards etc.
+#   (workaround for rtc, pcspkr, irtty-sir and analog are included)
+if [ "$(find /sys/devices -noleaf -name 'id' | grep /pnp)" ]; then
+       for i in $(find /sys/devices -noleaf -name "id" | grep /pnp); do
+               devid=$(cat $i | grep PNP)
+               [ "$devid" ] || continue
+       
+               modprobe -i --set-version=$KERNEL_VERSION --show-depends 
pnp:d${devid} >> /tmp/modules-plain 2>/dev/null
+               [ "$devid" = "PNP0800" ] && modprobe -i 
--set-version=$KERNEL_VERSION --show-depends pcspkr >> /tmp/modules-plain  
2>/dev/null
+               [ "$devid" = "PNP0510" ] && modprobe -i 
--set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 
2>/dev/null
+               [ "$devid" = "PNP0511" ] && modprobe -i 
--set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 
2>/dev/null
+               [ "$devid" = "PNPb02f" ] && modprobe -i 
--set-version=$KERNEL_VERSION --show-depends analog >> /tmp/modules-plain 
2>/dev/null
+
+               # load ppp-generic if serial ports are detected for modems
+               [ "$devid" = "PNP0501" ] && modprobe -i 
--set-version=$KERNEL_VERSION --show-depends ppp-generic >> /tmp/modules-plain 
2>/dev/null
+       done
+fi
+
+# SCSI disks/cdroms/tapes/generic devices
+if [ "$(find /sys/devices -noleaf -name 'type')" ]; then
+       for i in $(cat $(find /sys/devices -noleaf -name "type")); do
+               case $i in (4|5)       modprobe -i 
--set-version=$KERNEL_VERSION --show-depends sr_mod >> /tmp/modules-plain 
2>/dev/null ;; esac
+               case $i in (2|3|6|8|9) modprobe -i 
--set-version=$KERNEL_VERSION --show-depends sg >> /tmp/modules-plain 
2>/dev/null ;; esac
+               case $i in (0|7|14)    modprobe -i 
--set-version=$KERNEL_VERSION --show-depends sd_mod >> /tmp/modules-plain 
2>/dev/null ;; esac
+               case $i in (1)         modprobe -i 
--set-version=$KERNEL_VERSION --show-depends st >> /tmp/modules-plain 
2>/dev/null ;; esac
+       done
+fi
+
+# add Buslogic for vmware
+if [ "$VMWARE" = "1" ]; then
+        modprobe -i --set-version=$KERNEL_VERSION --show-depends BusLogic >> 
/tmp/modules-plain 2>/dev/null
+fi
+
+# Parport modules
+if [ "$(grep 'parport' /tmp/modules-plain)" ]; then
+       modprobe -i --set-version=$KERNEL_VERSION --show-depends lp >> 
/tmp/modules-plain 2>/dev/null
+       modprobe -i --set-version=$KERNEL_VERSION --show-depends ppdev >> 
/tmp/modules-plain 2>/dev/null
+fi
+
+sort -u /tmp/modules-plain >> /tmp/modules-stripped
+
+# OTHER modules loading first for speed up!
+grep -v "ide/" /tmp/modules-stripped | grep -v "scsi/" | grep -v "fusion/" | 
grep -v "block/sx8" | grep -v "message/fusion" | \
+       grep -v  "block/cciss" | grep -v "block/cpqarray" | grep -v 
"block/DAC960" | grep -v "block/virtio" | grep -v "ata/" | \
+       grep -v "net/" | grep -v "pcmcia/" | grep -v "usb/" | \
+       grep -v "firewire" | grep -v "ieee1394/" | grep -v "usbhid/" | grep -v 
"staging/" | grep -v "wireless/" | grep -v "virtio_pci" >> /tmp/modules-sorted
+# load virtio first!
+grep "virtio_pci" /tmp/modules-stripped  >> /tmp/modules-sorted
+# make a correct order for the modules, internal devices have priority!
+# only use old ide modules if boot parameter 'ide-legacy' is given
+if [ "$IDE_LEGACY" = "1" ]; then
+       grep "ide/" /tmp/modules-stripped  | grep -v "ide-pci-generic" >> 
/tmp/modules-sorted
+else
+       grep "ata/pata" /tmp/modules-stripped | grep -v "pata_acpi" >> 
/tmp/modules-sorted
+fi
+grep "scsi/" /tmp/modules-stripped  | grep -v "sd_mod" | grep -v "sr_mod" | 
grep -v "/sg.ko" | grep -v "/st.ko" >> /tmp/modules-sorted
+grep "block/" /tmp/modules-stripped | grep -v "virtio_blk" | grep -v "sx8" | 
grep -v "nbd" | grep -v "pktcdvd" | grep -v "floppy" >> /tmp/modules-sorted
+grep "fusion/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "ata/"  /tmp/modules-stripped| grep -v "pata" | grep -v "ata_generic" | 
grep -v "libata" >> /tmp/modules-sorted
+grep "block/" /tmp/modules-stripped | grep "sx8" >> /tmp/modules-sorted
+grep "net/" /tmp/modules-stripped | grep -v "wireless/" | grep -v "usb/" >> 
/tmp/modules-sorted
+grep "wireless/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "staging/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "pcmcia/" /tmp/modules-stripped >> /tmp/modules-sorted
+
+# speed up usb module loading
+grep "usb-storage" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "usblp" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "usbhid" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "usb/" /tmp/modules-stripped | grep -v "usb-storage" | grep -v "usbhid" | 
grep -v "usblp" >> /tmp/modules-sorted
+grep "firewire/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "ieee1394/" /tmp/modules-stripped >> /tmp/modules-sorted
+
+# add scsi and virtio device modules at the end
+grep "virtio_blk" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "sd_mod" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "sr_mod" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "/st.ko" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "/sg.ko" /tmp/modules-stripped >> /tmp/modules-sorted
+
+
+sed -ne "s#^insmod.*/\(.*\)\.ko.*#\1#p" /tmp/modules-sorted >> /tmp/moduleslist
+
+listmods() {
+       key=$1 ; shift
+       ex=
+       while [ "$1" ]; do
+               [ "$ex" ] && ex="$ex|$1" || ex="$1"
+               shift
+       done
+       for ln in $(grep "$key" /tmp/modules-sorted | sed 's|^insmod ||g'); do
+               if [ "$ex" ]; then
+                       echo $ln | egrep -v "$ex" | sed -ne 
"s#^/.*/\(.*\)\.ko.*#\1#p"
+               else
+                       echo $ln | sed -ne "s#^/.*/\(.*\)\.ko.*#\1#p"
+               fi
+       done
+}
+showlist() {
+       cat=$1 ; shift
+       [ $# -gt 0 ] || return
+       echo -n "$cat: "
+       for i in $*; do echo -n "$i "; done
+       echo ""
+}
+
+showlist2() {
+       cat=$1 ; shift
+       [ $# -gt 0 ] || return
+       echo -n "$cat="
+       for i in $*; do echo -n "$i "; done
+       echo ""
+}
+
+showlist3() {
+       cat=$1 ; shift
+       [ $# -gt 0 ] || return
+       for i in $*; do echo -n "$i "; done
+       echo ""
+}
+
+showlist4() {
+       cat=$1 ; shift
+       [ $# -gt 0 ] || return
+       echo -n "$cat=(\${MODULES[*]} "
+       lsmod > /tmp/modules-showlist4-$$
+       for i in $*; do
+               if ! grep -sq $(echo $i|tr - _) /tmp/modules-showlist4-$$ ; then
+                       echo -n "$i ";
+               fi
+       done
+       echo ")"
+       rm /tmp/modules-showlist4-$$
+}
+
+# starting different actions
+while [ $# -gt 0 ]; do
+       case $1 in
+               -hooks-dir=*|--hooks-dir=*)
+                       HOOKS_DIR="$(echo $1 | awk -F= '{print $2;}')"
+                        ;;
+               --load-modules)
+                       # load all detected pci modules
+                       for i in $(cat /tmp/moduleslist); do
+                               if [ -e /lib/udev/load-modules.sh ]; then 
+                                       /lib/udev/load-modules.sh $i > 
/dev/null 2>&1
+                               else
+                                       modprobe $i > /dev/null 2>&1
+                               fi
+                       done
+                       ;;
+
+               --unload-modules)
+                       # load all detected pci modules
+                       for i in $(cat /tmp/moduleslist); do
+                               modprobe -r $i > /dev/null 2>&1
+                       done
+                       ;;
+
+               --show-modules)
+                       showlist "AGP    " $(listmods agp/)
+                       showlist "ACPI   " $(listmods acpi/)
+                       showlist "IDE    " $(listmods ide/ ide-)
+                       showlist "PATA   " $(listmods ata/pata pata_acpi) 
$(listmods ata/ata_piix)
+                       showlist "SCSI   " $(listmods virtio/virtio_pci) 
$(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd 
pktcdvd sx8 floppy)
+                       showlist "SATA   " $(listmods ata/ pata ata_generic) 
$(listmods drivers/block/sx8)
+                       showlist "USB    " $(listmods usb/ usb/input)
+                       showlist "FW     " $(listmods firewire/) $(listmods 
ieee1394/)
+                       showlist "NET    " $(listmods net/ irda/)
+                       showlist "INPUT  " $(listmods input/ pcspkr) $(listmods 
hid/)
+                       showlist "IRDA   " $(listmods irda/)
+                       showlist "ISDN   " $(listmods isdn/)
+                       showlist "PCMCIA " $(listmods pcmcia/)
+                       showlist "SOUND  " $(listmods pcspkr) $(listmods sound/)
+                       showlist "STAGING" $(listmods staging/)
+                       showlist "VIDEO  " $(listmods video/)
+                       showlist "OTHER  " $(listmods modules/ agp/ acpi/ ide/ 
scsi/ message/fusion block/sx8 block/cciss block/cpqarray block/DAC960 
block/virtio virtio/virtio_pci ata/ usb/ ieee1394 net/ isdn/ input/ irda/ 
pcmcia/ sound/ video/ firewire/ hid/ staging/)
+                       ;;
+
+               --show-modules-order)
+                       showlist "MODULES ORDER" $(listmods modules/)
+                       ;;
+
+               --show-agp)    showlist "AGP    " $(listmods agp/) ;;
+               --show-acpi)   showlist "ACPI   " $(listmods acpi/) ;;
+               --show-ide)    showlist "IDE    " $(listmods ide/ ide-) ;;
+               --show-pata)   showlist "PATA   " $(listmods ata/pata 
pata_acpi) $(listmods ata/ata_piix) ;;
+               --show-scsi)   showlist "SCSI   " $(listmods virtio/virtio_pci) 
$(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd 
pktcdvd sx8 floppy) ;;
+               --show-sata)   showlist "SATA   " $(listmods ata/ pata 
ata_generic) $(listmods drivers/block/sx8) ;;
+               --show-usb)    showlist "USB    " $(listmods usb/ usb/input) ;;
+               --show-fw)     showlist "FW     " $(listmods firewire/) 
$(listmods ieee1394/) ;;
+               --show-net)    showlist "NET    " $(listmods net/ irda/) ;;
+               --show-input)  showlist "INPUT  " $(listmods input/ pcspkr) 
$(listmods hid/) ;;
+               --show-irda)   showlist "IRDA   " $(listmods irda/) ;;
+               --show-isdn)   showlist "ISDN   " $(listmods isdn/) ;;
+               --show-pcmcia) showlist "PCMCIA " $(listmods pcmcia/) ;;
+               --show-sound)  showlist "SOUND  " $(listmods pcspkr) $(listmods 
sound/) ;;
+               --show-staging) showlist "STAGING" $(listmods staging/) ;;
+               --show-video)  showlist "VIDEO  " $(listmods video/) ;;
+               --show-other)  showlist "OTHER  " $(listmods .ko agp/ acpi/ 
ide/ scsi/ message/fusion block/sx8 block/cciss block/cpqarray block/DAC960 
block/virtio virtio/virtio_pci ata/ usb/ ieee1394 net/ isdn/ input/ irda/ 
pcmcia/ sound/ video/ firewire/ hid/ staging/) ;;
+               --filesystem)   FILESYSTEM="ext2 ext3 ext4 nilfs2 btrfs 
reiserfs xfs jfs vfat"
+                               for i in $FILESYSTEM; do
+                                        [ "$(grep $i /tmp/.blkid)" ] && 
FS="$FS $i"
+                               done
+                               [ "$(echo $FS | grep btrfs)" ] && FS="$FS 
crc32c"
+                               MODULES_INITRAMFS="$MODULES_INITRAMFS $FS"
+                               showlist2 "MODULES" \"$MODULES_INITRAMFS\" | 
sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+                               ;;
+               --hostcontroller)HOSTCONTROLLER="$(listmods virtio/virtio_pci) 
$(listmods ide/ ide-) $(listmods ata/pata pata_acpi) $(listmods scsi/ /sg.ko 
/st.ko scsi_mod sr_mod sd_mod) $(listmods message/fusion/) $(listmods 
drivers/block/ virtio_blk nbd pktcdvd sx8 floppy) $(listmods ata/ pata 
ata_generic) $(listmods drivers/block/sx8) $(listmods xhci-hcd) $(listmods 
ehci-hcd) $(listmods uhci-hcd) $(listmods ohci-hcd) $(listmods virtio_blk)"
+                                MODULES_INITRAMFS="$MODULES_INITRAMFS 
$HOSTCONTROLLER"
+                                showlist2 "MODULES" \"$MODULES_INITRAMFS\" | 
sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+                                ;;
+               --ati-kms)      KMS="radeon"
+                               MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+                               showlist2 "MODULES" \"$MODULES_INITRAMFS\" | 
sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+                               ;;
+               --intel-kms)    KMS="i915"
+                               MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+                               showlist2 "MODULES" \"$MODULES_INITRAMFS\" | 
sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+                               ;;
+               --nvidia-kms)   KMS="nouveau"
+                               MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+                               showlist2 "MODULES" \"$MODULES_INITRAMFS\" | 
sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
+                               ;;
+               --uvesafb)      FB="uvesafb"
+                               MODULES_INITRAMFS="$FB $MODULES_INITRAMFS"
+                               ! [ "$HOOKS" = "1" ] && showlist2 "MODULES" 
\"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 
's/\ \ /\ /g'
+                               ;;
+               --fbmodule)     FB=""
+                               for i in $(cat 
/etc/modprobe.d/framebuffer_blacklist.conf); do
+                                   i=$(echo $i | sed -e 's/blacklist //g')
+                                   # check if already in FB array, to avoid 
double entries
+                                   if [ "$(cat /proc/modules | grep ^$i)" ]; 
then
+                                       ! [ "$(grep -w $FB)" ] && FB="$i"
+                                   fi
+                                done
+                               MODULES_INITRAMFS="$FB $MODULES_INITRAMFS "
+                               ! [ "$HOOKS" = "1" ] && showlist2 "MODULES" 
\"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 
's/\ \ /\ /g'
+                               ;;
+               --net)  : >/tmp/network_persistent.rules
+                       for i in $(ls /sys/class/net/ | grep -v ^lo); do
+                             echo "SUBSYSTEM==\"net\", ATTR{address}==\"$(cat 
/sys/class/net/${i}/address)\", NAME=\"${i}\"" >>/tmp/network_persistent.rules
+                       done
+
+                       ;;
+               --sound) : >/tmp/sound_persistent.conf
+                        SOUND_EXPORTED=""
+                        if [ -e /proc/asound/modules ]; then
+                               for i in $(cat /proc/asound/modules | cut -d ' 
' -f 3); do
+                                       SOUND_EXPORTED="$SOUND_EXPORTED $i"
+                               done
+                               ! [[ "$SOUND_EXPORTED" = "" ]] && echo "options 
snd slots=$(echo $SOUND_EXPORTED | sed -e 's# #,#g' -e 's#^,##g')" >> 
/tmp/sound_persistent.conf
+                        fi
+                        ;;
+               --modules) showlist2 "MODULES" \($(listmods modules/)\) | sed 
-e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+                        ;;
+               --modules-not-loaded) showlist4 "MODULES" $(listmods modules/) 
| sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
+                        ;;
+               --hooks) 
+                       if [ "$HOOKS_DIR" = "" ]; then
+                               HOOKS_DIR="/lib/initcpio/install"
+                       fi
+                       START_HOOKS="base v86d udev keymap fsck autodetect ide 
pata scsi sata usb fw pcmcia net dmraid usbinput $ADVANCED btrfs filesystems 
shutdown"
+                       # remove the ones that don't exist on the system
+                       for i in ${START_HOOKS}; do
+                               if ! [ -e "${HOOKS_DIR}/$i" ]; then 
+                                       START_HOOKS=$(echo $START_HOOKS | sed 
-e "s/${i}\ //g")
+                               fi
+                       done
+                       # ide/pata check
+                       if [ "${IDE_LEGACY}" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/pata//g")
+                       else
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/ide//g")
+                       fi
+                       if !  [ "$USBINPUT" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/usbinput//g")
+                       fi
+                       if ! [ "$KEYMAP" = "1" ]; then 
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/keymap//g")
+                       fi
+                       if ! [ "$UVESAFB" = "1" ]; then 
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/v86d//g")
+                       fi
+                       if ! [ "$DMRAID" = "1" ]; then 
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/dmraid//g")
+                       fi
+                       if ! [ "$USB" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/usb\ //g")
+                       fi
+                       if ! [ "$FW" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/fw//g")
+                       fi
+                       if ! [ "$PCMCIA" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/pcmcia//g")
+                       fi
+                       if ! [ "$NFS" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/net//g")
+                       fi
+                       if ! [ "$BTRFS" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/btrfs//g")
+                       fi
+                       if ! [ "$SHUTDOWN" = "1" ]; then
+                               START_HOOKS=$(echo $START_HOOKS | sed -e 
"s/shutdown//g")
+                       fi
+                       echo "HOOKS=\"$START_HOOKS\"" | sed -e 's/"\ /"/g' -e 
's/\ "/"/g' -e 's/\ \ /\ /g'
+               ;;
+               --advanced) ADVANCED_ARCHBOOT=""
+                           for i in $ADVANCED; do
+                               ADVANCED_ARCHBOOT="$ADVANCED_ARCHBOOT $(echo 
arch_$i)"
+                           done
+                           echo "$ADVANCED_ARCHBOOT"
+                           ;;
+       esac
+       shift
+done
+
+# cleanup
+rm /tmp/modules-plain
+rm /tmp/modules-sorted
+rm /tmp/modules-stripped
+rm /tmp/moduleslist
+
+# vim: set ts=2 sw=2 noet:

Reply via email to