[arch-commits] Commit in hwdetect/repos/extra-any (4 files)
Tobias Powalowski
tpowa at gemini.archlinux.org
Fri Jan 28 17:32:06 UTC 2022
Date: Friday, January 28, 2022 @ 17:32:05
Author: tpowa
Revision: 435318
archrelease: copy trunk to extra-any
Added:
hwdetect/repos/extra-any/PKGBUILD
(from rev 435317, hwdetect/trunk/PKGBUILD)
hwdetect/repos/extra-any/hwdetect
(from rev 435317, hwdetect/trunk/hwdetect)
Deleted:
hwdetect/repos/extra-any/PKGBUILD
hwdetect/repos/extra-any/hwdetect
----------+
PKGBUILD | 38 +--
hwdetect | 680 +++++++++++++++++++++++++++++--------------------------------
2 files changed, 353 insertions(+), 365 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2022-01-28 17:31:54 UTC (rev 435317)
+++ PKGBUILD 2022-01-28 17:32:05 UTC (rev 435318)
@@ -1,19 +0,0 @@
-# Maintainer: Tobias Powalowski <tpowa at archlinux.org>
-pkgname=hwdetect
-pkgver=2022.01
-pkgrel=4
-pkgdesc="Hardware detection script with loading modules and mkinitcpio.conf"
-arch=(any)
-url="https://archlinux.org/packages/extra/any/hwdetect/"
-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)
-sha512sums=('0c53f8b18c3ba88af0a0d972118ca56d4c58254255c5976bf7ceb64f93e3ad47292eb6456c923a08b6a80fe1b4f6cffe94264998a8a042687f666d0e863b8049')
-
-package() {
- install -D -m 755 "${srcdir}/hwdetect" "${pkgdir}/usr/bin/hwdetect"
-}
Copied: hwdetect/repos/extra-any/PKGBUILD (from rev 435317, hwdetect/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2022-01-28 17:32:05 UTC (rev 435318)
@@ -0,0 +1,19 @@
+# Maintainer: Tobias Powalowski <tpowa at archlinux.org>
+pkgname=hwdetect
+pkgver=2022.01
+pkgrel=5
+pkgdesc="Hardware detection script with loading modules and mkinitcpio.conf"
+arch=(any)
+url="https://archlinux.org/packages/extra/any/hwdetect/"
+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)
+sha512sums=('b0ebbc167b93cfcd881ce6a69f3ac337f7f22d9879a67e439f4d5af3b3622aa0d7656103fb7d550a6c6da1f95bc1393a0cb870b349ad05ff168d901c890e59c4')
+
+package() {
+ install -D -m 755 "${srcdir}/hwdetect" "${pkgdir}/usr/bin/hwdetect"
+}
Deleted: hwdetect
===================================================================
--- hwdetect 2022-01-28 17:31:54 UTC (rev 435317)
+++ hwdetect 2022-01-28 17:32:05 UTC (rev 435318)
@@ -1,346 +0,0 @@
-#! /bin/bash
-# Autodetection script for scanning /sys for hardware
-# for Archlinux by Tobias Powalowski <tpowa at archlinux.org>
-
-_SHOW_MODULES=""
-_SHOW_HOOKS=""
-_HWKVER=""
-
-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 " --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-bluetooth show BLUETOOTH modules"
- echo " --show-cdrom show CDROM modules"
- echo " --show-cpufreq show CPUFREQ modules"
- echo " --show-crypto show CRYPTO modules"
- echo " --show-dca show DCA modules"
- echo " --show-dma show DMA modules"
- echo " --show-drm show DRM modules"
- echo " --show-edac show EDAC modules"
- echo " --show-events show EVENTS modules"
- echo " --show-hwmon show HWMON modules"
- echo " --show-i2c show I2C modules"
- echo " --show-input show INPUT modules"
- echo " --show-ipmi show IPMI modules"
- echo " --show-irda show IRDA modules"
- echo " --show-isdn show ISDN modules"
- echo " --show-kvm show KVM modules"
- echo " --show-media show MEDIA modules"
- echo " --show-mei show MEI modules"
- echo " --show-mfd show MFD modules"
- echo " --show-mtd show MTD modules"
- echo " --show-net show NETWORK modules"
- echo " --show-parport show PARPORT modules"
- echo " --show-pcmcia show PCMCIA modules"
- echo " --show-platform show PLATFORM modules"
- echo " --show-powercap show POWERCAP modules"
- echo " --show-serial show SERIAL modules"
- echo " --show-sound show SOUND modules"
- echo " --show-staging show STAGING modules"
- echo " --show-thermal show THERMAL modules"
- echo " --show-tpm show TPM modules"
- echo " --show-video show VIDEO modules"
- echo " --show-virt show VIRT modules"
- echo " --show-watchdog show WATCHDOG 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 " --amd-kms add amd 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="
- 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
-}
-
-kver() {
- # get kernel version from installed kernel
- [[ "$(uname -m)" == "x86_64" ]] && VMLINUZ=/boot/vmlinuz-linux
- [[ "$(uname -m)" == "aarch64" ]] && VMLINUZ=/boot/Image
- if [[ -f "${VMLINUZ}" ]]; then
- offset=$(hexdump -s 526 -n 2 -e '"%0d"' "${VMLINUZ}")
- read -r _HWKVER _ < <(dd if="${VMLINUZ}" bs=1 count=127 skip=$(( offset + 0x200 )) 2>/dev/null)
- fi
- # fallback if no detectable kernel is installed
- [[ "${_HWKVER}" == "" ]] && _HWKVER="$(uname -r)"
-}
-
-parameter $PARAMETER
-
-if [ "$KERNEL_VERSION" = "" ]; then
- kver
- KERNEL_VERSION="${_HWKVER}"
-
-fi
-
-# 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
-
-# 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/.blkid
-
-# generate blkid
-blkid -c /dev/null -s TYPE > /tmp/.blkid
-
-# 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
-sort -u /tmp/modules-plain >> /tmp/modules-stripped
-
-listmods() {
- key=$1 ; shift
- ex=
- while [ "$1" ]; do
- [ "$ex" ] && ex="$ex|$1" || ex="$1"
- shift
- done
- 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
- 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
- --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/) $(listmods nvme/)
- showlist "BLUETOOTH" $(listmods bluetooth/)
- showlist "CDROM " $(listmods cdrom/)
- showlist "CPUFREQ " $(listmods cpufreq/)
- showlist "CRYPTO " $(listmods crypto/)
- showlist "DCA " $(listmods dca/)
- showlist "DMA " $(listmods dma/)
- showlist "DRM " $(listmods drm/)
- showlist "EDAC " $(listmods edac/)
- showlist "EVENTS " $(listmods events/)
- showlist "HWMON " $(listmods hwmon/)
- showlist "I2C " $(listmods i2c/)
- showlist "INPUT " $(listmods input/ pcspkr) $(listmods hid/) $(listmods mac_hid)
- showlist "IPMI " $(listmods ipmi/)
- showlist "IRDA " $(listmods irda/)
- showlist "ISDN " $(listmods isdn/)
- showlist "KVM " $(listmods kvm/)
- showlist "MEDIA " $(listmods media/)
- showlist "MEI " $(listmods mei/)
- showlist "MFD " $(listmods mfd/)
- showlist "MTD " $(listmods mtd/)
- showlist "NET " $(listmods net/ irda/)
- showlist "PARPORT " $(listmods parport/)
- showlist "PCMCIA " $(listmods pcmcia/)
- showlist "PLATFORM " $(listmods platform/)
- showlist "POWERCAP " $(listmods powercap/)
- showlist "SERIAL " $(listmods serial/)
- showlist "SOUND " $(listmods pcspkr) $(listmods sound/)
- showlist "STAGING " $(listmods staging/)
- showlist "THERMAL " $(listmods thermal/)
- showlist "TPM " $(listmods tpm/)
- showlist "VIDEO " $(listmods video/)
- showlist "VIRT " $(listmods virt/)
- showlist "WATCHDOG " $(listmods watchdog/)
- 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 bluetooth/ cdrom/ cpufreq/ crypto/ dca/ dma/ edac/ events/ net/ hwmon/ i2c/ isdn/ input/ ipmi/ irda/ kvm/ mac_hid media/ mei/ \
- mfd/ mtd/ parport/ platform/ pcmcia/ powercap/ sound/ thermal/ tpm/ drm/ firewire/ hid/ serial/ staging/ video/ virt/ watchdog/)
- ;;
-
- --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/) $(listmods nvme/) ;;
- --show-bluetooth) showlist "BLUETOOTH" $(listmods bluetooth/) ;;
- --show-cdrom) showlist "CDROM " $(listmods cdrom/) ;;
- --show-cpufreq) showlist "CPUFREQ " $(listmods cpufreq/) ;;
- --show-crypto) showlist "CRYPTO " $(listmods crypto/) ;;
- --show-drm) showlist "DRM " $(listmods drm/) ;;
- --show-dca) showlist "DCA " $(listmods dca/) ;;
- --show-dma) showlist "DMA " $(listmods dma/) ;;
- --show-edac) showlist "EDAC " $(listmods edac/) ;;
- --show-events) showlist "EVENTS " $(listmods events/) ;;
- --show-hwmon) showlist "HWMON " $(listmods hwmon/) ;;
- --show-input) showlist "INPUT " $(listmods input/ pcspkr) $(listmods hid/) ;;
- --show-ipmi) showlist "IPMI " $(listmods ipmi/) ;;
- --show-i2c) showlist "I2C " $(listmods i2c/) ;;
- --show-irda) showlist "IRDA " $(listmods irda/) ;;
- --show-isdn) showlist "ISDN " $(listmods isdn/) ;;
- --show-kvm) showlist "KVM " $(listmods kvm/) ;;
- --show-media) showlist "MEDIA " $(listmods media/) ;;
- --show-mei) showlist "MEI " $(listmods mei/) ;;
- --show-mfd) showlist "MFD " $(listmods mfd/) ;;
- --show-mtd) showlist "MTD " $(listmods mtd/) ;;
- --show-net) showlist "NET " $(listmods net/ irda/) ;;
- --show-parport) showlist "PARPORT " $(listmods parport/) ;;
- --show-pcmcia) showlist "PCMCIA " $(listmods pcmcia/) ;;
- --show-platform) showlist "PLATFORM " $(listmods platform/) ;;
- --show-powercap) showlist "POWERCAP " $(listmods powercap/) ;;
- --show-serial) showlist "SERIAL " $(listmods serial/) ;;
- --show-sound) showlist "SOUND " $(listmods pcspkr) $(listmods sound/) ;;
- --show-staging) showlist "STAGING " $(listmods staging/) ;;
- --show-thermal) showlist "THERMAL " $(listmods thermal/) ;;
- --show-tpm) showlist "TPM " $(listmods tpm/) ;;
- --show-video) showlist "VIDEO " $(listmods video/) ;;
- --show-virt) showlist "VIRT " $(listmods virt/) ;;
- --show-watchdog) showlist "WATCHDOG " $(listmods watchdog/) ;;
- --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 bluetooth/ cdrom/ cpufreq/ crypto/ dca/ dma/ edac/ events/ net/ hwmon/ i2c/ isdn/ input/ ipmi/ irda/ kvm/ mac_hid media/ mei/ \
- mfd/ mtd/ parport/ platform/ pcmcia/ powercap/ sound/ thermal/ tpm/ drm/ firewire/ hid/ serial/ staging/ video/ virt/ watchdog/) ;;
- --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"
- _SHOW_MODULES="1"
- ;;
- --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) $(listmods nvme/) $(listmods xhci-pci)"
- MODULES_INITRAMFS="$MODULES_INITRAMFS $HOSTCONTROLLER"
- _SHOW_MODULES="1"
- ;;
- --ati-kms) KMS="radeon"
- MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
- _SHOW_MODULES="1"
- ;;
- --amd-kms) KMS="amdgpu"
- MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
- _SHOW_MODULES="1"
- ;;
- --intel-kms) KMS="i915"
- MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
- _SHOW_MODULES="1"
- ;;
- --nvidia-kms) KMS="nouveau"
- MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
- _SHOW_MODULES="1"
- ;;
- --hooks)
- if [ "$HOOKS_DIR" = "" ]; then
- HOOKS_DIR="/usr/lib/initcpio/install"
- fi
- START_HOOKS="base udev keymap autodetect modconf block net dmraid keyboard $ADVANCED filesystems fsck"
- # 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 ! [ "$DMRAID" = "1" ]; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/dmraid//g")
- fi
- if ! [ "$NFS" = "1" ]; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/net//g")
- fi
- _SHOW_HOOKS="1"
- ;;
- --advanced) echo "$ADVANCED"
- ;;
- esac
- shift
-done
-
-[[ "${_SHOW_MODULES}" == "1" ]] && showlist2 "MODULES" $MODULES_INITRAMFS | sed -e 's/(\ / /g' -e 's/\ \ /\ /g' -e 's/ $/)/g'
-[[ "${_SHOW_HOOKS}" == "1" ]] && echo "HOOKS=($START_HOOKS " | sed -e 's/\ \ /\ /g' -e 's/\ $/)/g'
-
-# cleanup
-rm /tmp/modules-plain
-rm /tmp/modules-stripped
-rm /tmp/.blkid
-
-# vim: set ts=2 sw=2 noet:
Copied: hwdetect/repos/extra-any/hwdetect (from rev 435317, hwdetect/trunk/hwdetect)
===================================================================
--- hwdetect (rev 0)
+++ hwdetect 2022-01-28 17:32:05 UTC (rev 435318)
@@ -0,0 +1,334 @@
+#! /bin/bash
+# Autodetection script for scanning /sys for hardware
+# for Arch Linux by Tobias Powalowski <tpowa at archlinux.org>
+
+_SHOW_MODULES=""
+_SHOW_HOOKS=""
+_HWKVER=""
+
+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 " --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-bluetooth show BLUETOOTH modules"
+ echo " --show-cdrom show CDROM modules"
+ echo " --show-cpufreq show CPUFREQ modules"
+ echo " --show-crypto show CRYPTO modules"
+ echo " --show-dca show DCA modules"
+ echo " --show-dma show DMA modules"
+ echo " --show-drm show DRM modules"
+ echo " --show-edac show EDAC modules"
+ echo " --show-events show EVENTS modules"
+ echo " --show-hwmon show HWMON modules"
+ echo " --show-i2c show I2C modules"
+ echo " --show-input show INPUT modules"
+ echo " --show-ipmi show IPMI modules"
+ echo " --show-irda show IRDA modules"
+ echo " --show-kvm show KVM modules"
+ echo " --show-media show MEDIA modules"
+ echo " --show-mei show MEI modules"
+ echo " --show-mfd show MFD modules"
+ echo " --show-mtd show MTD modules"
+ echo " --show-net show NETWORK modules"
+ echo " --show-parport show PARPORT modules"
+ echo " --show-platform show PLATFORM modules"
+ echo " --show-powercap show POWERCAP modules"
+ echo " --show-serial show SERIAL modules"
+ echo " --show-sound show SOUND modules"
+ echo " --show-staging show STAGING modules"
+ echo " --show-thermal show THERMAL modules"
+ echo " --show-tpm show TPM modules"
+ echo " --show-video show VIDEO modules"
+ echo " --show-virt show VIRT modules"
+ echo " --show-watchdog show WATCHDOG 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 " --amd-kms add amd 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 " --nfs add net 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
+}
+
+kver() {
+ # get kernel version from installed kernel
+ [[ "$(uname -m)" == "x86_64" ]] && VMLINUZ=/boot/vmlinuz-linux
+ [[ "$(uname -m)" == "aarch64" ]] && VMLINUZ=/boot/Image
+ if [[ -f "${VMLINUZ}" ]]; then
+ offset=$(hexdump -s 526 -n 2 -e '"%0d"' "${VMLINUZ}")
+ read -r _HWKVER _ < <(dd if="${VMLINUZ}" bs=1 count=127 skip=$(( offset + 0x200 )) 2>/dev/null)
+ fi
+ # fallback if no detectable kernel is installed
+ [[ "${_HWKVER}" == "" ]] && _HWKVER="$(uname -r)"
+}
+
+parameter $PARAMETER
+
+if [ "$KERNEL_VERSION" = "" ]; then
+ kver
+ KERNEL_VERSION="${_HWKVER}"
+
+fi
+
+# dmraid switch
+[ "$(echo $* | grep '\-dmraid')" ] && DMRAID=1
+
+# keymap switch
+[ "$(echo $* | grep '\-keymap')" ] && KEYMAP=1
+
+# nfs switch
+[ "$(echo $* | grep '\-nfs')" ] && NFS=1
+
+# hooks switch
+[ "$(echo $* | grep '\-hooks')" ] && HOOKS=1
+
+ADVANCED=""
+# root device check
+if ! [ "$ROOTDEVICE" = "" ]; then
+ ADVANCED="$(echo $(echo "$(lsblk -rpsno TYPE $ROOTDEVICE | grep -vwe "disk" -we "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/.blkid
+
+# generate blkid
+blkid -c /dev/null -s TYPE > /tmp/.blkid
+
+# 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
+sort -u /tmp/modules-plain >> /tmp/modules-stripped
+
+listmods() {
+ key=$1 ; shift
+ ex=
+ while [ "$1" ]; do
+ [ "$ex" ] && ex="$ex|$1" || ex="$1"
+ shift
+ done
+ 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
+ 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
+ --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/) $(listmods nvme/)
+ showlist "BLUETOOTH" $(listmods bluetooth/)
+ showlist "CDROM " $(listmods cdrom/)
+ showlist "CPUFREQ " $(listmods cpufreq/)
+ showlist "CRYPTO " $(listmods crypto/)
+ showlist "DCA " $(listmods dca/)
+ showlist "DMA " $(listmods dma/)
+ showlist "DRM " $(listmods drm/)
+ showlist "EDAC " $(listmods edac/)
+ showlist "EVENTS " $(listmods events/)
+ showlist "HWMON " $(listmods hwmon/)
+ showlist "I2C " $(listmods i2c/)
+ showlist "INPUT " $(listmods input/ pcspkr) $(listmods hid/) $(listmods mac_hid)
+ showlist "IPMI " $(listmods ipmi/)
+ showlist "IRDA " $(listmods irda/)
+ showlist "KVM " $(listmods kvm/)
+ showlist "MEDIA " $(listmods media/)
+ showlist "MEI " $(listmods mei/)
+ showlist "MFD " $(listmods mfd/)
+ showlist "MTD " $(listmods mtd/)
+ showlist "NET " $(listmods net/ irda/)
+ showlist "PARPORT " $(listmods parport/)
+ showlist "PLATFORM " $(listmods platform/)
+ showlist "POWERCAP " $(listmods powercap/)
+ showlist "SERIAL " $(listmods serial/)
+ showlist "SOUND " $(listmods pcspkr) $(listmods sound/)
+ showlist "STAGING " $(listmods staging/)
+ showlist "THERMAL " $(listmods thermal/)
+ showlist "TPM " $(listmods tpm/)
+ showlist "VIDEO " $(listmods video/)
+ showlist "VIRT " $(listmods virt/)
+ showlist "WATCHDOG " $(listmods watchdog/)
+ 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 bluetooth/ cdrom/ cpufreq/ crypto/ dca/ dma/ edac/ events/ net/ hwmon/ i2c/ input/ ipmi/ irda/ kvm/ mac_hid media/ mei/ \
+ mfd/ mtd/ parport/ platform/ powercap/ sound/ thermal/ tpm/ drm/ firewire/ hid/ serial/ staging/ video/ virt/ watchdog/)
+ ;;
+ --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/) $(listmods nvme/) ;;
+ --show-bluetooth) showlist "BLUETOOTH" $(listmods bluetooth/) ;;
+ --show-cdrom) showlist "CDROM " $(listmods cdrom/) ;;
+ --show-cpufreq) showlist "CPUFREQ " $(listmods cpufreq/) ;;
+ --show-crypto) showlist "CRYPTO " $(listmods crypto/) ;;
+ --show-drm) showlist "DRM " $(listmods drm/) ;;
+ --show-dca) showlist "DCA " $(listmods dca/) ;;
+ --show-dma) showlist "DMA " $(listmods dma/) ;;
+ --show-edac) showlist "EDAC " $(listmods edac/) ;;
+ --show-events) showlist "EVENTS " $(listmods events/) ;;
+ --show-hwmon) showlist "HWMON " $(listmods hwmon/) ;;
+ --show-input) showlist "INPUT " $(listmods input/ pcspkr) $(listmods hid/) ;;
+ --show-ipmi) showlist "IPMI " $(listmods ipmi/) ;;
+ --show-i2c) showlist "I2C " $(listmods i2c/) ;;
+ --show-irda) showlist "IRDA " $(listmods irda/) ;;
+ --show-kvm) showlist "KVM " $(listmods kvm/) ;;
+ --show-media) showlist "MEDIA " $(listmods media/) ;;
+ --show-mei) showlist "MEI " $(listmods mei/) ;;
+ --show-mfd) showlist "MFD " $(listmods mfd/) ;;
+ --show-mtd) showlist "MTD " $(listmods mtd/) ;;
+ --show-net) showlist "NET " $(listmods net/ irda/) ;;
+ --show-parport) showlist "PARPORT " $(listmods parport/) ;;
+ --show-platform) showlist "PLATFORM " $(listmods platform/) ;;
+ --show-powercap) showlist "POWERCAP " $(listmods powercap/) ;;
+ --show-serial) showlist "SERIAL " $(listmods serial/) ;;
+ --show-sound) showlist "SOUND " $(listmods pcspkr) $(listmods sound/) ;;
+ --show-staging) showlist "STAGING " $(listmods staging/) ;;
+ --show-thermal) showlist "THERMAL " $(listmods thermal/) ;;
+ --show-tpm) showlist "TPM " $(listmods tpm/) ;;
+ --show-video) showlist "VIDEO " $(listmods video/) ;;
+ --show-virt) showlist "VIRT " $(listmods virt/) ;;
+ --show-watchdog) showlist "WATCHDOG " $(listmods watchdog/) ;;
+ --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 bluetooth/ cdrom/ cpufreq/ crypto/ dca/ dma/ edac/ events/ net/ hwmon/ i2c/ input/ ipmi/ irda/ kvm/ mac_hid media/ mei/ \
+ mfd/ mtd/ parport/ platform/ powercap/ sound/ thermal/ tpm/ drm/ firewire/ hid/ serial/ staging/ video/ virt/ watchdog/) ;;
+ --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"
+ _SHOW_MODULES="1"
+ ;;
+ --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) $(listmods nvme/) $(listmods xhci-pci)"
+ MODULES_INITRAMFS="$MODULES_INITRAMFS $HOSTCONTROLLER"
+ _SHOW_MODULES="1"
+ ;;
+ --ati-kms) KMS="radeon"
+ MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+ _SHOW_MODULES="1"
+ ;;
+ --amd-kms) KMS="amdgpu"
+ MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+ _SHOW_MODULES="1"
+ ;;
+ --intel-kms) KMS="i915"
+ MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+ _SHOW_MODULES="1"
+ ;;
+ --nvidia-kms) KMS="nouveau"
+ MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS"
+ _SHOW_MODULES="1"
+ ;;
+ --hooks)
+ if [ "$HOOKS_DIR" = "" ]; then
+ HOOKS_DIR="/usr/lib/initcpio/install"
+ fi
+ START_HOOKS="base udev keymap autodetect modconf block net dmraid keyboard $ADVANCED filesystems fsck"
+ # 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 ! [ "$DMRAID" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/dmraid//g")
+ fi
+ if ! [ "$NFS" = "1" ]; then
+ START_HOOKS=$(echo $START_HOOKS | sed -e "s/net//g")
+ fi
+ _SHOW_HOOKS="1"
+ ;;
+ --advanced) echo "$ADVANCED"
+ ;;
+ esac
+ shift
+done
+
+[[ "${_SHOW_MODULES}" == "1" ]] && showlist2 "MODULES" $MODULES_INITRAMFS | sed -e 's/(\ / /g' -e 's/\ \ /\ /g' -e 's/ $/)/g'
+[[ "${_SHOW_HOOKS}" == "1" ]] && echo "HOOKS=($START_HOOKS " | sed -e 's/\ \ /\ /g' -e 's/\ $/)/g'
+
+# cleanup
+rm /tmp/modules-plain
+rm /tmp/modules-stripped
+rm /tmp/.blkid
+
+# vim: set ts=2 sw=2 noet:
More information about the arch-commits
mailing list