LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 06-28-2003, 10:47 PM   #1
ViralHex
LQ Newbie
 
Registered: Jun 2003
Posts: 16

Rep: Reputation: 0
Question Setup PVR


hey,
well, I've been working on setting up a RedHat 9 Linux Box PVR and so I decided to go with the program called MythTV and my TV Tuner card is called the ATI TV Wonder VE. I've found a few sources which tell me that I need to recompile the kernel and install the drivers, so I downloaded the newest kernel (v2.4.21) and configured it all, but then when I try to compile it into a bzImage file it doesn't make one... anywhere... but it doesn't give any errors either. I might not even need to recompile the kernel for the TV4Linux bttv drivers, so maybe someone could clear that up too. Please tell me if you need me to clarify on any of this, and thanks in advance.
 
Old 06-29-2003, 12:26 AM   #2
MasterC
LQ Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu ; CentOS ; Raspbian
Posts: 12,613

Rep: Reputation: 69
Can you post up what steps you take when compiling the kernel?

Normally a:
make dep
make clean
make modules
make modules_install
make bzImage
Will place a bzImage of the kernel in:
/usr/src/linux-kernel-version/boot/arch/i386/bzImage

As for whether or not a new kernel comes with bttv, yes, they do, but does yoru distro, that's the question (but yes, it probably does). To check:
ls /lib/modules/kernel-version/kernel/drivers

Poke around in there and see if you can find it. If it's listed, you should be able to:
modprobe bttv

You might even just wanna try that first.

HTH

Cool
 
Old 06-29-2003, 11:01 AM   #3
ViralHex
LQ Newbie
 
Registered: Jun 2003
Posts: 16

Original Poster
Rep: Reputation: 0
well, ok...
I didn't know to use the make clean, make modules, make modules_install commands, so I can try that and see how it works out. But I'm still confused about a few things... first of all there was no bttv driver in /lib/modules/kernel-version/kernel/drivers (and yes, I did change "kernel-version" for my actual kernel version =).

But I don't see why I need to recompile a new kernel to install a new driver... do I need to install the new driver and THEN compile so that the kernel will include the new driver... I guess I just don't understand the basics of kernel compiling, so if you could clarify on any of this it would be great.

ok, this is what it told me after I used the make bzImage command:
drivers/media/media.o(.text+0x8d9): In function `msp3400c_reset':
: undefined reference to `i2c_transfer'
drivers/media/media.o(.text+0x903): In function `msp3400c_reset':
: undefined reference to `i2c_transfer'
drivers/media/media.o(.text+0x918): In function `msp3400c_reset':
: undefined reference to `i2c_transfer'
drivers/media/media.o(.text+0x9e8): In function `msp3400c_read':
: undefined reference to `i2c_transfer'
drivers/media/media.o(.text+0xaa8): In function `msp3400c_write':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x2686): In function `msp_attach':
: undefined reference to `i2c_attach_client'
drivers/media/media.o(.text+0x27ad): In function `msp_detach':
: undefined reference to `i2c_detach_client'
drivers/media/media.o(.text+0x283f): In function `msp_probe':
: undefined reference to `i2c_probe'
drivers/media/media.o(.text+0x2d66): In function `msp3400_init_module':
: undefined reference to `i2c_add_driver'
drivers/media/media.o(.text+0x2d86): In function `msp3400_cleanup_module':
: undefined reference to `i2c_del_driver'
drivers/media/media.o(.text+0x2fb5): In function `chip_write':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x301c): In function `chip_write':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x30cf): In function `chip_read':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x31a1): In function `chip_read2':
: undefined reference to `i2c_transfer'
drivers/media/media.o(.text+0x325e): In function `chip_cmd':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x4058): In function `chip_attach':
: undefined reference to `i2c_attach_client'
drivers/media/media.o(.text+0x42ac): In function `chip_probe':
: undefined reference to `i2c_probe'
drivers/media/media.o(.text+0x42e5): In function `chip_detach':
: undefined reference to `i2c_detach_client'
drivers/media/media.o(.text+0x4763): In function `audiochip_init_module':
: undefined reference to `i2c_add_driver'
drivers/media/media.o(.text+0x4786): In function `audiochip_cleanup_module':
: undefined reference to `i2c_del_driver'
drivers/media/media.o(.text+0x498f): In function `tda7432_write':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x4a6a): In function `tda7432_set':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x4c02): In function `tda7432_attach':
: undefined reference to `i2c_attach_client'
drivers/media/media.o(.text+0x4c5f): In function `tda7432_probe':
: undefined reference to `i2c_probe'
drivers/media/media.o(.text+0x4c91): In function `tda7432_detach':
: undefined reference to `i2c_detach_client'
drivers/media/media.o(.text+0x5086): In function `tda7432_init':
: undefined reference to `i2c_add_driver'
drivers/media/media.o(.text+0x50a6): In function `tda7432_fini':
: undefined reference to `i2c_del_driver'
drivers/media/media.o(.text+0x526e): In function `tda9875_write':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x5332): In function `i2c_read_register':
: undefined reference to `i2c_transfer'
drivers/media/media.o(.text+0x56d6): In function `tda9875_attach':
: undefined reference to `i2c_attach_client'
drivers/media/media.o(.text+0x571f): In function `tda9875_probe':
: undefined reference to `i2c_probe'
drivers/media/media.o(.text+0x5751): In function `tda9875_detach':
: undefined reference to `i2c_detach_client'
drivers/media/media.o(.text+0x5a06): In function `tda9875_init':
: undefined reference to `i2c_add_driver'
drivers/media/media.o(.text+0x5a26): In function `tda9875_fini':
: undefined reference to `i2c_del_driver'
drivers/media/media.o(.text+0x5c4a): In function `tda9887_miro':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x5dfe): In function `tda9887_configure':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x5fa9): In function `tda9887_attach':
: undefined reference to `i2c_attach_client'
drivers/media/media.o(.text+0x600f): In function `tda9887_probe':
: undefined reference to `i2c_probe'
drivers/media/media.o(.text+0x602a): In function `tda9887_detach':
: undefined reference to `i2c_detach_client'
drivers/media/media.o(.text+0x60c6): In function `tda9887_init_module':
: undefined reference to `i2c_add_driver'
drivers/media/media.o(.text+0x60e6): In function `tda9887_cleanup_module':
: undefined reference to `i2c_del_driver'
drivers/media/media.o(.text+0x6196): In function `tuner_getstatus':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x621f): In function `mt2032_init':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6228): In function `mt2032_init':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x62b0): In function `mt2032_init':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x62db): In function `mt2032_init':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x62f2): In function `mt2032_init':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6327): In function `mt2032_init':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6330): In function `mt2032_init':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x636f): In function `mt2032_init':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6840): In function `mt2032_check_lo_lock':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6849): In function `mt2032_check_lo_lock':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x68da): In function `mt2032_optimize_vco':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x68e3): In function `mt2032_optimize_vco':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x6938): In function `mt2032_optimize_vco':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x69d9): In function `mt2032_set_if_freq':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x69e6): In function `mt2032_set_if_freq':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x6a29): In function `mt2032_set_if_freq':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6a3b): In function `mt2032_set_if_freq':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6a4d): In function `mt2032_set_if_freq':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6ab1): In function `mt2032_set_if_freq':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6ae0): In function `mt2032_set_if_freq':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x6b13): more undefined references to `i2c_master_se nd' follow
drivers/media/media.o(.text+0x6fe8): In function `tuner_attach':
: undefined reference to `i2c_attach_client'
drivers/media/media.o(.text+0x70da): In function `tuner_probe':
: undefined reference to `i2c_probe'
drivers/media/media.o(.text+0x710b): In function `tuner_detach':
: undefined reference to `i2c_detach_client'
drivers/media/media.o(.text+0x7386): In function `tuner_init_module':
: undefined reference to `i2c_add_driver'
drivers/media/media.o(.text+0x73a6): In function `tuner_cleanup_module':
: undefined reference to `i2c_del_driver'
drivers/media/media.o(.text+0x10b92): In function `bttv_remove':
: undefined reference to `i2c_bit_del_bus'
drivers/media/media.o(.text+0x11c21): In function `bttv_I2CRead':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x11cfd): In function `bttv_I2CWrite':
: undefined reference to `i2c_master_send'
drivers/media/media.o(.text+0x11d68): In function `bttv_readee':
: undefined reference to `i2c_master_recv'
drivers/media/media.o(.text+0x11e46): In function `init_bttv_i2c':
: undefined reference to `i2c_bit_add_bus'
make: *** [vmlinux] Error 1

Last edited by ViralHex; 06-29-2003 at 11:11 AM.
 
Old 06-29-2003, 11:10 AM   #4
MasterC
LQ Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu ; CentOS ; Raspbian
Posts: 12,613

Rep: Reputation: 69
Hmm... I'll give you the skinny and work up from there.

You can copy a driver (module) directly to your kernel directory assuming you know where to copy it to. And then to call it:
modprobe modulename

bttv SHOULD be included in most default kernels so a kernel compile would not be necessary in either situation.

However, if you are building a kernel to add support, the above steps are required to get the kernels to the expected directory(ies) to correctly modprobe them.

The basics of kernel compiling are:
make <x><menu>config (where x and menu are options for what kind of config you want)
choose the options you want/need, save and then:
make dep
make clean
make modules
Optionally (but quite often used) make modules_install (*this is the step that will place the modules in /lib/modules in their correct places)
make bzImage (this step is actually creating a kernel and compressing it down with bz compression).

The next steps would include editing your boot loader for the new Image, copying the new Image to your /boot directory and smiling as you reboot and wait for the errors to start

Cool
 
Old 06-29-2003, 12:09 PM   #5
ViralHex
LQ Newbie
 
Registered: Jun 2003
Posts: 16

Original Poster
Rep: Reputation: 0
ok, so I think I understand all that, and I'm just wondering if you could tell you what all those errors mean...

I want to also build in DRI support, but I don't really know how to do that either, but I'm not going to worry about that for now.

So, if I want to add the bttv driver, I think I know how to do that, I just can't get the kernel to compile, so please look at those errors I included in my last post and tell me what you think
 
Old 06-29-2003, 06:58 PM   #6
MasterC
LQ Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu ; CentOS ; Raspbian
Posts: 12,613

Rep: Reputation: 69
THere are dependencies within the kernel. If you read the help files next to the options you are adding, such as bttv, it will tell you that if you enable that, you will also need to enable this.

In this case, it's i2c, which IIRC is in the character devices section? Poke around, I think you should be able to find it. If not, I'll be happy to look it up for ya.

Cool
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
PVR with Linux roc Linux - General 2 11-01-2005 10:59 AM
Hauppauge Wintv pvr-250 card setup jmit887 Linux - Hardware 3 01-25-2005 09:08 PM
WinTV PVR USB Adam15906 Linux - Hardware 0 01-04-2005 02:37 AM
PVR Cards belorion General 4 01-03-2005 03:26 PM
pvr freevo 4.5 mimsmall Linspire/Freespire 0 09-28-2004 08:37 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 06:20 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration