diff options
Diffstat (limited to 'source/a/udev')
-rw-r--r-- | source/a/udev/config/modprobe.d/blacklist.conf.new | 270 | ||||
-rw-r--r-- | source/a/udev/config/modprobe.d/isapnp.conf.new | 15 | ||||
-rw-r--r-- | source/a/udev/config/modprobe.d/psmouse.conf.new | 6 | ||||
-rw-r--r-- | source/a/udev/config/modprobe.d/usb-controller.conf.new | 4 | ||||
-rw-r--r-- | source/a/udev/config/rc.d/rc.udev.new | 133 | ||||
-rw-r--r-- | source/a/udev/config/rules.d/40-slackware.rules | 16 | ||||
-rw-r--r-- | source/a/udev/config/rules.d/65-permissions.rules | 52 | ||||
-rw-r--r-- | source/a/udev/config/rules.d/90-network.rules | 5 | ||||
-rwxr-xr-x | source/a/udev/config/scripts/nethelper.sh | 62 | ||||
-rw-r--r-- | source/a/udev/config/udev.conf | 14 | ||||
-rw-r--r-- | source/a/udev/doinst.sh | 39 | ||||
-rw-r--r-- | source/a/udev/rule_generator.diff | 80 | ||||
-rw-r--r-- | source/a/udev/slack-desc | 19 | ||||
-rw-r--r-- | source/a/udev/udev-141.tar.bz2.sign | 8 | ||||
-rwxr-xr-x | source/a/udev/udev.SlackBuild | 140 |
15 files changed, 863 insertions, 0 deletions
diff --git a/source/a/udev/config/modprobe.d/blacklist.conf.new b/source/a/udev/config/modprobe.d/blacklist.conf.new new file mode 100644 index 00000000..25811703 --- /dev/null +++ b/source/a/udev/config/modprobe.d/blacklist.conf.new @@ -0,0 +1,270 @@ +# +# Listing a module here prevents the hotplug scripts from loading it. +# Usually that'd be so that some other driver will bind it instead, +# no matter which driver happens to get probed first. Sometimes user +# mode tools can also control driver binding. + +# PC Speaker support: +# This one is loaded by /etc/rc.d/rc.modules. If you don't like +# the beeps and buzz from speaker, edit /etc/rc.d/rc.modules. +blacklist pcspkr + +# tulip ... de4x5, xircom_tulip_cb, dmfe (...) handle same devices +blacklist de4x5 + +# At least 2.4.3 and later xircom_tulip doesn't have that conflict +# xircom_tulip_cb +blacklist dmfe + +#evbug is a debug tool and should be loaded explicitly +blacklist evbug + +# Alternate Intel EtherExpress Pro/100 support driver. List it +# here so it won't conflict with an already-loaded e100 module. +blacklist eepro100 + +# Alternate 8139 driver. Some 8139 cards need this specific driver, +# though... +blacklist 8139cp + +# Deprecated BCM4318 driver. +blacklist bcm43xx + +# Modules used to run a wireless adaptor as an access point. These +# conflict with the normal driver for the device, and so should be +# loaded manually. +blacklist hostap_cs +blacklist hostap_pci +blacklist hostap_plx +blacklist hostap + +# Ethernet over IEEE1394 module. In too many cases this will load +# when there's no eth1394 device present (just an IEEE1394 port) +blacklist eth1394 + +# This module has also been known to cause crashes with some hardware. +blacklist hw_random + +# The kernel lists this as "experimental", but for now it's "broken" +blacklist via-ircc + +# ALSA modules to support sound modems. These should be loaded manually +# if needed. For most people they just break sound support... +blacklist snd-atiixp-modem +blacklist snd-intel8x0m +blacklist snd-via82xx-modem + +# OSS (Open Sound System) modules. This is the old and deprecated Linux +# sound system. If you want to use OSS, remove the alsa-driver package +# and cut out (or comment out) this list. With these modules +# blacklisted ALSA will load by default. +blacklist ac97 +blacklist ac97_codec +blacklist aci +blacklist ad1816 +blacklist ad1848 +blacklist ad1889 +blacklist adlib_card +blacklist aedsp16 +blacklist ali5455 +blacklist awe_wave +blacklist btaudio +blacklist cmpci +blacklist cs4232 +blacklist cs4281 +blacklist cs46xx +blacklist emu10k1 +blacklist es1370 +blacklist es1371 +blacklist esssolo1 +blacklist forte +blacklist gus +blacklist i810_audio +blacklist kahlua +blacklist mad16 +blacklist maestro +blacklist maestro3 +blacklist maui +blacklist mpu401 +blacklist msnd +blacklist msnd_classic +blacklist msnd_pinnacle +blacklist nm256_audio +blacklist opl3 +blacklist opl3sa +blacklist opl3sa2 +blacklist pas2 +blacklist pss +blacklist rme96xx +blacklist sb +blacklist sb_lib +blacklist sgalaxy +blacklist sonicvibes +blacklist sound +blacklist sscape +blacklist trident +blacklist trix +blacklist uart401 +blacklist uart6850 +blacklist v_midi +blacklist via82cxxx_audio +blacklist wavefront +blacklist ymfpci + +# Hardware specific video framebuffer modules. If the user wants +# these, they can load them manually or de-blacklist them. Having +# them load automatically may lead to funny side effects with +# certain revisions of video hardware. +blacklist arcfb +blacklist aty128fb +blacklist atyfb +blacklist cirrusfb +blacklist clgenfb +blacklist cyber2000fb +blacklist fbcon-cfb2 +blacklist fbcon-cfb4 +blacklist fbcon-hga +blacklist fbcon-mfb +blacklist fbcon-vga-planes +blacklist fbgen +blacklist hgafb +blacklist i2c-matroxfb +blacklist i810fb +blacklist intelfb +blacklist kyrofb +blacklist matroxfb_DAC1064 +blacklist matroxfb_Ti3026 +blacklist matroxfb_accel +blacklist matroxfb_base +blacklist matroxfb_crtc2 +blacklist matroxfb_g450 +blacklist matroxfb_maven +blacklist matroxfb_misc +blacklist neofb +blacklist nvidiafb +blacklist pm2fb +blacklist pm3fb +blacklist radeonfb +blacklist rivafb +blacklist savagefb +blacklist sisfb +blacklist sstfb +blacklist tdfxfb +blacklist tridentfb +blacklist vga16fb + +# SCSI and SATA controller modules. Typically these are either +# built into the kernel or loaded with an initrd already. +blacklist 3w-xxxx +blacklist 53c7,8xx +blacklist AM53C974 +blacklist BusLogic +blacklist NCR53c406a +blacklist a100u2w +blacklist advansys +blacklist aha152x +blacklist aha1542 +blacklist aha1740 +blacklist aic79xx +blacklist aic7xxx +blacklist aic7xxx_old +blacklist aic94xx +blacklist ata_piix +blacklist atp870u +blacklist cpqfc +blacklist dc395x +blacklist dmx3191d +blacklist dpt_i2o +blacklist dtc +blacklist eata +blacklist eata_dma +blacklist eata_pio +blacklist fdomain +blacklist g_NCR5380 +blacklist g_NCR5380_mmio +blacklist gdth +blacklist ide-scsi +blacklist imm +blacklist in2000 +blacklist initio +blacklist ipr +blacklist ips +blacklist libata +blacklist megaraid +blacklist ncr53c8xx +blacklist nsp32 +blacklist osst +blacklist pas16 +blacklist pci2000 +blacklist pci2220i +blacklist ppa +blacklist psi240i +blacklist qla1280 +blacklist qla2100 +blacklist qla2200 +blacklist qla2300 +blacklist qla2322 +blacklist qla2xxx +blacklist qla6312 +blacklist qla6322 +blacklist qlogicfas +blacklist qlogicfas408 +blacklist qlogicfc +blacklist qlogicisp +blacklist seagate +blacklist sim710 +blacklist sata_promise +blacklist sata_sil +blacklist sata_sis +blacklist sata_svw +blacklist sata_sx4 +blacklist sata_via +blacklist sata_vsc +blacklist scsi_debug +blacklist scsi_transport_fc +blacklist scsi_transport_spi +blacklist sym53c416 +blacklist sym53c8xx +blacklist sym53c8xx +blacklist t128 +blacklist tmscsim +blacklist u14-34f + +# Blacklist all watchdog modules. Many motherboards hangs with them and, +# if you really need an watchdog you probably know how to load the module +blacklist acquirewdt +blacklist advantechwdt +blacklist alim1535_wdt +blacklist alim7101_wdt +blacklist cpu5wdt +blacklist eurotechwdt +blacklist hpwdt +blacklist i6300esb +blacklist iTCO_vendor_support +blacklist iTCO_wdt +blacklist ib700wdt +blacklist ibmasr +blacklist it8712f_wdt +blacklist machzwd +blacklist mixcomwd +blacklist pc87413_wdt +blacklist pcwd +blacklist pcwd_pci +blacklist pcwd_usb +blacklist sbc60xxwdt +blacklist sbc7240_wdt +blacklist sbc8360 +blacklist sbc_epx_c3 +blacklist sc1200wdt +blacklist sc520_wdt +blacklist scx200_wdt +blacklist smsc37b787_wdt +blacklist softdog +blacklist w83627hf_wdt +blacklist w83697hf_wdt +blacklist w83877f_wdt +blacklist w83977f_wdt +blacklist wafer5823wdt +blacklist wdt +blacklist wdt_pci + diff --git a/source/a/udev/config/modprobe.d/isapnp.conf.new b/source/a/udev/config/modprobe.d/isapnp.conf.new new file mode 100644 index 00000000..2ed9305e --- /dev/null +++ b/source/a/udev/config/modprobe.d/isapnp.conf.new @@ -0,0 +1,15 @@ +# These aliases are here because many PnP modules do not +# provide aliases for them. +alias pnp:dPNP0400 parport_pc +alias pnp:dPNP0401 parport_pc +alias pnp:dPNP0510 irtty-sir +alias pnp:dPNP0511 irtty-sir +alias pnp:dPNP0700 floppy +alias pnp:dPNP0B00 rtc +alias acpi:PNP0B00: rtc-cmos +alias acpi:PNP0B01: rtc-cmos +alias acpi:PNP0B02: rtc-cmos +alias pnp:dPNPB02F analog +alias pnp:dPNP0F13 psmouse +alias pnp:dPNP0800 pcspkr +alias pnp:dPNP0303 atkbd diff --git a/source/a/udev/config/modprobe.d/psmouse.conf.new b/source/a/udev/config/modprobe.d/psmouse.conf.new new file mode 100644 index 00000000..70c0d819 --- /dev/null +++ b/source/a/udev/config/modprobe.d/psmouse.conf.new @@ -0,0 +1,6 @@ +# PS/2 mouse support: +# The default options when the psmouse module can cause problems with KVM +# switches. If you experience this, you may want to uncomment the line +# below to use a more basic mouse protocol with the psmouse module: +#options psmouse proto=imps + diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf.new b/source/a/udev/config/modprobe.d/usb-controller.conf.new new file mode 100644 index 00000000..4b77fd82 --- /dev/null +++ b/source/a/udev/config/modprobe.d/usb-controller.conf.new @@ -0,0 +1,4 @@ +# Make sure that ehci-hcd is always loaded before uhci-hci +# # or ohci-hcd to prevent a kernel warning: +install uhci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i uhci-hcd +install ohci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i ohci-hcd diff --git a/source/a/udev/config/rc.d/rc.udev.new b/source/a/udev/config/rc.d/rc.udev.new new file mode 100644 index 00000000..8c238b0d --- /dev/null +++ b/source/a/udev/config/rc.d/rc.udev.new @@ -0,0 +1,133 @@ +#!/bin/sh +# This is a script to initialize udev, which populates the /dev +# directory with device nodes, scans for devices, loads the +# appropriate kernel modules, and configures the devices. + +PATH="/sbin:/bin" +OPT="" + +. /etc/udev/udev.conf + +# remove trailing slash from udev_root +UDEV_ROOT=$(echo "${udev_root}" |sed 's/\/*$//') + +case "$1" in + start) + # Sanity check #1, udev requires that the kernel support tmpfs: + if ! grep -wq tmpfs /proc/filesystems ; then + echo "Sorry, but you need tmpfs support in the kernel to use udev." + echo + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + + # Sanity check #2, make sure that a 2.6.x kernel is new enough: + if [ "$(uname -r | cut -f 1,2 -d .)" = "2.6" ]; then + if [ "$(uname -r | cut -f 3 -d . | sed 's/[^[:digit:]].*//')" -lt "15" ]; then + echo "Sorry, but you need a 2.6.15+ kernel to use udev." + echo "Your kernel version is only $(uname -r)." + echo + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + fi + + # Sanity check #3, make sure the udev package was not removed. If udevd + # is not there, this will also shut off this script to prevent further + # problems: + if [ ! -x /sbin/udevd ]; then + chmod 644 /etc/rc.d/rc.udev + echo "No udevd daemon found." + echo "Turning off udev: chmod 644 /etc/rc.d/rc.udev" + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + + # Disable hotplug helper since udevd listens to netlink: + if [ -e /proc/sys/kernel/hotplug ]; then + echo "" > /proc/sys/kernel/hotplug + fi + + # if udevd is already running, rc.udev start will try to re-run + # failed events. Else, it will start udevd. + if ps axc | grep -q udevd ; then + OPT="--type=failed $OPT" + ( cd ${UDEV_ROOT}/.udev + for TMPFILE in tmp-rules-*.rules ; do + mv $TMPFILE /etc/udev/rules.d/${TMPFILE/tmp-rules--/} 2>/dev/null + done + ) + else + # Mount tmpfs on $UDEV_ROOT: + if ! grep -E -q "^[^[:space:]]+ $UDEV_ROOT tmpfs" /proc/mounts; then + # umount shm if needed + if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/shm tmpfs" /proc/mounts; then + umount -l $UDEV_ROOT/shm + fi + + # Umount pts if needed, we will remount it later: + if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/pts devpts" /proc/mounts; then + umount -l $UDEV_ROOT/pts + fi + + # Mount tmpfs on $UDEV_ROOT: + # the -n is because we don't want $UDEV_ROOT umounted when + # someone (rc.[06]) calls umount -a + mount -n -o mode=0755 -t tmpfs tmpfs $UDEV_ROOT + + # Remount pts: + mkdir $UDEV_ROOT/pts 2> /dev/null + mount -n -o mode=0620,gid=5 -t devpts devpts $UDEV_ROOT/pts + fi + + # Add the static nodes to $UDEV_ROOT: + cp --preserve=all --recursive --remove-destination /lib/udev/devices/* $UDEV_ROOT + + # Start udevd: + echo "Starting udevd: /sbin/udevd --daemon" + /sbin/udevd --daemon + + # Create rootdev rules + DEVICENUMBER=$( /bin/stat -c %d / ) + MAJORNUMBER=$(($DEVICENUMBER / 256)) + MINORNUMBER=$(($DEVICENUMBER % 256)) + + echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$MAJORNUMBER'", ENV{MINOR}=="'$MINORNUMBER'", SYMLINK+="root"' > /dev/.udev/rules.d/61-dev-root-link.rules + + fi + + echo "Triggering udev events: /sbin/udevadm trigger $OPT" + # Call udevtrigger and udevsettle to do the device configuration: + /sbin/udevadm trigger $OPT && /sbin/udevadm settle --timeout=120 + + ;; + stop) + echo "Stopping udevd" + if [ -e /proc/sys/kernel/hotplug ]; then + echo /sbin/hotplug > /proc/sys/kernel/hotplug + fi + killall udevd + ;; + restart) + echo "Restarting udevd" + killall udevd + sleep 5 + udevd --daemon + ;; + reload) + echo "Reloading udev rules" + udevadm control --reload-rules + cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT + ;; + force-reload) + echo "Updating all available device nodes in $UDEV_ROOT" + udevadm control --reload-rules + rm -rf $UDEV_ROOT/.udev $UDEV_ROOT/disk + cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT + ;; + + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" + exit 1 + ;; +esac diff --git a/source/a/udev/config/rules.d/40-slackware.rules b/source/a/udev/config/rules.d/40-slackware.rules new file mode 100644 index 00000000..29b6071e --- /dev/null +++ b/source/a/udev/config/rules.d/40-slackware.rules @@ -0,0 +1,16 @@ +# /lib/udev/rules.d/40-slackware.rules +# +# Slackware custom udev rules +# Also see the following Slackware-provided custom rules files: +# 65-permissions.rules and 90-network.rules +# +# Any change in this file will be overwritten in upgrades. Put your +# custom rules somewhere else (90-local.rules is a good idea). +# +# See the udev man page to know the parameters you can use in udev +# rules. +# + +# input devices +KERNEL=="mice", SYMLINK+="mouse" + diff --git a/source/a/udev/config/rules.d/65-permissions.rules b/source/a/udev/config/rules.d/65-permissions.rules new file mode 100644 index 00000000..b0cfb259 --- /dev/null +++ b/source/a/udev/config/rules.d/65-permissions.rules @@ -0,0 +1,52 @@ +# Slackware permission rules +# +# These rules are here instead of 40-slackware.rules because +# many of them need to run after the block section in +# 50-udev.default.rules +# +# Remember, in any upgrade, this file will be overwritten. +# Put your custom rules somewhere else (90-local.rules is +# a good idea). +# + +# all disks with group disk +KERNEL!="fd*", SUBSYSTEM=="block", GROUP="disk" + +# permissions for IDE floppy devices +KERNEL=="hd*[!0-9]", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", \ + SYMLINK+="floppy floppy-%k", OPTIONS+="ignore_remove" +KERNEL=="hd*[0-9]", ATTRS{media}=="floppy", ATTRS{removable}=="1", \ + SYMLINK+="floppy-%k", OPTIONS+="ignore_remove" + +# put all removable devices in group "plugdev" +KERNEL=="hd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev" +KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev" +KERNEL=="sd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev" +KERNEL=="sd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev" + +# Many hot-pluggable devices (ZIP, Jazz, LS-120, etc...) +# need to be in plugdev, too. +KERNEL=="diskonkey*", GROUP="plugdev" +KERNEL=="jaz*", GROUP="plugdev" +KERNEL=="pocketzip*", GROUP="plugdev" +KERNEL=="zip*", GROUP="plugdev" +KERNEL=="ls120", GROUP="plugdev" +KERNEL=="microdrive*", GROUP="plugdev" + +# CD group and permissions +ENV{ID_CDROM}=="?*", GROUP="cdrom", MODE="0660" +KERNEL=="pktcdvd", GROUP="cdrom", MODE="0660" +KERNEL=="pktcdvd[0-9]*", GROUP="cdrom", MODE="0660" +# permissions for SCSI sg devices +SUBSYSTEMS=="scsi", KERNEL=="s[gt][0-9]*", ATTRS{type}=="5", \ + GROUP="cdrom", MODE="0660" + +# Make DRI video devices usable by anyone in group "video": +KERNEL=="card[0-9]*",GROUP:="video" + +# alsa devices +SUBSYSTEM=="sound", GROUP="audio" + +# Make the real time clock readable by all, and writable by root: +KERNEL=="rtc|rtc0", MODE="0644" + diff --git a/source/a/udev/config/rules.d/90-network.rules b/source/a/udev/config/rules.d/90-network.rules new file mode 100644 index 00000000..03f2ddc7 --- /dev/null +++ b/source/a/udev/config/rules.d/90-network.rules @@ -0,0 +1,5 @@ +# This file will be overwritten in next upgrade. Please put your +# custom rules somewhere else (90-local.rules is a good idea) + +SUBSYSTEM=="net", NAME=="?*", ACTION=="add", RUN+="nethelper.sh $env{INTERFACE} start" +SUBSYSTEM=="net", NAME=="?*", ACTION=="remove", RUN+="nethelper.sh $env{INTERFACE} stop" diff --git a/source/a/udev/config/scripts/nethelper.sh b/source/a/udev/config/scripts/nethelper.sh new file mode 100755 index 00000000..9e172027 --- /dev/null +++ b/source/a/udev/config/scripts/nethelper.sh @@ -0,0 +1,62 @@ +#!/bin/sh +DEVNAME="$1" +COMMAND="$2" + +testwrite() { + if touch /var/run/checkrw 2>/dev/null ; then + rm -rf /var/run/checkrw + RW=1 + fi +} + +case $DEVNAME in + eth*|ath*|wlan*|ra*|sta*|ctc*|lcs*|hsi*) + case $COMMAND in + 'start') + testwrite + + if [ $RW ]; then + if [ -x /etc/rc.d/rc.inet1 ]; then + if ! /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then + /etc/rc.d/rc.inet1 ${DEVNAME}_start + fi + fi + exit 0 + else + exit 1 + fi + ;; + 'stop') + if [ -x /etc/rc.d/rc.inet1 ]; then + if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then + /etc/rc.d/rc.inet1 ${DEVNAME}_stop + fi + fi + # Does dhcpcd appear to still be running on the + # interface? If so, try to stop it. + if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid -o -r /var/run/dhcpcd-$DEVNAME.pid ]; then + /sbin/dhcpcd -k -d $DEVNAME + # Force garbage removal, if needed: + if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid ]; then + /bin/rm -f /etc/dhcpc/dhcpcd-$DEVNAME.pid + elif [ -r /var/run/dhcpcd-$DEVNAME.pid ]; then + /bin/rm -f /var/run/dhcpcd-$DEVNAME.pid + fi + fi + # If the interface is now down, exit with a status of 0: + if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} " ; then + exit 0 + fi + ;; + *) + echo "usage $0 interface start|stop" + exit 1 + ;; + esac + ;; + *) + echo "Interface $DEVNAME not supported." + exit 1 + ;; +esac +exit 0 diff --git a/source/a/udev/config/udev.conf b/source/a/udev/config/udev.conf new file mode 100644 index 00000000..b0421a08 --- /dev/null +++ b/source/a/udev/config/udev.conf @@ -0,0 +1,14 @@ +# udev.conf +# The main config file for udev +# +# This file can be used to override some of udev's default values for where it +# looks for files, and where it places device nodes. + +# udev_root - where in the filesystem to place the device nodes +udev_root="/dev/" + +# udev_log - The initial syslog(3) priority: "err", "info", "debug" or +# its numerical equivalent. For runtime debugging, the daemons +# internal state can be changed with: udevcontrol log_priority=<value> +udev_log="err" + diff --git a/source/a/udev/doinst.sh b/source/a/udev/doinst.sh new file mode 100644 index 00000000..5e737ca0 --- /dev/null +++ b/source/a/udev/doinst.sh @@ -0,0 +1,39 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.udev.new: +if [ -e etc/rc.d/rc.udev ]; then + cp -a etc/rc.d/rc.udev etc/rc.d/rc.udev.new.incoming + cat etc/rc.d/rc.udev.new > etc/rc.d/rc.udev.new.incoming + mv etc/rc.d/rc.udev.new.incoming etc/rc.d/rc.udev.new +fi + +# There's no reason for a user to edit rc.udev, so overwrite it: +if [ -r etc/rc.d/rc.udev.new ]; then + mv etc/rc.d/rc.udev.new etc/rc.d/rc.udev +fi + +# This should catch *all* files in /etc/modprobe.d/ and move them over to +# have .conf extensions +for modfile in $(ls etc/modprobe.d/ | grep -v "\.\(conf\|bak\|orig\|new\)"); do + if [ -e etc/modprobe.d/$modfile -a ! -e etc/modprobe.d/$modfile.conf ]; then + mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.conf + elif [ -e etc/modprobe.d/$modfile -a -e etc/modprobe.d/$modfile.conf ]; then + mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.bak + fi +done + +config etc/modprobe.d/blacklist.conf.new +config etc/modprobe.d/isapnp.conf.new +config etc/modprobe.d/psmouse.conf.new +config etc/modprobe.d/usb-controller.conf.new + diff --git a/source/a/udev/rule_generator.diff b/source/a/udev/rule_generator.diff new file mode 100644 index 00000000..0ff218a6 --- /dev/null +++ b/source/a/udev/rule_generator.diff @@ -0,0 +1,80 @@ +diff -Naur udev-114/extras/rule_generator/write_cd_rules udev-114slk/extras/rule_generator/write_cd_rules +--- udev-114/extras/rule_generator/write_cd_rules 2007-08-05 09:08:47.000000000 -0300 ++++ udev-114slk/extras/rule_generator/write_cd_rules 2007-08-22 20:17:24.000000000 -0300 +@@ -3,7 +3,8 @@ + # This script is run if an optical drive lacks a rule for persistent naming. + # + # It adds symlinks for optical drives based on the device class determined +-# by cdrom_id and used ID_PATH to identify the device. ++# by cdrom_id and used ID_PATH or ID_SERIAL or ID_MODEL and ID_REVISION ++# to identify the device. + # + # (C) 2006 Marco d'Itri <md@Linux.IT> + # +@@ -97,18 +98,59 @@ + choose_rules_file + + link_num=$(find_next_available 'cdrom[0-9]*') ++[ "$link_num" = "" ] && link_num=0 + + match="ENV{ID_CDROM}==\"?*\", $RULE" + + comment="$ID_MODEL ($ID_PATH)" +- + write_rule "$match" "cdrom$link_num" "$comment" +-[ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \ +- write_rule "$match" "cdrw$link_num" +-[ "$ID_CDROM_DVD" ] && \ +- write_rule "$match" "dvd$link_num" +-[ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ] && \ +- write_rule "$match" "dvdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdrom)" = "" ]; then ++ write_rule "$match" "cdrom" ++ fi ++ ++ if [ "$ID_CDROM_CD_R" ]; then ++ write_rule "$match" "cdr$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdr)" = "" ]; then ++ write_rule "$match" "cdr" ++ fi ++ ++ write_rule "$match" "cdwriter$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdwriter)" = "" ]; then ++ write_rule "$match" "cdwriter" ++ fi ++ ++ if [ "$ID_CDROM_CD_RW" ]; then ++ write_rule "$match" "cdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdrw)" = "" ]; then ++ write_rule "$match" "cdrw" ++ fi ++ fi ++ ++ if [ "$(find_all_rules 'SYMLINK+=' writer)" = "" ]; then ++ write_rule "$match" "writer" ++ fi ++ fi ++ ++ if [ "$ID_CDROM_DVD" ]; then ++ write_rule "$match" "dvd$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvd)" = "" ]; then ++ write_rule "$match" "dvd" ++ fi ++ ++ if [ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ]; then ++ write_rule "$match" "dvdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvdrw)" = "" ]; then ++ write_rule "$match" "dvdrw" ++ fi ++ ++ write_rule "$match" "dvdwriter$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvdwriter)" = "" ]; then ++ write_rule "$match" "dvdwriter" ++ fi ++ fi ++ fi ++ ++ + + unlock_rules_file + diff --git a/source/a/udev/slack-desc b/source/a/udev/slack-desc new file mode 100644 index 00000000..c411756c --- /dev/null +++ b/source/a/udev/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +udev: udev (dynamic device directory system) +udev: +udev: udev provides a dynamic device directory containing only the files +udev: for the devices which are actually present. It creates or removes +udev: device node files usually located in the /dev directory. +udev: +udev: udev requires a 2.6 or newer kernel. +udev: +udev: Kay Sievers is the udev maintainer. +udev: +udev: diff --git a/source/a/udev/udev-141.tar.bz2.sign b/source/a/udev/udev-141.tar.bz2.sign new file mode 100644 index 00000000..a3082691 --- /dev/null +++ b/source/a/udev/udev-141.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBJ3TgkyGugalF9Dw4RAtJCAJ4+ns9bz4ZIu+3ecfra/BWrn3euqwCeOFQZ +6A7UqbHlTlD48sOk249ZATA= +=AY1A +-----END PGP SIGNATURE----- diff --git a/source/a/udev/udev.SlackBuild b/source/a/udev/udev.SlackBuild new file mode 100755 index 00000000..0c632748 --- /dev/null +++ b/source/a/udev/udev.SlackBuild @@ -0,0 +1,140 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +VERSION=${VERSION:-141} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-udev + +rm -rf $PKG +mkdir -p $TMP $PKG/lib/udev +cd $TMP +rm -rf udev-$VERSION +tar xvf $CWD/udev-$VERSION.tar.bz2 || exit 1 +cd udev-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/rule_generator.diff.gz | patch -p1 --verbose || exit 1 + +./configure \ + --prefix=/usr \ + --exec-prefix=/ \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-libdir-name=lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# scsi_id and vol_id are needed by multipath +( cd $PKG/sbin + ln -s ../lib/udev/scsi_id scsi_id + ln -s ../lib/udev/vol_id vol_id +) + +mkdir -p \ + $PKG/etc/modprobe.d \ + $PKG/etc/rc.d \ + $PKG/etc/udev/rules.d \ + $PKG/lib/firmware + +# Yes, these will clobber existing config files. +cp -a $CWD/config/udev.conf $PKG/etc/udev/udev.conf +# Copy Slackware custom rules +cp -a $CWD/config/rules.d/* $PKG/lib/udev/rules.d/ +# Copy some files from upstream +cp -a rules/packages/40-alsa.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-isdn.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-zaptel.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-infiniband.rules $PKG/lib/udev/rules.d/ +#cp -a rules/packages/40-pilot-links.rules $PKG/etc/udev/rules.d/ +#cp -a rules/packages/64-md-raid.rules $PKG/etc/udev/rules.d/ +# Now the init script and module-init-tools stuff +cp -a $CWD/config/rc.d/rc.udev.new $PKG/etc/rc.d/rc.udev.new +cp -a $CWD/config/modprobe.d/* $PKG/etc/modprobe.d + +chown -R root:root $PKG/etc +find $PKG/etc -type f -exec chmod 644 {} \; +find $PKG/etc -type d -exec chmod 755 {} \; +chmod 755 $PKG/etc/rc.d/rc.udev.new + +# Add extra device nodes to the package that udev doesn't make: +tar xvf $CWD/udev-fixed-devices.tar.gz -C $PKG + +# Add various helper scripts: +for file in $CWD/config/scripts/* ; do + cp -a $file $PKG/lib/udev/ +done +chown -R root:root $PKG/lib/udev +chmod 755 $PKG/lib/udev/* + +mkdir -p $PKG/usr/doc/udev-$VERSION +cp -a \ + COPYING* FAQ README* TODO RELEASE-NOTES docs \ + $PKG/usr/doc/udev-$VERSION + +# Compress and fix manpage symlinks: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c y $TMP/udev-$VERSION-$ARCH-$BUILD.txz |