Talk:How to Obtain, Build and Install V4L-DVB Device Drivers: Difference between revisions
(add Nov 2007 answer to user question) |
(add end of Jan 2008 comments) |
||
Line 80: | Line 80: | ||
rm /lib/modules/2.6.15-27-desktop64-smp/build |
rm /lib/modules/2.6.15-27-desktop64-smp/build |
||
ln -s /usr/src/kernels/2.6.15-27-desktop64-smp/build /lib/modules/2.6.15-27-desktop64-smp/build" |
ln -s /usr/src/kernels/2.6.15-27-desktop64-smp/build /lib/modules/2.6.15-27-desktop64-smp/build" |
||
------- |
|||
Jan 2008 comments: |
|||
=== Compilation for Kernels before 2.6.22 === |
|||
On old kernels (2.6.22 and older) there is a set of device drivers which will not compile as they require later kernel for the devices to be supported, and this will result in compilation errors. These can be fixed by disabling the compilation of unneeded (ones that require newer kernel) modules |
|||
<pre> |
|||
make allmodconfig |
|||
</pre> |
|||
Still it seems that for kernels older than 2.6.20 the compatibility may have been broken. ( If you figure out a way to compile on 2.6.17 put it here.) |
Revision as of 21:49, 28 February 2009
Comment April 23/06: A kernel 2.6.12 wouldn't build the modules but 2.6.16 worked well. I would suggest cd /usr/src/linux before retrieving the mercurial patches - the scripts couldn't find the kernel headers otherwise.
Apr 2007:
After following the steps above and getting down all needed sources I get the following output does this mean this driver does support 64bit kernels?
root@1[v4l-dvb]# make make -C /usr/local/src/v4l-dvb/v4l make[1]: Entering directory `/usr/local/src/v4l-dvb/v4l' scripts/make_makefile.pl No version yet. Updating/Creating .config File not found: /lib/modules/2.6.15-27-desktop64-smp/build/.config at ./scripts/make_kconfig.pl line 30. make[1]: Leaving directory `/usr/local/src/v4l-dvb/v4l' make[1]: Entering directory `/usr/local/src/v4l-dvb/v4l' Updating/Creating .config File not found: /lib/modules/2.6.15-27-desktop64-smp/build/.config at ./scripts/make_kconfig.pl line 30. make[1]: *** No rule to make target `.myconfig', needed by `config-compat.h'. Stop. make[1]: Leaving directory `/usr/local/src/v4l-dvb/v4l' make: *** [all] Error 2
or do I move my sources?
- Another reason for this issue is because your symbolic link for /lib/modules/<kernel-version>/build is broken. Before running make, remove the link and create a new pointing to the right location.
- For your example above,
rm /lib/modules/2.6.15-27-desktop64-smp/build
ln -s /usr/src/kernels/2.6.15-27-desktop64-smp/build /lib/modules/2.6.15-27-desktop64-smp/build
- and then, the remaining steps should work fine.
May 2007:
Kernel 2.6.17 Compilation Errors
If compilation fails on v4l-dvb/v4l/dvb_net.c with errors (kernel 2.6.17):
error: 'struct net_device' has no member named 'xmit_lock'
Then edit the v4l-dvb/v4l/dvb_net.c file, go to the error lines and replace this text:
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
by this one:
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
The compilation should now continue.
I get a bunch of conflicts when I tried to do this. I run a custom 2.6 kernel, built from 2.6.18. I don't understand how the V4L tree jibes with the drivers from the kernel source. I suspect that if you are going to install drivers from a V4L tree, you should *not* configure the modules in the kernel tree (which modules should you not configure?).
There seems to be a big gap in the howtos, between those for newbies who have never set up any dvb card for linux, and those intended for developers.
Mrdemeanour 16:46, 17 October 2006 (CEST)
I need help! I'm getting the issue as stated at the bottom of the page (more errata was it?). I can follow the instructions given but I dont have all of the paths/folders as described and dont know enough to help myself.
I the v4l-dvb package is in my home directory. I get the message saying "file not found: /lib/modules/2.6.22-14-server/build/.config" I dont have a folder called "build" at this path (or anywhere else I can see) so dont expect the symbolic link instructions pasted below to work.
What information can I give so that you can help me? I'm using ubuntu server 7.10.
"If you see the issue above, it is because your symbolic link for /lib/modules/<kernel-version>/build is broken. Before running make, remove the link and create a new pointing to the right location.
For your example above,
rm /lib/modules/2.6.15-27-desktop64-smp/build ln -s /usr/src/kernels/2.6.15-27-desktop64-smp/build /lib/modules/2.6.15-27-desktop64-smp/build"
Jan 2008 comments:
Compilation for Kernels before 2.6.22
On old kernels (2.6.22 and older) there is a set of device drivers which will not compile as they require later kernel for the devices to be supported, and this will result in compilation errors. These can be fixed by disabling the compilation of unneeded (ones that require newer kernel) modules
make allmodconfig
Still it seems that for kernels older than 2.6.20 the compatibility may have been broken. ( If you figure out a way to compile on 2.6.17 put it here.)