summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorncopa <ncopa@f176ef85-8d20-0410-844a-e957b5a1c371>2008-01-22 07:51:55 +0000
committerncopa <ncopa@f176ef85-8d20-0410-844a-e957b5a1c371>2008-01-22 07:51:55 +0000
commitf748fb67f007c7453c8b4cea7439347df60f5ae7 (patch)
tree96c800fd622a7f5198a97dc2f6ea1aa693d5d331
parentfefde488e66c2977e1b93e790029eb72d97edeac (diff)
downloadalpine-baselayout-f748fb67f007c7453c8b4cea7439347df60f5ae7.tar.bz2
alpine-baselayout-f748fb67f007c7453c8b4cea7439347df60f5ae7.tar.xz
release 1.7.0. fixed mdev stuff
-rw-r--r--Makefile4
-rwxr-xr-xdvbdev18
-rw-r--r--mdev.conf102
-rw-r--r--subdir_dev48
-rwxr-xr-xusbdev59
5 files changed, 166 insertions, 65 deletions
diff --git a/Makefile b/Makefile
index c19523d..64de04e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-VERSION=1.6.1
+VERSION=1.7.0
PV =alpine-baselayout-$(VERSION)
TARBALL =$(PV).tar.gz
@@ -13,7 +13,7 @@ SBIN_FILES =runscript-alpine.sh functions.sh rc_add rc_delete rc_status\
modules-update ifenslave
RC_SH_FILES =rc-services.sh
UDHCPC_FILES =default.script
-LIB_MDEV_FILES =ide_links sd_links subdir_dev usbdev
+LIB_MDEV_FILES =ide_links sd_links subdir_dev usbdev dvbdev
#USR_BIN_FILES =send-pr
#GNATS_FILES =send-pr.template send-pr.conf
SENDBUG_FILES =sendbug.conf
diff --git a/dvbdev b/dvbdev
new file mode 100755
index 0000000..f0186c1
--- /dev/null
+++ b/dvbdev
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# MDEV=dvb0.demux1 -> ADAPTER=dvb0 -> N=0
+ADAPTER=${MDEV%.*}
+N=${ADAPTER#dvb}
+# MDEV=dvb0.demux1 -> DEVB_DEV=demux1
+DVB_DEV=${MDEV#*.}
+
+case "$ACTION" in
+ add|"")
+ mkdir -p dvb/adapter${N}
+ mv ${MDEV} dvb/adapter${N}/${DVB_DEV}
+ ;;
+ remove)
+ rm -f dvb/adapter${N}/${DVB_DEV}
+ rmdir dvb/adapter${N} 2>/dev/null
+ rmdir dvb/ 2>/dev/null
+esac
diff --git a/mdev.conf b/mdev.conf
index 647817d..384809b 100644
--- a/mdev.conf
+++ b/mdev.conf
@@ -2,84 +2,86 @@
# This is a sample mdev.conf.
#
-SLEEP=10
-
-# Symlinks:
-# Syntax: %s -> %s
-MAKEDEV -> ../sbin/MAKEDEV
-/proc/core -> kcore
-fd -> /proc/self/fd
-mcdx -> mcdx0
-radio -> radio0
-ram -> ram1
-sbpcd -> sbpcd0
-sr0 -> scd0
-sr1 -> scd1
-sr10 -> scd10
-sr11 -> scd11
-sr12 -> scd12
-sr13 -> scd13
-sr14 -> scd14
-sr15 -> scd15
-sr16 -> scd16
-sr2 -> scd2
-sr3 -> scd3
-sr4 -> scd4
-sr5 -> scd5
-sr6 -> scd6
-sr7 -> scd7
-sr8 -> scd8
-sr9 -> scd9
-stderr -> fd/2
-stdin -> fd/0
-stdout -> fd/1
-vbi -> vbi0
-#vcs -> vcs0
-#vcsa -> vcsa0
-video -> video0
-
# Devices:
# Syntax: %s %d:%d %s
# devices user:group mode
-null root:root 777
-zero root:root 666
-grsec root:root 660
+# null does already exist; therefore ownerchip has to be changed with command
+null root:root 0666 @chmod 666 $MDEV
+zero root:root 0666
+grsec root:root 0660
+full root:root 0666
-urandom root:root 444
+random root:root 0666
+urandom root:root 0444
+hwrandom root:root 0660
-console root:tty 0600
+# console does already exist; therefore ownerchip has to be changed with command
+console root:tty 0600 @chmod 600 $MDEV && mkdir vc && ln -sf ../$MDEV vc/0
fd0 root:floppy 0660
-kmem root:root 000
+kmem root:root 0640
mem root:root 0640
port root:root 0640
-ptmx root:tty 0660
+ptmx root:tty 0666
-sd[a-z][0-9]* root:disk 0660 */lib/mdev/sd_links
-hd[a-z][0-9]* root:disk 0660 */lib/mdev/ide_links
+# ram.*
+ram[0-9]* root:disk 0660 */lib/mdev/subdir_dev -l -n rd
+loop[0-9] root:disk 0660 */lib/mdev/subdir_dev -l -n loop
+sd[a-z][0-9]* root:disk 0660 */lib/mdev/sd_links
+hd[a-z][0-9]* root:disk 0660 */lib/mdev/ide_links
md[0-9] root:disk 0660
tty root:tty 0666
-tty[0-9] root:tty 0660
+tty[0-9] root:root 0600
tty[0-9][0-9] root:tty 0660
-ttyS[0-9]* root:tty 640
+ttyS[0-9]* root:uucp 0660
+pty.* root:tty 0660
+vcs[0-9]* root:tty 0660
+vcsa[0-9]* root:tty 0660
+
ttyLTM[0-9] root:dialout 0660 @ln -sf $MDEV modem
ttySHSF[0-9] root:dialout 0660 @ln -sf $MDEV modem
slamr root:dialout 0660 @ln -sf $MDEV slamr0
slusb root:dialout 0660 @ln -sf $MDEV slusb0
-video.* root:video 0660
fuse root:root 0666
-# alsa sound devices
+# dri device
+card[0-9] root:video 0660 */lib/mdev/subdir_dev dri
+
+# alsa sound devices and audio stuff
pcm.* root:audio 0660 */lib/mdev/subdir_dev snd
control.* root:audio 0660 */lib/mdev/subdir_dev snd
midi.* root:audio 0660 */lib/mdev/subdir_dev snd
seq root:audio 0660 */lib/mdev/subdir_dev snd
timer root:audio 0660 */lib/mdev/subdir_dev snd
+adsp root:audio 0660 */lib/mdev/subdir_dev -l sound
+audio root:audio 0660 */lib/mdev/subdir_dev -l sound
+dsp root:audio 0660 */lib/mdev/subdir_dev -l sound
+mixer root:audio 0660 */lib/mdev/subdir_dev -l sound
+sequencer.* root:audio 0660 */lib/mdev/subdir_dev -l sound
+
+# misc stuff
+agpgart root:root 0660 */lib/mdev/subdir_dev -l misc
+psaux root:root 0660 */lib/mdev/subdir_dev -l misc
+rtc root:root 0664 */lib/mdev/subdir_dev -l misc
+
+# input stuff
+mice root:root 0640 */lib/mdev/subdir_dev input
+mouse[0-9] root:root 0640 */lib/mdev/subdir_dev input
+ts[0-9] root:root 0600 */lib/mdev/subdir_dev input
+
+# v4l stuff
+vbi[0-9] root:video 0660 */lib/mdev/subdir_dev -l v4l
+video[0-9] root:video 0660 */lib/mdev/subdir_dev -l v4l
+
+# dvb stuff
+dvb.* root:video 0660 */lib/mdev/dvbdev
+
# load drivers for usb devices
-usbdev[0-9].* root:root 0660 */lib/mdev/usbdev
+usbdev[0-9].[0-9] root:root 0660 */lib/mdev/usbdev
+usbdev[0-9].[0-9]_.* root:root 0660
# net devices
tun[0-9]* root:root 0600 */lib/mdev/subdir_dev net
diff --git a/subdir_dev b/subdir_dev
index e1d5326..7115e9e 100644
--- a/subdir_dev
+++ b/subdir_dev
@@ -1,12 +1,48 @@
#!/bin/sh
# scripts that moves devices to the $1/ subdir.
+# usage: subdir_dev [-ln] DIR [NEW_NAME]
+# options:
+# -l create link (i.e. /dev/pcm0 -> /dev/snd/pcm0)
+# -n devicename from number (i.e. /dev/loop0 => /dev/loop/0)
-if [ "$ACTION" = remove ] ; then
- mv $1/$MDEV $MDEV
- rmdir $1 2>/dev/null
-else
- mkdir -p $1
- mv $MDEV $1/$2
+while getopts "ln" opt; do
+ case "$opt" in
+ l) link=1
+ ;;
+ n) dev=${MDEV%[0-9]*}
+ new_name=${MDEV#${dev}}
+ ;;
+ esac
+done
+shift $(( $OPTIND - 1 ))
+
+if [ -n "$2" ]; then
+ new_name="$2"
fi
+case "$ACTION" in
+ add|"")
+ mkdir -p $1
+ mv $MDEV $1/$new_name
+ if [ "$link" = 1 ] ; then
+ if [ -z "$new_name" ] ; then
+ ln -snf $1/$MDEV $MDEV
+ else
+ ln -snf $1/$new_name $MDEV
+ fi
+ fi
+ ;;
+ remove)
+ if [ "$link" = 1 ] ; then
+ rm -f $MDEV
+ fi
+ if [ -z "$new_name" ]; then
+ mv $1/$MDEV $MDEV
+ else
+ mv $1/$new_name $MDEV
+ fi
+ rmdir $1 2>/dev/null
+ ;;
+esac
+
diff --git a/usbdev b/usbdev
index 34336e2..b1aff29 100755
--- a/usbdev
+++ b/usbdev
@@ -1,17 +1,62 @@
#!/bin/sh
+# script is buggy; until patched just do exit 0
+#exit 0
+
+# add zeros to device or bus
+add_zeros () {
+ case "$(echo $1 | wc -L)" in
+ 1) echo "00$1" ;;
+ 2) echo "0$1" ;;
+ *) echo "$1"
+ esac
+ exit 0
+}
+
+
+# bus and device dirs in /sys
+local USB_PATH=$(echo $MDEV | sed -e 's/usbdev\([0-9]\).[0-9]/usb\1/')
+USB_PATH=$(find /sys/devices -type d -name "$USB_PATH")
+local USB_DEV_DIR=$(echo $MDEV | sed -e 's/usbdev\([0-9]\).\([0-9]\)/\1-\2/')
+
+# dir names in /dev
+local BUS=$(add_zeros $(echo $MDEV | sed -e 's/^usbdev\([0-9]\).[0-9]/\1/'))
+local USB_DEV=$(add_zeros $(echo $MDEV | sed -e 's/^usbdev[0-9].\([0-9]\)/\1/'))
+
+
# try to load the proper driver for usb devices
case "$ACTION" in
add|"")
- for i in /sys/class/usb_device/$MDEV/device/*/modalias ; do
- [ -r "$i" ] && modprobe `cat $i` 2>/dev/null
+ # load usb bus driver
+ for i in $USB_PATH/*/modalias ; do
+ modprobe `cat $i` 2>/dev/null
done
+ # load usb device driver if existent
+ if [ -d $USB_PATH/$USB_DEV_DIR ]; then
+ for i in $USB_PATH/$USB_DEV_DIR/*/modalias ; do
+ modprobe `cat $i` 2>/dev/null
+ done
+ fi
+ # move usb device file
+ mkdir -p bus/usb/$BUS
+ mv $MDEV bus/usb/$BUS/$USB_DEV
;;
remove)
- for i in /sys/class/usb_device/$MDEV/device/*/modalias ; do
- [ -r "$i" ] && modprobe -r `cat $i` 2>/dev/null
+ # unload device driver, if device dir is existent
+ if [ -d $USB_PATH/$USB_DEV_DIR ]; then
+ for i in $USB_PATH/$USB_DEV_DIR/*/modalias ; do
+ modprobe -r `cat $i` 2>/dev/null
done
+ fi
+ # unload usb bus driver. Does this make sense?
+ # what happens, if two usb devices are plugged in
+ # and one is removed?
+ for i in $USB_PATH/*/modalias ; do
+ modprobe -r `cat $i` 2>/dev/null
+ done
+ # remove device file and possible empty dirs
+ rm -f bus/usb/$BUS/$USB_DEV
+ rmdir bus/usb/$BUS/ 2>/dev/null
+ rmdir bus/usb/ 2>/dev/null
+ rmdir bus/ 2>/dev/null
esac
-
-# we dont want the ugly usbdev[0-9].[0-9] dev.
-rm -f $MDEV