Template:3rd party drivers: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(#2 of disadvantage removed, http://www.gnu.org/licenses/gpl-faq.html#SystemLibraryException thus not incompatible.)
(4 intermediate revisions by 2 users not shown)
Line 5: Line 5:


<b>Advantages:</b><br/>
<b>Advantages:</b><br/>
1. You might get well support for your device<br/>
1. It's possible your device will work.. for the moment.<br/>
2. If the manufacturer provides open source drivers, volunteers are able to provide long term support and submit it to the Linux Kernel.
2. If the manufacturer provides open source drivers with an acceptable license, volunteers could technically implement this code in the Linux kernel for true support. However.. :


<b>Disadvantages:</b><br/>
<b>Disadvantages:</b><br/>
1. The quality of the code (if open, there are also cases where you just get a binary blob) too often just isn't good enough and there's still too much work to be done to make the device work. There was probably a reason the manufacturer didn't just send their patches to the linux-media mailinglist.<br/>
1. If the manufacturer provides binary modules, or object files you might have to recompile the 3rd party driver every time you update your local kernel version<br />
2. If the manufacturer stops updating the drivers you might loose support for those drivers on newer Linux systems<br/>
2. Depending on what exactly the manufacturer did, you may have to reinstall the drivers every time your kernel is updated.<br/>
3. When the manufacturer stops updating the drivers, the drivers will quickly refuse to install as newer kernels are released.<br/>


In case a manufacturer provides open source drivers the patches can be sent to the linux-media mailinglist [mailto:majordomo@vger.kernel.org?body=subscribe%20linux-media Linux-Media Mailing List] (LMML)<br />
In case a manufacturer provides open source drivers the patches can be sent to the linux-media mailinglist [mailto:majordomo@vger.kernel.org?body=subscribe%20linux-media Linux-Media Mailing List] (LMML). Keep in mind however that if the license isn't compatible with the Linux kernel or the quality of the code isn't good enough, these will not become a part of the Linux kernel.<br />


== Closed source userspace drivers (mostly Sundtek) ==
== Userspace Drivers ==


<b>Advantages:</b><br/>
<b>Advantages:</b><br/>
1. Generic over nearly all Linux versions starting from 2.6.15 on<br/>
1. Same driver for nearly all Linux versions starting from 2.6.15 on.<br/>
2. No recompilation needed if you update your kernel version<br/>
2. No need to reinstall drivers when your kernel is updated.<br/>
3. Your device could work well.<br/>
3. Manufacturer might provide well support for the device you bought<br/>
4. Drivers can be profiled easily and more accurately than in kernelspace<br/>
4. Drivers can be profiled easily and more accurately than in kernelspace.<br/>
5. If the driver crashes your system won't be affected<br/>
5. If the driver crashes, it won't crash the kernel. (so the system will stay uneffected).<br/>
6. If the manufacturer would stop to support the drivers, the application driver will still continue to work with newer Linux systems since the Kernelspace <-> Userspace interfaces are fixed and are not meant to be changed<br/>
6. If the manufacturer would stop to support the drivers, the userspace driver will still continue to work with newer Linux systems since the Kernelspace <-> Userspace interfaces are fixed and are not meant to be changed.<br/>
7. Application based drivers are modern since they use modern Linux interfaces (eg. stable Userspace USB Interfaces since 2006) which did not exist when legacy Kernel drivers were invented<br/>

<b>Disadvantages:</b><br/>
<b>Disadvantages:</b><br/>
1. You can't look into the sources. For end-users this is generally not a problem, but for programmers and people who like to hack their devices or are trying to fix bugs, it would be a disadvantage. If you just want to watch television, this does not concern you.<br/>
1. this is only meant for hackers that they won't have insight about what the manufacturer is doing, regular endusers usually won't cope with device driver sources anyway<br/>
</div>
</div>

Examples:
Currently relevant since Linux has an unstable USB 3.0 Kernel stack:
Sundtek based tuners are used to debug general USB 3.0 Kernel issues, because the application based drivers themselves cannot crash the system.
Such Kernel issues also affect legacy drivers but legacy drivers are able to trigger other problems (follow-up problems) by themselves which could be triggered due the faulty Linux USB 3.0 stack which makes debugging much harder.

Revision as of 10:37, 3 September 2014

Sometimes a manufacturer forks v4l-dvb all on their own and writes a driver for their device so they can claim Linux support.

In-Kernel Drivers

Advantages:
1. It's possible your device will work.. for the moment.
2. If the manufacturer provides open source drivers with an acceptable license, volunteers could technically implement this code in the Linux kernel for true support. However.. :

Disadvantages:
1. The quality of the code (if open, there are also cases where you just get a binary blob) too often just isn't good enough and there's still too much work to be done to make the device work. There was probably a reason the manufacturer didn't just send their patches to the linux-media mailinglist.
2. Depending on what exactly the manufacturer did, you may have to reinstall the drivers every time your kernel is updated.
3. When the manufacturer stops updating the drivers, the drivers will quickly refuse to install as newer kernels are released.

In case a manufacturer provides open source drivers the patches can be sent to the linux-media mailinglist Linux-Media Mailing List (LMML). Keep in mind however that if the license isn't compatible with the Linux kernel or the quality of the code isn't good enough, these will not become a part of the Linux kernel.

Closed source userspace drivers (mostly Sundtek)

Advantages:
1. Same driver for nearly all Linux versions starting from 2.6.15 on.
2. No need to reinstall drivers when your kernel is updated.
3. Your device could work well.
4. Drivers can be profiled easily and more accurately than in kernelspace.
5. If the driver crashes, it won't crash the kernel. (so the system will stay uneffected).
6. If the manufacturer would stop to support the drivers, the userspace driver will still continue to work with newer Linux systems since the Kernelspace <-> Userspace interfaces are fixed and are not meant to be changed.
7. Application based drivers are modern since they use modern Linux interfaces (eg. stable Userspace USB Interfaces since 2006) which did not exist when legacy Kernel drivers were invented
Disadvantages:
1. You can't look into the sources. For end-users this is generally not a problem, but for programmers and people who like to hack their devices or are trying to fix bugs, it would be a disadvantage. If you just want to watch television, this does not concern you.

Examples: Currently relevant since Linux has an unstable USB 3.0 Kernel stack: Sundtek based tuners are used to debug general USB 3.0 Kernel issues, because the application based drivers themselves cannot crash the system. Such Kernel issues also affect legacy drivers but legacy drivers are able to trigger other problems (follow-up problems) by themselves which could be triggered due the faulty Linux USB 3.0 stack which makes debugging much harder.