On Fri, 2007-10-05 at 10:48 -0800, Jeff Spaleta wrote:
On 10/5/07, David Zeuthen <davidz(a)redhat.com> wrote:
> But you're right; it's about balance; there's a couple of kernel
> we don't ship because they're just too obscure. Or they're too buggy.
> too bloated. Whatever. Ideally our OS should be able to detect the
> hardware and properly request for the driver / enabling software to be
> installed (clearly, this won't work for kernel drivers now that kmod's
> are banned but there's a lot of other stuff in userspace).
Detection of this at install time?
No, it's basically the wrong mindset to think that we only need to
detect hardware at install time; with hot pluggable buses like USB,
Firewire, whatever, hardware can come and go at any time. So any
solution that only works at install time is just fundamentally wrong.
In fact, the installer just be just an installer; not it's own little OS
with it's own private hardware detection routines; that kind of services
should be part of the core OS and the installer should take advantage of
it as should the environment the user normally use too (e.g. the desktop
or commandline tools)
Even if all the pieces to do that
are available, doesn't that require some significant re-think in
installer package management? At the very least we'd have to have a
list of packages associated which each sort of hardware detection flag
that could be parsed by the installer. Using what we have currently as
a starting point, you'd essentially have to group things in a comps
group associated with each detection criteria, and then teach anaconda
to set that group to install by default if the detection criteria is
Yes, it's a can of worms; basically what most "Enterprise" distros do
(because they have a kABI and support vendor drivers not shipped with
the OS etc.) is to use RPM Provides: with the modalias for what the
driver in the RPM support. So it goes like this
1. Plug in your hardware
2. Find the modalias for the device (look e.g. in sysfs)
3. yum search $modalias
4. yum install package-that-you-found
It's not really difficult to imagine this could be automated; you'd have
a small tray icon saying "yo, I don't have a driver for this device;
would you like to search for one?".
Of course the party line of Fedora is (or used to be) that we install
all drivers in the default install and that renders the problem moot. In
fact, I think it's a bit silly to build all this infrastructure just
- we've changed the party line from "we ship all drivers in the default
install" to "we don't ship all drivers in the default install".
kind of baffles me; I'm not really sure DVD space and hard disk space
is that expensive.
- it creates the illusion that Fedora has a stable kABI; that's just
- it'll never work for kernel drivers anyway and the majority of
interesting drivers are indeed in the kernel
- it's just plain annoying having to click through crap like that
just because we decided not to ship all drivers in the default
install. Of course, such a gizmo has the side effect to tell
you if the hardware you just plugged in is supported or not so
we may end up doing something similar *anyway*.
And when installing from livecd targets... could you discriminate in
similar fashion and only install to disk the hardware specific
userspace bits that system needed? I think that'd be tougher since the
livecd's install a pre-cooked disk image with all the bells and
whistles already installed.
I can't really see what's wrong with "we ship all drivers in the default
install" but if we want to change it we need some of that silly
infrastructure above to make the system Just Work(tm) when you e.g. plug
in a USB smart card reader.