public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Frans Pop <elendil@planet.nl>
To: David Woodhouse <dwmw2@infradead.org>
Cc: davem@davemloft.net, jeffm@suse.com,
	linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
	torvalds@linux-foundation.org, Jeff Garzik <jeff@garzik.org>
Subject: Re: [PATCH] firmware: Allow release-specific firmware dir
Date: Thu, 11 Sep 2008 11:52:56 +0200	[thread overview]
Message-ID: <200809111152.58187.elendil@planet.nl> (raw)
In-Reply-To: <200809111043.34847.elendil@planet.nl>

On Thursday 11 September 2008, Frans Pop wrote:
> Possible solutions
> ==================
> There are two possible solutions to this.
>
> 1) Move the firmware files to a versioned directory
[...]
> 2) Move the firmware files into a separate package

As mentioned in my previous mail Debian currently uses 2) for its kernel 
packages up to and including 2.6.26. I expect the Debian kernel team to 
also use 2) for 2.6.27, but that's in the future. Debian is currently 
concentrating on 2.6.26 as that's the kernel targeted for the soon-to-be- 
released Lenny release.

>From what I understand from this list (I'm a Debian person and don't 
really follow Ubuntu), Ubuntu seems to have chosen 1).

There are pros and cons to both these solutions and given the different 
philosophies of Debian and Ubuntu those do help explain the different 
choices.

Solution 1:
a) keeps kernel, modules and firmware firmly together
b) ensures there will never be mismatches, even if a firmware file "ABI"
   changes without being properly versioned
c) makes system installation simple: firmware is always just "there"

Solution 2:
a) naturally allows firmware to be split between "free" and "non-free"
b) places a burden on the end-user to install/upgrade the firmware he
   needs separately from the kernel
c) makes system installation more complex as the right additional firmware
   package(s) need to be retrieved and installed
d) will break installed systems on upgrades (unless special measures are
   taken): users may need to install additional firmware packages on a
   kernel upgrade to keep a driver working

Ubuntu has a "things should just work" philosophy. Choosing 1) keeps 
things simple from a user PoV and is a logical choice from that 
perspective.

Debian has strict licencing rules and has never shirked from placing some 
responsibility in the hands of users. Especially 2a) makes 2) the more 
natural choice for Debian.


Note that with 2) you cannot just create one big "linux-firmware" package. 
You will need to package all firmware separately which means that users 
will need to somehow select the specific firmware packages they need for 
their hardware.
The reason for this is the possibility that a driver and its firmware may 
be dropped from the upstream kernel source.

Example
-------
linux-image-2.6.27_1_i386.deb contains:
/boot/vmlinuz-2.6.27
/lib/modules/2.6.27/kernel/net/a.ko
/lib/modules/2.6.27/kernel/net/b.ko

linux-firmware_2.6.27.1_i386.deb contains:
/lib/firmware/a.dat
/lib/firmware/b.dat

For 2.6.28 driver "a" is dropped, which would result in:
linux-image-2.6.28_1_i386.deb contains:
/boot/vmlinuz-2.6.28
/lib/modules/2.6.28/kernel/net/b.ko

linux-firmware_2.6.28.1_i386.deb contains:
/lib/firmware/b.dat

The user installs linux-image-2.6.28 alongside linux-image-2.6.27 and 
upgrades linux-firmware from version 2.6.27.1 to 2.6.28.1.
Oops! The upgrade of the linux-firmware package removed b.dat, which 
effectively means the still installed 2.6.27 kernel is now broken.

To avoid this you need separate packages which can be installed/removed 
independently:
a-firmware_<a-firmware-version>_i386.deb contains:
/lib/firmware/a.dat

b-firmware_<b-firmware-version>_i386.deb contains:
/lib/firmware/b.dat

  reply	other threads:[~2008-09-11  9:53 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-09 14:15 [PATCH] firmware: Allow release-specific firmware dir Jeff Mahoney
2008-09-10 22:35 ` Andrew Morton
2008-09-11 13:37   ` Greg KH
2008-09-10 23:01 ` David Woodhouse
2008-09-10 23:05   ` David Miller
2008-09-10 23:15     ` David Woodhouse
2008-09-10 23:24       ` Andrew Morton
2008-09-11  2:55         ` Theodore Tso
2008-09-10 23:24       ` David Miller
2008-09-10 23:36         ` David Woodhouse
2008-09-10 23:42           ` David Miller
2008-09-11  0:23             ` Herbert Xu
2008-09-11  0:39               ` David Woodhouse
2008-09-11  7:44         ` Marcel Holtmann
2008-09-11  8:13           ` Jeff Mahoney
2008-09-11 16:09             ` Marcel Holtmann
2008-09-11  8:29           ` Faidon Liambotis
2008-09-11 16:12             ` Marcel Holtmann
2008-09-11  8:58           ` Frans Pop
2008-09-11 16:16             ` Marcel Holtmann
2008-09-11  8:43       ` Frans Pop
2008-09-11  9:52         ` Frans Pop [this message]
2008-09-11 14:50           ` David Woodhouse
2008-09-11 15:24             ` Frans Pop
2008-09-11 15:31               ` David Woodhouse
2008-09-11 15:49                 ` Frans Pop
2008-09-11 15:57                   ` Linus Torvalds
2008-09-11 16:32                     ` Frans Pop
2008-09-11 17:49                       ` Linus Torvalds
2008-09-11 18:24                         ` Frans Pop
2008-09-11 16:01                   ` David Woodhouse
2008-09-11  4:00     ` David Newall
2008-09-11  6:35     ` Faidon Liambotis
2008-09-11  7:15       ` Jeff Mahoney
2008-09-11 13:38         ` Theodore Tso
2008-09-11 14:36           ` Jeff Mahoney
2008-09-11 16:29             ` Marcel Holtmann
2008-09-11 16:20       ` Marcel Holtmann
2008-09-11 11:29     ` Thierry Vignaud
2008-09-11 13:40       ` Greg KH
2008-09-11 16:39         ` Marcel Holtmann
2008-09-11 16:45           ` David Woodhouse
2008-09-11 20:18             ` Greg KH
2008-09-11 20:15           ` Greg KH
2008-09-11 20:38             ` David Woodhouse
2008-09-11 20:57               ` Greg KH
2008-09-11 21:15                 ` David Woodhouse
2008-09-11 22:07                   ` Greg KH
2008-09-11 22:25                     ` David Woodhouse
2008-09-12  8:39                       ` Joseph Fannin
2008-09-12 13:50                         ` Gene Heskett
2008-09-12 14:32                         ` David Woodhouse
2008-09-12 20:24                           ` Kai Henningsen
  -- strict thread matches above, loose matches on Subject: below --
2011-02-25  2:39 Jeff Mahoney
2011-02-25  5:01 ` Michael Tokarev
2011-02-25 15:03   ` Jeff Mahoney
2011-02-25 16:54     ` David Woodhouse
2011-03-01  0:48 ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200809111152.58187.elendil@planet.nl \
    --to=elendil@planet.nl \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=dwmw2@infradead.org \
    --cc=jeff@garzik.org \
    --cc=jeffm@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox