> I found out that `ls #u' is useful since #u is the short name bound to the > usb directory. So if it works it means that usbd is up?
No, the existence of '#u' just shows that the kernel usb driver exists and a usb interface has been found. The user-level usbd program is needed in order to connect and enumerate any devices. You can use the ps(1) command to see whether usbd is running. term% ps|grep usbd miller 5 0:06 4:02 492K Sleep usbd miller 7 0:05 0:15 492K Pread usbd miller 8 0:00 0:00 492K Pread usbd miller 9 0:00 0:00 492K Rendez usbd miller 10 0:00 0:00 492K Rendez usbd miller 68 0:00 0:00 492K Rendez usbd You said you had seen the error message 'no hubs' when starting usb/usbd. It's often useful to explore the source code to find more information about an error message: term% src -n usb/usbd /sys/src/cmd/usb/usbd/usbd.c:809 term% grep 'no hubs' /sys/src/cmd/usb/usbd/*.c /sys/src/cmd/usb/usbd/usbd.c: sysfatal("/dev/usb: no hubs"); Sysfatal exits after printing a message, so that explains why usbd is not running, and therefore isn't providing the /srv/usb service. To look for more clues about what's going wrong: - try 'ls -d /dev/usb' to see if '#u' is bound in /dev - try 'cat /dev/usb/ctl' to see what the state of your usb interfaces is - look in /dev/kmesg to see if there are any boot-time error messages relating to usb