mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
Added /core/udev with USB and SD-card automount enabled
This commit is contained in:
parent
addd64308b
commit
08ed5b79bb
10 changed files with 572 additions and 0 deletions
22
core/udev/11-media-by-label-auto-mount.rules
Normal file
22
core/udev/11-media-by-label-auto-mount.rules
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Plugbox Linux USB and SD-card automounter
|
||||
|
||||
KERNEL!="sd[a-z]*|mmcblk[0-9]p[0-9]", GOTO="media_by_label_auto_mount_end"
|
||||
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="media_by_label_auto_mount_end"
|
||||
# Do not mount devices on boot because otherwise fsck may fail
|
||||
ACTION=="add", PROGRAM!="/bin/grep ' / / rw[, ]' /proc/self/mountinfo", GOTO="media_by_label_auto_mount_end"
|
||||
|
||||
# Global mount options
|
||||
ACTION=="add", ENV{mount_options}="noatime,users"
|
||||
# Filesystem specific options
|
||||
ACTION=="add", PROGRAM=="/sbin/blkid -o value -s TYPE %E{device}", RESULT=="vfat|ntfs", ENV{mount_options}="%E{mount_options},utf8,gid=100,umask=002"
|
||||
|
||||
# Get label
|
||||
ACTION=="add", PROGRAM=="/sbin/blkid -o value -s LABEL %N", ENV{dir_name}="%c"
|
||||
# Use basename to correctly handle labels such as ../mnt/foo
|
||||
ACTION=="add", PROGRAM=="/usr/bin/basename '%E{dir_name}'", ENV{dir_name}="%c"
|
||||
ACTION=="add", ENV{dir_name}!="?*", ENV{dir_name}="usbhd-%k"
|
||||
|
||||
ACTION=="add", ENV{dir_name}=="?*", RUN+="/bin/mkdir -p '/media/%E{dir_name}'", RUN+="/bin/mount -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"
|
||||
ACTION=="remove", ENV{dir_name}=="?*", RUN+="/bin/umount -l '/media/%E{dir_name}'"
|
||||
ACTION=="remove", ENV{dir_name}=="?*", RUN+="/bin/rmdir '/media/%E{dir_name}'"
|
||||
LABEL="media_by_label_auto_mount_end"
|
143
core/udev/81-arch.rules
Executable file
143
core/udev/81-arch.rules
Executable file
|
@ -0,0 +1,143 @@
|
|||
# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
|
||||
# do not edit this file, it will be overwritten on update
|
||||
#
|
||||
# There are a number of modifiers that are allowed to be used in some
|
||||
# of the different fields. They provide the following subsitutions:
|
||||
#
|
||||
# %n the "kernel number" of the device.
|
||||
# For example, 'sda3' has a "kernel number" of '3'
|
||||
# %k the kernel name for the device.
|
||||
# %M the kernel major number for the device
|
||||
# %m the kernel minor number for the device
|
||||
# %b the bus id for the device
|
||||
# %c the string returned by the PROGRAM
|
||||
# %s{filename} the content of a sysfs attribute.
|
||||
# %% the '%' char itself.
|
||||
#
|
||||
# There are a number of modifiers that are allowed to be used in some of the
|
||||
# fields. See the udev man page for a full description of them.
|
||||
# global stuff
|
||||
#
|
||||
|
||||
#####################################
|
||||
###### Hotplug rules - begin
|
||||
# Only additional modules,
|
||||
# which are not detectable,
|
||||
# are loaded here!
|
||||
#####################################
|
||||
# check if the device has already been claimed by a driver
|
||||
ACTION!="add", GOTO="drivers_end"
|
||||
|
||||
# SOUND addon modules
|
||||
SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-pcm-oss"
|
||||
SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-seq-oss"
|
||||
|
||||
#PNP addon modules
|
||||
SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0800", RUN+="/lib/udev/load-modules.sh pcspkr"
|
||||
SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP051[01]*", RUN+="/lib/udev/load-modules.sh irtty-sir"
|
||||
SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNPb02f", RUN+="/lib/udev/load-modules.sh analog"
|
||||
|
||||
# PARPORT addon modules
|
||||
SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh lp"
|
||||
SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh ppdev"
|
||||
|
||||
# fix ide cdrom detection on old proliant servers
|
||||
SUBSYSTEM=="pci", ENV{MODALIAS}=="pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00", RUN+="/lib/udev/load-modules.sh ide-generic"
|
||||
|
||||
LABEL="drivers_end"
|
||||
#####################################
|
||||
##### Hotplug rules - end
|
||||
#####################################
|
||||
|
||||
#####################################
|
||||
###### CD/DVD symlinks - begin
|
||||
#####################################
|
||||
ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="cdrom_id --export $tempnode"
|
||||
ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", IMPORT="cdrom_id --export $tempnode"
|
||||
ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="scd[a-z]", IMPORT="cdrom_id --export $tempnode"
|
||||
ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b"
|
||||
ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b"
|
||||
ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b"
|
||||
ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvdrw-%b"
|
||||
ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="cdsymlinks.sh"
|
||||
ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
|
||||
ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
|
||||
ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="hd[a-z]", RUN+="cdsymlinks.sh"
|
||||
ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", RUN+="cdsymlinks.sh"
|
||||
ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="cdsymlinks.sh"
|
||||
#####################################
|
||||
###### CD/DVD symlinks - end
|
||||
#####################################
|
||||
|
||||
#####################################
|
||||
# Additional Archlinux
|
||||
# Permissions and Symlinks - begin
|
||||
#####################################
|
||||
# fix /dev/root symlink
|
||||
SUBSYSTEM=="block", RUN+="root-link.sh"
|
||||
|
||||
# permission for sg devices
|
||||
KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660"
|
||||
|
||||
# permissions for IDE CD devices
|
||||
SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical"
|
||||
|
||||
# permissions for SCSI CD devices
|
||||
SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical"
|
||||
SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical"
|
||||
|
||||
# permissions for removable devices like cardreaders or sticks
|
||||
KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="0", GROUP="storage"
|
||||
|
||||
# permissions for firewire external drives
|
||||
KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage"
|
||||
|
||||
# permissions for usb to scsi external adapters
|
||||
KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="7", GROUP="storage"
|
||||
|
||||
# permissions for ide storage like pcmcia card readers
|
||||
ACTION!="add", GOTO="pcmcia_end"
|
||||
SUBSYSTEM!="block", GOTO="pcmcia_end"
|
||||
KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode"
|
||||
KERNEL=="hd*", IMPORT{parent}=="ID_*"
|
||||
KERNEL=="hd*", ENV{ID_TYPE}=="generic", GROUP="storage"
|
||||
LABEL="pcmcia_end"
|
||||
|
||||
# permissions for SCSI scanners
|
||||
SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner"
|
||||
|
||||
# mem
|
||||
KERNEL=="ram0", SYMLINK+="ramdisk"
|
||||
KERNEL=="ram1", SYMLINK+="ram"
|
||||
|
||||
# video4linux
|
||||
|
||||
KERNEL=="vbi0", SYMLINK+="vbi"
|
||||
KERNEL=="radio0", SYMLINK+="radio"
|
||||
KERNEL=="radio[0-9]*", GROUP="video"
|
||||
KERNEL=="video0", SYMLINK+="video"
|
||||
KERNEL=="vtx0", SYMLINK+="vtx"
|
||||
|
||||
# video devices
|
||||
### xorg resets those permissions, adjust your xorg.conf!
|
||||
KERNEL=="3dfx*", GROUP="video"
|
||||
KERNEL=="fb[0-9]*", GROUP="video"
|
||||
|
||||
# misc
|
||||
KERNEL=="sgi_fetchop", MODE="0666"
|
||||
KERNEL=="sonypi", MODE="0666"
|
||||
|
||||
# USB devices
|
||||
KERNEL=="legousbtower*", MODE="0666"
|
||||
|
||||
# IEEE1394 (firewire) devices
|
||||
KERNEL=="raw1394", GROUP="video"
|
||||
|
||||
# kbd devices
|
||||
KERNEL=="kbd", MODE="0664"
|
||||
|
||||
# miscellaneous
|
||||
KERNEL=="rtc|rtc0", GROUP="audio", MODE="0664"
|
||||
#######################################
|
||||
# Permissions and Symlinks - end
|
||||
#######################################
|
149
core/udev/PKGBUILD
Executable file
149
core/udev/PKGBUILD
Executable file
|
@ -0,0 +1,149 @@
|
|||
# $Id: PKGBUILD 68156 2010-02-11 07:06:43Z tpowa $
|
||||
# Maintainer: Aaron Griffin <aaron@archlinux.org>
|
||||
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
|
||||
# Maintainer: Thomas Bächler <thomas@archlinux.org>
|
||||
|
||||
pkgbase="udev"
|
||||
pkgname=('udev' 'udev-compat')
|
||||
pkgver=151
|
||||
pkgrel=3
|
||||
arch=(i686 x86_64)
|
||||
url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
|
||||
license=('GPL')
|
||||
groups=('base')
|
||||
# older initscripts versions required start_udev
|
||||
options=(!makeflags !libtool)
|
||||
makedepends=('glibc' 'coreutils' 'util-linux' 'libusb' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection')
|
||||
source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgname-$pkgver.tar.bz2
|
||||
81-arch.rules
|
||||
load-modules.sh
|
||||
cdsymlinks.sh
|
||||
root-link.sh
|
||||
arch-udev-rules.patch
|
||||
ignore-remove.sh
|
||||
firmware-loader-fix-missing-firmware.patch
|
||||
11-media-by-label-auto-mount.rules)
|
||||
md5sums=('aeae0e6273dcbec246c3c1b9868ebed1'
|
||||
'6393ee81993f8b9beb776ca904005864'
|
||||
'a2d0d59742b80b3b28ed498718654eb7'
|
||||
'2e808ee78d237c478b57af2a68d43769'
|
||||
'2d6dc6842464f107bccc68cd505a6c31'
|
||||
'22c1f059cdeddaac5e7fe33b007da6a3'
|
||||
'35fa97500243a79b2370fa4684828e69'
|
||||
'ec1fa2ecaff2e8efc611cb70568630ad'
|
||||
'6abee92d6289a0dfe1b86861fce8131f')
|
||||
|
||||
build() {
|
||||
cd $srcdir/$pkgname-$pkgver
|
||||
# The new firmware loader has a bug where modprobe will hang 60 seconds when a
|
||||
# firmware file is missing. Fix this by properly reporting error to the kernel
|
||||
patch -p1 -i "$srcdir"/firmware-loader-fix-missing-firmware.patch || return 1
|
||||
./configure --prefix="" --mandir=/usr/share/man\
|
||||
--includedir=/usr/include\
|
||||
--libexecdir=/lib/udev\
|
||||
--datarootdir=/usr/share
|
||||
make || return 1
|
||||
}
|
||||
|
||||
package_udev() {
|
||||
pkgdesc="The userspace dev tools (udev)"
|
||||
depends=('glibc' 'coreutils' 'util-linux' 'libusb' 'glib2'
|
||||
'module-init-tools>=3.11')
|
||||
install=udev.install
|
||||
backup=(etc/udev/udev.conf
|
||||
etc/modprobe.d/framebuffer_blacklist.conf)
|
||||
conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07')
|
||||
replaces=('devfsd')
|
||||
|
||||
cd $srcdir/$pkgname-$pkgver
|
||||
make DESTDIR=${pkgdir} install
|
||||
# Fix pkgconfig path
|
||||
install -d -m755 $pkgdir/usr/lib
|
||||
mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib
|
||||
# Fix ConsoleKit path
|
||||
mv $pkgdir/lib/ConsoleKit $pkgdir/usr/lib
|
||||
# Install our rule for permissions and symlinks
|
||||
install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules
|
||||
# install our module loading subsystem
|
||||
install -D -m755 $srcdir/load-modules.sh $pkgdir/lib/udev/load-modules.sh
|
||||
# install cdsymlinks.sh
|
||||
install -D -m755 $srcdir/cdsymlinks.sh $pkgdir/lib/udev/cdsymlinks.sh
|
||||
# install root-link.sh
|
||||
install -D -m755 $srcdir/root-link.sh $pkgdir/lib/udev/root-link.sh
|
||||
# install ignore-remove.sh
|
||||
install -D -m755 $srcdir/ignore-remove.sh $pkgdir/lib/udev/ignore-remove.sh
|
||||
# disable error logging to prevent startup failures printed to vc on boot
|
||||
sed -i -e 's|udev_log="err"|udev_log="0"|g' $pkgdir/etc/udev/udev.conf
|
||||
# install additional standard rules files
|
||||
for rule in $srcdir/$pkgname-$pkgver/rules/packages/*.rules; do
|
||||
install -D -m 644 $rule $pkgdir/lib/udev/rules.d/
|
||||
done
|
||||
# fix standard udev rules to fit to arch
|
||||
cd $pkgdir/lib/udev/rules.d/
|
||||
patch -Np1 -i $srcdir/arch-udev-rules.patch || return 1
|
||||
# remove .orig files
|
||||
rm -f $pkgdir/lib/udev/rules.d/*.orig
|
||||
# disable persistent cdromsymlinks and network by default
|
||||
# and move it to /etc/udev/rules.d
|
||||
mv $pkgdir/lib/udev/rules.d/75-persistent-net-generator.rules \
|
||||
$pkgdir/etc/udev/rules.d/75-persistent-net-generator.rules.optional
|
||||
mv $pkgdir/lib/udev/rules.d/75-cd-aliases-generator.rules \
|
||||
$pkgdir/etc/udev/rules.d/75-cd-aliases-generator.rules.optional
|
||||
# remove not needed rules
|
||||
rm $pkgdir/lib/udev/rules.d/40-ia64.rules
|
||||
rm $pkgdir/lib/udev/rules.d/40-ppc.rules
|
||||
rm $pkgdir/lib/udev/rules.d/40-s390.rules
|
||||
rm $pkgdir/lib/udev/rules.d/64-device-mapper.rules
|
||||
rm $pkgdir/lib/udev/rules.d/64-md-raid.rules
|
||||
|
||||
# create framebuffer blacklist
|
||||
mkdir -p $pkgdir/etc/modprobe.d/
|
||||
for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko' -exec basename {} .ko \;); do
|
||||
echo "blacklist $mod" >> $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf
|
||||
done
|
||||
|
||||
# create static devices in /lib/udev/devices/
|
||||
mkdir ${pkgdir}/lib/udev/devices
|
||||
mkdir ${pkgdir}/lib/udev/devices/pts
|
||||
mkdir ${pkgdir}/lib/udev/devices/shm
|
||||
|
||||
mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1 || return 1
|
||||
mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3 || return 1
|
||||
mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5 || return 1
|
||||
mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11 || return 1
|
||||
|
||||
ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd || return 1
|
||||
ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin || return 1
|
||||
ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout || return 1
|
||||
ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr || return 1
|
||||
ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core || return 1
|
||||
|
||||
# these static devices are created for convenience, to autoload the modules if necessary
|
||||
# /dev/loop0
|
||||
mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0 || return 1
|
||||
chgrp disk ${pkgdir}/lib/udev/devices/loop0 || return 1
|
||||
# /dev/net/tun
|
||||
mkdir ${pkgdir}/lib/udev/devices/net
|
||||
mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200 || return 1
|
||||
# /dev/fuse
|
||||
mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229 || return 1
|
||||
# /dev/ppp
|
||||
mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0 || return 1
|
||||
|
||||
# Replace dialout group in rules with uucp group
|
||||
for i in $pkgdir/lib/udev/rules.d/*.rules; do
|
||||
sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g' $i
|
||||
done
|
||||
|
||||
# Add Plugbox Linux USB and SD-card automount rules
|
||||
mv $srcdir/11-media-by-label-auto-mount.rules $pkgdir/etc/udev/rules.d/
|
||||
}
|
||||
|
||||
package_udev-compat() {
|
||||
pkgdesc="The userspace dev tools (udev) - additional rules for older kernels"
|
||||
depends=('udev')
|
||||
groups=('')
|
||||
cd $srcdir/$pkgname-$pkgver
|
||||
install -d -m755 ${pkgdir}/lib/${pkgname}/rules.d
|
||||
install -D -m644 ${srcdir}/${pkgname}-${pkgver}/rules/gentoo/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
|
||||
}
|
58
core/udev/arch-udev-rules.patch
Executable file
58
core/udev/arch-udev-rules.patch
Executable file
|
@ -0,0 +1,58 @@
|
|||
diff -Nur rules.d/50-udev-default.rules rules.d.arch/50-udev-default.rules
|
||||
--- rules.d/50-udev-default.rules 2009-03-07 22:22:48.200242883 +0100
|
||||
+++ rules.d.arch/50-udev-default.rules 2009-03-07 22:23:26.134434516 +0100
|
||||
@@ -59,15 +59,15 @@
|
||||
KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G floppy $root/%k"
|
||||
|
||||
# cdrom
|
||||
-SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n", GROUP="cdrom"
|
||||
-SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom"
|
||||
-KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
|
||||
-KERNEL=="pktcdvd", GROUP="cdrom"
|
||||
+SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n", GROUP="optical", MODE="0660"
|
||||
+SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="optical", MODE="0660"
|
||||
+KERNEL=="pktcdvd[0-9]*", GROUP="optical", MODE="0660"
|
||||
+KERNEL=="pktcdvd", GROUP="optical", MODE="0660"
|
||||
|
||||
# tape
|
||||
-KERNEL=="ht[0-9]*|nht[0-9]*", GROUP="tape"
|
||||
-KERNEL=="pt[0-9]*|npt[0-9]*|pht[0-9]*", GROUP="tape"
|
||||
-SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
|
||||
+KERNEL=="ht[0-9]*|nht[0-9]*", GROUP="storage", MODE="0660"
|
||||
+KERNEL=="pt[0-9]*|npt[0-9]*|pht[0-9]*", GROUP="storage", MODE="0660"
|
||||
+SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="storage", MODE="0660"
|
||||
|
||||
# block-related
|
||||
KERNEL=="sch[0-9]*", GROUP="disk"
|
||||
@@ -116,5 +116,4 @@
|
||||
KERNEL=="rrom[0-9]*", MODE="0400"
|
||||
|
||||
# do not delete static device nodes
|
||||
-ACTION=="remove", NAME=="", TEST=="/lib/udev/devices/%k", OPTIONS+="ignore_remove"
|
||||
-ACTION=="remove", NAME=="?*", TEST=="/lib/udev/devices/$name", OPTIONS+="ignore_remove"
|
||||
+ACTION=="remove", PROGRAM="ignore-remove.sh %r", OPTIONS+="ignore_remove"
|
||||
diff -Nur rules.d/80-drivers.rules rules.d.arch/80-drivers.rules
|
||||
--- rules.d/80-drivers.rules 2009-03-07 22:22:48.200242883 +0100
|
||||
+++ rules.d.arch/80-drivers.rules 2009-03-07 22:22:54.757744454 +0100
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
ACTION!="add", GOTO="drivers_end"
|
||||
|
||||
-DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe -b $env{MODALIAS}"
|
||||
-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/sbin/modprobe -b tifm_sd"
|
||||
-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/sbin/modprobe -b tifm_ms"
|
||||
-SUBSYSTEM=="memstick", RUN+="/sbin/modprobe -b --all ms_block mspro_block"
|
||||
-SUBSYSTEM=="i2o", RUN+="/sbin/modprobe -b i2o_block"
|
||||
-SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe -b sg"
|
||||
-SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/sbin/modprobe -b ppdev"
|
||||
+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"
|
||||
|
44
core/udev/cdsymlinks.sh
Executable file
44
core/udev/cdsymlinks.sh
Executable file
|
@ -0,0 +1,44 @@
|
|||
#! /bin/sh
|
||||
# Creates cdsymlinks in /dev
|
||||
# for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
|
||||
|
||||
# check on cd/dvd drives and if persistant rules file is used
|
||||
if [ -d /dev/cd -a ! -e /etc/udev/rules.d/75-persistent-cd.rules ]; then
|
||||
# remove existing device files
|
||||
rm /dev/cdrom*
|
||||
rm /dev/cdrw*
|
||||
rm /dev/dvd*
|
||||
rm /dev/dvdrw*
|
||||
# start creating symlinks
|
||||
for i in /dev/cd/cdrom-*; do
|
||||
if [ -h $i ]; then
|
||||
[ "$CD_NUMBER" = "" ] && ln -s $i /dev/cdrom
|
||||
[ "$CD_NUMBER" = "" ] && CD_NUMBER="-1"
|
||||
! [ "$CD_NUMBER" = "" ] && CD_NUMBER="$((CD_NUMBER+1))" && ln -s $i /dev/cdrom$CD_NUMBER
|
||||
fi
|
||||
done
|
||||
|
||||
for i in /dev/cd/cdrw-*; do
|
||||
if [ -h $i ]; then
|
||||
[ "$CDRW_NUMBER" = "" ] && ln -s $i /dev/cdrw
|
||||
[ "$CDRW_NUMBER" = "" ] && CDRW_NUMBER="-1"
|
||||
! [ "$CDRW_NUMBER" = "" ] && CDRW_NUMBER="$((CDRW_NUMBER+1))" && ln -s $i /dev/cdrw$CDRW_NUMBER
|
||||
fi
|
||||
done
|
||||
|
||||
for i in /dev/cd/dvd-*; do
|
||||
if [ -h $i ]; then
|
||||
[ "$DVD_NUMBER" = "" ] && ln -s $i /dev/dvd
|
||||
[ "$DVD_NUMBER" = "" ] && DVD_NUMBER="-1"
|
||||
! [ "$DVD_NUMBER" = "" ] && DVD_NUMBER="$((DVD_NUMBER+1))" && ln -s $i /dev/dvd$DVD_NUMBER
|
||||
fi
|
||||
done
|
||||
|
||||
for i in /dev/cd/dvdrw-*; do
|
||||
if [ -h $i ]; then
|
||||
[ "$DVDRW_NUMBER" = "" ] && ln -s $i /dev/dvdrw
|
||||
[ "$DVDRW_NUMBER" = "" ] && DVDRW_NUMBER="-1"
|
||||
! [ "$DVDRW_NUMBER" = "" ] && DVDRW_NUMBER="$((DVDRW_NUMBER+1))" && ln -s $i /dev/dvdrw$DVDRW_NUMBER
|
||||
fi
|
||||
done
|
||||
fi
|
27
core/udev/firmware-loader-fix-missing-firmware.patch
Executable file
27
core/udev/firmware-loader-fix-missing-firmware.patch
Executable file
|
@ -0,0 +1,27 @@
|
|||
diff -Nur udev-151.orig/extras/firmware/firmware.c udev-151/extras/firmware/firmware.c
|
||||
--- udev-151.orig/extras/firmware/firmware.c 2009-12-15 16:19:30.000000000 +0100
|
||||
+++ udev-151/extras/firmware/firmware.c 2010-01-31 13:17:09.195896260 +0100
|
||||
@@ -149,6 +149,7 @@
|
||||
|
||||
util_path_encode(firmware, fwencpath, sizeof(fwencpath));
|
||||
util_strscpyl(misspath, sizeof(misspath), udev_get_dev_path(udev), "/.udev/firmware-missing/", fwencpath, NULL);
|
||||
+ util_strscpyl(loadpath, sizeof(loadpath), udev_get_sys_path(udev), devpath, "/loading", NULL);
|
||||
|
||||
if (fwfile == NULL) {
|
||||
int err;
|
||||
@@ -166,6 +167,7 @@
|
||||
udev_selinux_resetfscreatecon(udev);
|
||||
} while (err == -ENOENT);
|
||||
rc = 2;
|
||||
+ set_loading(udev, loadpath, "-1");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
@@ -176,7 +178,6 @@
|
||||
if (unlink(misspath) == 0)
|
||||
util_delete_path(udev, misspath);
|
||||
|
||||
- util_strscpyl(loadpath, sizeof(loadpath), udev_get_sys_path(udev), devpath, "/loading", NULL);
|
||||
set_loading(udev, loadpath, "1");
|
||||
|
||||
util_strscpyl(datapath, sizeof(datapath), udev_get_sys_path(udev), devpath, "/data", NULL);
|
13
core/udev/ignore-remove.sh
Executable file
13
core/udev/ignore-remove.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for f in ${DEVNAME} ${DEVLINKS}; do
|
||||
if [ -e "/lib/udev/devices/${f#$1}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
exit 1
|
80
core/udev/load-modules.sh
Executable file
80
core/udev/load-modules.sh
Executable file
|
@ -0,0 +1,80 @@
|
|||
#!/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 info -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 info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because it is blacklisted"
|
||||
else
|
||||
$LOGGER -p 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 $1
|
||||
fi
|
||||
fi
|
||||
# vim: set et ts=4:
|
7
core/udev/root-link.sh
Executable file
7
core/udev/root-link.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#! /bin/sh
|
||||
# Creates root symlink in /dev
|
||||
# for Arch Linux by Roman Kyrylych <Roman.Kyrylych@gmail.com>
|
||||
|
||||
if ! [ -L /dev/root ]; then
|
||||
ln -s $(cat /proc/cmdline | sed "s: :\n:g" | grep root= | sed "s:root=::") /dev/root
|
||||
fi
|
29
core/udev/udev.install
Executable file
29
core/udev/udev.install
Executable file
|
@ -0,0 +1,29 @@
|
|||
# arg 1: the new package version
|
||||
# arg 2: the old package version
|
||||
|
||||
post_upgrade() {
|
||||
if [ "$(vercmp $2 100)" -lt 0 ]; then
|
||||
echo "ATTENTION UDEV:"
|
||||
echo "----------"
|
||||
echo "udev >=098 rules syntax has changed, please update your own rules."
|
||||
echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules."
|
||||
echo "Please read the instructions carefully before reboot."
|
||||
echo "They are located in /etc/udev/readme-udev-arch.txt"
|
||||
echo "----------"
|
||||
fi
|
||||
}
|
||||
|
||||
post_install() {
|
||||
# If a ramfs is mounted, we still need to make sure that /dev/{console,null,zero} exist
|
||||
# The Archlinux installer bind-mounts /dev to /mnt/dev, thus making the real /dev invisible
|
||||
ROOTDIR=""
|
||||
[ "$(stat -c %D /)" != "$(stat -c %D /dev)" ] && ROOTDIR=$(mktemp -d /tmp/udevinstall.XXXXXX)
|
||||
[ -n "${ROOTDIR}" ] && mount --bind / ${ROOTDIR}
|
||||
[ -c ${ROOTDIR}/dev/console ] || mknod -m600 ${ROOTDIR}/dev/console c 5 1
|
||||
[ -c ${ROOTDIR}/dev/null ] || mknod -m644 ${ROOTDIR}/dev/null c 1 3
|
||||
[ -c ${ROOTDIR}/dev/zero ] || mknod -m644 ${ROOTDIR}/dev/zero c 1 5
|
||||
if [ -n "${ROOTDIR}" ]; then
|
||||
umount ${ROOTDIR}
|
||||
rmdir ${ROOTDIR}
|
||||
fi
|
||||
}
|
Loading…
Reference in a new issue