]>
Commit | Line | Data |
---|---|---|
ee78a5ef MT |
1 | #! /bin/sh |
2 | # Implement blacklisting for udev-loaded modules | |
3 | # Includes module checking | |
4 | # - Aaron Griffin & Tobias Powalowski for Archlinux | |
5 | [ $# -ne 1 ] && exit 1 | |
6 | ||
7 | if [ -f /proc/cmdline ]; then | |
8 | for cmd in $(cat /proc/cmdline); do | |
9 | case $cmd in | |
10 | *=*) eval $cmd ;; | |
11 | esac | |
12 | done | |
13 | fi | |
14 | ||
15 | # get the real names from modaliases | |
16 | i="$(/bin/modprobe -i --show-depends $1 | minised "s#^insmod /lib.*/\(.*\)\.ko.*#\1#g" | minised 's|-|_|g')" | |
17 | # add disablemodules= from commandline to blacklist | |
18 | k="$(echo ${disablemodules} | minised 's|-|_|g' | minised 's|,| |g')" | |
19 | ||
20 | if [ "${k}" != "" ] ; then | |
21 | for o in ${k}; do | |
22 | echo "${o}.ko" >> /disablemodules | |
23 | done | |
24 | for n in ${i}; do | |
25 | if /bin/ugrep "^$n.ko" /disablemodules 2>&1 >/dev/null; then | |
26 | exit 1 | |
27 | fi | |
28 | done | |
29 | fi | |
30 | /bin/modprobe $1 | |
31 | ||
32 | # vim: set et ts=4: |