Date: Tuesday, October 8, 2013 @ 12:52:11 Author: tpowa Revision: 196207
upgpkg: hwdetect 2013.10-2 cleanup code, remove all loading/unloading and sorting things, systemd/udev does everything Modified: hwdetect/trunk/PKGBUILD hwdetect/trunk/hwdetect ----------+ PKGBUILD | 4 +- hwdetect | 101 +------------------------------------------------------------ 2 files changed, 4 insertions(+), 101 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-10-08 07:53:37 UTC (rev 196206) +++ PKGBUILD 2013-10-08 10:52:11 UTC (rev 196207) @@ -2,7 +2,7 @@ # Maintainer: Tobias Powalowski <[email protected]> pkgname=hwdetect pkgver=2013.10 -pkgrel=1 +pkgrel=2 pkgdesc="Hardware detection script with loading modules and mkinitcpio.conf / rc.conf support" arch=(any) license=('GPL') @@ -16,4 +16,4 @@ package() { install -D -m 755 "${srcdir}/hwdetect" "${pkgdir}/usr/bin/hwdetect" } -md5sums=('f17349465e2d5b2133d78d621988b31e') +md5sums=('0398c6ee3299ed4471979127ff288ac7') Modified: hwdetect =================================================================== --- hwdetect 2013-10-08 07:53:37 UTC (rev 196206) +++ hwdetect 2013-10-08 10:52:11 UTC (rev 196207) @@ -9,8 +9,6 @@ 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" @@ -117,97 +115,18 @@ : >/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 +# find modaliases 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= @@ -215,7 +134,7 @@ [ "$ex" ] && ex="$ex|$1" || ex="$1" shift done - for ln in $(grep "$key" /tmp/modules-sorted | sed 's|^insmod ||g'); do + for ln in $(grep "$key" /tmp/modules-stripped | sed 's|^insmod ||g'); do if [ "$ex" ]; then echo $ln | egrep -v "$ex" | sed -ne "s#^/.*/\(.*\)\.ko.*#\1#p" else @@ -242,20 +161,6 @@ # 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/) @@ -378,8 +283,6 @@ # cleanup rm /tmp/modules-plain -rm /tmp/modules-sorted rm /tmp/modules-stripped -rm /tmp/moduleslist # vim: set ts=2 sw=2 noet:
