]> pere.pagekite.me Git - homepage.git/blobdiff - blog/archive/2013/01/01.rss
Generated.
[homepage.git] / blog / archive / 2013 / 01 / 01.rss
index 9ed8f40613e85afd2822f3d482af7d91c3665b5c..943b79c85ba8be60f240ba3a0d088f8269f754f7 100644 (file)
@@ -6,6 +6,485 @@
                 <link>http://people.skolelinux.org/pere/blog/</link>
 
        
+       <item>
+               <title>Welcome to the world, Isenkram!</title>
+               <link>http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html</guid>
+                <pubDate>Tue, 22 Jan 2013 22:00:00 +0100</pubDate>
+               <description>&lt;p&gt;Yesterday, I
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html&quot;&gt;asked
+for testers&lt;/a&gt; for my prototype for making Debian better at handling
+pluggable hardware devices, which I
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html&quot;&gt;set
+out to create&lt;/a&gt; earlier this month.  Several valuable testers showed
+up, and caused me to really want to to open up the development to more
+people.  But before I did this, I want to come up with a sensible name
+for this project.  Today I finally decided on a new name, and I have
+renamed the project from hw-support-handler to this new name.  In the
+process, I moved the source to git and made it available as a
+&lt;a href=&quot;http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git&quot;&gt;collab-maint&lt;/a&gt;
+repository in Debian.  The new name?  It is &lt;strong&gt;Isenkram&lt;/strong&gt;.
+To fetch and build the latest version of the source, use&lt;/p&gt;
+
+&lt;pre&gt;
+git clone http://anonscm.debian.org/git/collab-maint/isenkram.git
+cd isenkram &amp;&amp; git-buildpackage -us -uc
+&lt;/pre&gt;
+
+&lt;p&gt;I have not yet adjusted all files to use the new name yet.  If you
+want to hack on the source or improve the package, please go ahead.
+But please talk to me first on IRC or via email before you do major
+changes, to make sure we do not step on each others toes. :)&lt;/p&gt;
+
+&lt;p&gt;If you wonder what &#39;isenkram&#39; is, it is a Norwegian word for iron
+stuff, typically meaning tools, nails, screws, etc.  Typical hardware
+stuff, in other words.  I&#39;ve been told it is the Norwegian variant of
+the German word eisenkram, for those that are familiar with that
+word.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Update 2013-01-26&lt;/strong&gt;: Added -us -us to build
+instructions, to avoid confusing people with an error from the signing
+process.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Update 2013-01-27&lt;/strong&gt;: Switch to HTTP URL for the git
+clone argument to avoid the need for authentication.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>First prototype ready making hardware easier to use in Debian</title>
+               <link>http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html</guid>
+                <pubDate>Mon, 21 Jan 2013 12:00:00 +0100</pubDate>
+               <description>&lt;p&gt;Early this month I set out to try to
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html&quot;&gt;improve
+the Debian support for pluggable hardware devices&lt;/a&gt;.  Now my
+prototype is working, and it is ready for a larger audience.  To test
+it, fetch the
+&lt;a href=&quot;http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/&quot;&gt;source
+from the Debian Edu subversion repository&lt;/a&gt;, build and install the
+package.  You might have to log out and in again activate the
+autostart script.&lt;/p&gt;
+
+&lt;p&gt;The design is simple:&lt;/p&gt;
+
+&lt;ul&gt;
+
+&lt;li&gt;Add desktop entry in /usr/share/autostart/ causing a program
+hw-support-handlerd to start when the user log in.&lt;/li&gt;
+
+&lt;li&gt;This program listen for kernel events about new hardware (directly
+from the kernel like udev does), not using HAL dbus events as I
+initially did.&lt;/li&gt;
+
+&lt;li&gt;When new hardware is inserted, look up the hardware modalias in
+the APT database, a database
+&lt;a href=&quot;http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup&quot;&gt;available
+via HTTP&lt;/a&gt; and a database available as part of the package.&lt;/li&gt;
+
+&lt;li&gt;If a package is mapped to the hardware in question, the package
+isn&#39;t installed yet and this is the first time the hardware was
+plugged in, show a desktop notification suggesting to install the
+package or packages.&lt;/li&gt;
+
+&lt;li&gt;If the user click on the &#39;install package now&#39; button, ask
+aptdaemon via the PackageKit API to install the requrired package.&lt;/li&gt;
+
+&lt;li&gt;aptdaemon ask for root password or sudo password, and install the
+package while showing progress information in a window.&lt;/li&gt;
+
+&lt;/ul&gt;
+
+&lt;p&gt;I still need to come up with a better name for the system.  Here
+are some screen shots showing the prototype in action.  First the
+notification, then the password request, and finally the request to
+approve all the dependencies.  Sorry for the Norwegian BokmÃ¥l GUI.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png&quot;&gt;
+&lt;br&gt;&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png&quot;&gt;
+&lt;br&gt;&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png&quot;&gt;
+&lt;br&gt;&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png&quot;&gt;
+&lt;br&gt;&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png&quot; width=&quot;70%&quot;&gt;&lt;/p&gt;
+
+&lt;p&gt;The prototype still need to be improved with longer timeouts, but
+is already useful.  The database of hardware to package mappings also
+need more work.  It is currently compatible with the Ubuntu way of
+storing such information in the package control file, but could be
+changed to use other formats instead or in addition to the current
+method.  I&#39;ve dropped the use of discover for this mapping, as the
+modalias approach is more flexible and easier to use on Linux as long
+as the Linux kernel expose its modalias strings directly.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Update 2013-01-21 16:50&lt;/strong&gt;: Due to popular demand,
+here is the command required to check out and build the source: Use
+&#39;&lt;tt&gt;svn checkout
+svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
+hw-support-handler; debuild&lt;/tt&gt;&#39;.  If you lack debuild, install the
+devscripts package.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Update 2013-01-23 12:00&lt;/strong&gt;: The project is now
+renamed to Isenkram and the source moved from the Debian Edu
+subversion repository to a Debian collab-maint git repository.  See
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html&quot;&gt;build
+instructions&lt;/a&gt; for details.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Thank you Thinkpad X41, for your long and trustworthy service</title>
+               <link>http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html</guid>
+                <pubDate>Sat, 19 Jan 2013 09:20:00 +0100</pubDate>
+               <description>&lt;p&gt;This Christmas my trusty old laptop died.  It died quietly and
+suddenly in bed.  With a quiet whimper, it went completely quiet and
+black.  The power button was no longer able to turn it on.  It was a
+IBM Thinkpad X41, and the best laptop I ever had.  Better than both
+Thinkpads X30, X31, X40, X60, X61 and X61S.  Far better than the
+Compaq I had before that.  Now I need to find a replacement.  To keep
+going during Christmas, I moved the one year old SSD disk to my old
+X40 where it fitted (only one I had left that could use it), but it is
+not a durable solution.
+
+&lt;p&gt;My laptop needs are fairly modest.  This is my wishlist from when I
+got a new one more than 10 years ago.  It still holds true.:)&lt;/p&gt;
+
+&lt;ul&gt;
+
+&lt;li&gt;Lightweight (around 1 kg) and small volume (preferably smaller
+  than A4).&lt;/li&gt;
+&lt;li&gt;Robust, it will be in my backpack every day.&lt;/li&gt;
+&lt;li&gt;Three button mouse and a mouse pin instead of touch pad.&lt;/li&gt;
+&lt;li&gt;Long battery life time.  Preferable a week.&lt;/li&gt;
+&lt;li&gt;Internal WIFI network card.&lt;/li&gt;
+&lt;li&gt;Internal Twisted Pair network card.&lt;/li&gt;
+&lt;li&gt;Some USB slots (2-3 is plenty)&lt;/li&gt;
+&lt;li&gt;Good keyboard - similar to the Thinkpad.&lt;/li&gt;
+&lt;li&gt;Video resolution at least 1024x768, with size around 12&quot; (A4 paper
+size).&lt;/li&gt;
+&lt;li&gt;Hardware supported by Debian Stable, ie the default kernel and
+  X.org packages.&lt;/li&gt;
+&lt;li&gt;Quiet, preferably fan free (or at least not using the fan most of
+  the time).
+
+&lt;/ul&gt;
+
+&lt;p&gt;You will notice that there are no RAM and CPU requirements in the
+list.  The reason is simply that the specifications on laptops the
+last 10-15 years have been sufficient for my needs, and I have to look
+at other features to choose my laptop.  But are there still made as
+robust laptops as my X41?  The Thinkpad X60/X61 proved to be less
+robust, and Thinkpads seem to be heading in the wrong direction since
+Lenovo took over.  But I&#39;ve been told that X220 and X1 Carbon might
+still be useful.&lt;/p&gt;
+
+&lt;p&gt;Perhaps I should rethink my needs, and look for a pad with an
+external keyboard?  I&#39;ll have to check the
+&lt;a href=&quot;http://www.linux-laptop.net/&quot;&gt;Linux Laptops site&lt;/a&gt; for
+well-supported laptops, or perhaps just buy one preinstalled from one
+of the vendors listed on the &lt;a href=&quot;http://linuxpreloaded.com/&quot;&gt;Linux
+Pre-loaded site&lt;/a&gt;.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>How to find a browser plugin supporting a given MIME type</title>
+               <link>http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html</guid>
+                <pubDate>Fri, 18 Jan 2013 10:40:00 +0100</pubDate>
+               <description>&lt;p&gt;Some times I try to figure out which Iceweasel browser plugin to
+install to get support for a given MIME type.  Thanks to
+&lt;a href=&quot;https://wiki.ubuntu.com/MozillaTeam/Plugins&quot;&gt;specifications
+done by Ubuntu&lt;/a&gt; and Mozilla, it is possible to do this in Debian.
+Unfortunately, not very many packages provide the needed meta
+information, Anyway, here is a small script to look up all browser
+plugin packages announcing ther MIME support using this specification:&lt;/p&gt;
+
+&lt;pre&gt;
+#!/usr/bin/python
+import sys
+import apt
+def pkgs_handling_mimetype(mimetype):
+    cache = apt.Cache()
+    cache.open(None)
+    thepkgs = []
+    for pkg in cache:
+        version = pkg.candidate
+        if version is None:
+            version = pkg.installed
+        if version is None:
+            continue
+        record = version.record
+        if not record.has_key(&#39;Npp-MimeType&#39;):
+            continue
+        mime_types = record[&#39;Npp-MimeType&#39;].split(&#39;,&#39;)
+        for t in mime_types:
+            t = t.rstrip().strip()
+            if t == mimetype:
+                thepkgs.append(pkg.name)
+    return thepkgs
+mimetype = &quot;audio/ogg&quot;
+if 1 &lt; len(sys.argv):
+    mimetype = sys.argv[1]
+print &quot;Browser plugin packages supporting %s:&quot; % mimetype
+for pkg in pkgs_handling_mimetype(mimetype):
+    print &quot;  %s&quot; %pkg
+&lt;/pre&gt;
+
+&lt;p&gt;It can be used like this to look up a given MIME type:&lt;/p&gt;
+
+&lt;pre&gt;
+% ./apt-find-browserplug-for-mimetype 
+Browser plugin packages supporting audio/ogg:
+  gecko-mediaplayer
+% ./apt-find-browserplug-for-mimetype application/x-shockwave-flash
+Browser plugin packages supporting application/x-shockwave-flash:
+  browser-plugin-gnash
+%
+&lt;/pre&gt;
+
+&lt;p&gt;In Ubuntu this mechanism is combined with support in the browser
+itself to query for plugins and propose to install the needed
+packages.  It would be great if Debian supported such feature too.  Is
+anyone working on adding it?&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Update 2013-01-18 14:20&lt;/strong&gt;: The Debian BTS
+request for icweasel support for this feature is
+&lt;a href=&quot;http://bugs.debian.org/484010&quot;&gt;#484010&lt;/a&gt; from 2008 (and
+&lt;a href=&quot;http://bugs.debian.org/698426&quot;&gt;#698426&lt;/a&gt; from today).  Lack
+of manpower and wish for a different design is the reason thus feature
+is not yet in iceweasel from Debian.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>What is the most supported MIME type in Debian?</title>
+               <link>http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html</guid>
+                <pubDate>Wed, 16 Jan 2013 10:10:00 +0100</pubDate>
+               <description>&lt;p&gt;The &lt;a href=&quot;http://wiki.debian.org/AppStreamDebianProposal&quot;&gt;DEP-11
+proposal to add AppStream information to the Debian archive&lt;/a&gt;, is a
+proposal to make it possible for a Desktop application to propose to
+the user some package to install to gain support for a given MIME
+type, font, library etc. that is currently missing.  With such
+mechanism in place, it would be possible for the desktop to
+automatically propose and install leocad if some LDraw file is
+downloaded by the browser.&lt;/p&gt;
+
+&lt;p&gt;To get some idea about the current content of the archive, I decided
+to write a simple program to extract all .desktop files from the
+Debian archive and look up the claimed MIME support there.  The result
+can be found on the
+&lt;a href=&quot;http://ftp.skolelinux.org/pub/AppStreamTest&quot;&gt;Skolelinux FTP
+site&lt;/a&gt;.  Using the collected information, it become possible to
+answer the question in the title.  Here are the 20 most supported MIME
+types in Debian stable (Squeeze), testing (Wheezy) and unstable (Sid).
+The complete list is available from the link above.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Debian Stable:&lt;/strong&gt;&lt;/p&gt;
+
+&lt;pre&gt;
+  count MIME type
+  ----- -----------------------
+     32 text/plain
+     30 audio/mpeg
+     29 image/png
+     28 image/jpeg
+     27 application/ogg
+     26 audio/x-mp3
+     25 image/tiff
+     25 image/gif
+     22 image/bmp
+     22 audio/x-wav
+     20 audio/x-flac
+     19 audio/x-mpegurl
+     18 video/x-ms-asf
+     18 audio/x-musepack
+     18 audio/x-mpeg
+     18 application/x-ogg
+     17 video/mpeg
+     17 audio/x-scpls
+     17 audio/ogg
+     16 video/x-ms-wmv
+&lt;/pre&gt;
+
+&lt;p&gt;&lt;strong&gt;Debian Testing:&lt;/strong&gt;&lt;/p&gt;
+
+&lt;pre&gt;
+  count MIME type
+  ----- -----------------------
+     33 text/plain
+     32 image/png
+     32 image/jpeg
+     29 audio/mpeg
+     27 image/gif
+     26 image/tiff
+     26 application/ogg
+     25 audio/x-mp3
+     22 image/bmp
+     21 audio/x-wav
+     19 audio/x-mpegurl
+     19 audio/x-mpeg
+     18 video/mpeg
+     18 audio/x-scpls
+     18 audio/x-flac
+     18 application/x-ogg
+     17 video/x-ms-asf
+     17 text/html
+     17 audio/x-musepack
+     16 image/x-xbitmap
+&lt;/pre&gt;
+
+&lt;p&gt;&lt;strong&gt;Debian Unstable:&lt;/strong&gt;&lt;/p&gt;
+
+&lt;pre&gt;
+  count MIME type
+  ----- -----------------------
+     31 text/plain
+     31 image/png
+     31 image/jpeg
+     29 audio/mpeg
+     28 application/ogg
+     27 image/gif
+     26 image/tiff
+     26 audio/x-mp3
+     23 audio/x-wav
+     22 image/bmp
+     21 audio/x-flac
+     20 audio/x-mpegurl
+     19 audio/x-mpeg
+     18 video/x-ms-asf
+     18 video/mpeg
+     18 audio/x-scpls
+     18 application/x-ogg
+     17 audio/x-musepack
+     16 video/x-ms-wmv
+     16 video/x-msvideo
+&lt;/pre&gt;
+
+&lt;p&gt;I am told that PackageKit can provide an API to access the kind of
+information mentioned in DEP-11.  I have not yet had time to look at
+it, but hope the PackageKit people in Debian are on top of these
+issues.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Update 2013-01-16 13:35&lt;/strong&gt;: Updated numbers after
+discovering a typo in my script.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Using modalias info to find packages handling my hardware</title>
+               <link>http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html</guid>
+                <pubDate>Tue, 15 Jan 2013 08:00:00 +0100</pubDate>
+               <description>&lt;p&gt;Yesterday, I wrote about the
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html&quot;&gt;modalias
+values provided by the Linux kernel&lt;/a&gt; following my hope for
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html&quot;&gt;better
+dongle support in Debian&lt;/a&gt;.  Using this knowledge, I have tested how
+modalias values attached to package names can be used to map packages
+to hardware.  This allow the system to look up and suggest relevant
+packages when I plug in some new hardware into my machine, and replace
+discover and discover-data as the database used to map hardware to
+packages.&lt;/p&gt;
+
+&lt;p&gt;I create a modaliases file with entries like the following,
+containing package name, kernel module name (if relevant, otherwise
+the package name) and globs matching the relevant hardware
+modalias.&lt;/p&gt;
+
+&lt;p&gt;&lt;blockquote&gt;
+Package: package-name
+&lt;br&gt;Modaliases: module(modaliasglob, modaliasglob, modaliasglob)&lt;/p&gt;
+&lt;/blockquote&gt;&lt;/p&gt;
+
+&lt;p&gt;It is fairly trivial to write code to find the relevant packages
+for a given modalias value using this file.&lt;/p&gt;
+
+&lt;p&gt;An entry like this would suggest the video and picture application
+cheese for many USB web cameras (interface bus class 0E01):&lt;/p&gt;
+
+&lt;p&gt;&lt;blockquote&gt;
+Package: cheese
+&lt;br&gt;Modaliases: cheese(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip*)&lt;/p&gt;
+&lt;/blockquote&gt;&lt;/p&gt;
+
+&lt;p&gt;An entry like this would suggest the pcmciautils package when a
+CardBus bridge (bus class 0607) PCI device is present:&lt;/p&gt;
+
+&lt;p&gt;&lt;blockquote&gt;
+Package: pcmciautils
+&lt;br&gt;Modaliases: pcmciautils(pci:v*d*sv*sd*bc06sc07i*)
+&lt;/blockquote&gt;&lt;/p&gt;
+
+&lt;p&gt;An entry like this would suggest the package colorhug-client when
+plugging in a ColorHug with USB IDs 04D8:F8DA:&lt;/p&gt;
+
+&lt;p&gt;&lt;blockquote&gt;
+Package: colorhug-client
+&lt;br&gt;Modaliases: colorhug-client(usb:v04D8pF8DAd*)&lt;/p&gt;
+&lt;/blockquote&gt;&lt;/p&gt;
+
+&lt;p&gt;I believe the format is compatible with the format of the Packages
+file in the Debian archive.  Ubuntu already uses their Packages file
+to store their mappings from packages to hardware.&lt;/p&gt;
+
+&lt;p&gt;By adding a XB-Modaliases: header in debian/control, any .deb can
+announce the hardware it support in a way my prototype understand.
+This allow those publishing packages in an APT source outside the
+Debian archive as well as those backporting packages to make sure the
+hardware mapping are included in the package meta information.  I&#39;ve
+tested such header in the pymissile package, and its modalias mapping
+is working as it should with my prototype.  It even made it to Ubuntu
+Raring.&lt;/p&gt;
+
+&lt;p&gt;To test if it was possible to look up supported hardware using only
+the shell tools available in the Debian installer, I wrote a shell
+implementation of the lookup code.  The idea is to create files for
+each modalias and let the shell do the matching.  Please check out and
+try the
+&lt;a href=&quot;http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/hw-support-lookup?view=co&quot;&gt;hw-support-lookup&lt;/a&gt;
+shell script.  It run without any extra dependencies and fetch the
+hardware mappings from the Debian archive and the subversion
+repository where I currently work on my prototype.&lt;/p&gt;
+
+&lt;p&gt;When I use it on a machine with a yubikey inserted, it suggest to
+install yubikey-personalization:&lt;/p&gt;
+
+&lt;p&gt;&lt;blockquote&gt;
+% ./hw-support-lookup
+&lt;br&gt;yubikey-personalization
+&lt;br&gt;%
+&lt;/blockquote&gt;&lt;/p&gt;
+
+&lt;p&gt;When I run it on my Thinkpad X40 with a PCMCIA/CardBus slot, it
+propose to install the pcmciautils package:&lt;/p&gt;
+
+&lt;p&gt;&lt;blockquote&gt;
+% ./hw-support-lookup 
+&lt;br&gt;pcmciautils
+&lt;br&gt;%
+&lt;/blockquote&gt;&lt;/p&gt;
+
+&lt;p&gt;If you know of any hardware-package mapping that should be added to
+&lt;a href=&quot;http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=co&quot;&gt;my
+database&lt;/a&gt;, please tell me about it.&lt;/p&gt;
+
+&lt;p&gt;It could be possible to generate several of the mappings between
+packages and hardware.  One source would be to look at packages with
+kernel modules, ie packages with *.ko files in /lib/modules/, and
+extract their modalias information.  Another would be to look at
+packages with udev rules, ie packages with files in
+/lib/udev/rules.d/, and extract their vendor/model information to
+generate a modalias matching rule.  I have not tested any of these to
+see if it work.&lt;/p&gt;
+
+&lt;p&gt;If you want to help implementing a system to let us propose what
+packages to install when new hardware is plugged into a Debian
+machine, please send me an email or talk to me on
+&lt;a href=&quot;irc://irc.debian.org/%23debian-devel&quot;&gt;#debian-devel&lt;/a&gt;.&lt;/p&gt;
+</description>
+       </item>
+       
        <item>
                <title>Modalias strings - a practical way to map &quot;stuff&quot; to hardware</title>
                <link>http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html</link>        
@@ -32,7 +511,7 @@ values stands for.  It is in part based on information from
 this shell script:&lt;/p&gt;
 
 &lt;pre&gt;
-cat $(find /sys -name modalias) | sort -u
+find /sys -name modalias -print0 | xargs -0 cat | sort -u
 &lt;/pre&gt;
 
 &lt;p&gt;The supported modalias globs for a given kernel module can be found
@@ -224,7 +703,7 @@ hardware to packages when new stuff is inserted during run time.&lt;/p&gt;
 one can use the following shell script:&lt;/p&gt;
 
 &lt;pre&gt;
-  for id in $(cat $(find /sys -name modalias)|sort -u); do \
+  for id in $(find /sys -name modalias -print0 | xargs -0 cat | sort -u); do \
     echo &quot;$id&quot; ; \
     /sbin/modprobe --show-depends &quot;$id&quot;|sed &#39;s/^/  /&#39; ; \
   done
@@ -254,6 +733,10 @@ list is very long on my test machine):&lt;/p&gt;
 packages to install when new hardware is plugged into a Debian
 machine, please send me an email or talk to me on
 &lt;a href=&quot;irc://irc.debian.org/%23debian-devel&quot;&gt;#debian-devel&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;Update 2013-01-15:&lt;/strong&gt; Rewrite &quot;cat $(find ...)&quot; to
+&quot;find ... -print0 | xargs -0 cat&quot; to make sure it handle directories
+in /sys/ with space in them.&lt;/p&gt;
 </description>
        </item>