The isenkram
system is a user-focused solution in Debian for handling hardware
related packages. The idea is to have a database of mappings between
hardware and packages, and pop up a dialog suggesting for the user to
install the packages to use a given hardware dongle. Some use cases
are when you insert a Yubikey, it proposes to install the software
needed to control it; when you insert a braille reader list it
proposes to install the packages needed to send text to the reader;
and when you insert a ColorHug screen calibrator it suggests to
install the driver for it. The system work well, and even have a few
command line tools to install firmware packages and packages for the
hardware already in the machine (as opposed to hotpluggable hardware).
The system was initially written using aptdaemon, because I found
good documentation and example code on how to use it. But aptdaemon
is going away and is generally being replaced by
PackageKit,
so Isenkram needed a rewrite. And today, thanks to the great patch
from my college Sunil Mohan Adapa in the FreedomBox project, the
rewrite finally took place. I've just uploaded a new version of
Isenkram into Debian Unstable with the patch included, and the default
for the background daemon is now to use PackageKit. To check it out,
install the
isenkram package and insert some hardware dongle
and see if it is recognised.
If you want to know what kind of packages isenkram would propose for
the machine it is running on, you can check out the isenkram-lookup
program. This is what it look like on a Thinkpad X230:
% isenkram-lookup
bluez
cheese
fprintd
fprintd-demo
gkrellm-thinkbat
hdapsd
libpam-fprintd
pidgin-blinklight
thinkfan
tleds
tp-smapi-dkms
tp-smapi-source
tpb
%p
The hardware mappings come from several places. The preferred way
is for packages to announce their hardware support using
the
cross distribution appstream system.
See
previous
blog posts about isenkram to learn how to do that.