X-Git-Url: https://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/0d2b2155db50dfbaa4f128805c9437bb0223969e..5b19c9c4871715facbb787f2e93297ddefc1f0e6:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index 5dc2b41370..7e74e1f27b 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,808 @@ http://people.skolelinux.org/pere/blog/ + + First prototype ready making hardware easier to use in Debian + http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html + http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html + Mon, 21 Jan 2013 12:00:00 +0100 + <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> + + + + + Thank you Thinkpad X41, for your long and trustworthy service + http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html + http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html + Sat, 19 Jan 2013 09:20:00 +0100 + <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> + + + + + How to find a browser plugin supporting a given MIME type + http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html + http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html + Fri, 18 Jan 2013 10:40:00 +0100 + <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> + + + + + What is the most supported MIME type in Debian? + http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html + http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html + Wed, 16 Jan 2013 10:10:00 +0100 + <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> + + + + + Using modalias info to find packages handling my hardware + http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html + http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html + Tue, 15 Jan 2013 08:00:00 +0100 + <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> + + + + + Modalias strings - a practical way to map "stuff" to hardware + http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html + http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html + Mon, 14 Jan 2013 11:20:00 +0100 + <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> + + + + + Moved the pymissile Debian packaging to collab-maint + http://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html + http://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html + Thu, 10 Jan 2013 20:40:00 +0100 + <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> + + + + + Lets make hardware dongles easier to use in Debian + http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html + http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html + Wed, 9 Jan 2013 15:40:00 +0100 + <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> + + + New IRC channel for LEGO designers using Debian http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html @@ -21,6 +823,10 @@ you care about, please join me on the IRC channel 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> @@ -123,422 +929,5 @@ siste måneden.</p> - - A Christmas present for Skolelinux / Debian Edu - http://people.skolelinux.org/pere/blog/A_Christmas_present_for_Skolelinux___Debian_Edu.html - http://people.skolelinux.org/pere/blog/A_Christmas_present_for_Skolelinux___Debian_Edu.html - Fri, 28 Dec 2012 09:20:00 +0100 - <p>I was happy to discover a few days ago that the -<a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> -project also this year received a Christmas present from Another -Agency in Trondheim. NOK 1000,- showed up on our donation account -December 24th. I want to express our thanks for this very welcome -present. As the Debian Edu / Skolelinux project is very short on -funding these days, and thus lack the money to do regular developer -gatherings, this donation was most welcome. One developer gathering -cost around NOK 15&nbsp;000,-, so we need quite a lot more to keep the -development pace we want. Thus, I hope their example this year is -followed by many others. :)</p> - -<p>The public list of donors can be found on -<a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">the -donation page</a> for the project, which also contain instructions if -you want to donate to the project.</p> - - - - - How to backport bitcoin-qt version 0.7.2-2 to Debian Squeeze - http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html - http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html - Tue, 25 Dec 2012 20:50:00 +0100 - <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> - - - - - A word on bitcoin support in Debian - http://people.skolelinux.org/pere/blog/A_word_on_bitcoin_support_in_Debian.html - http://people.skolelinux.org/pere/blog/A_word_on_bitcoin_support_in_Debian.html - Fri, 21 Dec 2012 23:59:00 +0100 - <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> - - - - - Piratpartiet på opphavs-retrett? - http://people.skolelinux.org/pere/blog/Piratpartiet_p__opphavs_retrett_.html - http://people.skolelinux.org/pere/blog/Piratpartiet_p__opphavs_retrett_.html - Wed, 19 Dec 2012 13:10:00 +0100 - <p>Jeg ble overrasket over å se at Piratpartiet i -<a href="http://www.aftenposten.no/kultur/Piratpartiet-stiller-til-Stortingsvalget-7073298.html">Aftenposten</a> -er referert på følgende:</p> - -<blockquote> -Når det gjelder retten til opphavsrett for kulturproduktene, mener -Piratpartiet av levetid + 14 år er tilfredsstillende. -</blockquote> - -<p>Det betyr en vernetid langt ut over det kommersielle livet til de -aller fleste opphavsrettsbeskyttede verker, og er i strid med slik i -hvert fall jeg har tolket punkt 5 i -<a href="http://people.opera.com/howcome/2012/piratpartiet/kjerneprogram.html">kjerneprogrammet -til Piratpartiet</a>:</p> - -<blockquote> -<p><strong>5: Åndsverk og patenter: tilbake til start</strong></p> - -<table border="1"> -<tr><th>forslag:</th><td>14 års opphavsrett og ingen -programvarepatenter</td></tr> - -<tr><th>grunn:</th><td>Den første loven om opphavsrett spesifiserte 14 -års vernetid. Senere har mediabransjens lobbyister stadig presset -loven mot lengre vern, nå er det 70 år etter forfatters død. Dette -gjør at mange verk glemmes og går tapt, noe som er skadelig for norsk -språk og kultur. Vi til tilbake til start: 14 års -vernetid. Patentloven sier klart at dataprogrammer ikke kan -patenteres. Likevel klarer patentadvokater å lure gjennom -programvarepatenter. Slike patenter gjør dingsene våre dyrere og kan i -enkelte tilfelle stoppe dem helt.</th></tr> -</table> -</blockquote> - -<p>Den opprinnelige opphavsretten var på 14 år totalt, ikke 14 år -etter opphavspersonens død. Jeg tenkte først dette kanskje var -feilsitering fra Aftenposten, men jeg finner samme påstand i en <a -href="http://piratpartietnorge.org/om-gramo-og-piratpolitikken/">bloggpost -fra Geir Aaslid</a> på Piratpartietes offisielle nettsider. Der -skriver han følgende:</p> - -<blockquote> -Hva vi gjør med opphavsretten er mer komplisert fordi den omfavner så -mange bransjer, med ulike behov. Enhver reform er en forbedring men -det er nærliggende å anta at en opphavsrett på levetid + 14 år er -fullt ut tilfredstillende for musikk, film, litteratur og spill. -</blockquote> - -<p>Det virker dermed på meg som om Piratpartiet allerede har gjort -retrett fra sin beundringsverdige holdning om at det holdt med 14 års -total vernetid, til sin nye som tar utgangspunkt i levetiden til -opphavspersonen. Jeg håper det baserer seg på en misforståelse hos -piratlederen som blir korrigert tilbake til 14 års total vernetid før -partiet stiller til valg.</p> - -<p>Hvis du lurer på hvilke problemer lang vernetid bringer med seg, -anbefaler jeg å lese boken <a href="http://free-culture.cc/">Free -Culture</a> av Lawrence Lessig. Jeg og en liten gruppe andre er igang -med å -<a href="https://github.com/petterreinholdtsen/free-culture-lessig">oversette -boken til bokmål</a> og tar gjerne imot hjelp med oversettelse og -korrekturlesing.</p> - -<p><strong>Oppdatering 2012-12-20</strong>: Oppdaget at -<a href="http://piratpartietnorge.org/om-gramo-og-piratpolitikken/">bloggposten -til Geir Aaslid</a> er endret siden i går, og nå inneholder følgende -avsnitt i stedet for det jeg siterte over:</p> - -<blockquote> -Hva vi gjør med opphavsretten er mer komplisert fordi den omfavner så -mange bransjer, med ulike behov. Enhver reform er en forbedring men -det er nærliggende å anta at en opphavsrett lik levetiden, evt + 14 år -er fullt ut tilfredstillende for mange skapere av musikk, film, -litteratur og spill. Det er for det meste de store forlagene som er -imot enhver reform. -</blockquote> - -<p>I tillegg har det dukket opp en setning nederst "Dette dokumentet -er et utkast til svar på et angrep på Piratpartiet fra Gramo. Det -endrer seg derfor over tid og den endelige versjonen er det som blir -publisert på Hardware.no", som tyder på at originalformuleringen ikke -var veloverveid og sitatet i Aftenposten kanskje var basert på en -misforståelse.</p> - - - - - Ledger - double-entry accounting using text based storage format - http://people.skolelinux.org/pere/blog/Ledger___double_entry_accounting_using_text_based_storage_format.html - http://people.skolelinux.org/pere/blog/Ledger___double_entry_accounting_using_text_based_storage_format.html - Tue, 18 Dec 2012 23:30:00 +0100 - <p>A few days ago I came across -<a href="http://joeyh.name/blog/entry/hledger/">a blog post from Joey -Hess</a> describing <a href="http://ledger-cli.org/">ledger</a> and -hledger, a text based system for double-entry accounting. I found it -interesting, as I am involved with several organizations where -accounting is an issue, and I have not really become too friendly with -the different web based systems we use. I find it hard to find what I -look for in the menus and even harder try to get sensible data out of -the systems. Ledger seem different. The accounting data is kept in -text files that can be stored in a version control system, and there - -are at least <a href="https://github.com/ledger/ledger/wiki/Ports">five -different implementations</a> able to read the format. An example -entry look like this, and is simple enough that it will be trivial to -generate entries based on CVS files fetched from the bank:</p> - -<blockquote><pre> -2004-05-27 Book Store - Expenses:Books $20.00 - Liabilities:Visa -</pre></blockquote> - -<p>The concept seemed interesting enough for me to check it out and -look for others using it. I found blog posts from -<a href="http://blog.spang.cc/posts/hledger_rocks_my_world/">Christine -Spang</a>, -<a href="http://bugsplat.info/2010-05-23-keeping-finances-with-ledger.html">Pete -Keen</a>, -<a href="http://blog.andrewcantino.com/blog/2010/11/06/command-line-accounting-with-ledger-and-reckon/">Andrew -Cantino</a> and -<a href="http://blog.iphoting.com/blog/2012/11/29/command-line-double-entry-accounting/">Ronald -Ip</a> describing how they use it, as well as a post from -<a href="https://groups.google.com/forum/?fromgroups=#!topic/ledger-cli/r0oWjwbQ9Bo">Bradley -M. Kuhn</a> at the Software Freedom Conservancy. All seemed like good -recommendations fitting my need.</p> - -<p>The <a href="http://packages.qa.debian.org/l/ledger.html">ledger</a> -package is available in Debian Squeeze, while the -<a href="http://packages.qa.debian.org/h/haskell-hledger.html">hledger</a> -package only is available in Debian Sid. As I use Squeeze, ledger -seemed the best choice to get started.</p> - -<p>To get some real data to test on, I wrote a -<a href="http://www.nuug.no/tools/lodo2ledger">web scraper</a> for -<a href="http://www.lodo.no/">LODO</a>, the accounting system used by -the <a href="http://www.nuug.no/">NUUG</a> association, and started to -play with the data set. I'm not really deeply into accounting, but I -am able to get a simple balance and accounting status for example -using the "<tt>ledger balance</tt>" command. But I will have to -gather more experience before I know if the ledger way is a good fit -for the organisations I am involved in.</p> - - - - - 61 kommuner lenker nå til FiksGataMi fra sine nettsider - http://people.skolelinux.org/pere/blog/61_kommuner_lenker_n__til_FiksGataMi_fra_sine_nettsider.html - http://people.skolelinux.org/pere/blog/61_kommuner_lenker_n__til_FiksGataMi_fra_sine_nettsider.html - Tue, 11 Dec 2012 23:55:00 +0100 - <p>For noen dager siden omfavnet nok en kommune NUUGs -<a href="http://www.fiksgatami.no/">FiksGataMi</a>. Med 61 kommuner -som lenker til FiksGataMi fra sine hjemmesider er «markedsandelen» 14% -(av 429 kommuner). Siden -<a href="http://people.skolelinux.org/pere/blog/59_kommuner_omfavner_n__FiksGataMi.html">siste -oppdatering i november</a> har kommunene Re og Vågsøy kommet til og -slår følge med kommunene Askim, Askøy, Audnedal, Aure, Balestrand, -Bærum, Eide, Farsund, Flekkefjord, Folldal, Gran, Grue, Hadsel, -Halden, Halsa, Hamar, Hobøl, Holtålen, Hægebostad, Høyanger, -Kongsberg, Kristiansund, Kvinesdal, Kviteseid, Levanger, Lindesnes, -Luster, Lyngdal, Løten, Mandal, Marnardal, Moss, Namsos, Nissedal, -Nordreisa, Randaberg, Rindal, Sel, Sirdal, Skiptvet, Sortland, -Spydeberg, Stange, Stjørdal, Stord, Søgne, Sør-Odal, Tolga, Trysil, -Tynset, Tysvær, Ullensvang Herad, Utsira, Vennesla, Verdal, Vågan, -Vågå, Våler og Åseral. Oppdatert liste er tilgjengelig fra -<a href="http://wiki.nuug.no/grupper/fiksgatami/positivemottakere">NUUGs -wiki</a>. Kartet er dog ikke oppdatert med de siste kommunene.</p> - -<p>Kanskje du bør høre med din kommune om de vil bli mer aktive -brukere av FiksGataMi? Se -<a href="http://people.skolelinux.org/pere/blog/40_kommuner_lenker_n__til_FiksGataMi_fra_sine_nettsider___gj_r_din_.html">en -tidligere bloggpost</a> med tips om hvordan det kan gjøres.</p> - -<p>I snitt rapporteres det nå via FiksGataMi ca. 60 meldinger fra -innbyggerne i uka om feil på offentlig infrastruktur.</p> - - - - - Scripting the Cerebrum/bofhd user administration system using XML-RPC - http://people.skolelinux.org/pere/blog/Scripting_the_Cerebrum_bofhd_user_administration_system_using_XML_RPC.html - http://people.skolelinux.org/pere/blog/Scripting_the_Cerebrum_bofhd_user_administration_system_using_XML_RPC.html - Thu, 6 Dec 2012 10:30:00 +0100 - <p>Where I work at the <a href="http://www.uio.no/">University of -Oslo</a>, we use the -<a href="http://sourceforge.net/projects/cerebrum/">Cerebrum user -administration system</a> to maintain users, groups, DNS, DHCP, etc. -I've known since the system was written that the server is providing -an <a href="http://en.wikipedia.org/wiki/XML-RPC">XML-RPC</a> API, but -I have never spent time to try to figure out how to use it, as we -always use the bofh command line client at work. Until today. I want -to script the updating of DNS and DHCP to make it easier to set up -virtual machines. Here are a few notes on how to use it with -Python.</p> - -<p>I started by looking at the source of the Java -<a href="http://cerebrum.svn.sourceforge.net/viewvc/cerebrum/trunk/cerebrum/clients/jbofh/">bofh -client</a>, to figure out how it connected to the API server. I also -googled for python examples on how to use XML-RPC, and found -<a href="http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-python.html">a -simple example in</a> the XML-RPC howto.</p> - -<p>This simple example code show how to connect, get the list of -commands (as a JSON dump), and how to get the information about the -user currently logged in:</p> - -<blockquote><pre> -#!/usr/bin/env python -import getpass -import xmlrpclib -server_url = 'https://cerebrum-uio.uio.no:8000'; -username = getpass.getuser() -password = getpass.getpass() -server = xmlrpclib.Server(server_url); -#print server.get_commands(sessionid) -sessionid = server.login(username, password) -print server.run_command(sessionid, "user_info", username) -result = server.logout(sessionid) -print result -</pre></blockquote> - -<p>Armed with this knowledge I can now move forward and script the DNS -and DHCP updates I wanted to do.</p> - - - - - Lenker for 2012-11-28 - http://people.skolelinux.org/pere/blog/Lenker_for_2012_11_28.html - http://people.skolelinux.org/pere/blog/Lenker_for_2012_11_28.html - Wed, 28 Nov 2012 21:00:00 +0100 - <p>Mye interessant har skjedd de siste ukene. Her er noen dokumenter -jeg har hatt glede av å lese.</p> - -<p><ul> - -<li><a href="http://www.digi.no/906843/kan-du-hjelpe-piratpartiet">- -Kan du hjelpe Piratpartiet?</a> - Piratpartiet mangler 600 -borgersignaturer for å kunne stille til stortingsvalg neste år. Jeg -har samlet 20 signaturer. Har du gjort ditt?</li> - -<li><a href="http://geekfeminism.wikia.com/wiki/Who_is_harmed_by_a_%22Real_Names%22_policy%3F">Who -is harmed by a "Real Names" policy?</a> - en fin oversikt over hvem -som blir skadelidende når nett-tjenester og aviser innfører krav om -"ekte navn" for å delta.</li> - -<li><a href="http://www.aftenposten.no/meninger/kronikker/Kan-vi-stole-pa-alle-i-politiet-7056453.html">Kan -vi stole på alle i politiet?</a> - Advokat Sigurd J. Klomsæt skriver -litt om hvor merkelig det er å bli anklaget for å ha lekket -informasjon fra et politi som åpenbart lekker selv.</li> - -<li><a href="http://www.digi.no/906576/opphavsretten-maa-vekk">- -Opphavsretten må vekk</a> - En av stifterne til -<a href="http://www.eff.org/">EFF</a> besøkte Oslo i forrige uke, og -ble i den forbindelsen intervjuet av Digi. - -<li><a href="http://www.idg.no/computerworld/article261391.ece">Sparer -100 millioner kroner med Linux</a> - München har beregnet hvor mye de -har spart på sin overgang til Linux.</li> - -<li><a href="http://www.idg.no/computerworld/article259803.ece">Oslo -Børs kjøres nå på Linux</a> - Børsen gikk nylig over fra .NET-basert -løsning til Linux-basert løsning, for å få et system med akseptabel -kvalitet.</li> - -<li><a href="http://www.idg.no/computerworld/article261219.ece">It-milliardær -vil bygge Mars-koloni</a> - inspirerende for oss som savner en -selvforsynt koloni på Mars.</li> - -</ul></p> - - -