diff --git a/rc/bin/cpurc b/rc/bin/cpurc index 482b13259..61cc32e4a 100755 --- a/rc/bin/cpurc +++ b/rc/bin/cpurc @@ -7,7 +7,9 @@ for(i in m i P S t u '$') bind -a '#'^$i /dev >/dev/null >[2=1] mount -qb /srv/cons /dev -mount -qa /srv/usb /dev + +# usb listener +nusbrc # mount points mntgen -s slashn && chmod 666 /srv/slashn diff --git a/rc/bin/nusbrc b/rc/bin/nusbrc new file mode 100644 index 000000000..624ec527e --- /dev/null +++ b/rc/bin/nusbrc @@ -0,0 +1,31 @@ +#!/bin/rc + +if(! test -e '#σ/usb/usbevent') + exit +if(! bind -a '#u' /dev) + exit + +@{ + rfork ne + fn attach { + switch($4){ + case *01 + nusb/audio $1 + case *02 + # serial and ethernet + nusb/serial $1 + case *03 + # handled /sys/src/9/boot/nusbrc + # nusb/kb $1 + case *08 + # handled /sys/src/9/boot/nusbrc + # nusb/disk $1 + } + } + fn detach { + # handled /sys/src/9/boot/nusbrc + } + rc < '#σ/usb/usbevent' & +} + +bind -a '#σ/usb' /dev diff --git a/rc/bin/termrc b/rc/bin/termrc index 42d38508e..96430b033 100755 --- a/rc/bin/termrc +++ b/rc/bin/termrc @@ -10,7 +10,9 @@ for(i in S f k t m i v L P u U A '$' Σ κ) rm -f /env/i mount -qb /srv/cons /dev -mount -qa /srv/usb /dev + +# usb listener +nusbrc # set up any partitions diskparts