On Sat, 2008-09-13 at 00:13 -0400, Rob Rosenfeld wrote:
> I have a system with a PVR-150 in it and I recently had to replace the
> hard drive and reinstall OS and apps from scratch.  Now that I'm done,
> I'm having problems with the PVR-150 card.  The three "failed to load"
> modules listed below are built and can be modprobe'd individually.

OK.  ivtv calls 

        kernel/kmod.c:request_module()

Here's some interesting comments around that function:

   /*
           modprobe_path is set via /proc/sys.
   */
   char modprobe_path[KMOD_PATH_LEN] = "/sbin/modprobe";

   /**
    * request_module - try to load a kernel module
...
    * Load a module using the user mode module loader. The function returns
    * zero on success or a negative errno code on failure. 
...
    * If module auto-loading support is disabled then this function
    * becomes a no-operation.
    */
    int request_module(const char *fmt, ...)
    {
...
        char *argv[] = { modprobe_path, "-q", "--", module_name, NULL };
        static char *envp[] = { "HOME=/",
                                "TERM=linux",
                                "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
                                NULL };


Check to make sure that you don't have a path problem or some sort of
userland problem with modprobe or it's configuration or auto-loading of
modules.


>   On
> my PVR-250 system, I don't have to even explicitly specify them . . .
> they are loaded automatically by ivtv, but I've tried putting them in
> /etc/modules.autoload.d/kernel-2.6 before and after ivtv.

You would want cx25840 and wm8775 to load before ivtv for sure if doing
this (the tuner load can be problematic if you don't specify the type).

With cx25840 and wm8775 loaded first, you should not get the "Failed to
load module" message emitted by ivtv for those modules unless
request_module() fails in it's attempt to spawn modprobe.


> When I try to `cat /dev/video0 > /tmp/test.mpg` I get a zero byte file
> and the second set of messages are appended to dmesg output.

You won't get anything without the tuner and CX2584x chip being set up
properly.


> 
> I'm using kernel 2.6.26 (gentoo r1) and ivtv 1.3.0.
> 
> I've included the multimedia section of my kernel config below along
> with lsmod output.
> 
> Thanks in advance for your help.  I appreciate it.
> 
> # dmesg
> .
> .
> .
> ivtv:  Start initialization, version 1.3.0
> ivtv0: Initializing card #0
> ivtv0: Autodetected Hauppauge card (cx23416 based)
> ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 18
> ACPI: PCI Interrupt 0000:01:02.0[A] -> Link [LNKC] -> GSI 18 (level,
> low) -> IRQ 18
> i2c-adapter i2c-1: nForce2 SMBus adapter at 0x2d00
> i2c-adapter i2c-2: nForce2 SMBus adapter at 0x2e00
> tveeprom 0-0050: Hauppauge model 26132, rev F1B2, serial# 9900016
> tveeprom 0-0050: tuner model is TCL M2523_5N_E (idx 112, type 50)
> tveeprom 0-0050: TV standards NTSC(M) (eeprom 0x08)
> tveeprom 0-0050: audio processor is CX25841 (idx 35)
> tveeprom 0-0050: decoder processor is CX25841 (idx 28)
> tveeprom 0-0050: has no radio, has IR receiver, has IR transmitter
> ivtv0: Autodetected Hauppauge WinTV PVR-150
> ivtv0: Reopen i2c bus for IR-blaster support
> ivtv0: Failed to load module tuner
> ivtv0: Failed to load module cx25840
> ivtv0: Failed to load module wm8775

Do you get these even when these modules have be loaded manually a head
of time?


> ivtv0: Registered device video0 for encoder MPG (4096 kB)
> ivtv0: Registered device video32 for encoder YUV (2048 kB)
> ivtv0: Registered device vbi0 for encoder VBI (1024 kB)
> ivtv0: Registered device video24 for encoder PCM (320 kB)
> ivtv0: Initialized card #0: Hauppauge WinTV PVR-150
> ivtv:  End initialization
> 
> # dmesg
> .
> .
> .
> firmware: requesting v4l-cx2341x-enc.fw
> ivtv0: Loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
> ivtv0: Encoder revision: 0x02060039
> ivtv0: i2c addr 0x44 not found for command 0xc008561c
> ivtv0: i2c addr 0x44 not found for command 0x4008646f
> ivtv0: i2c hardware 0x00000020 (wm8775) not found for command 0x4008646d
> ivtv0: i2c hardware 0x00000001 (cx25840) not found for command 0x4008646d
> ivtv0: i2c addr 0x44 not found for command 0xc0d05605
> ivtv0: i2c addr 0x44 not found for command 0x40045613
> ivtv0: i2c addr 0x44 not found for command 0x40045612

These errors are a consequence of the ivtv module thinking the other
modules couldn't be loaded, even if they are loaded.


> # cat /usr/src/linux/.config
> .
> .
> .
> #
> # Multimedia drivers
> #

Probably more relevant would be config options related to automatic
module loading or the modprobe configuration settings that you have.

Note that the apriori known minimum dependencies (e.g. tveeprom) are
handled by the initial modprobe inspecting the module dependencies.

$ /sbin/modinfo ivtv | grep depends
depends:        
cx2341x,videodev,tveeprom,v4l2-common,i2c-core,i2c-algo-bit,compat_ioctl32

So it's only the card specific module requests via request_module()
spawning modprobe that's the problem.

Regards,
Andy


_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users

Reply via email to