Smart me decided to plug my D80 in to my work PC (Kubuntu 7.04) today over my lunch break and browse some photos I took this morning. Nothing unusual there, I’ve done it before. So, plug it in, and … nothing. Not even a KDE dialog saying a new device has been plugged in, what would I like to do with it. Most unusual, it didn’t do that before the OS upgrade.

So, I interrogate the system for the list of USB devices that are plugged in:

Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 004: ID 045e:001e Microsoft Corp. IntelliMouse Explorer
Bus 003 Device 003: ID 413c:2010 Dell Computer Corp.
Bus 003 Device 002: ID 413c:1003 Dell Computer Corp.
Bus 003 Device 001: ID 0000:0000

Peculiar. Mouse, keyboard, hub. No camera. What’s the system log say?

May 9 13:20:52 localhost kernel: [1205659.868257] usb 5-8: new high speed USB device using ehci_hcd and address 4
May 9 13:20:53 localhost kernel: [1205660.001218] usb 5-8: configuration #1 chosen from 1 choice

Nope, that’s not right – there’s nothing after the configuration chosen line.

Drop the ehci driver, just to see what’s going on. Get the same lines, this time for the uhci_hcd driver. lsusb still says there’s no camera, udevinfo says nothing useful, and udevmonitor just says

UEVENT[1178714879.888701] add /devices/pci0000:00/0000:00:1d.7/usb5/5-7 (usb)
UEVENT[1178714879.888772] add /class/usb_endpoint/usbdev5.8_ep00 (usb_endpoint)
UEVENT[1178714879.888939] add /devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0 (usb)
UEVENT[1178714879.888954] add /class/usb_endpoint/usbdev5.8_ep81 (usb_endpoint)
UEVENT[1178714879.888964] add /class/usb_endpoint/usbdev5.8_ep02 (usb_endpoint)
UEVENT[1178714879.888974] add /class/usb_device/usbdev5.8 (usb_device)

Not a single UDEV line indicating that udev has triggered any kind of event.

For giggles, I removed uhci_hcd. Oops, there went my mouse and keyboard. I also discovered that if I unplug the keyboard and plug it back in, uhci_hcd didn’t get reloaded. Hmmm. SSH to the rescue.

Now, weirdly enough, other commands say ‘Yes, there’s a camera there Jim, and no, it isn’t dead.’, such as cat /proc/bus/usb/devices

T: Bus=05 Lev=01 Prnt=01 Port=07 Cnt=01 Dev#= 5 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=04b0 ProdID=0411 Rev= 1.01
S: Manufacturer=NIKON
S: Product=NIKON DSC D80

And lshal says

usb_device.device_revision_bcd = 257 (0×101) (int)
info.product = ‘NIKON DSC D80′ (string)
usb_device.product = ‘NIKON DSC D80′ (string)
info.vendor = ‘NIKON’ (string)
usb_device.vendor = ‘NIKON’ (string)
usb_device.product_id = 1041 (0×411) (int)
usb_device.vendor_id = 1200 (0×4b0) (int)

I’m confused :(