Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Still getting segmentation faults when I modprobe bttv



On  7 Dec, Michael Hunold wrote:
>  Hello Luke,
>  
> > I've just finished my new attempt, starting again from scratch, mostly
> > following advice from Vincenzo Di Massa and Michael Hunold.
> > 
> > This is what I did:
> > 
> > 1. Unpacked 2.4.23 kernel, configured with video4linux, i2c, etc.
> > 2. Build kernel & modules & installed both
> > 3. cvs co dvb-kernel
> > 4. ran getlinks script in dvb-kernel
> > 5. make in dvb-kernel/build-2.4
> > 6. install in dvb-kernel/build-2.4
> > 7. Booted up the new 2.4.23 TV kernel
> > 8. Run dvb-nebula script to start modules.
> > 
> > BTW, I assume you don't have to be running the new kernel when you
> > "make install" in dvb-kernel/build-2.4?  I.e., steps 5 & 6 can be done
> > before step 7?
>  
>  You need to boot the new kernel before doing anything with "dvb-kernel", 
>    ie. move step 7 up to before step 3.
>
>  "dvb-kernel" always compiles its modules against the currently running 
>  kernel by resolving the /lib/modules/<kernel-version>/build/ link.
>  
>  So you have compiled the driver against your old running kernel and most 
>  likely some driver structures have changed, so bttv and the dvb-bt8x8 
>  parts use different sizes for their basic structures.

Ah, thanks, that's important to know.
 
> > (It's also possible that Vincenzo meant I should also do the extra steps
> > of unpacking bttv and patching it, and getting video4linux (2) and
> > making and installing that too.  But I did not unpack, build and install
> > video4linux-20031201.tar.gz - I just relied on what was in the released
> > 2.4.23 kernel.)
>  
>  The documentation is a little bit misleading, I admit. You definately 
>  need the "video4linux-xxxxyyzz.tar.gz" package from www.bytesex.org. You 
>  need to compile in all requirements for the in-kernel 2.4.23 bttv driver 
>  (that is i2c interface and i2c bitbanging stuff), so that the external 
>  driver can be compiled and run, too.

Thanks.  I made clean in video4linux-20031201 and rebuilt.  This time I
happened to use the default gcc on RH7.2, and found that I need gcc3.x
to compile it.  So I pointed PATH at my gcc3.2 version, and made clean
and recompiled again, this time with no trouble.  Then made install,
again with no errors or warnings.

> > I also get this error from "make install" in dvb-kernel/build-2.4
> > depmod: *** Unresolved symbols in /lib/modules/2.4.23-tv/misc/dvb-bt8xx.o
>  
>  That's not good. "depmod -ae" will show you the symbols that are 
>  missing. If everything fits together, no symbols should be unresolved, 
>  of course.

Thanks.  depmod is now fine, following your advice.

> > # ./dvb-nebula start
> > Inserting DVB modules into kernel./dvb-nebula: line 41:  1773 Segmentation fault
> >       modprobe bttv
> > 
> > And modprobe appears to have hung, so I'll need to reboot after I send
> > this email.
>  
> > But the dvb-nebula script doesn't appear to pass the card parameter (I
> > note that 104 = 0x68).  Does that matter?  If such a parameter is
> > needed for the modprobe, I think it would have to be added to
> > /etc/modules.conf, wouldn't it?
>  
>  If you have "make install"ed the driver, you don't have to use the 
>  insmod script. Try it manually, so you can monitor the syslog to see 
>  what's actually happening.

I made clean in dvb-kernel/build-2.4 and made and then made install,
all with no warnings or errors.

>  Simply load the basic modules via modprobe:
>  
>   > modprobe bttv card=0x68 i2c_hw=1

I tried that and got this error, followed by a segfault:

# modprobe bttv card=0x68 i2c_hw=1
Warning: ignoring i2c_hw=1, no such parameter in this module
Segmentation fault

I'm puzzled by the fact that this bttv driver didn't accept the i2c_hw
option.  I've just used the bttv driver in dvb-kernel.  

I'm glad to see that the modprobe didn't hang, as before, leaving a
locked-up process that forced a reboot (and in fact a reset, since the
shutdown process couldn't shut down the kernel because it couldn't
terminate the syslogd process.)

Here's what lsmod shows after the above modprobe:

]# lsmod
Module                  Size  Used by    Not tainted
bttv                   99968   1  (initializing)
i2c-algo-bit            8204   1  [bttv]
i2c-core               17024   0  [bttv i2c-algo-bit]
videodev                7872   0  [bttv]
es1371                 28000   0  (autoclean)
ac97_codec             14944   0  (autoclean) [es1371]
soundcore               5604   4  (autoclean) [bttv es1371]
nfsd                   75520   8  (autoclean)
parport_pc             21480   1  (autoclean)
lp                      7744   0  (autoclean)
parport                30816   1  (autoclean) [parport_pc lp]
autofs                 11076   0  (autoclean) (unused)
nfs                    72284   1  (autoclean)
lockd                  55232   1  (autoclean) [nfsd nfs]
sunrpc                 75380   1  (autoclean) [nfsd nfs lockd]
8139too                13856   1 
mii                     3460   0  [8139too]
ne2k-pci                5728   0  (unused)
8390                    7848   0  [ne2k-pci]
crc32                   3592   0  [8139too 8390]
ipchains               46888  13 
nls_iso8859-1           3488   2  (autoclean)
nls_cp437               5120   2  (autoclean)
vfat                   11580   2  (autoclean)
fat                    35128   0  (autoclean) [vfat]
usb-uhci               24452   0  (unused)
usbcore                70144   1  [usb-uhci]


>   > modprobe dvb-bt8xx
>   > modprobe nxt6000

Ah.  I went ahead and tried the modprobe dvb-bt8xx anyway, since
it looked like the bttv driver may have loaded (stupid, really), and
that process locked up.  So I'll need to reboot again, shortly.

Michael, thanks very much for your help.  I feel I'm getting much
closer now.

Anyway, here's the oops output.  I'm still puzzled and concerned by the
warnings in the oops output.

ksymoops 2.4.1 on i686 2.4.23.  Options used
     -v /usr/src/linux-2.4.23/vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.23-tv (specified)
     -m /boot/System.map-2.4.23 (specified)

Warning (compare_maps): ksyms_base symbol GPLONLY___ide_do_rw_disk not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_add_generic_settings not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_build_dmatable not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_destroy_dmatable not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_dma_intr not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_get_best_pio_mode not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_pci_register_driver not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_pci_unregister_driver not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_pio_timings not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_set_xfer_rate not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_setup_dma not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_setup_pci_device not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol GPLONLY_ide_setup_pci_devices not found in vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ac97_codec symbol GPLONLY_ac97_register_driver not found in /lib/modules/2.4.23-tv/kernel/drivers/sound/ac97_codec.o.  Ignoring /lib/modules/2.4.23-tv/kernel/drivers/sound/ac97_codec.o entry
Warning (compare_maps): ac97_codec symbol GPLONLY_ac97_unregister_driver not found in /lib/modules/2.4.23-tv/kernel/drivers/sound/ac97_codec.o.  Ignoring /lib/modules/2.4.23-tv/kernel/drivers/sound/ac97_codec.o entry
Warning (compare_maps): mismatch on symbol nlmsvc_ops  , lockd says d08792f0, /lib/modules/2.4.23-tv/kernel/fs/lockd/lockd.o says d08785cc.  Ignoring /lib/modules/2.4.23-tv/kernel/fs/lockd/lockd.o entry
Warning (compare_maps): mismatch on symbol nfs_debug  , sunrpc says d08a0664, /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o says d08a0364.  Ignoring /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o entry
Warning (compare_maps): mismatch on symbol nfsd_debug  , sunrpc says d08a0668, /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o says d08a0368.  Ignoring /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o entry
Warning (compare_maps): mismatch on symbol nlm_debug  , sunrpc says d08a066c, /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o says d08a036c.  Ignoring /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o entry
Warning (compare_maps): mismatch on symbol rpc_debug  , sunrpc says d08a0660, /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o says d08a0360.  Ignoring /lib/modules/2.4.23-tv/kernel/net/sunrpc/sunrpc.o entry
Warning (compare_maps): mismatch on symbol usb_devfs_handle  , usbcore says d08331b0, /lib/modules/2.4.23-tv/kernel/drivers/usb/usbcore.o says d0832c10.  Ignoring /lib/modules/2.4.23-tv/kernel/drivers/usb/usbcore.o entry
Dec  8 21:57:18 posh kernel: CPU:    0
Dec  8 21:57:18 posh kernel: EIP:    0010:[usbcore:usb_devfs_handle+922667/12172112]    Not tainted
Dec  8 21:57:18 posh kernel: EIP:    0010:[<d09145db>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
Dec  8 21:57:18 posh kernel: EFLAGS: 00010246
Dec  8 21:57:18 posh kernel: eax: 00000001   ebx: d0922f44   ecx: 00003a80   edx: 00000000
Dec  8 21:57:18 posh kernel: esi: d09271c0   edi: d09271c0   ebp: 00000001   esp: ce75be74
Dec  8 21:57:18 posh kernel: ds: 0018   es: 0018   ss: 0018
Dec  8 21:57:18 posh kernel: Process modprobe (pid: 8094, stackpage=ce75b000)
Dec  8 21:57:18 posh kernel: Stack: d09271c0 d09271c0 ffffffff d09271c0 d09271c0 c12d3c00 d09198b2 d09271c0 
Dec  8 21:57:18 posh kernel:        00000001 d09271c0 d09271c0 d09271c0 d09271c0 ffffffff 00000000 d091a30a 
Dec  8 21:57:18 posh kernel:        d09271c0 00000003 0000429c 2011a2db d0922980 d09229e0 c12d3c00 00000000 
Dec  8 21:57:18 posh kernel: Call Trace:    [usbcore:usb_devfs_handle+999440/12095339] [usbcore:usb_devfs_handle+999440/12095339] [usbcore:usb_devfs_handle+999440/12095339] [usbcore:usb_devfs_handle+999440/12095339] [usbcore:usb_devfs_handle+943874/12150905]
Dec  8 21:57:18 posh kernel: Call Trace:    [<d09271c0>] [<d09271c0>] [<d09271c0>] [<d09271c0>] [<d09198b2>]
Dec  8 21:57:18 posh kernel:   [<d09271c0>] [<d09271c0>] [<d09271c0>] [<d09271c0>] [<d09271c0>] [<d091a30a>]
Dec  8 21:57:18 posh kernel:   [<d09271c0>] [<d0922980>] [<d09229e0>] [<c01d6a7c>] [<d0922980>] [<d09229e0>]
Dec  8 21:57:18 posh kernel:   [<c01d6ae2>] [<d09229e0>] [<d091a41e>] [<d09229e0>] [<c011b1d5>] [<d0920ef4>]
Dec  8 21:57:18 posh kernel:   [<d0914060>] [<c0108903>]
Dec  8 21:57:18 posh kernel: Code: f7 34 19 89 d5 89 54 24 04 3b 96 08 03 00 00 75 24 8b 96 20 

>>EIP; d09145db <[bttv]bt848_muxsel+6b/1a0>   <=====
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09198b2 <[bttv]init_bt848+4e2/500>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d091a30a <[bttv]bttv_probe+2ea/370>
Trace; d09271c0 <[bttv]__ksymtab_bttv_read_gpio+0/2>
Trace; d0922980 <[bttv]bttv_pci_tbl+38/8c>
Trace; d09229e0 <[bttv]bttv_pci_driver+0/40>
Trace; c01d6a7c <pci_announce_device+3c/60>
Trace; d0922980 <[bttv]bttv_pci_tbl+38/8c>
Trace; d09229e0 <[bttv]bttv_pci_driver+0/40>
Trace; c01d6ae2 <pci_register_driver+42/60>
Trace; d09229e0 <[bttv]bttv_pci_driver+0/40>
Trace; d091a41e <[bttv]bttv_init_module+8e/e0>
Trace; d09229e0 <[bttv]bttv_pci_driver+0/40>
Trace; c011b1d5 <sys_init_module+595/660>
Trace; d0920ef4 <[bttv].rodata.end+34f5/4aa1>
Trace; d0914060 <[bttv]rvmalloc+0/90>
Trace; c0108903 <system_call+33/38>
Code;  d09145db <[bttv]bt848_muxsel+6b/1a0>
00000000 <_EIP>:
Code;  d09145db <[bttv]bt848_muxsel+6b/1a0>   <=====
   0:   f7 34 19                  divl   (%ecx,%ebx,1)   <=====
Code;  d09145de <[bttv]bt848_muxsel+6e/1a0>
   3:   89 d5                     mov    %edx,%ebp
Code;  d09145e0 <[bttv]bt848_muxsel+70/1a0>
   5:   89 54 24 04               mov    %edx,0x4(%esp,1)
Code;  d09145e4 <[bttv]bt848_muxsel+74/1a0>
   9:   3b 96 08 03 00 00         cmp    0x308(%esi),%edx
Code;  d09145ea <[bttv]bt848_muxsel+7a/1a0>
   f:   75 24                     jne    35 <_EIP+0x35> d0914610 <[bttv]bt848_muxsel+a0/1a0>
Code;  d09145ec <[bttv]bt848_muxsel+7c/1a0>
  11:   8b 96 20 00 00 00         mov    0x20(%esi),%edx


21 warnings issued.  Results may not be reliable.



luke



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index