[sane-devel] using usb ids

jose jgato@lambdaux.com
Fri, 06 Aug 2004 09:38:50 +0200

Hi guys!

We are working in building a unified database hardware for linux
components as you can see in our Sourceforge project:


Our main targets are:

1. Make the hardware just work for the user.

2. Have as many details as possible about all the hardware users could
want to use in a GNU/Linux box.

3. Update all the database and hardware system in order the user have a
good experiencia with the GNU/Linux box.

4. Check different sources for database hardware stuff, check them and
unify them. For example, we take kudzu, discover, pci.ids, usb.ids and 

One of the main projects in the Linux database world is SANE and we are
working in integrating all the data about scanners. We have add some
patches to create XML file(sane-desc) from scanners descriptions and we
are feeding
some database tables with the data in order to start working in scanner

After some weeks of work, we have reach some points that need to be
solved in the source, i.e, in SANE project.

- Create a unique identifier for each database backend (a hardware
driver for us): we have selected some fields to be now our primary key
(unique identifier) but it could be great to have this identifier in the
SANE backend descriptios.

- Looking to the USB scanners, we have seen some support for plug&play
using hotplug in the file libsane.usermap:

Currently SANE has more that 400 USB scanners but in this file we have
about 200 identifiers. We think that using the data from usb.ids (from
the usbutils package) SANE
could be informed by hotplug of more scanners and the 200 scanners
difference (if all of them are in usb.ids) could start to work P&P for
the user. We can do this work if you think SANE project will use it.

Also, we think that the USB ids need to be in the sane backend files,
with the scanner data. Having the same data (scanner vendor/product) in
more than one file (sane backends and hotplug file) is horrible in order
to maintain it.

It the uids are in the backend description files, it will be very easy
to create the hotplug file and we will have only one source of
information. Also, we offer some resources to do the work.

We have some other ideas for the future like using DBUS in libusbscanner
to inform the system and user applications that a new scanner is in the
system but this is for the future.

What do you think about the USB ideas?

Cheers and thanks for your great work with scanners.