#!/bin/rc if(! test -e '#σ/usb/usbevent') exit if(! bind -a '#u' /dev) exit @{ rfork ne fn attach { id=$1 if(~ $#* 5 && ! test -e /env/nousbhname) id=$1:$5 switch($4){ case *01 nusb/audio $id case ff0202 # RNDIS; handled by /sys/src/9/boot/nusbrc case *02 # serial and ethernet nusb/serial $id # handled /sys/src/9/boot/nusbrc # nusb/ether $id case *03 # handled /sys/src/9/boot/nusbrc # nusb/kb $id case *08 # handled /sys/src/9/boot/nusbrc # nusb/disk $id case 010106 nusb/ptp $id case * switch($2$3){ case 12d11003 0403* # HUAWEI, FTDI nusb/serial $id case 59862113 nusb/cam $id } } } fn detach { # handled /sys/src/9/boot/nusbrc } rc < '#σ/usb/usbevent' & } bind -qa '#σ/usb' /dev bind -qa '#σ/usbnet' /net