Commit 81fca6de authored by philm's avatar philm

udev: re-add needed files

parent ac5c9e1d
# do not edit this file, it will be overwritten on update
ACTION=="remove", GOTO="drivers_end"
DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/lib/udev/load-modules.sh $env{MODALIAS}"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/lib/udev/load-modules.sh tifm_sd"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/lib/udev/load-modules.sh tifm_ms"
SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block"
SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh mspro_block"
SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh i2o_block"
SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg"
SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/lib/udev/load-modules.sh ppdev"
LABEL="drivers_end"
#!/bin/bash
# Implement blacklisting for udev-loaded modules
[ $# -ne 1 ] && exit 1
. /etc/rc.conf
# grab modules from rc.conf
BLACKLIST="${MOD_BLACKLIST[@]}"
MODPROBE="/sbin/modprobe"
LOGGER="/usr/bin/logger"
RESOLVEALIAS="${MODPROBE} --resolve-alias"
USEBLACKLIST="--use-blacklist"
if [ -f /proc/cmdline ]; then
for cmd in $(cat /proc/cmdline); do
case $cmd in
disablemodules=*) eval $cmd ;;
load_modules=off) exit ;;
esac
done
#parse cmdline entries of the form "disablemodules=x,y,z"
if [ -n "$disablemodules" ]; then
BLACKLIST="$BLACKLIST $(echo $disablemodules | sed 's|,| |g')"
fi
fi
#MODULES entries in rc.conf that begin with ! are blacklisted
for mod in ${MODULES[@]}; do
if [ "${mod}" != "${mod#!}" ]; then
BLACKLIST="$BLACKLIST ${mod#!}"
fi
done
if [ "$MOD_AUTOLOAD" = "yes" -o "$MOD_AUTOLOAD" = "YES" ]; then
if [ -n "${BLACKLIST}" ]; then
# If an alias name is on the blacklist, load no modules for this device
if echo "${BLACKLIST}" | /bin/grep -q -e " $1 " -e "^$1 " -e " $1\$"; then
$LOGGER -p info -t "$(basename $0)" "Not loading module alias '$1' because it is blacklisted"
exit
fi
#sanitize the blacklist
BLACKLIST="$(echo "$BLACKLIST" | sed -e 's|-|_|g')"
# Try to find all modules for the alias
mods=$($RESOLVEALIAS $1)
# If no modules could be found, try if the alias name is a module name
# In that case, omit the --use-blacklist parameter to imitate normal modprobe behaviour
[ -z "${mods}" ] && $MODPROBE -qni $1 && mods="$1" && USEBLACKLIST=""
[ -z "${mods}" ] && $LOGGER -p local0.debug -t "$(basename $0)" "'$1' is not a valid module or alias name"
for mod in ${mods}; do
# Find the module and all its dependencies
deps="$($MODPROBE -i --show-depends ${mod})"
[ $? -ne 0 ] && continue
#sanitize the module names
deps="$(echo "$deps" | sed \
-e "s#^insmod /lib.*/\(.*\)\.ko.*#\1#g" \
-e 's|-|_|g')"
# If the module or any of its dependencies is blacklisted, don't load it
for dep in $deps; do
if echo "${BLACKLIST}" | /bin/grep -q -e " ${dep} " -e "^${dep} " -e " ${dep}\$"; then
if [ "${dep}" = "${mod}" ]; then
$LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because it is blacklisted"
else
$LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because its dependency '${dep}' is blacklisted"
fi
continue 2
fi
done
# modprobe usually uses the "blacklist" statements from modprobe.conf only to blacklist all aliases
# of a module, but not the module itself. We use --use-blacklist here so that modprobe also blacklists
# module names if we resolved alias names manually above
$MODPROBE $USEBLACKLIST ${mod}
done
else
$MODPROBE $USEBLACKLIST $1
fi
fi
# vim: set et ts=4:
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment