Date: Wednesday, August 7, 2013 @ 16:42:51 Author: tpowa Revision: 192202
archrelease: copy trunk to extra-any Added: hwdetect/repos/extra-any/PKGBUILD (from rev 192201, hwdetect/trunk/PKGBUILD) hwdetect/repos/extra-any/hwdetect (from rev 192201, hwdetect/trunk/hwdetect) Deleted: hwdetect/repos/extra-any/PKGBUILD hwdetect/repos/extra-any/hwdetect ----------+ PKGBUILD | 38 +- hwdetect | 846 ++++++++++++++++++++++++++----------------------------------- 2 files changed, 393 insertions(+), 491 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2013-08-07 14:42:42 UTC (rev 192201) +++ PKGBUILD 2013-08-07 14:42:51 UTC (rev 192202) @@ -1,19 +0,0 @@ -# $Id$ -# Maintainer: Tobias Powalowski <tp...@archlinux.org> -pkgname=hwdetect -pkgver=2013.07 -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) - -package() { - install -D -m 755 "${srcdir}/hwdetect" "${pkgdir}/usr/bin/hwdetect" -} -md5sums=('a3c84221a91a32e55deff0edb1e00fc1') Copied: hwdetect/repos/extra-any/PKGBUILD (from rev 192201, hwdetect/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2013-08-07 14:42:51 UTC (rev 192202) @@ -0,0 +1,19 @@ +# $Id$ +# Maintainer: Tobias Powalowski <tp...@archlinux.org> +pkgname=hwdetect +pkgver=2013.08 +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) + +package() { + install -D -m 755 "${srcdir}/hwdetect" "${pkgdir}/usr/bin/hwdetect" +} +md5sums=('c40773ccf82b1a7da2d29d5fd4f7aefc') Deleted: hwdetect =================================================================== --- hwdetect 2013-08-07 14:42:42 UTC (rev 192201) +++ hwdetect 2013-08-07 14:42:51 UTC (rev 192202) @@ -1,472 +0,0 @@ -#! /bin/sh -# Autodetection script for scanning /sys for hardware -# for Archlinux by Tobias Powalowski <tp...@archlinux.org> -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 " --kernel_directory= use kernel module directory (no autodetect)" - 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-block show BLOCK DEVICE modules" - echo " --show-net show NETWORK modules" - echo " --show-drm show DRM 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-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 " --pcmcia add pcmcia to HOOKS=" - echo " --nfs add net to HOOKS=" - echo " --btrfs add btrfs to HOOKS=" - echo " --shutdown add shutdown to HOOKS=" - exit 1 -} - -[ "$1" = "" ] && usage -[ "$1" = "--help" ] && usage -[ "$1" = "-h" ] && usage - -# setting parameters -PARAMETER="$(echo $*)" -parameter() { - while [ -n "$1" ]; do - case $1 in - --kernel_directory=*) - KERNEL_DIRECTORY="$(echo $1 | awk -F= '{print $2;}')" - ;; - --kernel_version=*) - KERNEL_VERSION="$(echo $1 | awk -F= '{print $2;}')" - ;; - --rootdevice=*) - ROOTDEVICE="$(echo $1 | awk -F= '{print $2;}')" - ;; - -hooks-dir=*|--hooks-dir=*) - HOOKS_DIR="$(echo $1 | awk -F= '{print $2;}')" - ;; - esac - shift - done -} - -parameter $PARAMETER - -if [ "$KERNEL_VERSION" = "" ]; then - KERNEL_VERSION="$(uname -r)" -fi - -# uvesafb switch -[ "$(echo $* | grep '\-uvesafb')" ] && UVESAFB=1 - -# dmraid switch -[ "$(echo $* | grep '\-dmraid')" ] && DMRAID=1 - -# keymap switch -[ "$(echo $* | grep '\-keymap')" ] && KEYMAP=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_udev lvm2 encrypt" - fi - # check on raid - if [ "$(cryptsetup status $ROOTDEVICE 2>/dev/null | grep "device:.*/dev/md" | sed -e 's#.*\ ##g')" ]; then - ADVANCED="mdadm_udev 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_udev 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_udev 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_udev encrypt lvm2" - done - fi - # check on raid - if [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")" ]; then - ADVANCED="mdadm_udev lvm2" - #check on encrypt - [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt mdadm_udev 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_udev lvm2" - done - fi - fi - fi - # check md device - if [ "$(echo "$ROOTDEVICE" | grep "/dev/md")" ]; then - ADVANCED="mdadm_udev" - # 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_udev" - # check on encrypt - [ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm_udev" - # 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_udev" - 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_udev" - done - [ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && ADVANCED="lvm2 encrypt mdadm_udev" - 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_udev" - # check on encrypt - [ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm_udev" - # 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_udev" - 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_udev" - done - [ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && ADVANCED="lvm2 encrypt mdadm_udev" - fi - fi - fi -fi - -: >/tmp/modules-plain -: >/tmp/modules-stripped -: >/tmp/modules-sorted -: >/tmp/moduleslist -: >/tmp/.blkid - -# generate blkid -blkid -c /dev/null -s TYPE > /tmp/.blkid - -# find pci aliases -aliases=$(find /sys/ -noleaf -name modalias -exec cat {} +) - -# generate files for the different actions -modprobe -i -a --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends $aliases >> /tmp/modules-plain 2>/dev/null - -# 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 --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends pcspkr >> /tmp/modules-plain 2>/dev/null - [ "$devid" = "PNP0510" ] && modprobe -i --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null - [ "$devid" = "PNP0511" ] && modprobe -i --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null - [ "$devid" = "PNPb02f" ] && modprobe -i --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends sg >> /tmp/modules-plain 2>/dev/null ;; esac - case $i in (0|7|14) modprobe -i --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends sd_mod >> /tmp/modules-plain 2>/dev/null ;; esac - case $i in (1) modprobe -i --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends lp >> /tmp/modules-plain 2>/dev/null - modprobe -i --dirname=$KERNEL_DIRECTORY --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 "scsi/" /tmp/modules-stripped | 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! -grep "ata/pata" /tmp/modules-stripped | grep -v "pata_acpi" >> /tmp/modules-sorted -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 "" -} - -# starting different actions -while [ -n "$*" ]; do - case $1 in - --load-modules) - # load all detected pci modules - for i in $(cat /tmp/moduleslist); do - modprobe $i > /dev/null 2>&1 - 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 "BLOCK " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix) \ - $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy) \ - $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) \ - $(listmods usb/ usb/input) $(listmods firewire/) $(listmods ieee1394/) - showlist "NET " $(listmods net/ irda/) - showlist "DRM " $(listmods drm/) - 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 "OTHER " $(listmods modules/ agp/ acpi/ 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/ drm/ firewire/ hid/ staging/) - ;; - - --show-modules-order) - showlist "MODULES ORDER" $(listmods modules/) - ;; - - --show-agp) showlist "AGP " $(listmods agp/) ;; - --show-acpi) showlist "ACPI " $(listmods acpi/) ;; - --show-block) showlist "BLOCK " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix) \ - $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy) \ - $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) \ - $(listmods usb/ usb/input) $(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-drm) showlist "DRM " $(listmods drm/) ;; - --show-other) showlist "OTHER " $(listmods .ko agp/ acpi/ 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/ drm/ firewire/ hid/ staging/) ;; - --filesystem) FILESYSTEM="ext2 ext3 ext4 f2fs 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 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' - ;; - --hooks) - if [ "$HOOKS_DIR" = "" ]; then - HOOKS_DIR="/usr/lib/initcpio/install" - fi - START_HOOKS="base v86d udev keymap autodetect modconf block pcmcia net dmraid keyboard $ADVANCED btrfs filesystems fsck 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 - 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 ! [ "$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: Copied: hwdetect/repos/extra-any/hwdetect (from rev 192201, hwdetect/trunk/hwdetect) =================================================================== --- hwdetect (rev 0) +++ hwdetect 2013-08-07 14:42:51 UTC (rev 192202) @@ -0,0 +1,374 @@ +#! /bin/sh +# Autodetection script for scanning /sys for hardware +# for Archlinux by Tobias Powalowski <tp...@archlinux.org> +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 " --kernel_directory= use kernel module directory (no autodetect)" + 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-block show BLOCK DEVICE modules" + echo " --show-net show NETWORK modules" + echo " --show-drm show DRM 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-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 " --pcmcia add pcmcia to HOOKS=" + echo " --nfs add net to HOOKS=" + echo " --btrfs add btrfs to HOOKS=" + echo " --shutdown add shutdown to HOOKS=" + exit 1 +} + +[ "$1" = "" ] && usage +[ "$1" = "--help" ] && usage +[ "$1" = "-h" ] && usage + +# setting parameters +PARAMETER="$(echo $*)" +parameter() { + while [ -n "$1" ]; do + case $1 in + --kernel_directory=*) + KERNEL_DIRECTORY="$(echo $1 | awk -F= '{print $2;}')" + ;; + --kernel_version=*) + KERNEL_VERSION="$(echo $1 | awk -F= '{print $2;}')" + ;; + --rootdevice=*) + ROOTDEVICE="$(echo $1 | awk -F= '{print $2;}')" + ;; + -hooks-dir=*|--hooks-dir=*) + HOOKS_DIR="$(echo $1 | awk -F= '{print $2;}')" + ;; + esac + shift + done +} + +parameter $PARAMETER + +if [ "$KERNEL_VERSION" = "" ]; then + KERNEL_VERSION="$(uname -r)" +fi + +# uvesafb switch +[ "$(echo $* | grep '\-uvesafb')" ] && UVESAFB=1 + +# dmraid switch +[ "$(echo $* | grep '\-dmraid')" ] && DMRAID=1 + +# keymap switch +[ "$(echo $* | grep '\-keymap')" ] && KEYMAP=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 + ADVANCED="$(echo $(echo "$(lsblk -rpsno TYPE $ROOTDEVICE | grep -ve "disk" -e "part")" | tac) | sed -e 's#crypt#encrypt#g' -e 's#raid.*[0-9]#mdadm_udev#g' -e 's#lvm#lvm2#g')" +fi + +: >/tmp/modules-plain +: >/tmp/modules-stripped +: >/tmp/modules-sorted +: >/tmp/moduleslist +: >/tmp/.blkid + +# generate blkid +blkid -c /dev/null -s TYPE > /tmp/.blkid + +# find pci aliases +aliases=$(find /sys/ -noleaf -name modalias -exec cat {} +) + +# generate files for the different actions +modprobe -i -a --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends $aliases >> /tmp/modules-plain 2>/dev/null + +# 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 --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends pcspkr >> /tmp/modules-plain 2>/dev/null + [ "$devid" = "PNP0510" ] && modprobe -i --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null + [ "$devid" = "PNP0511" ] && modprobe -i --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null + [ "$devid" = "PNPb02f" ] && modprobe -i --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends sg >> /tmp/modules-plain 2>/dev/null ;; esac + case $i in (0|7|14) modprobe -i --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends sd_mod >> /tmp/modules-plain 2>/dev/null ;; esac + case $i in (1) modprobe -i --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --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 --dirname=$KERNEL_DIRECTORY --set-version=$KERNEL_VERSION --show-depends lp >> /tmp/modules-plain 2>/dev/null + modprobe -i --dirname=$KERNEL_DIRECTORY --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 "scsi/" /tmp/modules-stripped | 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! +grep "ata/pata" /tmp/modules-stripped | grep -v "pata_acpi" >> /tmp/modules-sorted +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 "" +} + +# starting different actions +while [ -n "$*" ]; do + case $1 in + --load-modules) + # load all detected pci modules + for i in $(cat /tmp/moduleslist); do + modprobe $i > /dev/null 2>&1 + 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 "BLOCK " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix) \ + $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy) \ + $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) \ + $(listmods usb/ usb/input) $(listmods firewire/) $(listmods ieee1394/) + showlist "NET " $(listmods net/ irda/) + showlist "DRM " $(listmods drm/) + 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 "OTHER " $(listmods modules/ agp/ acpi/ 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/ drm/ firewire/ hid/ staging/) + ;; + + --show-modules-order) + showlist "MODULES ORDER" $(listmods modules/) + ;; + + --show-agp) showlist "AGP " $(listmods agp/) ;; + --show-acpi) showlist "ACPI " $(listmods acpi/) ;; + --show-block) showlist "BLOCK " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix) \ + $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy) \ + $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) \ + $(listmods usb/ usb/input) $(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-drm) showlist "DRM " $(listmods drm/) ;; + --show-other) showlist "OTHER " $(listmods .ko agp/ acpi/ 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/ drm/ firewire/ hid/ staging/) ;; + --filesystem) FILESYSTEM="ext2 ext3 ext4 f2fs 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 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' + ;; + --hooks) + if [ "$HOOKS_DIR" = "" ]; then + HOOKS_DIR="/usr/lib/initcpio/install" + fi + START_HOOKS="base v86d udev keymap autodetect modconf block pcmcia net dmraid keyboard $ADVANCED btrfs filesystems fsck 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 + 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 ! [ "$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) echo "$ADVANCED" + ;; + 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: