Programming :: All Hardware Drivers Included In Kernel Sources?
Jan 7, 2009
I am software developer, and I am new in kernel programming. I have token a look at linux sources, I found that drivers of all hardware are included in linux kernel sources. The question is, how Linux include this drivers on the Kernel?
- Including drivers statically in the the kernel is illogical of course. Since drivers will be loaded, all of them, even if they are not used.
- making drivers as dynamic libraries (.so) is not sufficient, too. How does the kernel include this library if it was already compiled and build ?
Moreover, will Linux sources grow every time a new driver take place ? this causes many troubles:
- Compiling linux will become slower year after year.
- linux evolution will be difficult because next versions must support old drivers.
- Linux Distributions will be huge in size.
Is there a way to determine which devices (by mfr, model, whatever) are supported by the drivers included in the 11.4 DVD? I'm sure this is a naive question,
I recently installed openSUSE 11.2 on a computer with a Canon i860 printer attached to it. Previously this computer had Ubuntu 9.10 installed on it. When Ubuntu was installed on it, the computer found and printed on the Canon i860 printer just fine. When I installed openSUSE, the list of Canon drivers did *not* include the Canon i860. Just for giggles I selected Canon BJC 4000.
It prints, but it "misbehaves" - For example, if I want to print a document that says only "Hello world", it will print it, but it prints it about 20 times on one sheet. I figure this insanity is caused by the improper driver I selected. I'm not expert enough to know how to get this printer working. And - why would it work okay in Ubuntu 9.10, but not openSUSE 11.2? Did I do something wrong while installing openSUSE?
my wireless doggle is not suppoerted out of box on squeeze.It's based on zd1211rw,just lack the vendor and product id.how can I hack the source and rebuild the driver module?
I'm running Debian wheezy on a Toshiba NB505 and I've noticed that the wireless connectivity can be painfully slow at times. I know it's not our home network because my desktop flies (running Windows).Currently, I have the driver from this guide installed. I went to Realtek's site to download the latest driver for this wireless card (RTL8188CE, the Linux/UNIX version) thinking maybe this more up-to-date driver would operate better than the one used in the guide above.Is there a possible way to install this driver, or should I just stick with the current driver I'm using from the guide above?
I have installed CentOS 5.4 & am trying to install VirtualBox on it. To install VirtualBox I run the command:
yum localinstall path/Virtualbox.rpm
It runs through the dependency check & says everything is fine. It installs the rpm & then says that compiling of the kernel module failed & that VirtualBox will not start until this is fixed, & that the most like cause is that the kernel sources are not installed.
I have installed the kernel-devel package & have the kernel source tree located at /usr/src/kernel/2.6....
I just installed Ubuntu 9.10 and at some point I realised that the Update manager application will not open when I click on it the hard drive spin a little but nothing happens.I realized that the Software sources et Hardware drivers apps are in the same states. I was not able to see after what operation/installation I did that I they stop working.I am a beginner with Linux, and I feel that if I reinstall I will fall into the same hole .
Building an nVidia driver requires sources for the currently-running kernel. In my case (Fedora 12), it is, according to 'uname -a', 2.6.31.5-127.fc12.i686
I thought I could get the sources with 'yum install kernel-sources', but there is no such package. Then I tried 'yum install kernel-devel'. That package exists, but the kernel is 2.6.32.9-67.fc12.i686
What is the difference between kernels which come from the update repository and the plus repository ? Often the same version comes from both, but one says centosplus at the end the other, from the update repository, does not.
I need to download the Kernel sources add a few lines and then recompile and install the new files. I found the following lines that are suppose to do it on nVidia's forums:
what the Kernel Module Source packages are called?... This guide I am trying to follow is obviously dated but it is the only solid lead I have been able to find towards making my ram work...This is the original thread on the NVNEWs boards: Unable to install Nvidia driver on 9500M + Ubuntu - Page 2 - nV News Forums,Read through that thread I linked to the NVidia forums for a detailed run down of what is wrong.
The semi short version: There is some sort of issue with the NVidia driver on the G1Sn (and several other Asus Models) and the way the Linux Kernel address memory, the issue results in not being able to use more than 2 Gigs of ram with the Nivida drivers. There is a patch (again check the nvidia forum link) that people said they had applied to fix this issue. At this point I am seriously considering Vista again if I can't get this working I love Ubuntu but I hate having my hardware limited by my software...where to download the files I need to recompile in the Kernel with the patch I need for my ram to work?
I tried posting there but it seems like the thread is long dead.. how I can download the needed files and maybe how I add these lines to it?I also started a thread on the ubuntu forums here: [ubuntu] Downloading Current Kernel Sources.
Is it possible to get a package via yum that has the kernel sources? In the "Add/Remove Software" GUI program, I have enabled the "Fedora source" s/w repository. Even then, the only kernel package I can find is the "The Linux Kernel", linux-2.6.27.15-170... which essentially provides only the kernel binaries and headers but not the source.
It has been years since I have need to compile the kernel or its modules. Here goes: I recently upgraded to ubuntu 10.10 and needed the kernel source and its modules source. The relevant directories are in a mess. Several diff versions, broken links, the works. Is there a nice easy way, to remove all of the sources, there, and err "install" the ones for my latest kernel, in the correct places. Then I might have a chance at getting the two modules I need complied! Nvidia being one for the geforce 4 mx420 nv17
When compiling software I get the following notice : You do not appear to have the sources for the 2.6.31.5xls-domU kernel installed.
Yum says : Package kernel-headers-2.6.18-164.11.1.el5.x86_64 already installed and latest version Package kernel-devel-2.6.18-164.11.1.el5.x86_64 already installed and latest version
But uname says : Code: -bash-3.2# ls /usr/src/kernels/ 2.6.18-164.11.1.el5-x86_64 -bash-3.2# uname -a Linux vds.hosting.net 2.6.31.5xls-domU #4 SMP Fri Dec 4 12:17:04 CET 2009 x86_64 x86_64 x86_64 GNU/Linux
Extra info : title CentOS (2.6.18-164.11.1.el5xen) root (hd0,0) kernel /boot/vmlinuz-2.6.18-164.11.1.el5xen ro root=/dev/xvda1 console=xvc0 initrd /boot/initrd-2.6.18-164.11.1.el5xen.img
This is a VDS I'm renting from my Hosting company. How can I get the right sources? RPMforge repo?
I want to compile a kernel to add a few options that are not enabled in the huge-smp-2.6.29.6 that comes with slackware. specifically, i want to add TASK_DELAY_ACCT and TASK_IO_ACCOUNTING so that I can use iotop. I just want to add those 2 options to the new kernel, everything else I'd like to keep the way it is as the system has been running just fine. Will running 'make menuconfig' in /usr/src/linux default to the options that are used in the stock kernel?
I am not new to Debian and used to use commands like "apt-get install <package>", "apt-get update", "apt-get upgrade" and "apt-cache search <string>" regularly. But I never understood those Debian programs and the Debian package system with it's numerous programs and way to install things and work on software and configurations. Now, I just wanted to do something that I thought to be really easy. Get the source of an existing package. And despite spending over 3 hours - including reading the man-pages of commands - I cannot find a way!
I already don't understand why I have two such packages installed. I would like to download the source of my kernel: apt-get source linux-image-2.6.26-2-openvz-amd64. This downloaded linux-2.6_2.6.26-21lenny4.dsc, linux-2.6_2.6.26.orig.tar.gz and linux-2.6_2.6.26-21lenny4.diff.gz
Then, I wanted to patch this - having found no explanation, I did: cd linux patch < ../linux-2.6_2.6.26-21lenny4.diff
That seemed to patch the kernel. But I am not sure - there are new files like this now_ [...] Only in linux-2.6-2.6.26: xenctrl-capabilities.patch Only in linux-2.6-2.6.26: xenctrl.patch Only in linux-2.6-2.6.26: xenctrl-privcmd.patch [...]
So, how can download the complete Debian kernel source? And what do I need to be able to compile it? And - HOW to just list all available sources and search in them?!? I found lots of webpages where tools like "make-kpkg" are used, which I do not understand again. Under SuSE, I could just select the package from a list, say "make oldconfig install modules modules_install" and be ready. Under Debian, I just find no way ...
How can I use DKMS to force the virtualbox setup to run using the correct kernel sources? This is the error I'm getting in the vbox logs
Code: Attempting to install using DKMS removing old DKMS module vboxdrv version 3.1.2 Deleting module version: 3.1.2 completely from the DKMS tree. Done.
Error! Your kernel source for kernel 2.6.31.6-166.fc12.x86_64 cannot be found at /lib/modules/2.6.31.6-166.fc12.x86_64/build or /lib/modules/2.6.31.6-166.fc12.x86_64/source. You can use the --kernelsourcedir option to tell DKMS where it's located.
Failed to install using DKMS, attempting to install without: Makefile:152: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
As it written here [URL]. Fedora 13 does not include the kernel-source package provided by older versions, since only the kernel-devel package is required now to build external modules. Linux kernel, does not belong to fedora. Fedora is derivative work isn't it? Or you rewrite all kernel in fedora 13, and fedora is not linux any more? According to GPL, derivative works must be licensed as GPL. And so you must provide ALL sources for free. Including kernel sources. So, where can I get kernel sources for fedora 13? Or I'm wrong, and you shouldn't provide them if you wont?
Trying to install VMWare I get the following message:
Really after it VMWare anyway doesn't agree to install. Zypper says that no newer version of gcc is available. So I can't see how I can install VMWare.
I have an assignment as a CS student to code over Ubuntu Kernel but I am surely a beginner. I need to download all the source files of the Ubuntu kernel source code, make some changes then compile and use it as a custom kernel.
I am currently trying to install Debian 8 "Jessie" AMD64 on a Dell Latitude E7240. I have two 256 GB SSD disks, on the first one I have installed Xubuntu 14.04 successfully. I want to install Debian 8 (XFCE) on the other one.I have tried using Debian-8.0.0-Live-amd64-xfce, Debian-8.0.0-amd64-DVD and Debian-8.0.0-amd64-netinst, all from a USB key (prepared with Unetbootin), but after successfully partitionning SSD disk, the installer raises the following issue:"no install-able kernel was found in the defined apt sources".
I followed this doc for the "debian method" for building the kernel: [URL]. I installed the source in /var/tmp/src/linux-2.6-2.6.32 , configured it, and tried make-kpkg modules-image. The error I get is:
checking for current directory... /usr/src/modules/alsa-driver checking cross compile... checking for directory with ALSA kernel sources... ../alsa-kmirror checking for directory with kernel top-level makefile... /var/tmp/src/linux-2.6-2.6.32 checking for directory with kernel headers... failed make[2]: *** [configure-stamp] Error 1 make[2]: Leaving directory `/usr/src/modules/alsa-driver' make[1]: *** [kdist_image] Error 2 make[1]: Leaving directory `/usr/src/modules/alsa-driver' Module /usr/src/modules/alsa-driver failed.
I tried some hacks such as setting KBUILD_SRC or ln -s linux-headers-2.6.32-5-amd64/ /usr/src/linux - but these fail too.
I can not for the work get Virtual Box's Additions to install in my FC12 guest. The error log (/var/log/vboxadd-install.log) shows: Makefile:23: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.. Stop.
I have tried: # KERN_DIR=/usr/src/kernels # KERN_DIR=/usr/src/kernels/2.6.31.12-174.2.22.fc12.i686 # KERN_DIR=/usr/src/kernels/2.6.31.12-174.2.22.fc12.i686/kernel
I am trying to compile a patch for HDMI audio, reference this thread [URL]
Code: Instructions: - download alsa-driver-1.0.21 from alsa homepage - unpack downloaded alsa: $ tar jxvf alsa-driver-1.0.21.tar.bz2
- download and apply my patch $ wget http: [URL] $ cd alsa-driver-1.0.21 $ patch -p 1 < ../alsa-driver-1.0.21-nvidia-ion2-hdmi.patch
- compile alsa $ ./configure $ make $ make install when I do ./configure it outputs this
Code: The file /lib/modules/2.6.33.7-pclos6.bfs/source/include/linux/autoconf.h does not exist. Please install the package with full kernel sources for your distribution or use --with-kernel=dir option to specify another directory with kernel sources (default is /lib/modules/2.6.33.7-pclos6.bfs/source). How can I direct it to install with the 'full kernel sources' ?
I have installed and configured Slackware 13.1 and it works perfectly. Now I'm going (actually forced) to downgrade kernel version down to 2.6.32. Is there any caveats? Do I need rebuild any other packages from sources?
I am trying to get Centos V 5.5 working on my old P4P800 Asus motherboard . This motherboard has an inbuilt 3c2000 1Gbit NIC. I know from previous experience that it does not work with a standard kernel. So as the network card doesn't work I cannot connect to standard repositories. The Kernel source does not seem to be in the main install DVD so have downloaded [URL].. files from another machine. and loaded them onto the local drive. uname -r reports kernel 2.6.18-194.el5 however there are many kernel src files in the RPMS directory and yum install kernel-2.6.18-194.8.el5 through kernel-2.6.18-194.32.el5 report Nothing to do or incompatible achitechture ? I also notice that make install for the 3c2000 tar file I have doesn't work either. I know Centos is locked down more than the previous Mandrake 9.2 Install was under Mandrake a urpmi kernel-source, make install of the driver code and insmod 3c2000 was all that was needed.I am still pretty new to linux and just need some pointers on what needs to be installed and to identify what centos is looking for?
I'm using Slackware 13.0 on rather old PC with old Riva TNT2 video card. Default driver is "nv". Everything work fine, but without hardware 2D acceleration under X.
After studying various manuals I 1. downloaded Nvidia binary package suitable for my video card. 2. Recompile kernel without Riva framebuffer support. 3. Start Nvidia script.
Script said: "Error: unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured...""
Kernel sources are in /usr/src/linux-2.6.29.6 I have all kernel packages installed. I was trying various switches for script in order to show the right path - nothing! 8 Some people say that Nvidia script don't like 4th digit in a kernel's name and get it from "uname -r" output. Can I change it somehow?
I'm trying to build the package zaptel on debian, but I'm encountering two errors: 1- When I try to run the "make menuselect" command, I get an error stating that I need ncurses which is missing. I tried to get it installed but didn't get to do it yet. 2- After that, there's the command "make" I think it's to build the package. Yet again this fails, and the error I get is "you do not appear to have the sources for the 2.6.26-2-686 kernel installed".