54 lines · 1.1 KB · Text
RawDownload
#!/bin/rcif(! bind -a '#u' /dev)	exit mkdir -p -m 700 '#σc/usb'mkdir -p -m 700 '#σc/usbnet' if(! nusb/usbd)	exit @{	rfork ne	fn attach {		id=$1		if(~ $#* 5 && ! test -e /env/nousbhname)			id=$1:$5		switch($2$3){		case 0b957720 0b95772a 0db0a877 13b10018 15577720 20013c05 07d13c05 05ac1402			nusb/ether -t a88772 $etherargs $id		case 0b951780 14eaab11 17370039 0411006e 050d5055			nusb/ether -t a88178 $etherargs $id		case 2001abc1			nusb/ether -t aue $etherargs $id		case 0bda8150			nusb/ether -t url $etherargs $id		case 18d14ee3 0bb40003			nusb/ether -t rndis $etherargs $id		case *			switch($4){			case *03				nusb/kb $id			case *02				# CDC ethernet				nusb/ether $etherargs $id			case *				# Raspberry Pi ethernet will always appear as /net/etherU0				if(~ $2 0424)					nusb/ether -t smsc $etherargs $1:0			}		}	}	fn detach {		devs='#σc/sdU'^($1 $5)		rm -rf '#σc/usb/'^$1.* '#σc/usbnet/'^$1.* $devs $devs.* 	}	rc < '#σ/usb/usbevent' &} # usbd removes this file once all devices have been enumeratedwhile(test -e /env/usbbusy)	sleep 1 bind -a '#σ/usb' /devbind -a '#σ/usbnet' /net