[Update: I see my Intel Linux 'hardy' MythTV box has a 'firmware_helper' executable in /lib/udev, whereas the 'jaunty' SheevaPlug and Intel box have a 'firmware.sh' script in /lib/udev.]
OK, after losing my /usr filesystem (note to self: apparently unplugging a USB hub from the SheevaPlug can cause corruption of an SD card) I re-established my Sheeva distribution on the external USB drive which I got in anticipation of getting this last piece to the MythTV puzzle working. With a kernel provided by 'pushbx' that incorporates the 'pvrusb2' driver (not as a module), and the necessary firmware in /lib/firmware, here's what I see when I plug in the HVR-1950:
usb 1-1.3: new high speed USB device using orion-ehci and address 5
usb 1-1.3: configuration #1 chosen from 1 choice
This looks to me to be the same as the kernel without the driver. Hmm...
Next I thought that perhaps the firmware wasn't being found, so I renamed it on my Intel 'hardy' MythTV box (on which I have successfully used the tuner) to see what would happen if it's not found, and plugged it in there. I got:
[347747.808029] usb 1-8: new high speed USB device using ehci_hcd and address 17
[347747.945182] usb 1-8: configuration #1 chosen from 1 choice
[347748.944111] usb 1-8: firmware: requesting v4l-pvrusb2-73xxx-01.fw
[347748.951269] pvrusb2: ***WARNING*** Device fx2 controller firmware seems to be missing.
[347748.951274] pvrusb2: Did you install the pvrusb2 firmware files in their proper location?
[347748.951277] pvrusb2: request_firmware unable to locate fx2 controller file v4l-pvrusb2-73xxx-01.fw
[347748.951280] pvrusb2: Failure uploading firmware1
[347748.951283] pvrusb2: Device initialization was not successful.
[347748.951286] pvrusb2: Giving up since device microcontroller firmware appears to be missing.
My understanding is that 'udev' handles loading of the firmware, and that's certainly running on the SheevaPlug.
I also tried this on a basic 'jaunty' install on a third computer, and noticed a new "third line" which is missing from the Sheeva (in the following case, firmware was present, and lines after obvious success are deleted); the following also looks identical to the 'success' case on my Hardy MythTV box, with the exception of the new third line, which is apparently specific to Jaunty:
[ 593.490018] usb 1-4: new high speed USB device using ehci_hcd and address 2
[ 593.644339] usb 1-4: configuration #1 chosen from 1 choice
[ 593.698637] Linux video capture interface: v2.00
[ 593.763880] usbcore: registered new interface driver pvrusb2
[ 593.763905] pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner
[ 593.763910] pvrusb2: Debug mask is 31 (0x1f)
[ 594.760164] usb 1-4: firmware: requesting v4l-pvrusb2-73xxx-01.fw
[ 594.781660] pvrusb2: Device microcontroller firmware (re)loaded; it should now reset and reconnect.
[ 596.328962] usb 1-4: USB disconnect, address 2
[ 596.329440] pvrusb2: Device being rendered inoperable
[ 596.600019] usb 1-4: new high speed USB device using ehci_hcd and address 3
[ 596.759694] usb 1-4: configuration #1 chosen from 1 choice
[ 596.842134] cx25840' 1-0044: cx25843-24 found @ 0x88 (pvrusb2_a)
[ 596.912732] tuner' 1-0042: chip found @ 0x84 (pvrusb2_a)
[ 596.937121] tveeprom 1-00a2: Hauppauge model 75111, rev C3E9, serial# 5371386
...
So perhaps the next thing we should see on the SheevaPlug is "Linux video capture interface: v2.00"? A quick 'grep -l' on the Intel Jaunty system reveals this line is somewhere in videodev.ko, so if that driver is compiled into the kernel I'm now running, I would expect to see that message, right? (Interestingly, 'grep -l' against the SheevaPlug kernel doesn't seem to be very fruitful, even the word 'video' didn't match...) Also, given that the 'videodev' module was present in the 2.6.30-rc4 image provided by 'cbxbiker61', I would have thought this third line might have shown up there, even without the additional drivers specific to the HVR-1950.
Here's the output of 'udevmonitor', or 'udevadm monitor', on the SheevaPlug:
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[1243272711.974440] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4 (usb)
KERNEL[1243272711.974573] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0 (usb)
KERNEL[1243272711.974672] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep81 (usb_endpoint)
KERNEL[1243272711.974768] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep84 (usb_endpoint)
KERNEL[1243272711.974862] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep88 (usb_endpoint)
KERNEL[1243272711.974956] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep01 (usb_endpoint)
KERNEL[1243272711.975051] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep02 (usb_endpoint)
KERNEL[1243272711.975145] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep86 (usb_endpoint)
KERNEL[1243272711.975238] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/usb_device/usbdev1.6 (usb_device)
KERNEL[1243272711.975330] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/usb_endpoint/usbdev1.6_ep00 (usb_endpoint)
UDEV [1243272711.976139] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4 (usb)
UDEV [1243272711.989564] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0 (usb)
UDEV [1243272711.995778] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/usb_device/usbdev1.6 (usb_device)
UDEV [1243272712.008812] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep88 (usb_endpoint)
UDEV [1243272712.014952] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep84 (usb_endpoint)
UDEV [1243272712.039559] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/usb_endpoint/usbdev1.6_ep00 (usb_endpoint)
UDEV [1243272712.041717] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep86 (usb_endpoint)
UDEV [1243272712.042514] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep02 (usb_endpoint)
UDEV [1243272712.043252] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep01 (usb_endpoint)
UDEV [1243272712.046061] add /devices/platform/orion-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/usb_endpoint/usbdev1.6_ep81 (usb_endpoint)
And on the basic Jaunty, non-MythTV system:
monitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent
UEVENT[1243281061.483320] add /devices/pci0000:00/0000:00:10.3/usb1/1-4 (usb)
UDEV [1243281061.488216] add /devices/pci0000:00/0000:00:10.3/usb1/1-4 (usb)
UEVENT[1243281061.489453] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0 (usb)
UEVENT[1243281061.489493] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep81 (usb_endpoint)
UEVENT[1243281061.489526] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep84 (usb_endpoint)
UEVENT[1243281061.489553] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep88 (usb_endpoint)
UEVENT[1243281061.489579] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep01 (usb_endpoint)
UEVENT[1243281061.489604] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep02 (usb_endpoint)
UEVENT[1243281061.489628] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep86 (usb_endpoint)
UEVENT[1243281061.489652] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/usb_endpoint/usbdev1.2_ep00 (usb_endpoint)
UDEV [1243281061.496395] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/usb_endpoint/usbdev1.2_ep00 (usb_endpoint)
UEVENT[1243281061.527453] add /module/tveeprom (module)
UEVENT[1243281061.529937] add /module/v4l1_compat (module)
UDEV [1243281061.530909] add /module/tveeprom (module)
UEVENT[1243281061.537592] add /module/videodev (module)
UEVENT[1243281061.537633] add /class/video4linux (class)
UDEV [1243281061.538136] add /module/v4l1_compat (module)
UEVENT[1243281061.543161] add /module/v4l2_common (module)
UDEV [1243281061.544996] add /module/videodev (module)
UDEV [1243281061.547085] add /class/video4linux (class)
UDEV [1243281061.549125] add /module/v4l2_common (module)
UEVENT[1243281061.554578] add /module/cx2341x (module)
UDEV [1243281061.556455] add /module/cx2341x (module)
UEVENT[1243281061.573547] add /module/dvb_core (module)
UEVENT[1243281061.573586] add /class/dvb (class)
UDEV [1243281061.575452] add /module/dvb_core (module)
UDEV [1243281061.577523] add /class/dvb (class)
UEVENT[1243281061.597762] add /module/pvrusb2 (module)
UDEV [1243281061.599338] add /module/pvrusb2 (module)
UEVENT[1243281061.600171] add /class/pvrusb2 (class)
UDEV [1243281061.601841] add /class/pvrusb2 (class)
UEVENT[1243281061.602813] add /bus/usb/drivers/pvrusb2 (drivers)
UDEV [1243281061.606976] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0 (usb)
UDEV [1243281061.610596] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep81 (usb_endpoint)
UDEV [1243281061.613178] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep84 (usb_endpoint)
UDEV [1243281061.615698] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep88 (usb_endpoint)
UDEV [1243281061.618224] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep01 (usb_endpoint)
UDEV [1243281061.620833] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep02 (usb_endpoint)
UDEV [1243281061.623392] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep86 (usb_endpoint)
UDEV [1243281061.625689] add /bus/usb/drivers/pvrusb2 (drivers)
UEVENT[1243281062.599177] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/firmware/1-4 (firmware)
UEVENT[1243281062.615874] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/firmware/1-4 (firmware)
UDEV [1243281062.617431] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/firmware/1-4 (firmware)
UDEV [1243281062.618775] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/firmware/1-4 (firmware)
UEVENT[1243281064.168606] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep81 (usb_endpoint)
UEVENT[1243281064.168801] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep84 (usb_endpoint)
UEVENT[1243281064.168863] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep88 (usb_endpoint)
UEVENT[1243281064.168891] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep01 (usb_endpoint)
UEVENT[1243281064.168915] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep02 (usb_endpoint)
UEVENT[1243281064.168941] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep86 (usb_endpoint)
UEVENT[1243281064.168972] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0 (usb)
UEVENT[1243281064.168998] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/usb_endpoint/usbdev1.2_ep00 (usb_endpoint)
UEVENT[1243281064.169035] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4 (usb)
UDEV [1243281064.171654] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep81 (usb_endpoint)
UDEV [1243281064.174444] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep84 (usb_endpoint)
UDEV [1243281064.177230] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep88 (usb_endpoint)
UDEV [1243281064.180085] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep01 (usb_endpoint)
UDEV [1243281064.182852] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep02 (usb_endpoint)
UDEV [1243281064.185641] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.2_ep86 (usb_endpoint)
UDEV [1243281064.189859] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0 (usb)
UDEV [1243281064.192676] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4/usb_endpoint/usbdev1.2_ep00 (usb_endpoint)
UDEV [1243281064.197221] remove /devices/pci0000:00/0000:00:10.3/usb1/1-4 (usb)
UEVENT[1243281064.598614] add /devices/pci0000:00/0000:00:10.3/usb1/1-4 (usb)
UEVENT[1243281064.599521] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0 (usb)
UDEV [1243281064.607728] add /devices/pci0000:00/0000:00:10.3/usb1/1-4 (usb)
UEVENT[1243281064.609733] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep81 (usb_endpoint)
UEVENT[1243281064.609782] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep84 (usb_endpoint)
UEVENT[1243281064.609808] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep88 (usb_endpoint)
UEVENT[1243281064.609833] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep01 (usb_endpoint)
UEVENT[1243281064.609858] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep02 (usb_endpoint)
UEVENT[1243281064.609882] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep86 (usb_endpoint)
UEVENT[1243281064.609906] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/usb_endpoint/usbdev1.3_ep00 (usb_endpoint)
UDEV [1243281064.614873] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0 (usb)
UDEV [1243281064.620415] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep81 (usb_endpoint)
UDEV [1243281064.623460] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep84 (usb_endpoint)
UDEV [1243281064.626507] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep88 (usb_endpoint)
UEVENT[1243281064.630150] add /module/cx25840 (module)
UEVENT[1243281064.630193] add /bus/i2c/drivers/cx25840' (drivers)
UEVENT[1243281064.630215] add /bus/i2c/drivers/cx25840 (drivers)
UDEV [1243281064.635420] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep01 (usb_endpoint)
UDEV [1243281064.638459] add /devices/pci0000:00/0000:00:10.3/usb1/1-4/1-4:1.0/usb_endpoint/usbdev1.3_ep02
Any thoughts on why the Intel Ubuntu system announces the request for firmware and the SheevaPlug system doesn't? I see that the firmware request log line is tagged 'usb' rather than 'pvrusb2', so presumably the pvrusb2 driver isn't even involved yet at this point??
Thanks for any suggestions,
Charles