summaryrefslogtreecommitdiff
path: root/package/base-files/default/etc/hotplug.d/usb/01-ln
blob: f9eda02988fc22fd056d8b86bcc98948da0ba70a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org

case "$ACTION" in
add) 
	[ -f /sys/${DEVPATH}/idVendor -a "$(cat /sys/${DEVPATH}/idVendor)" -ne "0000" ] && {
		cd /sys/${DEVPATH}

		NUM=${DEVPATH##*/}
		HOST=$(find ${NUM}:*/host* -type d)
		HOST=${HOST##*/host}

		echo -ne "waiting for disk"

		while [ ! -d "/dev/scsi/host${HOST}/bus0/target0/lun0" ]; do {
			echo -ne "."
			sleep 1;
			time=$((time+1)); [ $time -gt 10 ] && break
		}; done
		echo
		
		cd  /sys/bus/scsi/devices/${HOST}\:0\:0\:0
		for BLOCK in block:* ; do {
			cd ${BLOCK}
			BLOCK=${BLOCK##block\:}
			ln -sf /dev/scsi/host${HOST}/bus0/target0/lun0/disc /dev/${BLOCK} 
			for DEV in ${BLOCK}*; do {
				ln -sf /dev/scsi/host${HOST}/bus0/target0/lun0/part${DEV##$BLOCK} /dev/$DEV
			}; done
		}; done
	} 2>&1 | logger 
	;;
esac