[packagekit] udev installing firmware? insanity or super cool?

Klaus Kaempf kkaempf at suse.de
Fri Mar 14 08:00:42 PDT 2008


* David Zeuthen <david at fubar.dk> [Mar 14. 2008 05:09]:
> On Fri, 2008-03-14 at 02:12 +0100, Klaus Kaempf wrote:
> > 
> > Based on this information, the PackageKit backend should be able to
> > resolve a device id to an actual package name.
> 
> Yes, I've been mentioning similar schemes on this list earlier for
> codecs which is basically the same thing. Check the archives.

Apologies, I just joined this list 2 weeks ago.

> 
> My position is that I think a general utility in PackageKit would be for
> an application (such as a firmware downloader or a media player) to be
> able to call PackageKit like this
> 
>  PackageKit.NeedsPlugin (type, classification)
> 
> where 
> 
>  type = firmware | driver | mediacodec | ...
> 
> and classification would depend on the type
> 
>  type_mediacodec = <mime-type-of-codec-or-something>
>  type_firmware = <name of file missing in /lib/firmware>
>  type_driver = <modalias>

Yes, this seems to be the right level of abstraction. Except for the
type_firmware which seems to imply some device:filename mapping in the
calling application.

> 
> Different PackageKit backends would implement different ways of actually
> finding the packages that fullfill the request. You obviously want to
> sit down with domain experts for each type; I mean there's a reason I
> handwaved about type_mediacodec (e.g. talk to the gstreamer people).

Looking at the 'driver backport' project at Linux Foundation, I think
there is acceptance to do this in a more generic way. So instead of
leaving it up to the backend to find the package, there should be
package dependencies (e.g. RPM 'Provides') expressing what the package
contains. Like

mp3 codec:           Provides: codec(audio/mpeg)
3945 wlan firmware:  Provides: firmware(8086:4227)
3945 wlan driver:    Provides: modalias(kernel-default:pci:v00008086d0000422[27]sv*sd*bc*sc*i*)

The iwl3945-ucode package of openSUSE 10.3 uses modalias
also for the firmware through 'modalias(pci:v00008086d0000422[27]sv*sd*bc*sc*i*)'

> 
> The morale here is to do this in a generic way. It's fine probably just
> to start with firmware (because classification is so easy; it's simple a
> name) or whatever but if you do then at least make the interfaces
> somewhat generic so it's easy to add e.g. codec support.

Fully agreed. The more generic, the better.
> 
> Of course, as I said on davej's blog, the whole premise of this idea
> (ooo, we save 35kb by not installing firmware etc.) is shady and
> slippery but, eh, what the hell.

Well, the user should have some way to configure if he wants support for
a specific device or not. E.g. With WLAN virtually everywhere, I do not
want to install modem drivers on my laptop.

Klaus
---
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)



More information about the PackageKit mailing list