Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] dvb-kernel and upcoming Linux kernel 2.6



Hello all,

I think all of you have noticed already that the official 2.6 Linux kernel is out. It's the first kernel that officially contains the LinuxTV.org DVB subsystem plus a variety of drivers for different DVB cards.

Thanks to everyone who contributed!

Because of the recent feature freeze, however, the DVB subsystem in 2.6.0 is not quite up-to-date.

I already made a set of 12 patches that syncs the "dvb-kernel" CVS archive with 2.6.0 and put it into the "patches-2.6" directory. The patches have already been queued by Andrew Morton, the official 2.6 maintainer, and I expect them to be part of the 2.6.1 release.

As one of the last bigger changes, the core developers decided to remove the firmware from the av7110/dvb-ttpci driver. I know that this is a controversial step, so I'd like to explain it further.

Here are some cons that speak against this step:

Some people say that the firmware is an integral part of the driver, because without it, the device is nearly useless. Because of this, a working version of the firmware should be distributed with the driver.

The need to load the firmware adds one additional step that makes things more complicated. The user needs to find and download a recent firmware file from the internet. It's likely that there will be firmware updates that will be incompatible with earlier versions of the firmware. The objectors say, a "version mess" is going to happen, especially for newbies.

Here are some pros of this step:

Even if the firmware is "encoded" as a header file, it's basically a big binary blob in the kernel. Changes to the firmware always usually result in a real big diff which needs to be applied to the kernel tree.

The DVB drivers are prone to have firmware coming with them. Currently it's the av7110, the TT-USB Dec, the TT-USB-Budget and some of the frontends already. It's likely that the kernel maintainers get pissed by the fact that the DVB subsystem contains several megabytes of binary firmware within easily.

The main concern, howeverm, is that the legal status of most of the firmware files is unknown. Except of the av7110 firmware, there is no clear message from the manufacturer if it's ok to include the binary firmware.

The Debian distribution has announced to rip out every firmware blob from the kernel because of this problem. (I guess this is the reason why they sponsored the firmware_class firmware loading code in 2.6) I think other big distributions like SuSE or RedHat don't want to risc to get sued by some manufacturer because of some firmware file they distributed within their distribution either.

Ok, I know some people that say that this is not the problem of the LinuxTV.org project and that companies should get used to the fact that firmware under some copyright is part of open-source drivers.
But even if we like it or not: Linux has gone commercial in the last years and this brings problems from the "old" world to the realatively young Linux world, where people did not care about these things. I'm sure most of the contributors of the DVB project don't care a thing either about this, me included. But I think we should do everything to keep the legal status of our project clear, just to be on the safe side. (see below of what has to be done to achieve this)

As a first step, the av7110 firmware file is gone now. Several people have tested the firmware loading by using the hotplug system or by manually loading the firmware. All this is described in the new "Documentation/dvb" directory, please read it.

Part of the new documentation is the "contributors" list. If you are not in the list but you think you should be (or someone else should) please send me a patch. I think that everyone involved in the project should be named there.

I admit that there are some things on the todo list for the av7110 driver, that I did not have the time to test yet. Tests and patches are very welcome. Although I have some christmas holidays now, I don't want to spend them entirely on the av7110 driver... ;-)

1) It's unclear/untested what happens if you compile the driver statically into the kernel now and what has to be done to make it work again if there are problems.

2) It should still be possible to compile the firmware into the driver, both for a module build and a build into the kernel if you know what your're doing. This is what some drivers are already doing, this should be available for the av7110 driver too.

3) The other drivers that have firmware blobs should get converted one after another. If the firmware does not change, however, there is no hurry to do so.

4) People should ask the manufacturers to provide a firmware version that can be used freely with the Linux driver and that can be put into the LinuxTV.org download directory. We should not wait until companies vanish and leave us with devices where no firmware is available any more. (Yes, this has nearly happened recently with the Kfir driver)

5) With the recent patches, 2.6 and "dvb-kernel" are further drifting apart. We need to decide when to drop the backward compatiblity to 2.4 kernels via "build-2.4" for the DVB drivers. (The dvb-core needs to remain stable and backward compatible of course)

It's utopian to keep it up for much longer (say until 2.6.3 or 4), because we need to add new features like acpi sleep modes, full sysfs compatility, udev compatiblity and so on. The USB drivers already have much crap related to 2.4 compatibility, that make it harder and harded to keep both versions. I know that this is an important thing for example for emebedded folks who cannot always use the latest-and-greatest kernels. Please tell your ideas to the mailing list, I'd like to hear especially from people that would be affected by this step.

Ok, that's for it now. Have a happy christmas and use the spare time for coding! ;-)

CU
Michael.


--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index