A small uvlong vs vlong fix in ums.h A change to usb lib to make usbd and all drivers bind devusb if /dev/usb is not there. A 9fan started usbd and then changed the ns so that usbd could not open new endpoints. I think this may help. Reference: /n/sources/patch/applied/usbfixes Date: Fri May 29 18:20:56 CES 2009 Signed-off-by: nemo@lsub.org --- /sys/src/cmd/usb/disk/ums.h Fri May 29 18:05:00 2009 +++ /sys/src/cmd/usb/disk/ums.h Fri May 29 18:04:57 2009 @@ -50,7 +50,7 @@ { ScsiReq; uvlong blocks; - uvlong capacity; + vlong capacity; uchar rawcmd[10]; uchar phase; char *inq; --- /sys/src/cmd/usb/lib/dev.c Fri May 29 18:05:04 2009 +++ /sys/src/cmd/usb/lib/dev.c Fri May 29 18:05:02 2009 @@ -33,6 +33,8 @@ Usbdev *ud; char name[40]; + if(access("/dev/usb", AEXIST) < 0 && bind("#u", "/dev", MBEFORE) < 0) + return nil; if(d->cfd < 0 || d->usb == nil){ werrstr("device not configured"); return nil; @@ -91,6 +93,8 @@ Dev *d; int l; + if(access("/dev/usb", AEXIST) < 0 && bind("#u", "/dev", MBEFORE) < 0) + return nil; d = emallocz(sizeof(Dev), 1); incref(d);