Template:3rd party drivers: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(explaining a few things)
(→‎Disadvantages:: find some real disadvantages, the one who wrote the previous ones clearly has no idea about hardware nor drivers.)
 
(8 intermediate revisions by 3 users not shown)
Line 2: Line 2:
Sometimes a manufacturer forks v4l-dvb all on their own and writes a driver for their device so they can claim Linux support.
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 ==
== In-Kernel 3rd party Drivers ==


<b>Advantages:</b><br/>
===Advantages:===
1. It's possible your device will work.. for the moment.<br/>
# 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.. :
# 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/>
===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.<br/>
# 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.<br/>
# 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.<br/>
# 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 [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 />
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 />

NOTE:
As linux media drivers are character based, drivers can be also written using libfuse's character device in userspace example.
If written that way, an out-of-kernel driver can be written, which fully integrates to udev without the disadvantage of closed source or incompatibility to other drivers. Such driver would rely on kernel ''fuse'' and ''character device in user space'' support as well as libfuse.


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


<b>Advantages:</b><br/>
===Advantages:===
1. Same driver for nearly all Linux versions starting from 2.6.15 on.<br/>
# Same driver may be usable for different Linux versions, depending on what vendor did.
2. No need to reinstall drivers when your kernel is updated.<br/>
# No need to reinstall drivers when your kernel is updated.
# Drivers can be profiled easily and more accurately than in kernelspace.
3. Your device could work well.<br/>
# If the driver crashes, it won't crash the system or kernel, only the driver and applications using the driver will be affected. Userspace drivers can also be used when debugging drivers for USB host controllers, as the userspace driver can't crash the system, making debugging easier.
4. Drivers can be profiled easily and more accurately than in kernelspace.<br/>
# If the manufacturer would stop to support the drivers, the userspace driver may still continue to work with newer Linux systems
5. If the driver crashes, it won't crash the kernel. (so the system could keep running).<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/>
===Disadvantages:===


# You can't look into the sources. While this may be not a problem for end-users, it prevents hacking devices and trying to fix bugs (usually not a problem for endusers)
<b>Disadvantages:</b><br/>
1. Drivers need to be downloaded from the manufacturer and installed, whereas in-kernel drivers are already available in your distro.<br/>
2. If major changes would be made to userspace and the manufacturer does not update the driver, the driver might no longer work. This scenario is not very likely, but not impossible.<br/>
3. 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/>
4. Similarly, users who want (or work for a company that requires) a FOSS-only system couldn't use these drivers. This generally doesn't concern end-users.<br/>
</div>
</div>

Latest revision as of 18:57, 21 April 2015

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 3rd party 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.

NOTE: As linux media drivers are character based, drivers can be also written using libfuse's character device in userspace example. If written that way, an out-of-kernel driver can be written, which fully integrates to udev without the disadvantage of closed source or incompatibility to other drivers. Such driver would rely on kernel fuse and character device in user space support as well as libfuse.

Closed source userspace drivers (mostly Sundtek)

Advantages:

  1. Same driver may be usable for different Linux versions, depending on what vendor did.
  2. No need to reinstall drivers when your kernel is updated.
  3. Drivers can be profiled easily and more accurately than in kernelspace.
  4. If the driver crashes, it won't crash the system or kernel, only the driver and applications using the driver will be affected. Userspace drivers can also be used when debugging drivers for USB host controllers, as the userspace driver can't crash the system, making debugging easier.
  5. If the manufacturer would stop to support the drivers, the userspace driver may still continue to work with newer Linux systems

Disadvantages:

  1. You can't look into the sources. While this may be not a problem for end-users, it prevents hacking devices and trying to fix bugs (usually not a problem for endusers)