examples: add mdev example for Android phone

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2013-03-30 16:23:12 +01:00
parent 2c0508b4fa
commit e306c11367
2 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,24 @@
#!/bin/sh
# Seconds to try to reread partition table
cnt=60
exec </dev/null
exec >"/tmp/${0##*/}.$$.out"
exec 2>&1
(
echo "Running: $0"
echo "Env:"
env | sort
while sleep 1; test $cnt != 0; do
echo "Trying to rereat partition table on $DEVNAME ($cnt)"
: $((cnt--))
test -e "$DEVNAME" || { echo "$DEVNAME doesn't exist, aborting"; exit 1; }
#echo "$DEVNAME exists"
blockdev --rereadpt "$DEVNAME" && break
echo "blockdev --rereadpt failed, exit code: $?"
done
echo "blockdev --rereadpt succeeded"
) &

View File

@ -112,3 +112,33 @@ usbdev[0-9].[0-9]_.* root:root 660
# zaptel devices
zap(.*) root:dialout 660 =zap/%1
dahdi!(.*) root:dialout 660 =dahdi/%1
# HTC Android
# Attaching it via USB cable causes a flurry of activity:
#
# mdev[1271]: 48.639459 ACTION:add SUBSYSTEM:usb DEVNAME:bus/usb/001/009 DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5
# mdev[1271]: mknod bus/usb/001/009 (189,8) 20660 0:0
# mdev[1272]: 48.642354 ACTION:add SUBSYSTEM:usb DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0
# mdev[1272]: running: modprobe "$MODALIAS"
# mdev[1273]: 48.650078 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11
# mdev[1274]: 48.651297 ACTION:add SUBSYSTEM:scsi_host DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/scsi_host/host11
# mdev[1275]: 49.649422 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0
# mdev[1276]: 49.650703 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0
# mdev[1276]: running: modprobe "$MODALIAS"
# modprobe: module scsi:t-0x00 not found in modules.dep
# mdev[1277]: 49.658002 ACTION:add SUBSYSTEM:scsi_disk DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/scsi_disk/11:0:0:0
# mdev[1278]: 49.659244 ACTION:add SUBSYSTEM:scsi_device DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/scsi_device/11:0:0:
# mdev[1279]: 49.660535 ACTION:add SUBSYSTEM:bsg DEVNAME:bsg/11:0:0:0 DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/bsg/11:0:0:0
# mdev[1279]: mknod bsg/11:0:0:0 (253,1) 20660 0:0
# mdev[1280]: 49.663516 ACTION:add SUBSYSTEM:bdi DEVNAME:(null) DEVPATH:/devices/virtual/bdi/8:16
# mdev[1281]: 49.664748 ACTION:add SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
# mdev[1281]: mknod sdb (8,16) 60660 0:0
# mdev[1282]: 49.677597 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
# mdev[1283]: 50.692936 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
#
# We are hooking to the last events. To avoid having two scripts running,
# we check for DISK_MEDIA_CHANGE=1 (prev to last event has it,
# and it's the _only_ difference in env for these two events as of kernel 3.7.7)
# Unfortunately, there is no event for "user pressed [Turn USB storage] btn"!
# Script merely backgrounds and tries to rescan partition table for 1 minute:
ACTION=change;SUBSYSTEM=block;DISK_MEDIA_CHANGE=1;.* 0:0 660 */etc/mdev.conf.change_blockdev.sh