On 17 Jul 2007, at 16:09, Hans Verkuil wrote: > On Tuesday 17 July 2007 17:00:40 Nicholas Fearnley wrote: >> On 17 Jul 2007, at 15:08, Tyler Trafford wrote: >>> Nicholas Fearnley wrote: >>>> My hotplug script is custom also. It is being called for sure, >>>> but not by IVTV. I have something along the lines of: >>>> >>>> echo >> "I'm being called for $FIRMWARE" >>>> >>>> Which does show a couple of things, but not IVTV. The IVTV INIT >>>> simply fails to load the firmware for the detected PVR-150 card. >>>> It fails on retry also (with the 'firmware' suggestion). >>>> >>>> So hotplug is there, it's callable (it's getting called!), but not >>>> by IVTV. IVTV is detecting the card fine as a PVR-150, but just >>>> not calling hotplug at all. >>> >>> Is ivtv compiled as a module? >> >> No, compiled in kernel. Should that cause a problem? I should >> probably try and compile as a mod and get back to you. >> >> It would be cool to have it in kernel though from a 'firmware' build >> perspective - less to miss, and I can disable module loading from the >> kernel to make it tighter. > > I've never actually tested having ivtv compiled in the kernel, I > always > tested it as a module. I'm not sure how firmware loading is > supposed to > work for in-kernel drivers. I suspect that by the time the driver is > initialized the hotplug daemons may not be active yet. > > Regards, > > Hans
Agreed, that's probably the issue - but as a module I have problems still. My hotplug script has a little debug in it thus (the script I have used on 2.6.18 for a while now): It yields: HOTPLUG: called add, with /module/ivtv () HOTPLUG: called add, with /bus/pci/drivers/ivtv () HOTPLUG: called add, with /devices/pci0000:00/0000:00:08.0/firmware/ 0000:00:08.0 (v4l-cx2341x-enc.fw) HOTPLUG: loading /lib/modules/v4l-cx2341x-enc.fw to /sys//devices/ pci0000:00/0000:00:08.0/firmware/0000:00:08.0/data HOTPLUG: called remove, with /devices/pci0000:00/0000:00:08.0/ firmware/0000:00:08.0 (v4l-cx2341x-enc.fw) HOTPLUG: called add, with /devices/pci0000:00/0000:00:08.0/firmware/ 0000:00:08.0 (v4l-cx2341x-enc.fw) HOTPLUG: loading /lib/modules/v4l-cx2341x-enc.fw to /sys//devices/ pci0000:00/0000:00:08.0/firmware/0000:00:08.0/data HOTPLUG: called remove, with /devices/pci0000:00/0000:00:08.0/ firmware/0000:00:08.0 (v4l-cx2341x-enc.fw) Notice the double // in sys//devices! So I modify the script to remove this, but where did it come from? The kernel/driver must pass /devices in, so my loading line is now: cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS$DEVPATH/data But I now get this error: <6>ivtv: ==================== START INIT IVTV ==================== <6>ivtv: version 1.0.0 (2.6.22.1 preempt mod_unload VIAC7 ) loading <6>ivtv0: Autodetected Hauppauge card (cx23416 based) <6>ivtv0: Unreasonably low latency timer, setting to 64 (was 32) <3>firmware_loading_store: unexpected value (0) <3>ivtv0: unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes) <3>ivtv0: did you put the firmware in the hotplug firmware directory? And running the insmod ivtv.ko manually whilst quickly doing an 'ls' on /devices/pci0000:00/0000:00:08.0 in another shell reveals no firmware directory is created. Wierd. What did I do!!!! Nick _______________________________________________ ivtv-devel mailing list [email protected] http://ivtvdriver.org/mailman/listinfo/ivtv-devel
