From 9664bee729d487bcc0a0bc35859f8e13d5421c75 Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Wed, 26 Sep 2012 01:10:42 +0000 Subject: Slackware 14.0 Wed Sep 26 01:10:42 UTC 2012 Slackware 14.0 x86_64 stable is released! We're perfectionists here at Slackware, so this release has been a long time a-brewing. But we think you'll agree that it was worth the wait. Slackware 14.0 combines modern components, ease of use, and flexible configuration... our "KISS" philosophy demands it. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Thanks to everyone who helped make this happen. The Slackware team, the upstream developers, and (of course) the awesome Slackware user community. Have fun! :-) --- source/a/udev/config/modprobe.d/8139cp.conf | 7 + source/a/udev/config/modprobe.d/README | 11 + source/a/udev/config/modprobe.d/bcm43xx.conf | 7 + source/a/udev/config/modprobe.d/blacklist.conf.new | 270 ------------------ source/a/udev/config/modprobe.d/eepro100.conf | 8 + source/a/udev/config/modprobe.d/eth1394.conf | 8 + source/a/udev/config/modprobe.d/evbug.conf | 7 + source/a/udev/config/modprobe.d/framebuffers.conf | 48 ++++ source/a/udev/config/modprobe.d/hostap.conf | 12 + source/a/udev/config/modprobe.d/hw_random.conf | 7 + source/a/udev/config/modprobe.d/isapnp.conf | 24 ++ source/a/udev/config/modprobe.d/isapnp.conf.new | 15 - source/a/udev/config/modprobe.d/isdn.conf | 11 + source/a/udev/config/modprobe.d/oss.conf | 61 +++++ source/a/udev/config/modprobe.d/pcspkr.conf | 9 + source/a/udev/config/modprobe.d/psmouse.conf | 10 + source/a/udev/config/modprobe.d/psmouse.conf.new | 6 - .../config/modprobe.d/scsi-sata-controllers.conf | 81 ++++++ source/a/udev/config/modprobe.d/sound-modems.conf | 10 + source/a/udev/config/modprobe.d/tulip.conf | 11 + .../a/udev/config/modprobe.d/usb-controller.conf | 9 + .../udev/config/modprobe.d/usb-controller.conf.new | 4 - source/a/udev/config/modprobe.d/via-ircc.conf | 7 + source/a/udev/config/modprobe.d/watchdog.conf | 43 +++ source/a/udev/config/rc.d/rc.udev.new | 92 ++++--- source/a/udev/config/rules.d/40-slackware.rules | 3 + source/a/udev/config/rules.d/90-network.rules | 5 - source/a/udev/config/scripts/nethelper.sh | 62 ----- source/a/udev/doinst.sh | 11 +- source/a/udev/fix-42-usb-hid-pm.rules.diff | 18 ++ source/a/udev/rule_generator.diff | 90 +++--- ...ixup-all-8-not-only-6-bytes-of-the-fw_rev.patch | 27 ++ source/a/udev/udev.SlackBuild | 62 +++-- ...-560de575148b7efda3b34a7f7073abd483c5f08e.patch | 305 --------------------- 34 files changed, 568 insertions(+), 793 deletions(-) create mode 100644 source/a/udev/config/modprobe.d/8139cp.conf create mode 100644 source/a/udev/config/modprobe.d/README create mode 100644 source/a/udev/config/modprobe.d/bcm43xx.conf delete mode 100644 source/a/udev/config/modprobe.d/blacklist.conf.new create mode 100644 source/a/udev/config/modprobe.d/eepro100.conf create mode 100644 source/a/udev/config/modprobe.d/eth1394.conf create mode 100644 source/a/udev/config/modprobe.d/evbug.conf create mode 100644 source/a/udev/config/modprobe.d/framebuffers.conf create mode 100644 source/a/udev/config/modprobe.d/hostap.conf create mode 100644 source/a/udev/config/modprobe.d/hw_random.conf create mode 100644 source/a/udev/config/modprobe.d/isapnp.conf delete mode 100644 source/a/udev/config/modprobe.d/isapnp.conf.new create mode 100644 source/a/udev/config/modprobe.d/isdn.conf create mode 100644 source/a/udev/config/modprobe.d/oss.conf create mode 100644 source/a/udev/config/modprobe.d/pcspkr.conf create mode 100644 source/a/udev/config/modprobe.d/psmouse.conf delete mode 100644 source/a/udev/config/modprobe.d/psmouse.conf.new create mode 100644 source/a/udev/config/modprobe.d/scsi-sata-controllers.conf create mode 100644 source/a/udev/config/modprobe.d/sound-modems.conf create mode 100644 source/a/udev/config/modprobe.d/tulip.conf create mode 100644 source/a/udev/config/modprobe.d/usb-controller.conf delete mode 100644 source/a/udev/config/modprobe.d/usb-controller.conf.new create mode 100644 source/a/udev/config/modprobe.d/via-ircc.conf create mode 100644 source/a/udev/config/modprobe.d/watchdog.conf delete mode 100644 source/a/udev/config/rules.d/90-network.rules delete mode 100755 source/a/udev/config/scripts/nethelper.sh create mode 100644 source/a/udev/fix-42-usb-hid-pm.rules.diff create mode 100644 source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch delete mode 100644 source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch (limited to 'source/a/udev') diff --git a/source/a/udev/config/modprobe.d/8139cp.conf b/source/a/udev/config/modprobe.d/8139cp.conf new file mode 100644 index 00000000..65f0af0d --- /dev/null +++ b/source/a/udev/config/modprobe.d/8139cp.conf @@ -0,0 +1,7 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# Alternate 8139 driver. Some 8139 cards need this specific driver, though... +blacklist 8139cp + diff --git a/source/a/udev/config/modprobe.d/README b/source/a/udev/config/modprobe.d/README new file mode 100644 index 00000000..43355e82 --- /dev/null +++ b/source/a/udev/config/modprobe.d/README @@ -0,0 +1,11 @@ +# /etc/modprobe.d/README +# +# The monolithic "blacklist" file (and others) that used to be here in this +# directory have been split into several more fine-grained files and moved +# to the /lib/modprobe.d/ directory. Any file in /lib/modprobe.d/ will be +# overridden by an identically named file in this directory (/etc/modprobe.d/) +# or /run/modprobe.d/ (but since /run is on a tmpfs, it's not persistent +# across reboots, so you probably don't want to use it). +# +# See "man modprobe.d" for more information. +# diff --git a/source/a/udev/config/modprobe.d/bcm43xx.conf b/source/a/udev/config/modprobe.d/bcm43xx.conf new file mode 100644 index 00000000..55b3c2ab --- /dev/null +++ b/source/a/udev/config/modprobe.d/bcm43xx.conf @@ -0,0 +1,7 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# Deprecated BCM4318 driver. +blacklist bcm43xx + diff --git a/source/a/udev/config/modprobe.d/blacklist.conf.new b/source/a/udev/config/modprobe.d/blacklist.conf.new deleted file mode 100644 index 25811703..00000000 --- a/source/a/udev/config/modprobe.d/blacklist.conf.new +++ /dev/null @@ -1,270 +0,0 @@ -# -# 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/eepro100.conf b/source/a/udev/config/modprobe.d/eepro100.conf new file mode 100644 index 00000000..a7ca4aae --- /dev/null +++ b/source/a/udev/config/modprobe.d/eepro100.conf @@ -0,0 +1,8 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# Alternate Intel EtherExpress Pro/100 support driver. List it +# here so it won't conflict with an already-loaded e100 module. +blacklist eepro100 + diff --git a/source/a/udev/config/modprobe.d/eth1394.conf b/source/a/udev/config/modprobe.d/eth1394.conf new file mode 100644 index 00000000..a2f475af --- /dev/null +++ b/source/a/udev/config/modprobe.d/eth1394.conf @@ -0,0 +1,8 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# Ethernet over IEEE1394 module. In too many cases this will load +# when there's no eth1394 device present (just an IEEE1394 port) +blacklist eth1394 + diff --git a/source/a/udev/config/modprobe.d/evbug.conf b/source/a/udev/config/modprobe.d/evbug.conf new file mode 100644 index 00000000..0af0a83c --- /dev/null +++ b/source/a/udev/config/modprobe.d/evbug.conf @@ -0,0 +1,7 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +#evbug is a debug tool and should be loaded explicitly +blacklist evbug + diff --git a/source/a/udev/config/modprobe.d/framebuffers.conf b/source/a/udev/config/modprobe.d/framebuffers.conf new file mode 100644 index 00000000..770ce420 --- /dev/null +++ b/source/a/udev/config/modprobe.d/framebuffers.conf @@ -0,0 +1,48 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# 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 +blacklist viafb +blacklist virgefb + diff --git a/source/a/udev/config/modprobe.d/hostap.conf b/source/a/udev/config/modprobe.d/hostap.conf new file mode 100644 index 00000000..4254d3da --- /dev/null +++ b/source/a/udev/config/modprobe.d/hostap.conf @@ -0,0 +1,12 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# Modules used to run a wireless adapter 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 + diff --git a/source/a/udev/config/modprobe.d/hw_random.conf b/source/a/udev/config/modprobe.d/hw_random.conf new file mode 100644 index 00000000..b912e012 --- /dev/null +++ b/source/a/udev/config/modprobe.d/hw_random.conf @@ -0,0 +1,7 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# This module has also been known to cause crashes with some hardware. +blacklist hw_random + diff --git a/source/a/udev/config/modprobe.d/isapnp.conf b/source/a/udev/config/modprobe.d/isapnp.conf new file mode 100644 index 00000000..a89ad6bb --- /dev/null +++ b/source/a/udev/config/modprobe.d/isapnp.conf @@ -0,0 +1,24 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# These aliases are here because many PnP modules do not provide them. +# +# NOTE: Commented out due to noise pollution from udev. +# In the unlikely event that your machine needs these aliases, copy this +# file to /etc/modprobe.d/isapnp.conf and uncomment them there. + +#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/isapnp.conf.new b/source/a/udev/config/modprobe.d/isapnp.conf.new deleted file mode 100644 index 2ed9305e..00000000 --- a/source/a/udev/config/modprobe.d/isapnp.conf.new +++ /dev/null @@ -1,15 +0,0 @@ -# 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/isdn.conf b/source/a/udev/config/modprobe.d/isdn.conf new file mode 100644 index 00000000..7f736753 --- /dev/null +++ b/source/a/udev/config/modprobe.d/isdn.conf @@ -0,0 +1,11 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# These two come from the hwdata project +# Bug numbers are Fedora/RH specific + +# ISDN - see bugs 154799, 159068 +blacklist hisax +blacklist hisax_fcpcipnp + diff --git a/source/a/udev/config/modprobe.d/oss.conf b/source/a/udev/config/modprobe.d/oss.conf new file mode 100644 index 00000000..52ed2f59 --- /dev/null +++ b/source/a/udev/config/modprobe.d/oss.conf @@ -0,0 +1,61 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# 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 + diff --git a/source/a/udev/config/modprobe.d/pcspkr.conf b/source/a/udev/config/modprobe.d/pcspkr.conf new file mode 100644 index 00000000..66de6b74 --- /dev/null +++ b/source/a/udev/config/modprobe.d/pcspkr.conf @@ -0,0 +1,9 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# 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 + diff --git a/source/a/udev/config/modprobe.d/psmouse.conf b/source/a/udev/config/modprobe.d/psmouse.conf new file mode 100644 index 00000000..cc414141 --- /dev/null +++ b/source/a/udev/config/modprobe.d/psmouse.conf @@ -0,0 +1,10 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# 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/psmouse.conf.new b/source/a/udev/config/modprobe.d/psmouse.conf.new deleted file mode 100644 index 70c0d819..00000000 --- a/source/a/udev/config/modprobe.d/psmouse.conf.new +++ /dev/null @@ -1,6 +0,0 @@ -# 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/scsi-sata-controllers.conf b/source/a/udev/config/modprobe.d/scsi-sata-controllers.conf new file mode 100644 index 00000000..61470416 --- /dev/null +++ b/source/a/udev/config/modprobe.d/scsi-sata-controllers.conf @@ -0,0 +1,81 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# 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 + diff --git a/source/a/udev/config/modprobe.d/sound-modems.conf b/source/a/udev/config/modprobe.d/sound-modems.conf new file mode 100644 index 00000000..f458346d --- /dev/null +++ b/source/a/udev/config/modprobe.d/sound-modems.conf @@ -0,0 +1,10 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# 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 + diff --git a/source/a/udev/config/modprobe.d/tulip.conf b/source/a/udev/config/modprobe.d/tulip.conf new file mode 100644 index 00000000..64b6a5ca --- /dev/null +++ b/source/a/udev/config/modprobe.d/tulip.conf @@ -0,0 +1,11 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# 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 + diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf b/source/a/udev/config/modprobe.d/usb-controller.conf new file mode 100644 index 00000000..f5e4e502 --- /dev/null +++ b/source/a/udev/config/modprobe.d/usb-controller.conf @@ -0,0 +1,9 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# The EHCI driver should be loaded before the ones for low speed controllers +# or some devices may be confused when they are disconnected and reconnected. +softdep uhci-hcd pre: ehci-hcd +softdep ohci-hcd pre: ehci-hcd + diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf.new b/source/a/udev/config/modprobe.d/usb-controller.conf.new deleted file mode 100644 index 4b77fd82..00000000 --- a/source/a/udev/config/modprobe.d/usb-controller.conf.new +++ /dev/null @@ -1,4 +0,0 @@ -# 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/modprobe.d/via-ircc.conf b/source/a/udev/config/modprobe.d/via-ircc.conf new file mode 100644 index 00000000..3dfa5731 --- /dev/null +++ b/source/a/udev/config/modprobe.d/via-ircc.conf @@ -0,0 +1,7 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# The kernel lists this as "experimental", but for now it's "broken" +blacklist via-ircc + diff --git a/source/a/udev/config/modprobe.d/watchdog.conf b/source/a/udev/config/modprobe.d/watchdog.conf new file mode 100644 index 00000000..66d1f837 --- /dev/null +++ b/source/a/udev/config/modprobe.d/watchdog.conf @@ -0,0 +1,43 @@ +############################################################################## +# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that +############################################################################## + +# Blacklist all watchdog modules. Many motherboards hang with them, and +# if you really need a 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 i8xx_tco +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/rc.d/rc.udev.new b/source/a/udev/config/rc.d/rc.udev.new index 6a6218f6..2bbd9819 100644 --- a/source/a/udev/config/rc.d/rc.udev.new +++ b/source/a/udev/config/rc.d/rc.udev.new @@ -4,7 +4,6 @@ # appropriate kernel modules, and configures the devices. PATH="/sbin:/bin" -OPT="" . /etc/udev/udev.conf @@ -25,26 +24,38 @@ mount_devpts() { case "$1" in start) - # Sanity check #1, udev requires that the kernel support tmpfs: + # Sanity check #1, udev requires that the kernel support devtmpfs: + if ! grep -wq devtmpfs /proc/filesystems ; then + echo "Sorry, but you need devtmpfs support in the kernel to use udev." + echo "Both of these options are needed: CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y" + echo + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + sleep 10 + exit 1 + fi + + # Sanity check #2, 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." + sleep 10 exit 1 fi - # Sanity check #2, make sure that a 2.6.x kernel is new enough: + # Sanity check #3, 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 "32" ]; then echo "Sorry, but you need a 2.6.32+ kernel to use this udev." echo "Your kernel version is only $(uname -r)." echo echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + sleep 10 exit 1 fi fi - # Sanity check #3, make sure the udev package was not removed. If udevd + # Sanity check #4, 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 @@ -52,6 +63,7 @@ case "$1" in 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." + sleep 10 exit 1 fi @@ -90,47 +102,41 @@ case "$1" in # Mount devpts mount_devpts - # Start udevd. - /sbin/udevd --daemon 2>/dev/null - - # If udevd was already running, then it will return !=0 exit code, - # so we'll try to re-run failed events - if [ $? != 0 ]; 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 # udev is just now being started, so we'll do some initial setup: - - # Create rootdev rules - DEVICENUMBER=$( /bin/stat -c %d / ) - MAJORNUMBER=$(($DEVICENUMBER / 256)) - MINORNUMBER=$(($DEVICENUMBER % 256)) - - echo 'ACTION!="remove", SUBSYSTEM=="block", ENV{MAJOR}=="'$MAJORNUMBER'", ENV{MINOR}=="'$MINORNUMBER'", SYMLINK+="root"' > /dev/.udev/rules.d/61-dev-root-link.rules - - # Set OPT="--action=add" to generate add events on coldplug - OPT="--action=add" - - 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 - - ;; + if ! /sbin/pidof udevd 1>/dev/null 2>/dev/null; then # start udevd + echo "Starting udevd: /sbin/udevd --daemon" + /sbin/udevd --daemon + # Since udev is just now being started we want to use add events: + echo "Triggering udev events: /sbin/udevadm trigger --action=add" + # Call udevtrigger and udevsettle to do the device configuration: + /sbin/udevadm trigger --type=subsystems --action=add + /sbin/udevadm trigger --type=devices --action=add + else # trigger changes for already running udevd + # If the persistent rules files do not exist, trigger an add event: + if [ ! -r /etc/udev/rules.d/70-persistent-net.rules ]; then + # Test that we can actually write to the directory first: + if touch /etc/udev/rules.d/testfile 2> /dev/null ; then + rm -f /etc/udev/rules.d/testfile + # This should add persistent net/cd rules: + echo "Triggering udev to write persistent rules to /etc/udev/rules.d/" + /sbin/udevadm trigger --type=devices --action=add + sleep 3 + fi + fi + # Since udevd is running, most of the time we only need change events: + echo "Triggering udev events: /sbin/udevadm trigger --action=change" + /sbin/udevadm trigger --type=subsystems --action=change + /sbin/udevadm trigger --type=devices --action=change + fi + /sbin/udevadm settle --timeout=120 + ;; stop) echo "Stopping udevd is STRONGLY discouraged and not supported." echo "If you are sure you want to do this, use 'force-stop' instead." ;; force-stop) echo "Stopping udevd" - if [ -e /proc/sys/kernel/hotplug ]; then - echo /sbin/hotplug > /proc/sys/kernel/hotplug - fi - killall udevd + udevadm control --exit + killall udevd 2>/dev/null ;; restart) echo "Restarting udevd is STRONGLY discouraged and not supported." @@ -138,18 +144,18 @@ case "$1" in ;; force-restart) echo "Restarting udevd" - killall udevd - sleep 5 + udevadm control --exit + sleep 3 udevd --daemon ;; reload) echo "Reloading udev rules" - udevadm control --reload-rules + udevadm control --reload 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 + udevadm control --reload rm -rf $UDEV_ROOT/.udev $UDEV_ROOT/disk cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT ;; diff --git a/source/a/udev/config/rules.d/40-slackware.rules b/source/a/udev/config/rules.d/40-slackware.rules index 6883f526..9e8c6342 100644 --- a/source/a/udev/config/rules.d/40-slackware.rules +++ b/source/a/udev/config/rules.d/40-slackware.rules @@ -17,3 +17,6 @@ KERNEL=="mice", SYMLINK+="mouse" # Set rfkill device writable by netdev group KERNEL=="rfkill", GROUP:="netdev", MODE:="0664" +# Mount fusectl filesystem +KERNEL=="fuse", ACTION=="add", RUN+="/bin/mount -t fusectl fusectl /sys/fs/fuse/connections" + diff --git a/source/a/udev/config/rules.d/90-network.rules b/source/a/udev/config/rules.d/90-network.rules deleted file mode 100644 index 03f2ddc7..00000000 --- a/source/a/udev/config/rules.d/90-network.rules +++ /dev/null @@ -1,5 +0,0 @@ -# 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 deleted file mode 100755 index 9e172027..00000000 --- a/source/a/udev/config/scripts/nethelper.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/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/doinst.sh b/source/a/udev/doinst.sh index 5b7f5f90..2912e5c8 100644 --- a/source/a/udev/doinst.sh +++ b/source/a/udev/doinst.sh @@ -25,17 +25,12 @@ 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 + if [ "$modfile" = README ]; then + true # do nothing + elif [ -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 - -/sbin/udevadm info --convert-db 1>/dev/null 2>/dev/null - diff --git a/source/a/udev/fix-42-usb-hid-pm.rules.diff b/source/a/udev/fix-42-usb-hid-pm.rules.diff new file mode 100644 index 00000000..2a1d529f --- /dev/null +++ b/source/a/udev/fix-42-usb-hid-pm.rules.diff @@ -0,0 +1,18 @@ +diff -u -r --new-file udev-182.orig/rules/42-usb-hid-pm.rules udev-182/rules/42-usb-hid-pm.rules +--- udev-182.orig/rules/42-usb-hid-pm.rules 2012-03-12 16:40:40.569534100 -0500 ++++ udev-182/rules/42-usb-hid-pm.rules 2012-09-10 13:36:44.171054934 -0500 +@@ -43,7 +43,13 @@ + ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04b3", ATTR{idProduct}=="4012", TEST=="power/control", ATTR{power/control}="auto" + + # Raritan Computer, Inc KVM. +-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}=="0002", TEST=="power/control", ATTR{power/control}="auto" + + # USB HID devices that are internal to the machine should also be safe to autosuspend ++ ++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end" ++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end" ++ + ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto" ++ ++LABEL="usb_hid_pm_end" diff --git a/source/a/udev/rule_generator.diff b/source/a/udev/rule_generator.diff index 212c09f1..25c72b84 100644 --- a/source/a/udev/rule_generator.diff +++ b/source/a/udev/rule_generator.diff @@ -1,6 +1,6 @@ -diff -Nur udev-159.orig//extras/rule_generator/write_cd_rules udev-159/extras/rule_generator/write_cd_rules ---- udev-159.orig//extras/rule_generator/write_cd_rules 2010-06-25 04:37:36.000000000 -0500 -+++ udev-159/extras/rule_generator/write_cd_rules 2010-07-07 02:44:14.501947041 -0500 +diff -Nur udev-182.orig/src/rule_generator/write_cd_rules udev-182/src/rule_generator/write_cd_rules +--- udev-182.orig/src/rule_generator/write_cd_rules 2012-03-24 22:47:53.138527732 -0500 ++++ udev-182/src/rule_generator/write_cd_rules 2012-03-24 22:59:42.595889830 -0500 @@ -3,7 +3,8 @@ # This script is run if an optical drive lacks a rule for persistent naming. # @@ -21,58 +21,58 @@ diff -Nur udev-159.orig//extras/rule_generator/write_cd_rules udev-159/extras/ru comment="$ID_MODEL ($ID_PATH)" - - write_rule "$match" "cdrom$link_num" "$comment" + write_rule "$match" "cdrom$link_num" "$comment" -[ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \ -- write_rule "$match" "cdrw$link_num" +- write_rule "$match" "cdrw$link_num" -[ "$ID_CDROM_DVD" ] && \ -- write_rule "$match" "dvd$link_num" +- 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 +- 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 ++ 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 ++ 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 [ "$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 [ "$(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" ]; 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 ++ 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 ++ write_rule "$match" "dvdwriter$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvdwriter)" = "" ]; then ++ write_rule "$match" "dvdwriter" ++ fi ++ fi ++ fi echo >> $RULES_FILE unlock_rules_file diff --git a/source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch b/source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch new file mode 100644 index 00000000..bfa0c76a --- /dev/null +++ b/source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch @@ -0,0 +1,27 @@ +Adapted from the following patch (path and actual line number changes): + +From daa9cf546ce7265645ced9592dd54c6b2fc04302 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 5 Jul 2012 16:53:08 +0200 +Subject: [PATCH] udev: ata_id - fixup all 8 not only 6 bytes of the fw_rev + string + +The last two digits are in the wrong order: + $ hdparm -I /dev/sda | grep Revision + 4PC10362 + + $ /lib/udev/ata_id -x /dev/sda | grep REVISION + 4PC10326 + +diff -Nur udev-182.orig/src/ata_id/ata_id.c udev-182/src/ata_id/ata_id.c +--- udev-182.orig/src/ata_id/ata_id.c 2012-03-13 19:00:51.220734316 -0500 ++++ udev-182/src/ata_id/ata_id.c 2012-07-14 19:48:34.224478831 -0500 +@@ -511,7 +511,7 @@ + * use and copy it into the hd_driveid struct for convenience + */ + disk_identify_fixup_string (identify, 10, 20); /* serial */ +- disk_identify_fixup_string (identify, 23, 6); /* fwrev */ ++ disk_identify_fixup_string (identify, 23, 8); /* fwrev */ + disk_identify_fixup_string (identify, 27, 40); /* model */ + disk_identify_fixup_uint16 (identify, 0); /* configuration */ + disk_identify_fixup_uint16 (identify, 75); /* queue depth */ diff --git a/source/a/udev/udev.SlackBuild b/source/a/udev/udev.SlackBuild index c6f83a0e..183c6667 100755 --- a/source/a/udev/udev.SlackBuild +++ b/source/a/udev/udev.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2006, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2006, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,7 +21,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. VERSION=${VERSION:-$(echo udev-*.tar.* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-5} NUMJOBS=${NUMJOBS:-" -j7 "} @@ -58,29 +58,35 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -# So this is a major bug. At least, it triggers one in the kernel. -# We'll revert it for now. If left in place, machines using ATA -# (especially PATA) are liable to randomly crash on reboot. -# The last little bit of this patch fails to reverse but it won't matter. -if [ $VERSION = 165 ]; then - zcat $CWD/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch.gz | patch -p1 -R -fi +# Fix ata_id (remove with udev-186+) +zcat $CWD/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch.gz | patch -p1 || exit 1 + +# Fix 42-usb-hid-pm.rules (remove with udev-187+) +zcat $CWD/fix-42-usb-hid-pm.rules.diff.gz | patch -p1 --verbose || exit 1 # Fixup the rule generator for our use -zcat $CWD/rule_generator.diff.gz | patch -p1 || exit 1 +zcat $CWD/rule_generator.diff.gz | patch -p1 --verbose || exit 1 # static libudev is needed for lvm2 +# --enable-udev_acl was removed (will be part of future CK release) +# --enable-floppy support was also disabled by default in 173 +# --enable-rule_generator was disabled by default in 175 ./configure \ - --enable-static \ --prefix=/usr \ - --sysconfdir=/etc \ - --sbindir=/sbin \ + --with-rootprefix=/ \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --with-rootlibdir=/lib${LIBDIRSUFFIX} \ - --libexecdir=/lib/udev \ - --disable-introspection \ + --with-firmware-path=/lib/firmware/updates:/lib/firmware \ + --sysconfdir=/etc \ + --bindir=/sbin \ + --sbindir=/sbin \ + --libexecdir=/lib \ + --enable-introspection \ --mandir=/usr/man \ --docdir=/usr/doc/udev-$VERSION \ + --enable-floppy \ + --enable-static \ + --enable-rule_generator \ --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 @@ -92,8 +98,13 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ # scsi_id is needed by multipath ( cd $PKG/sbin ; ln -s ../lib/udev/scsi_id scsi_id ) +# Put udevd back in /sbin +mv $PKG/lib/udev/udevd $PKG/sbin +ln -s /sbin/udevd $PKG/lib/udev/udevd + mkdir -p \ - $PKG/etc/modprobe.d \ + $PKG/run \ + $PKG/{etc,lib}/modprobe.d \ $PKG/etc/rc.d \ $PKG/etc/udev/rules.d \ $PKG/lib/firmware @@ -106,32 +117,23 @@ cp -a $CWD/config/rules.d/* $PKG/lib/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 +cp -a $CWD/config/modprobe.d/*.conf $PKG/lib/modprobe.d/ +cp -a $CWD/config/modprobe.d/README $PKG/etc/modprobe.d/ -chown -R root:root $PKG/etc -find $PKG/etc -type f -exec chmod 644 {} \; +chown -R root:root $PKG/etc $PKG/lib/modprobe.d +find $PKG/etc $PKG/lib/modprobe.d -type f -exec chmod 644 {} \; find $PKG/etc -type d -exec chmod 755 {} \; chmod 0755 $PKG/etc/rc.d/rc.udev.new # Add extra device nodes to the package that udev doesn't make: -# As of 156, some of these aren't be needed any more: -# removed core@ fd@ stderr@ stdin@ stdout@ 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 0755 $PKG/lib/udev/* -# Move the pkgconfig file to where we expect it -mv $PKG/usr/share/pkgconfig/* $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig -rmdir $PKG/usr/share/pkgconfig - mkdir -p $PKG/usr/doc/udev-$VERSION cp -a \ - COPYING* README* TODO extras/keymap/README.keymap.txt \ + COPYING* README* TODO \ $PKG/usr/doc/udev-$VERSION # Don't package the API docs: diff --git a/source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch b/source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch deleted file mode 100644 index fc991b9a..00000000 --- a/source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch +++ /dev/null @@ -1,305 +0,0 @@ -From 560de575148b7efda3b34a7f7073abd483c5f08e Mon Sep 17 00:00:00 2001 -From: David Zeuthen -Date: Thu, 4 Nov 2010 08:55:58 -0400 -Subject: [PATCH 1/1] Use ata_id, not scsi_id, on ATAPI devices - -The major benefit here, is that we get the ATAPI device serial -number. With SCSI ID we didn't get this since it's not part of the -SCSI INQUIRY command. Specifically this means that we get symlinks to -empty optical drives, e.g. - - /dev/disk/by-id/ata-VBOX_CD-ROM_VB2-01700376 - -which we didn't get earlier. So this is a major win. - -Also make ata_id work on CD-ROM devices when using /dev/bsg nodes so -this works on both the scsi_device as well as the block device. We do -this, basically, by issuing the ATA IDENTIFY PACKET DEVICE command -instead of the ATA IDENTIFY command. We also use 16-byte pass-through -ATA passthrough instead of 12-byte passthrough to avoid clashing with -the MMC BLANK command. - -This means that we get this output - - # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 - P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 - E: UDEV_LOG=3 - E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 - E: DEVTYPE=scsi_device - E: DRIVER=sr - E: MODALIAS=scsi:t-0x05 - E: SUBSYSTEM=scsi - E: ID_ATA=1 - E: ID_TYPE=cd - E: ID_BUS=ata - E: ID_MODEL=VBOX_CD-ROM - E: ID_MODEL_ENC=VBOX\x20CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x 20\x20\x20\x20\x20\x20\x20 - E: ID_REVISION=1.0 - E: ID_SERIAL=VBOX_CD-ROM_VB2-01700376 - E: ID_SERIAL_SHORT=VB2-01700376 - -instead of just - - # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 - P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 - E: UDEV_LOG=3 - E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 - E: DEVTYPE=scsi_device - E: DRIVER=sr - E: MODALIAS=scsi:t-0x05 - E: SUBSYSTEM=scsi - E: ID_SCSI=1 - E: ID_VENDOR=VBOX - E: ID_VENDOR_ENC=VBOX\x20\x20\x20\x20 - E: ID_MODEL=CD-ROM - E: ID_MODEL_ENC=CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 - E: ID_REVISION=1.0 - E: ID_TYPE=cd - -Signed-off-by: David Zeuthen ---- - extras/ata_id/ata_id.c | 122 ++++++++++++++++++++++++++--- - rules/rules.d/60-persistent-storage.rules | 4 + - 2 files changed, 114 insertions(+), 12 deletions(-) - -diff --git a/extras/ata_id/ata_id.c b/extras/ata_id/ata_id.c -index 41544e9..92387e5 100644 ---- a/extras/ata_id/ata_id.c -+++ b/extras/ata_id/ata_id.c -@@ -202,6 +202,89 @@ static int disk_identify_command(int fd, - return ret; - } - -+static int disk_identify_packet_device_command(int fd, -+ void *buf, -+ size_t buf_len) -+{ -+ struct sg_io_v4 io_v4; -+ uint8_t cdb[16]; -+ uint8_t sense[32]; -+ uint8_t *desc = sense+8; -+ int ret; -+ -+ /* -+ * ATA Pass-Through 16 byte command, as described in -+ * -+ * T10 04-262r8 ATA Command Pass-Through -+ * -+ * from http://www.t10.org/ftp/t10/document.04/04-262r8.pdf -+ */ -+ memset(cdb, 0, sizeof(cdb)); -+ cdb[0] = 0x85; /* OPERATION CODE: 16 byte pass through */ -+ cdb[1] = 4 << 1; /* PROTOCOL: PIO Data-in */ -+ cdb[2] = 0x2e; /* OFF_LINE=0, CK_COND=1, T_DIR=1, BYT_BLOK=1, T_LENGTH=2 */ -+ cdb[3] = 0; /* FEATURES */ -+ cdb[4] = 0; /* FEATURES */ -+ cdb[5] = 0; /* SECTORS */ -+ cdb[6] = 1; /* SECTORS */ -+ cdb[7] = 0; /* LBA LOW */ -+ cdb[8] = 0; /* LBA LOW */ -+ cdb[9] = 0; /* LBA MID */ -+ cdb[10] = 0; /* LBA MID */ -+ cdb[11] = 0; /* LBA HIGH */ -+ cdb[12] = 0; /* LBA HIGH */ -+ cdb[13] = 0; /* DEVICE */ -+ cdb[14] = 0xA1; /* Command: ATA IDENTIFY PACKET DEVICE */; -+ cdb[15] = 0; /* CONTROL */ -+ memset(sense, 0, sizeof(sense)); -+ -+ memset(&io_v4, 0, sizeof(struct sg_io_v4)); -+ io_v4.guard = 'Q'; -+ io_v4.protocol = BSG_PROTOCOL_SCSI; -+ io_v4.subprotocol = BSG_SUB_PROTOCOL_SCSI_CMD; -+ io_v4.request_len = sizeof (cdb); -+ io_v4.request = (uintptr_t) cdb; -+ io_v4.max_response_len = sizeof (sense); -+ io_v4.response = (uintptr_t) sense; -+ io_v4.din_xfer_len = buf_len; -+ io_v4.din_xferp = (uintptr_t) buf; -+ io_v4.timeout = COMMAND_TIMEOUT_MSEC; -+ -+ ret = ioctl(fd, SG_IO, &io_v4); -+ if (ret != 0) { -+ /* could be that the driver doesn't do version 4, try version 3 */ -+ if (errno == EINVAL) { -+ struct sg_io_hdr io_hdr; -+ -+ memset(&io_hdr, 0, sizeof(struct sg_io_hdr)); -+ io_hdr.interface_id = 'S'; -+ io_hdr.cmdp = (unsigned char*) cdb; -+ io_hdr.cmd_len = sizeof (cdb); -+ io_hdr.dxferp = buf; -+ io_hdr.dxfer_len = buf_len; -+ io_hdr.sbp = sense; -+ io_hdr.mx_sb_len = sizeof (sense); -+ io_hdr.dxfer_direction = SG_DXFER_FROM_DEV; -+ io_hdr.timeout = COMMAND_TIMEOUT_MSEC; -+ -+ ret = ioctl(fd, SG_IO, &io_hdr); -+ if (ret != 0) -+ goto out; -+ } else { -+ goto out; -+ } -+ } -+ -+ if (!(sense[0] == 0x72 && desc[0] == 0x9 && desc[1] == 0x0c)) { -+ errno = EIO; -+ ret = -1; -+ goto out; -+ } -+ -+ out: -+ return ret; -+} -+ - /** - * disk_identify_get_string: - * @identify: A block of IDENTIFY data -@@ -256,31 +339,36 @@ static void disk_identify_fixup_uint16 (uint8_t identify[512], unsigned int offs - * @udev: The libudev context. - * @fd: File descriptor for the block device. - * @out_identify: Return location for IDENTIFY data. -+ * @out_is_packet_device: Return location for whether returned data is from a IDENTIFY PACKET DEVICE. - * -- * Sends the IDENTIFY DEVICE command to the device represented by -- * @fd. If successful, then the result will be copied into -- * @out_identify. -+ * Sends the IDENTIFY DEVICE or IDENTIFY PACKET DEVICE command to the -+ * device represented by @fd. If successful, then the result will be -+ * copied into @out_identify and @out_is_packet_device. - * - * This routine is based on code from libatasmart, Copyright 2008 - * Lennart Poettering, LGPL v2.1. - * -- * Returns: 0 if the IDENTIFY data was successfully obtained, -- * otherwise non-zero with errno set. -+ * Returns: 0 if the data was successfully obtained, otherwise -+ * non-zero with errno set. - */ - static int disk_identify (struct udev *udev, - int fd, -- uint8_t out_identify[512]) -+ uint8_t out_identify[512], -+ int *out_is_packet_device) - { - int ret; - uint8_t inquiry_buf[36]; - int peripheral_device_type; - int all_nul_bytes; - int n; -+ int is_packet_device; - - assert (out_identify != NULL); -+ - /* init results */ - ret = -1; - memset (out_identify, '\0', 512); -+ is_packet_device = 0; - - /* If we were to use ATA PASS_THROUGH (12) on an ATAPI device - * we could accidentally blank media. This is because MMC's BLANK -@@ -309,6 +397,12 @@ static int disk_identify (struct udev *udev, - - /* SPC-4, section 6.4.2: Standard INQUIRY data */ - peripheral_device_type = inquiry_buf[0] & 0x1f; -+ if (peripheral_device_type == 0x05) -+ { -+ is_packet_device = 1; -+ ret = disk_identify_packet_device_command(fd, out_identify, 512); -+ goto check_nul_bytes; -+ } - if (peripheral_device_type != 0x00) { - ret = -1; - errno = EIO; -@@ -320,6 +414,7 @@ static int disk_identify (struct udev *udev, - if (ret != 0) - goto out; - -+ check_nul_bytes: - /* Check if IDENTIFY data is all NUL bytes - if so, bail */ - all_nul_bytes = 1; - for (n = 0; n < 512; n++) { -@@ -336,6 +431,8 @@ static int disk_identify (struct udev *udev, - } - - out: -+ if (out_is_packet_device != NULL) -+ *out_is_packet_device = is_packet_device; - return ret; - } - -@@ -350,7 +447,7 @@ int main(int argc, char *argv[]) - { - struct udev *udev; - struct hd_driveid id; -- uint8_t identify[512]; -+ uint8_t identify[512]; - char model[41]; - char model_enc[256]; - char serial[21]; -@@ -358,8 +455,9 @@ int main(int argc, char *argv[]) - const char *node = NULL; - int export = 0; - int fd; -- uint16_t word; -+ uint16_t word; - int rc = 0; -+ int is_packet_device = 0; - static const struct option options[] = { - { "export", no_argument, NULL, 'x' }, - { "help", no_argument, NULL, 'h' }, -@@ -408,7 +506,7 @@ int main(int argc, char *argv[]) - goto exit; - } - -- if (disk_identify(udev, fd, identify) == 0) { -+ if (disk_identify(udev, fd, identify, &is_packet_device) == 0) { - /* - * fix up only the fields from the IDENTIFY data that we are going to - * use and copy it into the hd_driveid struct for convenience -@@ -416,7 +514,7 @@ int main(int argc, char *argv[]) - disk_identify_fixup_string (identify, 10, 20); /* serial */ - disk_identify_fixup_string (identify, 23, 6); /* fwrev */ - disk_identify_fixup_string (identify, 27, 40); /* model */ -- disk_identify_fixup_uint16 (identify, 0); /* configuration */ -+ disk_identify_fixup_uint16 (identify, 0); /* configuration */ - disk_identify_fixup_uint16 (identify, 75); /* queue depth */ - disk_identify_fixup_uint16 (identify, 75); /* SATA capabilities */ - disk_identify_fixup_uint16 (identify, 82); /* command set supported */ -@@ -457,8 +555,8 @@ int main(int argc, char *argv[]) - udev_util_replace_chars(revision, NULL); - - if (export) { -- /* Set this to convey the disk speaks the ATA protocol */ -- printf("ID_ATA=1\n"); -+ /* Set this to convey the disk speaks the ATA protocol */ -+ printf("ID_ATA=1\n"); - - if ((id.config >> 8) & 0x80) { - /* This is an ATAPI device */ -diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules -index d3f2f73..8baabc2 100644 ---- a/rules/rules.d/60-persistent-storage.rules -+++ b/rules/rules.d/60-persistent-storage.rules -@@ -12,6 +12,8 @@ ACTION=="remove", GOTO="persistent_storage_end" - - # run scsi_id and ata_id on the actual SCSI device - SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_SERIAL}!="?*", ATTR{vendor}=="ATA", IMPORT{program}="ata_id --export $root/bsg/$kernel" -+# ATA/ATAPI devices is of type 0x05 and vendor is usually not ATA -+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_SERIAL}!="?*", ATTR{type}=="5", IMPORT{program}="ata_id --export $root/bsg/$kernel" - SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --whitelisted --export --device $root/bsg/$kernel" - - # from this point on, only care about block devices -@@ -40,6 +42,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program - KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="ata", IMPORT{program}="ata_id --export $tempnode" - # ATA devices using the "scsi" subsystem - KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $tempnode" -+# ATA/ATAPI devices using the "scsi" subsystem -+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{type}=="5", IMPORT{program}="ata_id --export $tempnode" - # scsi devices - KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="scsi" - KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="cciss" --- -1.7.3.4 - -- cgit v1.2.3