1 Title: First prototype ready making hardware easier to use in Debian
2 Tags: english, debian, isenkram
5 <p>Early this month I set out to try to
6 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">improve
7 the Debian support for pluggable hardware devices</a>. Now my
8 prototype is working, and it is ready for a larger audience. To test
10 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">source
11 from the Debian Edu subversion repository</a>, build and install the
12 package. You might have to log out and in again activate the
15 <p>The design is simple:</p>
19 <li>Add desktop entry in /usr/share/autostart/ causing a program
20 hw-support-handlerd to start when the user log in.</li>
22 <li>This program listen for kernel events about new hardware (directly
23 from the kernel like udev does), not using HAL dbus events as I
26 <li>When new hardware is inserted, look up the hardware modalias in
27 the APT database, a database
28 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup">available
29 via HTTP</a> and a database available as part of the package.</li>
31 <li>If a package is mapped to the hardware in question, the package
32 isn't installed yet and this is the first time the hardware was
33 plugged in, show a desktop notification suggesting to install the
34 package or packages.</li>
36 <li>If the user click on the 'install package now' button, ask
37 aptdaemon via the PackageKit API to install the requrired package.</li>
39 <li>aptdaemon ask for root password or sudo password, and install the
40 package while showing progress information in a window.</li>
44 <p>I still need to come up with a better name for the system. Here
45 are some screen shots showing the prototype in action. First the
46 notification, then the password request, and finally the request to
47 approve all the dependencies. Sorry for the Norwegian Bokmål GUI.</p>
49 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png">
50 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png">
51 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png">
52 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png">
53 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png" width="70%"></p>
55 <p>The prototype still need to be improved with longer timeouts, but
56 is already useful. The database of hardware to package mappings also
57 need more work. It is currently compatible with the Ubuntu way of
58 storing such information in the package control file, but could be
59 changed to use other formats instead or in addition to the current
60 method. I've dropped the use of discover for this mapping, as the
61 modalias approach is more flexible and easier to use on Linux as long
62 as the Linux kernel expose its modalias strings directly.</p>
64 <p><strong>Update 2013-01-21 16:50</strong>: Due to popular demand,
65 here is the command required to check out and build the source: Use
67 svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
68 hw-support-handler; debuild</tt>'. If you lack debuild, install the
69 devscripts package.</p>
71 <p><strong>Update 2013-01-23 12:00</strong>: The project is now
72 renamed to Isenkram and the source moved from the Debian Edu
73 subversion repository to a Debian collab-maint git repository. See
74 <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">build
75 instructions</a> for details.</p>