Video For BSD
(( new project at SourceForge
Because of the success of the Video4Linux
project, there are large numbers of device drivers available for multimedia cards, digital cameras, and USB devices currently on the market. Since V4L is an active, dynamic project with numerous contributing developers, new hardware drivers are created and bugs are addressed
On the other hand, BSD supports older Brooktree 'bktr' tuner chips
that are no longer in production. If you want to watch TV on your FreeBSD system you might be able to find an old analog 'bktr' card on eBay. But why bother? In a few months (February 2009
) there won't be any NTSC broadcasts in the USA, only ATSC will be available. In many other places, broadcasts are switching from PAL/SECAM to DVB-T.
- BSD systems are secure and stable. "Uptimes are measured in years". The occasional blue-screen, hang, hex-dump, hardware & software incompatibility, and virus infection is accepted as typical by a Windows-Vista user. Many companies don't want to base their consumer products on Microsoft because support for buggy systems and license fees eat into profits. Consumers have a choice and they won't buy a TV with a reputation that it periodically hangs and reboots.
- BSD systems are developer friendly. Tools available on Linux are also available on BSD.
- Many corporations find BSD a more 'business friendly' platform to take their product to market.
There are fundamental philosophical differences in support for multimedia on Linux and BSD.
Linux has moved V4L support into the kernel. This certainly makes the kernel more complex, bloated, and prone to potential problems. Hundreds of devices, most of which are not currently in your system, are supported. When a hardware is no longer used, dead code will remain in the Linux kernel for years to come. New hardware will require newer kernels.
The BSD philosophy is that putting non-time critical code in the kernel only bloats the kernel. BSD seeks to protect the hardware by providing a level of abstraction between user programs and critical hardware. This is probably the main reason for BSD's vaunted stability.
Of course, if BSD doesn't support V4L, much work will have to be repeated in re-writing new hardware drivers. Most hardware which just 'plugs-n-plays' on Linux will never work on BSD. Bugs fixed in V4L will not be propagated to BSD.
There's similar project at: http://wiki.freebsd.org/HDTV
Support for HDTV on FreeBSD is just starting out. John-Mark Gurney has added support an ATSC based card with work underway for a second. There is no known support for the DVB family. John-Mark Gurney has also written the beginning of a design document
on how to provide generic multimedia support under FreeBSD.
This project will implement a V4L compatible API and device drivers for the BSD systems, enabling you to run Linux video applications on BSD. Our goal is to provide an emulation layer that would let us recompile the linux source code on BSD, and provide a sufficiently complete emulation of the Linux kernel APIs so that device drivers can be used without significant modifications to their source code.
Source for working device drivers, ports of Linux multimedia applications, along with notes on how to install various multimedia devices on BSD will be made available in this SourceForge repository. Project releases will have the FreeBSD copyright
a simple, permissive, non-copyleft free software license, compatible with the GNU GPL
Can it be done? Here's an example by Luigi Rizzo on Building Linux Device Drivers
on FreeBSD for several webcams. Here's another example on porting a DVB-T television USB-Stick driver
: the HW manufacturer has released a new revision of their DVB-T USB stick that is not supported by this driver. --- this is the reason this project is needed. If BSD had a central location providing HW drivers; updates, fixes, and new HW could be supported ).
The port available in: /usr/ports/devel/linux-kmod-compat
claims that the "porting of a linux driver should be as simple as downloading the linux driver sources, writing a simple Makefile.kmod, and running "make -f Makefile.kld" to produce the driver.ko". Of course, current reality is not that simple --- not yet. In the words of Admiral Horatio Hornblower and Captain Jean-Luc Picard the goal of this project is to "Make it so
Support this Project
Hardware manufacturers wanting to expand their customer base world-wide should consider donating hardware, specifications, and expertise to the Video-4-BSD project. Video-4-Linux has often been forced to valiantly create drivers via reverse engineering with USB and PCI bus sniffers. Some corporate legal departments are frightened by the GNU-GPL but have no problem with the FreeBSD license. By making hardware and software specifications available under the FreeBSD license, this project hopes to return/provide assistance to the Video-4-Linux project and a 'Thank You' for making it all possible.
Join and Contribute to this Project
To join this effort, first join SourceForge
and then send an email to the members discussion list
containing your SourceForge username.