why do device drivers need to be rewritten for new kernels/distros?
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
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.
why do device drivers need to be rewritten for new kernels/distros?
This is a pretty general question, which I'd like to hear more about in order to understand some problems I've been having. In short, what makes device drivers specific to a certain distro version? For example, why are different drivers needed for Redhat 7.0 vs. 8.0 vs. 9.0, or Suse 8.2 vs. 9.0? Why are drivers specific to a certain distribution to begin with?
If I understand the linux device driver model, a driver is written as a kernel module. I can understand, I guess, why a driver would need a certain kernel version, but why a particular distro?
This seems like a major annoyance, to have to make sure that all of your devices are supported by a new kernel/distro every time you upgrade. If someone could explain the compatibility issues involved here, it would be a big help.
This comes up because I have a Tyan Tiger K8W with onboard Silicon Image 3114 SATA RAID controller, and there doesn't seem to be any 64-bit distro which currently supports this drive controller (SuSe 9.0, Mandrake 9.2, or Fedora). All of these distros have older versions which support this controller, but none of the new ones. For example, I'm currently running Redhat 9.0, for which a driver is available (a binary one, from Silicon Image).
Ah, so. I have another one for you, then. Is it reasonable to assume that the open source driver for this controller, if compiled with the kernel in 64-bit, would work? It's my understanding that "64-bit Linux" is really just the kernel compiled using the appropriate 64-bit (actually x86-64) flags. Am I on target with this?
It is reasonable to assume that. I am not sure how much you would really benifit from a driver being compiled in 64-bit vs. 32-bit. But it should be possible to compile it that way unless the driver writer assumed a 32bit machine in his implementation of something.
It's my understanding that a kernel is either all 64-bit, or nothing. I'd like to get a 64-bit kernel running, so that I can compile and run some custom software in native x86-64 mode. I believe that in order to do this, I need a 64-bit kernel--that's why I'm concerned with the 3114 driver. Thanks for your help.
Well if the driver is compiled as a module then it isn't part of the kernel. And it is my understanding that you can run 32bit code even if the kernel is 64bit. Gentoo calls this 64-compat mode or something like that.
Is the driver included in the kernel source these days? Cause if it is it should compile with the compiler set for x86-64.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.