]> pere.pagekite.me Git - homepage.git/blobdiff - blog/tags/debian/index.html
Generated.
[homepage.git] / blog / tags / debian / index.html
index 0947be783c7de8b4490a5c36c796b14f58329321..88312ac7b0978ac87fcf2916a83570fa27197bec 100644 (file)
 
     <h3>Entries tagged "debian".</h3>
     
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">Welcome to the world, Isenkram!</a>
+      </div>
+      <div class="date">
+        22nd January 2013
+      </div>
+      <div class="body">
+        <p>Yesterday, I
+<a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">asked
+for testers</a> for my prototype for making Debian better at handling
+pluggable hardware devices, which I
+<a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">set
+out to create</a> 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
+<a href="http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git">collab-maint</a>
+repository in Debian.  The new name?  It is <strong>Isenkram</strong>.
+To fetch and build the latest version of the source, use</p>
+
+<pre>
+git clone http://anonscm.debian.org/git/collab-maint/isenkram.git
+cd isenkram && git-buildpackage -us -uc
+</pre>
+
+<p>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. :)</p>
+
+<p>If you wonder what 'isenkram' is, it is a Norwegian word for iron
+stuff, typically meaning tools, nails, screws, etc.  Typical hardware
+stuff, in other words.  I've been told it is the Norwegian variant of
+the German word eisenkram, for those that are familiar with that
+word.</p>
+
+<p><strong>Update 2013-01-26</strong>: Added -us -us to build
+instructions, to avoid confusing people with an error from the signing
+process.</p>
+
+<p><strong>Update 2013-01-27</strong>: Switch to HTTP URL for the git
+clone argument to avoid the need for authentication.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">First prototype ready making hardware easier to use in Debian</a>
+      </div>
+      <div class="date">
+        21st January 2013
+      </div>
+      <div class="body">
+        <p>Early this month I set out to try to
+<a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">improve
+the Debian support for pluggable hardware devices</a>.  Now my
+prototype is working, and it is ready for a larger audience.  To test
+it, fetch the
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">source
+from the Debian Edu subversion repository</a>, build and install the
+package.  You might have to log out and in again activate the
+autostart script.</p>
+
+<p>The design is simple:</p>
+
+<ul>
+
+<li>Add desktop entry in /usr/share/autostart/ causing a program
+hw-support-handlerd to start when the user log in.</li>
+
+<li>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.</li>
+
+<li>When new hardware is inserted, look up the hardware modalias in
+the APT database, a database
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup">available
+via HTTP</a> and a database available as part of the package.</li>
+
+<li>If a package is mapped to the hardware in question, the package
+isn'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.</li>
+
+<li>If the user click on the 'install package now' button, ask
+aptdaemon via the PackageKit API to install the requrired package.</li>
+
+<li>aptdaemon ask for root password or sudo password, and install the
+package while showing progress information in a window.</li>
+
+</ul>
+
+<p>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.</p>
+
+<p><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png">
+<br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png" width="70%"></p>
+
+<p>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'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.</p>
+
+<p><strong>Update 2013-01-21 16:50</strong>: Due to popular demand,
+here is the command required to check out and build the source: Use
+'<tt>svn checkout
+svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
+hw-support-handler; debuild</tt>'.  If you lack debuild, install the
+devscripts package.</p>
+
+<p><strong>Update 2013-01-23 12:00</strong>: 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
+<a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">build
+instructions</a> for details.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">Thank you Thinkpad X41, for your long and trustworthy service</a>
+      </div>
+      <div class="date">
+        19th January 2013
+      </div>
+      <div class="body">
+        <p>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.
+
+<p>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.:)</p>
+
+<ul>
+
+<li>Lightweight (around 1 kg) and small volume (preferably smaller
+  than A4).</li>
+<li>Robust, it will be in my backpack every day.</li>
+<li>Three button mouse and a mouse pin instead of touch pad.</li>
+<li>Long battery life time.  Preferable a week.</li>
+<li>Internal WIFI network card.</li>
+<li>Internal Twisted Pair network card.</li>
+<li>Some USB slots (2-3 is plenty)</li>
+<li>Good keyboard - similar to the Thinkpad.</li>
+<li>Video resolution at least 1024x768, with size around 12" (A4 paper
+size).</li>
+<li>Hardware supported by Debian Stable, ie the default kernel and
+  X.org packages.</li>
+<li>Quiet, preferably fan free (or at least not using the fan most of
+  the time).
+
+</ul>
+
+<p>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've been told that X220 and X1 Carbon might
+still be useful.</p>
+
+<p>Perhaps I should rethink my needs, and look for a pad with an
+external keyboard?  I'll have to check the
+<a href="http://www.linux-laptop.net/">Linux Laptops site</a> for
+well-supported laptops, or perhaps just buy one preinstalled from one
+of the vendors listed on the <a href="http://linuxpreloaded.com/">Linux
+Pre-loaded site</a>.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html">How to find a browser plugin supporting a given MIME type</a>
+      </div>
+      <div class="date">
+        18th January 2013
+      </div>
+      <div class="body">
+        <p>Some times I try to figure out which Iceweasel browser plugin to
+install to get support for a given MIME type.  Thanks to
+<a href="https://wiki.ubuntu.com/MozillaTeam/Plugins">specifications
+done by Ubuntu</a> 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:</p>
+
+<pre>
+#!/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('Npp-MimeType'):
+            continue
+        mime_types = record['Npp-MimeType'].split(',')
+        for t in mime_types:
+            t = t.rstrip().strip()
+            if t == mimetype:
+                thepkgs.append(pkg.name)
+    return thepkgs
+mimetype = "audio/ogg"
+if 1 < len(sys.argv):
+    mimetype = sys.argv[1]
+print "Browser plugin packages supporting %s:" % mimetype
+for pkg in pkgs_handling_mimetype(mimetype):
+    print "  %s" %pkg
+</pre>
+
+<p>It can be used like this to look up a given MIME type:</p>
+
+<pre>
+% ./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
+%
+</pre>
+
+<p>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?</p>
+
+<p><strong>Update 2013-01-18 14:20</strong>: The Debian BTS
+request for icweasel support for this feature is
+<a href="http://bugs.debian.org/484010">#484010</a> from 2008 (and
+<a href="http://bugs.debian.org/698426">#698426</a> from today).  Lack
+of manpower and wish for a different design is the reason thus feature
+is not yet in iceweasel from Debian.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">What is the most supported MIME type in Debian?</a>
+      </div>
+      <div class="date">
+        16th January 2013
+      </div>
+      <div class="body">
+        <p>The <a href="http://wiki.debian.org/AppStreamDebianProposal">DEP-11
+proposal to add AppStream information to the Debian archive</a>, 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.</p>
+
+<p>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
+<a href="http://ftp.skolelinux.org/pub/AppStreamTest">Skolelinux FTP
+site</a>.  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.</p>
+
+<p><strong>Debian Stable:</strong></p>
+
+<pre>
+  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
+</pre>
+
+<p><strong>Debian Testing:</strong></p>
+
+<pre>
+  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
+</pre>
+
+<p><strong>Debian Unstable:</strong></p>
+
+<pre>
+  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
+</pre>
+
+<p>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.</p>
+
+<p><strong>Update 2013-01-16 13:35</strong>: Updated numbers after
+discovering a typo in my script.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html">Using modalias info to find packages handling my hardware</a>
+      </div>
+      <div class="date">
+        15th January 2013
+      </div>
+      <div class="body">
+        <p>Yesterday, I wrote about the
+<a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">modalias
+values provided by the Linux kernel</a> following my hope for
+<a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">better
+dongle support in Debian</a>.  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.</p>
+
+<p>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.</p>
+
+<p><blockquote>
+Package: package-name
+<br>Modaliases: module(modaliasglob, modaliasglob, modaliasglob)</p>
+</blockquote></p>
+
+<p>It is fairly trivial to write code to find the relevant packages
+for a given modalias value using this file.</p>
+
+<p>An entry like this would suggest the video and picture application
+cheese for many USB web cameras (interface bus class 0E01):</p>
+
+<p><blockquote>
+Package: cheese
+<br>Modaliases: cheese(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip*)</p>
+</blockquote></p>
+
+<p>An entry like this would suggest the pcmciautils package when a
+CardBus bridge (bus class 0607) PCI device is present:</p>
+
+<p><blockquote>
+Package: pcmciautils
+<br>Modaliases: pcmciautils(pci:v*d*sv*sd*bc06sc07i*)
+</blockquote></p>
+
+<p>An entry like this would suggest the package colorhug-client when
+plugging in a ColorHug with USB IDs 04D8:F8DA:</p>
+
+<p><blockquote>
+Package: colorhug-client
+<br>Modaliases: colorhug-client(usb:v04D8pF8DAd*)</p>
+</blockquote></p>
+
+<p>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.</p>
+
+<p>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'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.</p>
+
+<p>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
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/hw-support-lookup?view=co">hw-support-lookup</a>
+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.</p>
+
+<p>When I use it on a machine with a yubikey inserted, it suggest to
+install yubikey-personalization:</p>
+
+<p><blockquote>
+% ./hw-support-lookup
+<br>yubikey-personalization
+<br>%
+</blockquote></p>
+
+<p>When I run it on my Thinkpad X40 with a PCMCIA/CardBus slot, it
+propose to install the pcmciautils package:</p>
+
+<p><blockquote>
+% ./hw-support-lookup 
+<br>pcmciautils
+<br>%
+</blockquote></p>
+
+<p>If you know of any hardware-package mapping that should be added to
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=co">my
+database</a>, please tell me about it.</p>
+
+<p>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.</p>
+
+<p>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
+<a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">Modalias strings - a practical way to map "stuff" to hardware</a>
+      </div>
+      <div class="date">
+        14th January 2013
+      </div>
+      <div class="body">
+        <p>While looking into how to look up Debian packages based on hardware
+information, to find the packages that support a given piece of
+hardware, I refreshed my memory regarding modalias values, and decided
+to document the details.  Here are my findings so far, also available
+in
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
+Debian Edu subversion repository</a>:
+
+<p><strong>Modalias decoded</strong></p>
+
+<p>This document try to explain what the different types of modalias
+values stands for.  It is in part based on information from
+&lt;URL: <a href="https://wiki.archlinux.org/index.php/Modalias">https://wiki.archlinux.org/index.php/Modalias</a> &gt;,
+&lt;URL: <a href="http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device">http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device</a> &gt;,
+&lt;URL: <a href="http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c">http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c</a> &gt; and
+&lt;URL: <a href="http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup">http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup</a> &gt;.
+
+<p>The modalias entries for a given Linux machine can be found using
+this shell script:</p>
+
+<pre>
+find /sys -name modalias -print0 | xargs -0 cat | sort -u
+</pre>
+
+<p>The supported modalias globs for a given kernel module can be found
+using modinfo:</p>
+
+<pre>
+% /sbin/modinfo psmouse | grep alias:
+alias:          serio:ty05pr*id*ex*
+alias:          serio:ty01pr*id*ex*
+%
+</pre>
+
+<p><strong>PCI subtype</strong></p>
+
+<p>A typical PCI entry can look like this.  This is an Intel Host
+Bridge memory controller:</p>
+
+<p><blockquote>
+pci:v00008086d00002770sv00001028sd000001ADbc06sc00i00
+</blockquote></p>
+
+<p>This represent these values:</p>
+
+<pre>
+ v   00008086  (vendor)
+ d   00002770  (device)
+ sv  00001028  (subvendor)
+ sd  000001AD  (subdevice)
+ bc  06        (bus class)
+ sc  00        (bus subclass)
+ i   00        (interface)
+</pre>
+
+<p>The vendor/device values are the same values outputted from 'lspci
+-n' as 8086:2770.  The bus class/subclass is also shown by lspci as
+0600.  The 0600 class is a host bridge.  Other useful bus values are
+0300 (VGA compatible card) and 0200 (Ethernet controller).</p>
+
+<p>Not sure how to figure out the interface value, nor what it
+means.</p>
+
+<p><strong>USB subtype</strong></p>
+
+<p>Some typical USB entries can look like this.  This is an internal
+USB hub in a laptop:</p>
+
+<p><blockquote>
+usb:v1D6Bp0001d0206dc09dsc00dp00ic09isc00ip00
+</blockquote></p>
+
+<p>Here is the values included in this alias:</p>
+
+<pre>
+ v    1D6B  (device vendor)
+ p    0001  (device product)
+ d    0206  (bcddevice)
+ dc     09  (device class)
+ dsc    00  (device subclass)
+ dp     00  (device protocol)
+ ic     09  (interface class)
+ isc    00  (interface subclass)
+ ip     00  (interface protocol)
+</pre>
+
+<p>The 0900 device class/subclass means hub.  Some times the relevant
+class is in the interface class section.  For a simple USB web camera,
+these alias entries show up:</p>
+
+<p><blockquote>
+usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc01ip00
+<br>usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc02ip00
+<br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc01ip00
+<br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc02ip00
+</blockquote></p>
+
+<p>Interface class 0E01 is video control, 0E02 is video streaming (aka
+camera), 0101 is audio control device and 0102 is audio streaming (aka
+microphone).  Thus this is a camera with microphone included.</p>
+
+<p><strong>ACPI subtype</strong></p>
+
+<p>The ACPI type is used for several non-PCI/USB stuff.  This is an IR
+receiver in a Thinkpad X40:</p>
+
+<p><blockquote>
+acpi:IBM0071:PNP0511:
+</blockquote></p>
+
+<p>The values between the colons are IDs.</p>
+
+<p><strong>DMI subtype</strong></p>
+
+<p>The DMI table contain lots of information about the computer case
+and model.  This is an entry for a IBM Thinkpad X40, fetched from
+/sys/devices/virtual/dmi/id/modalias:</p>
+
+<p><blockquote>
+dmi:bvnIBM:bvr1UETB6WW(1.66):bd06/15/2005:svnIBM:pn2371H4G:pvrThinkPadX40:rvnIBM:rn2371H4G:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable:
+</blockquote></p>
+
+<p>The values present are</p>
+
+<pre>
+ bvn  IBM            (BIOS vendor)
+ bvr  1UETB6WW(1.66) (BIOS version)
+ bd   06/15/2005     (BIOS date)
+ svn  IBM            (system vendor)
+ pn   2371H4G        (product name)
+ pvr  ThinkPadX40    (product version)
+ rvn  IBM            (board vendor)
+ rn   2371H4G        (board name)
+ rvr  NotAvailable   (board version)
+ cvn  IBM            (chassis vendor)
+ ct   10             (chassis type)
+ cvr  NotAvailable   (chassis version)
+</pre>
+
+<p>The chassis type 10 is Notebook.  Other interesting values can be
+found in the dmidecode source:</p>
+
+<pre>
+  3 Desktop
+  4 Low Profile Desktop
+  5 Pizza Box
+  6 Mini Tower
+  7 Tower
+  8 Portable
+  9 Laptop
+ 10 Notebook
+ 11 Hand Held
+ 12 Docking Station
+ 13 All In One
+ 14 Sub Notebook
+ 15 Space-saving
+ 16 Lunch Box
+ 17 Main Server Chassis
+ 18 Expansion Chassis
+ 19 Sub Chassis
+ 20 Bus Expansion Chassis
+ 21 Peripheral Chassis
+ 22 RAID Chassis
+ 23 Rack Mount Chassis
+ 24 Sealed-case PC
+ 25 Multi-system
+ 26 CompactPCI
+ 27 AdvancedTCA
+ 28 Blade
+ 29 Blade Enclosing
+</pre>
+
+<p>The chassis type values are not always accurately set in the DMI
+table.  For example my home server is a tower, but the DMI modalias
+claim it is a desktop.</p>
+
+<p><strong>SerIO subtype</strong></p>
+
+<p>This type is used for PS/2 mouse plugs.  One example is from my
+test machine:</p>
+
+<p><blockquote>
+serio:ty01pr00id00ex00
+</blockquote></p>
+
+<p>The values present are</p>
+
+<pre>
+  ty  01  (type)
+  pr  00  (prototype)
+  id  00  (id)
+  ex  00  (extra)
+</pre>
+
+<p>This type is supported by the psmouse driver.  I am not sure what
+the valid values are.</p>
+
+<p><strong>Other subtypes</strong></p>
+
+<p>There are heaps of other modalias subtypes according to
+file2alias.c.  There is the rest of the list from that source: amba,
+ap, bcma, ccw, css, eisa, hid, i2c, ieee1394, input, ipack, isapnp,
+mdio, of, parisc, pcmcia, platform, scsi, sdio, spi, ssb, vio, virtio,
+vmbus, x86cpu and zorro.  I did not spend time documenting all of
+these, as they do not seem relevant for my intended use with mapping
+hardware to packages when new stuff is inserted during run time.</p>
+
+<p><strong>Looking up kernel modules using modalias values</strong></p>
+
+<p>To check which kernel modules provide support for a given modalias,
+one can use the following shell script:</p>
+
+<pre>
+  for id in $(find /sys -name modalias -print0 | xargs -0 cat | sort -u); do \
+    echo "$id" ; \
+    /sbin/modprobe --show-depends "$id"|sed 's/^/  /' ; \
+  done
+</pre>
+
+<p>The output can look like this (only the first few entries as the
+list is very long on my test machine):</p>
+
+<pre>
+  acpi:ACPI0003:
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/acpi/ac.ko 
+  acpi:device:
+  FATAL: Module acpi:device: not found.
+  acpi:IBM0068:
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/char/nvram.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/leds/led-class.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/net/rfkill/rfkill.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/platform/x86/thinkpad_acpi.ko 
+  acpi:IBM0071:PNP0511:
+    insmod /lib/modules/2.6.32-5-686/kernel/lib/crc-ccitt.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/net/irda/irda.ko 
+    insmod /lib/modules/2.6.32-5-686/kernel/drivers/net/irda/nsc-ircc.ko 
+  [...]
+</pre>
+
+<p>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
+<a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
+
+<p><strong>Update 2013-01-15:</strong> Rewrite "cat $(find ...)" to
+"find ... -print0 | xargs -0 cat" to make sure it handle directories
+in /sys/ with space in them.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html">Moved the pymissile Debian packaging to collab-maint</a>
+      </div>
+      <div class="date">
+        10th January 2013
+      </div>
+      <div class="body">
+        <p>As part of my investigation on how to improve the support in Debian
+for hardware dongles, I dug up my old Mark and Spencer USB Rocket
+Launcher and updated the Debian package
+<a href="http://packages.qa.debian.org/pymissile">pymissile</a> to make
+sure udev will fix the device permissions when it is plugged in.  I
+also added a "Modaliases" header to test it in the Debian archive and
+hopefully make the package be proposed by jockey in Ubuntu when a user
+plug in his rocket launcher.  In the process I moved the source to a
+git repository under collab-maint, to make it easier for any DD to
+contribute.  <a href="http://code.google.com/p/pymissile/">Upstream</a>
+is not very active, but the software still work for me even after five
+years of relative silence.  The new git repository is not listed in
+the uploaded package yet, because I want to test the other changes a
+bit more before I upload the new version.  If you want to check out
+the new version with a .desktop file included, visit the
+<a href="http://anonscm.debian.org/gitweb/?p=collab-maint/pymissile.git">gitweb
+view</a> or use "<tt>git clone
+git://anonscm.debian.org/collab-maint/pymissile.git</tt>".</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">Lets make hardware dongles easier to use in Debian</a>
+      </div>
+      <div class="date">
+         9th January 2013
+      </div>
+      <div class="body">
+        <p>One thing that annoys me with Debian and Linux distributions in
+general, is that there is a great package management system with the
+ability to automatically install software packages by downloading them
+from the distribution mirrors, but no way to get it to automatically
+install the packages I need to use the hardware I plug into my
+machine.  Even if the package to use it is easily available from the
+Linux distribution.  When I plug in a LEGO Mindstorms NXT, it could
+suggest to automatically install the python-nxt, nbc and t2n packages
+I need to talk to it.  When I plug in a Yubikey, it could propose the
+yubikey-personalization package.  The information required to do this
+is available, but no-one have pulled all the pieces together.</p>
+
+<p>Some years ago, I proposed to
+<a href="http://lists.debian.org/debian-devel/2010/05/msg01206.html">use
+the discover subsystem to implement this</a>.  The idea is fairly
+simple:
+
+<ul>
+
+<li>Add a desktop entry in /usr/share/autostart/ pointing to a program
+  starting when a user log in.</li>
+
+<li>Set this program up to listen for kernel events emitted when new
+  hardware is inserted into the computer.</li>
+
+<li>When new hardware is inserted, look up the hardware ID in a
+  database mapping to packages, and take note of any non-installed
+  packages.</li>
+
+<li>Show a message to the user proposing to install the discovered
+  package, and make it easy to install it.</li>
+
+</ul>
+
+<p>I am not sure what the best way to implement this is, but my
+initial idea was to use dbus events to discover new hardware, the
+discover database to find packages and
+<a href="http://www.packagekit.org/">PackageKit</a> to install
+packages.</p>
+
+<p>Yesterday, I found time to try to implement this idea, and the
+draft package is now checked into
+<a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
+Debian Edu subversion repository</a>.  In the process, I updated the
+<a href="http://packages.qa.debian.org/d/discover-data.html">discover-data</a>
+package to map the USB ids of LEGO Mindstorms and Yubikey devices to
+the relevant packages in Debian, and uploaded a new version
+2.2013.01.09 to unstable.  I also discovered that the current 
+<a href="http://packages.qa.debian.org/d/discover.html">discover</a>
+package in Debian no longer discovered any USB devices, because
+/proc/bus/usb/devices is no longer present.  I ported it to use
+libusb as a fall back option to get it working.  The fixed package
+version 2.1.2-6 is now in experimental (didn't upload it to unstable
+because of the freeze).</p>
+
+<p>With this prototype in place, I can insert my Yubikey, and get this
+desktop notification to show up (only once, the first time it is
+inserted):</p>
+
+<p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2013-01-09-hw-autoinstall.png"></p>
+
+<p>For this prototype to be really useful, some way to automatically
+install the proposed packages by pressing the "Please install
+program(s)" button should to be implemented.</p>
+
+<p>If this idea seem useful to you, and you want to help make it
+happen, please help me update the discover-data database with mappings
+from hardware to Debian packages.  Check if 'discover-pkginstall -l'
+list the package you would like to have installed when a given
+hardware device is inserted into your computer, and report bugs using
+reportbug if it isn't.  Or, if you know of a better way to provide
+such mapping, please let me know.</p>
+
+<p>This prototype need more work, and there are several questions that
+should be considered before it is ready for production use.  Is dbus
+the correct way to detect new hardware?  At the moment I look for HAL
+dbus events on the system bus, because that is the events I could see
+on my Debian Squeeze KDE desktop.  Are there better events to use?
+How should the user be notified?  Is the desktop notification
+mechanism the best option, or should the background daemon raise a
+popup instead?  How should packages be installed?  When should they
+not be installed?</p>
+
+<p>If you want to help getting such feature implemented in Debian,
+please send me an email. :)</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">New IRC channel for LEGO designers using Debian</a>
+      </div>
+      <div class="date">
+         2nd January 2013
+      </div>
+      <div class="body">
+        <p>During Christmas, I have worked a bit on the Debian support for
+<a href="http://mindstorms.lego.com/en-us/Default.aspx">LEGO Mindstorm
+NXT</a>.  My son and I have played a bit with my NXT set, and I
+discovered I had to build all the tools myself because none were
+already in Debian Squeeze.  If Debian support for LEGO is something
+you care about, please join me on the IRC channel
+<a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> (server
+irc.debian.org).  There is a lot that could be done to improve the
+Debian support for LEGO designers.  For example both CAD software
+and Mindstorm compilers are missing. :)</p>
+
+<p>Update 2012-01-03: A
+<a href="http://wiki.debian.org/LegoDesigners">project page</a>
+including links to Lego related packages is now available.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">How to backport bitcoin-qt version 0.7.2-2 to Debian Squeeze</a>
+      </div>
+      <div class="date">
+        25th December 2012
+      </div>
+      <div class="body">
+        <p>Let me start by wishing you all marry Christmas and a happy new
+year!  I hope next year will prove to be a good year.</p>
+
+<p><a href="http://www.bitcoin.org/">Bitcoin</a>, the digital
+decentralised "currency" that allow people to transfer bitcoins
+between each other with minimal overhead, is a very interesting
+experiment.  And as I wrote a few days ago, the bitcoin situation in
+<a href="http://www.debian.org/">Debian</a> is about to improve a bit.
+The <a href="http://packages.qa.debian.org/bitcoin">new debian source
+package</a> (version 0.7.2-2) was uploaded yesterday, and is waiting
+in <a href="http://ftp-master.debian.org/new.html">the NEW queue</A>
+for one of the ftpmasters to approve the new bitcoin-qt package
+name.</p>
+
+<p>And thanks to the great work of Jonas and the rest of the bitcoin
+team in Debian, you can easily test the package in Debian Squeeze
+using the following steps to get a set of working packages:</p>
+
+<blockquote><pre>
+git clone git://git.debian.org/git/collab-maint/bitcoin
+cd bitcoin
+DEB_MAINTAINER_MODE=1 DEB_BUILD_OPTIONS=noupnp fakeroot debian/rules clean
+DEB_BUILD_OPTIONS=noupnp git-buildpackage --git-ignore-new
+</pre></blockquote>
+
+<p>You might have to install some build dependencies as well.  The
+list of commands should give you two packages, bitcoind and
+bitcoin-qt, ready for use in a Squeeze environment.  Note that the
+client will download the complete set of bitcoin "blocks", which need
+around 5.6 GiB of data on my machine at the moment.  Make sure your
+~/.bitcoin/ directory have lots of spare room if you want to download
+all the blocks.  The client will warn if the disk is getting full, so
+there is not really a problem if you got too little room, but you will
+not be able to get all the features out of the client.</p>
+
+<p>As usual, if you use bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/A_word_on_bitcoin_support_in_Debian.html">A word on bitcoin support in Debian</a>
+      </div>
+      <div class="date">
+        21st December 2012
+      </div>
+      <div class="body">
+        <p>It has been a while since I wrote about
+<a href="http://www.bitcoin.org/">bitcoin</a>, the decentralised
+peer-to-peer based crypto-currency, and the reason is simply that I
+have been busy elsewhere.  But two days ago, I started looking at the
+state of <a href="http://packages.qa.debian.org/bitcoin">bitcoin in
+Debian</a> again to try to recover my old bitcoin wallet.  The package
+is now maintained by a
+<a href="https://alioth.debian.org/projects/pkg-bitcoin/">team of
+people</a>, and the grunt work had already been done by this team.  We
+owe a huge thank you to all these team members. :)
+But I was sad to discover that the bitcoin client is missing in
+Wheezy.  It is only available in Sid (and an outdated client from
+backports).  The client had several RC bugs registered in BTS blocking
+it from entering testing.  To try to help the team and improve the
+situation, I spent some time providing patches and triaging the bug
+reports.  I also had a look at the bitcoin package available from Matt
+Corallo in a
+<a href="https://launchpad.net/~bitcoin/+archive/bitcoin">PPA for
+Ubuntu</a>, and moved the useful pieces from that version into the
+Debian package.</p>
+
+<p>After checking with the main package maintainer Jonas Smedegaard on
+IRC, I pushed several patches into the collab-maint git repository to
+improve the package.  It now contains fixes for the RC issues (not from
+me, but fixed by Scott Howard), build rules for a Qt GUI client
+package, konqueror support for the bitcoin: URI and bash completion
+setup.  As I work on Debian Squeeze, I also created
+<a href="http://lists.alioth.debian.org/pipermail/pkg-bitcoin-devel/Week-of-Mon-20121217/000041.html">a
+patch to backport</a> the latest version.  Jonas is going to look at
+it and try to integrate it into the git repository before uploading a
+new version to unstable.
+
+<p>I would very much like bitcoin to succeed, to get rid of the
+centralized control currently exercised in the monetary system.  I
+find it completely unacceptable that the USA government is collecting
+transaction data for almost all international money transfers (most are done in USD and transaction logs shipped to the spooks), and
+that the major credit card companies can block legal money
+transactions to Wikileaks.  But for bitcoin to succeed, more people
+need to use bitcoins, and more people need to accept bitcoins when
+they sell products and services.  Improving the bitcoin support in
+Debian is a small step in the right direction, but not enough.
+Unfortunately the user experience when browsing the web and wanting to
+pay with bitcoin is still not very good.  The bitcoin: URI is a step
+in the right direction, but need to work in most or every browser in
+use.  Also the bitcoin-qt client is too heavy to fire up to do a
+quick transaction.  I believe there are other clients available, but
+have not tested them.</p>
+
+<p>My
+<a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">experiment
+with bitcoins</a> showed that at least some of my readers use bitcoin.
+I received 20.15 BTC so far on the address I provided in my blog two
+years ago, as can be
+<a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">seen
+on the blockexplorer service</a>.  Thank you everyone for your
+donation.  The blockexplorer service demonstrates quite well that
+bitcoin is not quite anonymous and untracked. :) I wonder if the
+number of users have gone up since then.  If you use bitcoin and want
+to show your support of my activity, please send Bitcoin donations to
+the same address as last time,
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Git_repository_for_song_book_for_Computer_Scientists.html">Git repository for song book for Computer Scientists</a>
+      </div>
+      <div class="date">
+         7th September 2012
+      </div>
+      <div class="body">
+        <p>As I
+<a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">mentioned
+this summer</a>, I have created a Computer Science song book a few
+years ago, and today I finally found time to create a public
+<a href="https://gitorious.org/pere-cs-songbook/pere-cs-songbook">Gitorious
+repository for the project</a>.</p>
+
+<p>If you want to help out, please clone the source and submit patches
+to the HTML version.  To generate the PDF and PostScript version,
+please use prince XML, or let me know about a useful free software
+processor capable of creating a good looking PDF from the HTML.</p>
+
+<p>Want to sing?  You can still find the song book in HTML, PDF and
+PostScript formats at
+<a href="http://www.hungry.com/~pere/cs-songbook/">Petter's Computer
+Science Songbook</a>.</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
     <div class="entry">
       <div class="title">
         <a href="http://people.skolelinux.org/pere/blog/Gratulerer_med_19__rsdagen__Debian_.html">Gratulerer med 19-årsdagen, Debian!</a>
@@ -934,7 +2104,7 @@ If the Skolelinux foundation
 (<a href="http://linuxiskolen.no/slxdebianlabs/donations.html">SLX
 Debian Labs</a>) were to accept donations in BitCoin in addition to
 normal bank transfers like EFF is doing, how should this be accounted?
-Given that it is impossible to know if money can across the border or
+Given that it is impossible to know if money can cross the border or
 not, should everything or nothing be declared?  What exchange rate
 should be used when calculating taxes?  Would receivers have to pay
 income tax if the foundation were to pay Skolelinux contributors in
@@ -4368,6 +5538,13 @@ be the only one fitting our needs. :/</p>
 <h2>Archive</h2>
 <ul>
 
+<li>2013
+<ul>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
+
+</ul></li>
+
 <li>2012
 <ul>
 
@@ -4387,6 +5564,14 @@ be the only one fitting our needs. :/</p>
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
 
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
+
 </ul></li>
 
 <li>2011
@@ -4498,55 +5683,59 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (2)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (5)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (56)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (69)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (111)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (118)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (6)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (147)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (175)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (17)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (7)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (10)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (9)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (6)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (32)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (30)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (5)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (16)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (17)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (22)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (193)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (219)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (142)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (148)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (35)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (41)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (48)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (61)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
 
@@ -4554,7 +5743,7 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
 
@@ -4562,27 +5751,29 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (23)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (28)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (1)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (39)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (37)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (1)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (5)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (12)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (10)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (6)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (32)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (35)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (1)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (25)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
 
 </ul>