best way to determine devices with drivers

Jono Bacon jono at
Wed Jun 23 16:46:05 PDT 2004

David Zeuthen wrote:

>This sounds a bit backwards to me; wouldn't it be smarter to record what
>kernel module or userspace library is needed per device rather than
>tracking what devices/libraries applications use? The .fdi files in HAL
>might help with this.
This sounds exactly what the .fdi system should be like. The only
problem is how this is managed - do you include tags in the .fdi file
for which driver the device uses for Linux/BSD/Solaris etc? This could
get complicated if you are relying on people manually creating .fdi
files, but then again I assumed the concept was that software would
build .fdi files as opposed to people - a device is plugged in, HAL
checks the local store of .fdi files then the network store for a
corrosponding file, if the file is not found the system builds as much
of the file as possible and then asks the user a few simple questions
with drop down combo boxes to fill in the blanks in the file. This means
that only a single person needs to fill in the details for each device.

This could work well with details of drivers as people on Linux can
specify the right driver for Linux, and people on other systems can do

>Let's see if I understand correctly; For example, if I insert a
>removable harddisk and there is a NTFS partition, your software will
>download the NTFS kernel module, install it and insmod it? If so, how do
>you plan to tell the desktop this (I assume it will take some time to
>download etc.)? D-BUS? 
This is the assumption that I made from Andy's original post, and I
think this is a *very* important project. The weakest part of the whole
project utopia system is the driver reliance - the whole system falls
down if the driver is not present, or the user does not know how to
install a driver. It would be great if the system could see that I have
plugged in XYZ device, then it sees that I have kernel 2.x.x and
downloads the relevant driver for my distribution.

The challenge with this system seems to be how well you manage driver
installation and distribution. It seems that so long as a driver can be
compiled as a module, it should theoretically work with the right kernel
version, but how do you ensure that dependent kernel options are turned
on. As an example, USB mass storage is useless if USB support is not
turned on. Also, do you keep the kernel modules in a centralised network
source and download a binary, or is the module compiled automatically?
Compilation could be tricky as the user may not have the kernel source
available, therefore binary modules would be the best option.

This seems like an inherently great idea that is really viable. I really
hope you stick with project Andy and have something up and running soon
- I really cannot stress how important I think this is.


Jono Bacon -
Writer / Journalist / Consultant / Developer

hal mailing list
hal at

More information about the Hal mailing list