2

If you have a device driver that works on one Linux distro, will it also work on another one?

5

That depends on what kernel the other Distro is using. Try uname -a to determine the Kernel-Version. If the kernel version of Distro B is lower than that one of Distro A, then it can be that the driver is not working, because it depends on newer features. If Distro B has the newer kernel, than I'd say it will work.

| improve this answer | |
5

Is the device driver in source code form, or compiled binary form?

If it's in source code, then it will work fine when compiled into the version of the kernel it's intended for. Compile it separately for each kernel configuration that you need it to work with.

If it's in compiled binary form, it is only going to work with whichever specific kernel it was compiled against. Even the very same version of the kernel, compiled with different configuration, will be unlikely to work with a binary module compiled for some other configuration.

The lesson:

  • Choose hardware that has drivers already maintained in the mainline kernel.

  • Motivate kernel developers to rectify the situation if you want to use hardware that isn't in that situation yet.

  • Motivate the hardware vendor to assist kernel developers in this process.

  • Run like crazy away from any hardware whose vendor resists getting drivers maintained in the mainline kernel.

| improve this answer | |
0

The general answer is yes, as long as the kernel is the same or newer. In general most drivers are built into the kernel. Most vendors only make small changes to the kernel for their distro so it should work.

Your biggest problem is some distros fall dangerously out-of-date, and you could get an older kernel where a specific driver doesn't work yet.

Exceptions:

Super old hardware still hanging on to some COM port device, all bets are off.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.