Linux - GeneralThis 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
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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
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
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
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
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.