<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" 
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" 
   xmlns:html="http://www.w3.org/1999/html" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
   <title>Ben's technical blog</title>
   <link>http://womble.decadent.org.uk/blog</link>
   <description>Ben's technical blog</description>
   <language>en</language>
   <copyright>Copyright 2007 Ben Hutchings</copyright>
   <ttl>60</ttl>
   <pubDate>Tue, 14 May 2013 19:40 GMT</pubDate>
   <managingEditor>ben@decadent.org.uk</managingEditor>
   <generator>PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008</generator>
<item>
   <title>That perf root exploit (CVE-2013-2094)</title>
   <guid isPermaLink="false">that-perf-root-exploit</guid>
   <link>http://womble.decadent.org.uk/blog/that-perf-root-exploit.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  There's some exploit code going around that will let you get root on
  a range of Linux kernel versions by using a bug in the
  <tt>perf_event_open()</tt> syscall.  The fix for this is in 3.2.45
  and various other stable updates.  As a workaround, until it's in
  Debian stable, you can set <tt>sysctl
  kernel.perf_event_paranoid=2</tt>.  This blocks the exploit I've
  seen, but it is still possible to get around this restriction.
</p>
<p>
  Red Hat has a
  <a href="https://bugzilla.redhat.com/show_bug.cgi?id=962792#c13">SystemTap
  script</a> that should provide more complete mitigation.  The
  debuginfo packages for Debian kernels are named e.g.
  <tt>linux-image-3.2.0-4-amd64-dbg</tt>.  They are only provided
  for some architectures and flavours.
</p>
<p>
  <strong>Updated:</strong> Added the CVE ID.  Added SystemTap
  information.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Tue, 14 May 2013 19:40 GMT</pubDate>
</item>
<item>
   <title>Warning: Debian 7.0 'wheezy' on VIA C3 and Cyrix III systems</title>
   <guid isPermaLink="false">warning-debian-70-wheezy-on-via-c3-and-cyrix-iii-systems</guid>
   <link>http://womble.decadent.org.uk/blog/warning-debian-70-wheezy-on-via-c3-and-cyrix-iii-systems.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  The 'longhaul' module may cause instability or even hardware damage
  on some systems.  Unfortunately, it is now being auto-loaded on all
  systems with a compatible CPU (VIA C3 or Cyrix III).  See
  <a href="http://bugs.debian.org/707047">bug #707047</a>.
</p>
<p>
  Before upgrading one of these systems to Debian 7.0 'wheezy', if you
  do not currently use the 'longhaul' module, you should blacklist it
  by creating e.g. <tt>/etc/modprobe.d/blacklist-longhaul.conf</tt>
  containing the line:
</p>
<pre>
  blacklist longhaul
</pre>
<p>
  I would advise against attempting a fresh installation on these
  systems at present.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Wed, 08 May 2013 14:07 GMT</pubDate>
</item>
<item>
   <title>The terrible state of EFI variable storage</title>
   <guid isPermaLink="false">the-terrible-state-of-efi-variable-storage</guid>
   <link>http://womble.decadent.org.uk/blog/the-terrible-state-of-efi-variable-storage.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  EFI includes support for storing persistent 'variables': it
  implements a key-value store where keys are (UUID, string) and
  values are arbitrary blobs.  (There are also some flags that
  restrict when the variables can be accessed.)  The physical storage
  medium is normally flash.  The Linux <tt>efivars</tt> module
  provides access to variable storage, both through a
  <a href="https://www.kernel.org/doc/Documentation/ABI/stable/sysfs-firmware-efi-vars">specific
  interface in sysfs</a> and through the somewhat abstracted
  <a href="https://www.kernel.org/doc/Documentation/ABI/testing/pstore">pstore
  interface</a>.
</p>
<p>
  An EFI implementation reads the boot order and (if applicable)
  Secure Boot configuration from specific EFI variables.  An operating
  system can add arbitrary variables, using its own UUID(s).  On
  Linux, the <tt>efibootmgr</tt> utility is used to read and write the
  boot order and the pstore interface is used within the kernel to
  dump kernel log messages or other information when particular events
  occur.
</p>
<p>
  Since <tt>efivars</tt> is needed to set the boot order on EFI
  systems, it's a critical part of installation.  But it wasn't being
  loaded on Debian systems until <tt>efibootmgr</tt> was run.  This
  doesn't work so well when using a rescue system, as the installation
  kernel and installed kernel may be different
  (<a href="http://bugs.debian.org/703363">Debian bug 703363</a>).  In
  future (Debian package version 3.2.41-1) this will be loaded
  automatically on EFI systems.
</p>
<p>
  But now comes a new problem: bugs in the implementation of variable
  storage can prevent a system from booting, and even worse, they may
  prevent manual recovery without special equipment (the system is
  'bricked').  <a href="http://mjg59.dreamwidth.org/23554.html">Matthew
  Garrett recently talked about this</a> and mentioned that some
  Samsung laptops are bricked if the variable storage becomes more
  than 50% full.  <tt>efivars</tt> now has some extra checks to avoid
  triggering this (both in mainline and in stable branches).  This
  isn't the end of the story, unfortunately.
</p>
<p>
  Remember that nothing can be overwritten in flash without erasing a
  relatively large block, and that writes may fail after a few
  thousand erase cycles (number depending on the type of flash used).
  Therefore, deleting a variable usually does not free storage
  immediately, and overwriting a variable usually reduces the amount
  of free storage.  In the case of the Samsung laptops, unused storage
  is apparently reclaimed at the next reboot.
</p>
<p>
  However, while testing the backported efivars changes I found that
  my EFI-booting system (Asus P8Z68-V LX motherboard) does not reclaim
  unused storage until it's very nearly full.  Since the firmware
  itself increments a counter variable on every boot, using 36 more
  bytes of storage, I was able to observe the available space dropping
  to under 100 bytes, and then after another boot jumping to about 42K
  (out of 64K).  This means that well over 50% of storage was unused,
  yet <tt>efivars</tt> would refuse to write any variables because the
  firmware didn't reclaim it.  This would prevent (re)installation of
  Linux, as the boot configuration could not be written.
</p>
<p>
  On the assumption that both behaviours are common, I've settled
  on a compromise that I hope minimises overall risk:
</p>
<ul>
  <li>
    Applied pending changes that allow pstore integration to be
    disabled at run-time, and made this the default.  This means
    only <tt>efibootmgr</tt> is likely to write to variables.
  </li>
  <li>
    Removed the check that variable writes will not fill storage
    more than 50%.
  </li>
</ul>
<p>
  But it's essential that we find a way to identify and work safely
  with both behaviours.  Not only do I want to eliminate the
  possibility of bricking or installaton failure, but I want to make
  EFI-backed pstore safe to enable.  Crash logs are often hard to
  obtain and pstore can help to solve that problem.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sat, 23 Mar 2013 06:35 GMT</pubDate>
</item>
<item>
   <title>Testing network link state</title>
   <guid isPermaLink="false">testing-network-link-state</guid>
   <link>http://womble.decadent.org.uk/blog/testing-network-link-state.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  <a href="http://blog.waja.info/2013/01/27/fixing-muninlite-for-up-interfaces-without-link/">Jan
  Wagner</a> writes about using ethtool to poll the link state on
  network devices.  While I'm pleased to see another happy ethtool
  user, it's a bit heavyweight for reading one bit of information
  and it's not ideal for scripting.
</p>
<p>
  Much information about each network device is available under
  the <tt>/sys/class/net/<var>name</var></tt> directory, including the
  <tt>carrier</tt> and <tt>speed</tt> attributes.  (When the interface
  is down, some of these attributes cannot be read.)  It's also
  possible to listen for link changes (rather than polling
  periodically) using the rtnetlink API, but this is probably not
  suitable for munin.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Mon, 28 Jan 2013 04:04 GMT</pubDate>
</item>
<item>
   <title>Call for testing: SAS driver update for Debian 6.0 'squeeze'</title>
   <guid isPermaLink="false">call-for-testing-sas-driver-update-for-debian-60-squeeze</guid>
   <link>http://womble.decadent.org.uk/blog/call-for-testing-sas-driver-update-for-debian-60-squeeze.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  The next point update for Debian 6.0 should include many fixes and
  improvements to the Linux kernel.  Version 2.6.32-47, currently
  available in the 'squeeze-proposed-updates' suite, includes
  updates to the following SAS drivers, adding support for new
  hardware:
</p>
<ul>
  <li>
    hpsa: HP SmartArray (<a href="mailto:690100@bugs.debian.org">bug
    #690100</a>)
  </li>
  <li>
    megaraid_sas: LSI Logic MegaRAID, also branded as Dell PERC
    (<a href="mailto:666108@bugs.debian.org">bug #666108</a>)
  </li>
  <li>
    isci: Intel C600 series
    (<a href="mailto:698094@bugs.debian.org">bug #698094</a>)
  </li>
</ul>
<p>
  Note that the binary package names don't change; they are still
  linux-image-2.6.32-5-<var>flavour</var>.
</p>
<p>
  If you are using any of the above SAS controllers, whether or not it
  is already supported by Debian 6.0.6, please consider testing this
  kernel version.  If it works, please follow up to the bug reports
  listed above.  If you find any regressions, please report bugs
  against the new package version.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 27 Jan 2013 19:56 GMT</pubDate>
</item>
<item>
   <title>What's in the Linux kernel for Debian 7.0 'wheezy', part 4</title>
   <guid isPermaLink="false">whats-in-the-linux-kernel-for-debian-70-wheezy-part-4</guid>
   <link>http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-4.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  The Debian package of the Linux kernel is based on Linux 3.2, but
  has some additional features.  This continues from parts
  <a href="http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-1.html">1</a>, 
  <a href="http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-2.html">2</a>
  and
  <a href="http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-3.html">3</a>,
  and covers new and improved hardware support.
</p>
<h4>DRM drivers from Linux 3.4 (proposed)</h4>
<p>
  Some recent Intel and AMD graphics chips were not supported well or
  at all by the DRM (Direct Rendering Manager) drivers in Linux 3.2.
  Although many bug fixes have been included in 3.2.y stable updates,
  we are considering updating them to the versions found in Linux 3.4.
  (We did something similar for Debian 6.0 'squeeze'.)
</p>
<p>
  Julien Cristau has been working on this and has prepared binary
  packages.  To install, run as root:
  <blockquote><pre>
gpg --no-default-keyring --keyring /usr/share/keyrings/debian-keyring.gpg --export 310180050905E40C | apt-key add -
echo deb http://people.debian.org/~jcristau/wheezy-drm34/ ./ > /etc/apt/sources.list.d/jcristau-wheezy-drm34.list
apt-get update
apt-get install linux-image-3.2.0-4.drm-amd64  # or -486, or -686-pae
</pre></blockquote>
  Please test these and report your results to
  <a href="mailto:687442@bugs.debian.org">bug #687442</a>.  I would
  suggest testing suspend/resume (if applicable), use of internal and
  external displays on laptops, and 3D accelerated graphics (games and
  compositing window managers such as GNOME Shell).  Remember that
  AMD/ATI graphics chips require the firmware from the
  firmware-linux-nonfree package for 3D acceleration and many other
  features.
</p>
<h4>amilo-rfkill driver</h4>
<p>
  I wrote a standard rfkill driver for the Fujitsu-Siemens Amilo A1655
  and M7440, based on the out-of-tree fsaa1655g and fsam7440 drivers.
  Unlike those, it should work with the rfkill command, Network
  Manager, etc.
</p>
<h4>ALPS touchpads</h4>
<p>
  Newer touchpads made by ALPS use different protocols for reporting
  scroll and pinch gestures.  Jonathan Nieder backported the changes
  to support these.
</p>
<h4>Wacom tablets</h4>
<p>
  Jonathan Nieder updated the wacom driver to the version in Linux
  3.5, adding support for the Intuos5, Bamboo Connect, Bamboo 16FG and
  various other models.
</p>
<h4>Emulex OneConnect 'Skyhawk'</h4>
<p>
  Sarveshwar Bandi at Emulex contributed a backport of the be2net
  driver from Linux 3.5, adding support for their 'Skyhawk' chip.
</p>
<h4>Marvell Kirkwood</h4>
<p>
  Marvell's Kirkwood SoCs have been supported upstream for some time
  and in Debian since release 6.0 'squeeze'.  However new models and
  boards generally require specific support.  Arnaud Patard backported
  support for the 6282 rev A1 chip found in QNAP TS-x19P II models,
  and for the Marvell Dreamplug and Iomega Iconnect.
</p>
<h4>Miscellaneous</h4>
<ul>
  <li>ITE IT8728F hardware monitor</li>
  <li>Ralink RT5392, RT5390R and RF5372 wifi chips</li>
  <li>Synaptics USB touchpad devices</li>
  <li>JMicron JM362 SATA controller</li>
  <li>IguanaWorks USB IR transceiver</li>
</ul>
<h4>More to come</h4>
<p>
  Missing hardware support is an important bug that can be fixed by
  kernel updates during a freeze and throughout the lifetime of a
  stable release.  If you know that new hardware isn't supported by
  the Debian kernel, please open a bug report.  I can't promise
  that it will be fixed, but we need to know what's missing.
</p>
<p>
  Hardware vendors that maintain their own drivers <em>upstream</em>
  (not out-of-tree) are especially welcome to contribute tested
  backports that add support for the latest hardware.  Send mail to
  <a href="mailto:debian-kernel@lists.debian.org">debian-kernel@lists.debian.org</a>
  if you have any questions about this.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sat, 26 Jan 2013 15:42 GMT</pubDate>
</item>
<item>
   <title>What's in the Linux kernel for Debian 7.0 'wheezy', part 3</title>
   <guid isPermaLink="false">whats-in-the-linux-kernel-for-debian-70-wheezy-part-3</guid>
   <link>http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-3.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  The Debian package of the Linux kernel has some additional features
  not present in mainline Linux 3.2.  This continues from
  <a href="http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-1.html">part
  1</a>
  and <a href="http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-2.html">part
  2</a>.
</p>
<h4>Real-time scheduling</h4>
<p>
  The
  '<a href="https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch">PREEMPT_RT</a>'
  aka 'linux-rt' patchset provides true real-time scheduling under
  Linux.  This can allow applications to respond to I/O with very
  low latency and jitter, although the results depend on application
  design and on the
  <a href="https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#What_sort_of_real-time_performance_should_I_expect.3F">hardware
  and firmware</a> used.
</p>
<p>
  Real-time scheduling is commonly used in industrial control, live
  audio/video applications, and high-frequency trading systems; it can
  also be useful for tightly-coupled cluster computing.  However, most
  applications will run more slowly under these kernels, and may not
  be any more responsive.
</p>
<p>
  The Linux 3.2-rt stable series maintained by Steven Rostedt is used
  to build alternate kernels for amd64 and i386.  You can install
  these using the metapackage <tt>linux-image-rt-amd64</tt> or
  <tt>linux-image-rt-686-pae</tt>.
</p>
<h4>Hyper-V guest drivers</h4>
<p>
  Like most VM hypervisors, Microsoft Hyper-V supports paravirtualised
  drivers which can provide much better performance than emulation of
  old hardware devices.  Linux 3.2 had quite early versions of these
  drivers that were relegated to the 'staging' area, but we've updated
  them to the much improved versions found in Linux 3.4.  I hoped we
  would also be able to package the userland daemon that supports
  management of Hyper-V guests, but this also needed many fixes and
  wasn't ready in time.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Mon, 14 Jan 2013 03:31 GMT</pubDate>
</item>
<item>
   <title>What's in the Linux kernel for Debian 7.0 'wheezy', part 2</title>
   <guid isPermaLink="false">whats-in-the-linux-kernel-for-debian-70-wheezy-part-2</guid>
   <link>http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-2.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  The Debian package has some additional features not present in
  mainline Linux 3.2.  Some of these were described in
  <a href="http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-1.html">part
  1</a>, and this continues the list.
</p>
<h4>CPU devices</h4>
<p>
  CPUs are exposed in the device model as normal devices, not
  'sysdevs'.  For x86 CPUs, model and feature information is included
  in the uevent for the CPU device.  This results in automatic loading
  of appropriate device drivers with the help of udev, rather than
  specialised init scripts:
</p>
<ul>
  <li>CPU frequency scaling drivers</li>
  <li>The <tt>intel_idle</tt> driver</li>
  <li>CPU temperature monitoring drivers</li>
  <li>Crypto drivers that use extensions such as SSE or VIA Padlock</li>
</ul>
<h4>Control groups</h4>
<p>
  Most control groups (cgroups) features are included, but some are
  disabled by default at run-time:
</p>
<ul>
  <li>
    The memory controller is disabled and can be enabled using the
    kernel parameter <tt>cgroup_enable=memory</tt>.
  </li>
  <li>
    Scheduler auto-grouping is disabled and can be enabled through the
    sysctl <var>kernel.sched_autogroup_enabled</var>.
  </li>
</ul>
<h4>EFI stub</h4>
<p>
  On x86 architectures the kernel is built as an EFI executable which
  can be directly loaded from an EFI shell, e.g.:
</p>
<blockquote><pre>Shell&gt; vmlinuz-3.2.0-4-amd64 root=/dev/sda2 initrd=initrd.img-3.2.0-4-amd64</pre></blockquote>
<p>
  Debian will usually boot on an EFI system via grub-efi, but this can
  be useful for some unusual configurations and some of the simple EFI
  boot loaders that are currently being developed.
</p>
<h4>Linux Security Modules</h4>
<p>
  The kernel side of AppArmor has some extensions for backward
  compatibility with AppArmor userland versions 2.4-2.7, matching
  wheezy userland.
</p>
<p>
  Debian appears to be the only major distribution to provide a choice
  of LSMs: AppArmor, SELinux or TOMOYO.  Use the <tt>security=</tt>
  boot parameter to enable any of them.
</p>
<h4>CPU microcode updates for Xen</h4>
<p>
  Like all hardware, CPUs have bugs, which can sometimes be fixed in
  microcode.  x86 microcode updates may be applied by either the BIOS
  or operating system, but it's easier to upgrade packages than to
  upgrade the BIOS.  Xen 4.1 can apply microcode updates but relies on
  the dom0 kernel to load them, and the mainline Linux kernel does
  not do this.  We include an extension of the microcode loader that
  does so.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 13 Jan 2013 17:33 GMT</pubDate>
</item>
<item>
   <title>What's in the Linux kernel for Debian 7.0 'wheezy', part 1</title>
   <guid isPermaLink="false">whats-in-the-linux-kernel-for-debian-70-wheezy-part-1</guid>
   <link>http://womble.decadent.org.uk/blog/whats-in-the-linux-kernel-for-debian-70-wheezy-part-1.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  As you may know, Debian 7.0 (codename 'wheezy') includes Linux 3.2.
  I'm maintaining the 3.2.y stable series at kernel.org which will
  collect bug fixes and some new hardware support as nominated by
  kernel developers and distributors, following the usual
  <a href="http://www.kernel.org/doc/Documentation/stable_kernel_rules.txt">stable
  kernel rules</a>.
</p>
<p>
  The Debian package has some additional features not present in
  mainline Linux 3.2.
</p>
<h4>Union filesystem</h4>
<p>
  Debian Live needs a union filesystem to allow writing files on top
  of the read-only live system image.  To support this, we include
  <a href="http://aufs.sf.net">Aufs</a> developed by Junjiro
  R. Okajima.  I hope that Linux will gain union mount or union
  filesystem support in time for the next release, but currently it
  doesn't take much work on our part to integrate.
</p>
<h4>Security hardening</h4>
<ul>
  <li>
    Magic SysRq functions are restricted by default.  This can be
    changed through sysctl <var>kernel.sysrq</var>.
  </li>
  <li>
    Network protocols AF_IEEE802154, AF_RDS and AF_DECnet must be
    explicitly loaded; they cannot be loaded just by creating a
    socket.
  </li>
  <li>
    The default permissions on the debugfs root are 700, i.e.
    accessible only to root.  (This change has also been made in
    Linux 3.7.)
  </li>
  <li>
    The <a href="https://lwn.net/Articles/472071/">symlink and hard
    link restrictions</a> from Linux 3.6 (and previously grsecurity,
    Openwall and Ubuntu) are included and enabled by default.  This
    can be changed through sysctls
    <var>fs.protected_symlinks</var> and <var>fs.protected_hardlinks</var>.
  </li>
  <li>
    The procfs hidepid/hidegid feature from Linux 3.4 is included,
    though not enabled by default.  When enabled, this prevents users
    from reading the state of each others' processes through procfs,
    which can in some cases be security-sensitive.
  </li>
</ul>
<h4>Bufferbloat</h4>
<p>
  I backported two big pieces of the solution to bufferbloat:
</p>
<ul>
  <li>
    Byte Queue Limits (BQL) allows network drivers to reduce
    unnecessary buffering in their hardware transmit queues.  This has
    been implemented in the bnx2, bnx2x, e1000e, forcedeth, igb,
    ixgbe, sfc, skge and tg3 drivers in Linux 3.3 onwards.
    Documentation is in
    <a href="http://git.kernel.org/linus/114cf5802165ee93e3ab461c9c505cd94a08b800">the
    commit that added it</a>, but you're unlikely to need it.
  </li>
  <li>
    The <a href="http://en.wikipedia.org/wiki/CoDel">CoDel</a> queue
    management algorithm can reduce unnecessary buffering in software
    transmit queues.  FQ CoDel adds an element of 'fairness' between
    multiple network flows.  These were implemented as the queue
    disciplines codel and fq_codel in Linux 3.5.  They can be selected
    using the <tt>tc</tt> command, e.g.:<br>
    <tt>tc qdisc replace dev eth0 root fq_codel</tt>
  </li>
</ul>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 23 Dec 2012 03:35 GMT</pubDate>
</item>
<item>
   <title>Wireless regulation in squeeze</title>
   <guid isPermaLink="false">wireless-regulation-in-squeeze</guid>
   <link>http://womble.decadent.org.uk/blog/wireless-regulation-in-squeeze.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  Alternate title: 'for those who care about channels 12-13'.  For
  background, see the earlier entry
  on <a href="recent-changes-in-debian-linux-packages.html">wireless
  regulation</a>.
</p>
<p>
  If your wifi interface <a href="http://bugs.debian.org/566543">no
  longer supports channel 12 or 13</a>, this may be because the kernel
  does not know the regulations for the domain code detected by the
  driver.  Prior to Linux 2.6.34, regulations for 'US', 'JP' (Japan)
  and 'EU' (ETSI members) were built-in, but now there is only '00'
  (world, conservative regulations) which allows only channels 1-11 in
  the 2.4&nbsp;GHz band.  For any driver that detects specific
  European country codes, the 'EU' regulatory information was useless
  even in 2.6.32 (squeeze) and the unknown code would be mapped to the
  '00' (world) domain.
</p>
<p>
  Since wireless regulations are subject to change from time to time,
  they are now provided by the <tt>wireless-regdb</tt> package and
  supposed to be loaded into the kernel by <tt>crda</tt>.  These
  packages should have been included in squeeze, but for various
  reasons they missed it.  But they are now available in
  squeeze-backports.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Tue, 17 Jul 2012 14:07 GMT</pubDate>
</item>
<item>
   <title>Feed reading</title>
   <guid isPermaLink="false">feed-reading</guid>
   <link>http://womble.decadent.org.uk/blog/feed-reading.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  I switched from Google Reader to Liferea a while back.  I was mostly
  happy with the functionality of Reader but I don't really want my
  reading history to be recorded or my feed list to be vulnerable to
  the whim of Google's inscrutable abuse department.
</p>
<p>
  I'm still using Liferea but unfortunately it has a lot of problems.
  Yes I do have bug numbers:
</p>
<ul>
  <li>
    Calls sync() many times while refreshing feeds
    (<a href="http://bugs.debian.org/623619">#623619</a>).  This is
    probably related to use of SQLite and not properly batching
    writes.  I work around this by using 'eatmydata' to nullify those
    calls, but that's not ideal.
  </li>
  <li>
    The UI thread also blocks on feed updates.  Together with the
    previous bug, this can make it unresponsive for minutes while
    updating feeds
    (<a href="http://bugs.debian.org/542276">#542276</a>).
  </li>
  <li>
    It often leaks memory and other resources when I play embedded
    video (<a href="http://bugs.debian.org/660593">#660593</a>).
  </li>
  <li>
    There is no progress or 'busy' indicator for the browser
    (<a href="http://bugs.debian.org/660595">#660595</a>).
  </li>
  <li>
    Error/prompt callbacks are not handled
    (<a href="http://bugs.debian.org/660597">#660597</a>) - for
    example, if I follow a link that happens to lead to a PDF, nothing
    happens.
  </li>
  <li>
    There is no progress indicator for downloading 'enclosed' files
    (typically podcast episodes), and errors are simply ignored
    (<a href="http://bugs.debian.org/660599">#660599</a>).
  </li>
  <li>
    While updating feeds, it may reset the item pane back to the
    summary (<a href="http://bugs.debian.org/660602">#660602</a>).
  </li>
</ul>
<p>
  So, I'm looking for an alternative again.  My requirements are:
</p>
<ol>
  <li>
    MAY be a desktop or web application.
  </li>
  <li>
    If it's a web application, it MUST be reasonably secure, e.g. it
    must not be written in PHP.
  </li>
  <li>
    If it's a web application, it MUST allow for multiple independent
    users on the same server.
  </li>
  <li>
    If it's a desktop application, it MUST embed a browser engine
    (presumably Gecko or WebKit) so I can follow links without
    having to switch windows.
  </li>
  <li>
    MUST support organisation of feeds by folders or tags, including
    combined item lists.
  </li>
  <li>
    MUST keep track of which items have been read.
  </li>
  <li>
    MUST support a global 'unread items' list.  SHOULD only remove
    items from this list when I refresh it, not as soon as I move
    away from an item.
  </li>
  <li>
    SHOULD support a three-pane (folder/list/item) view or something
    similar.  Google Reader's list view with expanding items is
    perhaps even better, though it means links must be opened in a
    separate tab.
  </li>
  <li>
    SHOULD support folder and item navigation by keyboard.
  </li>
  <li>
    SHOULD have some way to flag/bookmark items for later attention.
  </li>
  <li>
    If it's a desktop application, it SHOULD have some sort of
    download manager to support podcasts.
  </li>
</ol>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Mon, 20 Feb 2012 05:03 GMT</pubDate>
</item>
<item>
   <title>Another step forward for multi-arch</title>
   <guid isPermaLink="false">another-step-forward-for-multi-arch</guid>
   <link>http://womble.decadent.org.uk/blog/another-step-forward-for-multi-arch.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<pre>
~$ dpkg --print-architecture
i386
~$ dpkg -s linux-image-$(uname -r)
Package `linux-image-3.2.0-1-amd64' is not installed and no info is available.
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.
~$ dpkg -s linux-image-$(uname -r):amd64
Package: linux-image-3.2.0-1-amd64
Status: install ok installed
Priority: optional
Section: kernel
Installed-Size: 104822
Maintainer: Debian Kernel Team &lt;debian-kernel@lists.debian.org>
Architecture: amd64
Source: linux-2.6
Version: 3.2.6-1
</pre>
...

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Fri, 17 Feb 2012 02:24 GMT</pubDate>
</item>
<item>
   <title>Testing backport of the isci driver for Intel C600 SAS/SATA controllers</title>
   <guid isPermaLink="false">testing-backport-of-the-isci-driver-for-intel-c600-sassata-controllers</guid>
   <link>http://womble.decadent.org.uk/blog/testing-backport-of-the-isci-driver-for-intel-c600-sassata-controllers.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  Phil Kern made a general
  <a href="http://debblog.philkern.de/2012/01/call-for-testing-upcoming-squeeze-point.html">call
  for testing of Debian 6.0.4</a>.  I would like to more specifically
  point out that I backported the isci driver for Intel C600 SAS/SATA
  controllers.  Unfortunately I have not yet had any testing results
  for this.  If you have any machines with this hardware not yet in
  production, please do consider testing the new Linux kernel package,
  version 2.6.32-41.
</p>
<p>
  <strong>Updated:</strong> I now have a positive test result from the
  user who requested this driver in the installer.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Thu, 26 Jan 2012 15:51 GMT</pubDate>
</item>
<item>
   <title>Installing Debian GNU/Linux and Windows dual-boot under UEFI</title>
   <guid isPermaLink="false">installing-debian-gnulinux-and-windows-dual-boot-under-uefi</guid>
   <link>http://womble.decadent.org.uk/blog/installing-debian-gnulinux-and-windows-dual-boot-under-uefi.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  I thought it was about time to get a faster machine for... well,
  mostly for compiling kernels faster, but I'm sure I will find other
  applications for it.  I was originally intending to upgrade my
  laptop (Thinkpad T61, 1.8 GHz Core 2 Duo) but it seems that in the 3
  years since I bought it second-hand laptop prices have not dropped
  in line with Moore's law.  So instead I decided to upgrade (well,
  replace most of) a desktop PC.
</p>
<p>
  The last time I got a new desktop at home was in 2002.  It has an
  Athlon XP, PATA drives and a huge CRT monitor.  It has had some
  upgrades since then (DVD writer, more RAM, slightly faster CPU,
  replacement fan and PSU).  Obviously it was time to replace
  motherboard, CPU and RAM.  Not so obviously, the PSU needed changing
  again as modern CPUs apparently need more 12V electrons (?!).  The
  DVD writer was salvageable via a USB adapter and its local HD is
  currently a laptop drive (the only spare SATA HD I had).  The
  monitor is of course reusable, though the firmware setup program
  doesn't entirely agree with it.
</p>
<h4>Windows</h4>
<p>
  Yes, I do sometimes run Windows.  It's for games, and also seems to
  be needed for streaming video with stupid DRM.
</p>
<p>
  On the assumption that Windows is less likely to play nice with an
  existing installation, I tried installing it first.  The firmware
  appear to allow me to boot the DVD in either BIOS or UEFI mode, so I
  selected the UEFI option.  This worked so far as loading the
  initramfs (or whatever the Windows equivalent is) but then Windows
  was lacking a driver to access the DVD.  This stumped me for a day
  or so until I realised I had plugged the drive into a USB 3 (XHCI)
  port.  Apparently Windows 7 SP1 still doesn't include an XHCI driver
  in the installer (but neither does Debian 6.0.3 - we should fix
  that).
</p>
<p>
  The installation was mostly uneventful after this.  The Windows
  installer includes a reasonably capable partition editor.
</p>
<h4>Debian</h4>
<p>
  Installation of files was entirely uneventful.  The installer
  correctly detected the GPT (GUID partition table) created by
  Windows.  However, it was not able to install a boot loader.
  Currently it only includes support for the LILO and GRUB-PC
  boot loaders that run under BIOS.
</p>
<p>
  After much experimentation and cursing, I found instructions for
  <a href="http://staff.blog.ui.ac.id/jp/2011/08/25/installing-debian-squeeze-on-xserve-3-1/">installing
  Debian Squeeze on XServe 3.1</a> by Jan Peter Alexander Rajagukguk,
  which put me on the right track.  It seems that
  the <tt>grub-install</tt> script for GRUB-EFI in squeeze (and maybe
  other parts of the package) doesn't actually work.  However. JP's
  direction to build GRUB from source is no longer necessary.
  Here's what I did (minus the mis-steps):
</p>
<ol>
  <li>
    Boot the installer in rescue mode and open a shell on the
    installed system:
    <pre>
# # We start in dash, so switch to bash.
# <kbd>exec bash</kbd>
# <kbd>mkdir -p /boot/efi</kbd>
# # Mount the EFI boot partition by UUID.
# # It's probably called sda1 now, but is subject to change.
# <kbd>ls -l /dev/disk/by-uuid</kbd>
...
# <kbd>echo >>/etc/fstab 'UUID=<var>efi-boot-uuid</var> /boot/efi vfat defaults 0 0'</kbd>
# <kbd>mount /boot/efi</kbd>
# # Enable unstable sources, but use stable by default
# <kbd>echo >>/etc/apt/apt.conf 'APT::Default-Release "squeeze";'</kbd>
# <kbd>echo >>/etc/apt/sources.list 'deb http://cdn.debian.net/debian/ sid main'</kbd>
# <kbd>apt-get update</kbd>
...
# # Install unstable grub-efi-amd64
# <kbd>apt-get install -t unstable grub-efi-amd64</kbd>
...
# # Install GRUB to the EFI partition.  The '--removable' options
# # inhibits setting EFI variables, which won't work because we booted
# # through BIOS emulation.  Instead, it installs as the default boot
# # loader.
# <kbd>grub-install --bootloader-id=GRUB --removable</kbd>
# # On the AMI/ASUS firmware, you cannot select a new bootloader
# # directly but can invoke a 'shell'.  So I made GRUB the shell:
# <kbd>cp /boot/efi/boot/grub/grub.efi /boot/efi/shellx64.efi</kbd>
# <kbd>exit</kbd>
</pre>
  </li>
  <li>
    Reboot and select GRUB as the boot loader if necessary.  In my
    case I had to enter the setup program and select 'EFI shell'.
    Debian should now boot from the hard drive.
  </li>
  <li>
    Add a non-volatile boot option for GRUB (and make it the default):
    <pre>
# <kbd>apt-get install efibootmgr</kbd>
...
# <kbd>modprobe efivars</kbd>
# <kbd>efibootmgr -c -l '\efi\grub\grubx64.efi' -L GRUB</kbd>
</pre>
  </li>
</ol>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sat, 14 Jan 2012 20:25 GMT</pubDate>
</item>
<item>
   <title>IGMP denial of service in Linux (CVE-2012-0207)</title>
   <guid isPermaLink="false">igmp-denial-of-service-in-linux-cve-2012-0207</guid>
   <link>http://womble.decadent.org.uk/blog/igmp-denial-of-service-in-linux-cve-2012-0207.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<h4>The bug report</h4>
<p>
  Simon McVittie reported in Debian bug
  <a href="http://bugs.debian.org/654876">#654876</a> that his
  laptop running Linux 3.0 or 3.1 would sometimes crash (panic) while
  idle.  He initially suspected a driver bug, but the screen did not
  show any information about where the original fault occurred.
  However, using netconsole, he was able to capture a
  <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=17;filename=netconsole3a.txt;att=2;bug=654876">full
  log of the crash</a>.  This showed that a packet received through the
  wireless interface was being processed by IGMP, which then divided by
  zero.
</p>
<h4>IGMP</h4>
<p>
  IGMP is part of the IPv4 protocol suite, supporting multicast
  routing.  Every multicast address corresponds to a dynamic set of
  hosts, called a multicast group.  Multicast routers can send query
  messages asking which hosts belong to which groups, and hosts using
  multicast report back at intervals.  Routers can then limit
  forwarding of multicast packets to the interfaces where the group
  has members.  More sophisticated switches can also snoop IGMP and
  use it to limit their multicast forwarding.  There are unfortunately
  <a href="http://tools.ietf.org/html/rfc1112">three</a>
  <a href="http://tools.ietf.org/html/rfc2236">different</a>
  <a href="http://tools.ietf.org/html/rfc3376">versions</a> with
  semi-compatible message formats.  In version 1, the maximum
  reporting interval (Max Response Time) is fixed as 10 seconds, but
  from version 2 it is specified in query messages.
</p>
<p>
  The Linux IGMP implementation supports all three versions.  It
  distinguishes query messages as specified
  in <a href="http://tools.ietf.org/html/rfc3376#page-35">RFC 3376
  section 7.1</a>: v3 messages are longer than v1 or v2; v2 messages
  have a non-zero Max Response Time whereas v1 messages always have
  zero.  It is possible to force use of a specific protocol version,
  but normally if there are multiple multicast routers using different
  protocol versions it will respond according to the earliest protocol
  version in use so that all routers can understand its responses.
</p>
<h4>Source and fix for the bug</h4>
<p>
  Linux 2.6.36 included
  <a href="http://git.kernel.org/linus/7998156344b0d93de61ff8e5d75e96500e43a571">two</a>
  <a href="http://git.kernel.org/linus/5b7c84066733c5dfb0e4016d939757b38de189e4">fixes</a>
  to the version selection logic.  Unfortunately, the second of these
  introduced the bug in question.  While v2 query messages cannot
  possibly have zero Max Response Time (as that would make them v1),
  v3 query messages can.  What this means is unspecified, but the
  Linux IGMP code previously treated it as the minimum valid value of
  1/10 second.  But in the case where a v3 query is received and a v2
  query has also recently been received, this is no longer done.  This
  results in a reporting interval of 0 seconds and a division by zero
  when deciding the initial random delay.
</p>
<p>
  The fix for this is pretty obvious.  It is included in Linux 3.0.17,
  3.1.9, 3.2.1, and the Debian package version 3.1.8-2.
</p>
<h4>Security impact</h4>
<p>
  This is easily exploitable for denial of service within a local
  network.  Linux does not check the destination address of IGMP
  queries, so it may also be possible to attack a target through its
  unicast address from several hops away.  The attacker only needs to
  send a single IGMPv2 query followed by a single IGMPv3 query with
  zero Max Response Time.  All systems running Linux 2.6.36 or later
  (up to the above fixed versions) with any active IPv4 multicast
  listeners (other than for the 'all hosts' address) are vulnerable.
<p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sat, 14 Jan 2012 16:17 GMT</pubDate>
</item>
<item>
   <title>GNOME won't let you watch your videos in peace</title>
   <guid isPermaLink="false">gnome-wont-let-you-watch-your-videos-in-peace</guid>
   <link>http://womble.decadent.org.uk/blog/gnome-wont-let-you-watch-your-videos-in-peace.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  Screensaver control on the Linux desktop is a total mess, but
  the <tt>xdg-screensaver</tt> command provided an interim
  cross-desktop solution by detecting and using the appropriate
  underlying interfaces.  For GNOME, it depends on
  the <tt>gnome-screensaver-command --poke</tt> option, but that has
  been <a href="http://bugs.debian.org/541968">broken</a> and then
  removed in favour of <strike>the cross-desktop D-Bus API
  org.freedesktop.ScreenSaver</strike>
  <a href="https://bugzilla.gnome.org/show_bug.cgi?id=579430#c21"><em>another</em>
  GNOME-specific API</a> which can't practically be used by
  <tt>xdg-screensaver</tt>.
</p>
<p>
  What's more, switching to the new API seems to
  have <a href="https://bugzilla.gnome.org/show_bug.cgi?id=656988">introduced</a>
  <a href="https://bugzilla.gnome.org/show_bug.cgi?id=630711">various</a>
  <a href="https://bugzilla.gnome.org/show_bug.cgi?id=647750">bugs</a>
  in GNOME's own video player, Totem, such that it often failed to
  inhibit the screensaver in GNOME 2.32 and 3.0.  Apparently
  everything is wonderful again in 3.2; here's hoping.
</p>
<p>
  (In case anyone asks where my bug report on the totem package is, I
  already looked at the bug list and it's clear that there's no
  point.)
</p>
<p>
  <b>Updated:</b> Well I said
  the <a href="http://people.gnome.org/~mccann/gnome-session/docs/gnome-session.html">GNOME
  Session D-Bus API</a> couldn't practically be used in
  xdg-screensaver, but then set out to prove myself wrong.  And with
  the aid of Perl, I <a href="http://bugs.debian.org/610155#60">may
  have succeeded</a>.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 20 Nov 2011 07:36 GMT</pubDate>
</item>
<item>
   <title>I am going to DebConf11</title>
   <guid isPermaLink="false">i-am-going-to-debconf11</guid>
   <link>http://womble.decadent.org.uk/blog/i-am-going-to-debconf11.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<a href="http://debconf11.debconf.org">
  <img src="http://wiki.debconf.org/upload/9/9e/DC11_web_120x120_01.png"
       alt="I am going to DebConf11.">
</a>
I have a talk to give, hacking to do, and I should be helping with
video as well. Hope to see you in Banja Luka!

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 05 Jun 2011 03:38 GMT</pubDate>
</item>
<item>
   <title>Testing new hardware support for Debian 6.0.2</title>
   <guid isPermaLink="false">testing-new-hardware-support-for-debian-602</guid>
   <link>http://womble.decadent.org.uk/blog/testing-new-hardware-support-for-debian-602.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  The Debian kernel team regularly backports driver updates to the
  Linux kernel in stable releases to add support for new hardware, and
  I've prepared several updates intended for point release 6.0.2.
  Since the kernel team does not have a large collection of hardware
  on which to test driver changes, we would appreciate test reports
  from users.  It is important to test not just that new devices are
  supported properly, but that there are no regressions in support
  for older devices.
</p>
<h4>Changes</h4>
<p>
  I have updated these drivers to the versions found in Linux
  2.6.38, modulo driver API changes:
</p>
<ul>
  <li>
    bna: New driver for Brocade Ethernet adapters.
    (<a href="mailto:627699@bugs.debian.org">#627699</a>)
  </li>
  <li>
    e1000e: Add support for i82567V-4, i82579.  Bug fixes for i82577,
    i82578, i82583. (<a href="mailto:627700@bugs.debian.org">#627700</a>)
  </li>
  <li>
    hpsa: New driver for HP Smart Array controllers.  It also supports
    some devices that are currently handled by cciss, but I have
    disabled that for 'squeeze'.
    (<a href="mailto:627701@bugs.debian.org">#627701</a>)
  </li>
  <li>
    igb, igbvf: Add support for i82576-ET2, 82580, DH89xxCC, i350.
    (<a href="mailto:627702@bugs.debian.org">#627702</a>)
  </li>
  <li>
    pm8001: New driver for PMC-Sierra SAS/SATA HBAs.
    (<a href="mailto:627703@bugs.debian.org">#627703</a>)
  </li>
  <li>
    r8169: Add full support for RTL8168DP.  Bug fixes for RTL8102E.
    (<a href="mailto:627704@bugs.debian.org">#627704</a>)
  </li>
  <li>
    tg3, broadcom: Add support for BCM5717, BCM5719, BCM57765, and
    BCM50610M and BCM5241 PHYs.  Bug fixes for BCM5755.
    (<a href="mailto:627705@bugs.debian.org">#627705</a>)
  </li>
</ul>
<p>
  I have also cherry-picked some small changes:
</p>
<ul>
  <li>
    bnx2i: Add support for BCM5771E
  </li>
  <li>
    wl1251: Add support for PG11 chips
  </li>
  <li>
    bnx2x: Add support for BCM84823
  </li>
  <li>
    ar9170usb: Add several additional USB device IDs
  </li>
</ul>
<p>
  There are more drivers that I think should be added or updated
  (see <a href="http://bugs.debian.org/624794">#624794</a>) but
  they will probably have to wait for release 6.0.3.
</p>
<h4>Packages</h4>
<p>
  The source package and binary packages for i386 and amd64 are
  available on
  <a href="http://people.debian.org/~benh/packages/">people.debian.org</a>.
  They can be verified by the checksums in the
  <a href="http://people.debian.org/~benh/packages/linux-2.6_2.6.32-35~test1_multi.changes">signed
  changes file</a>.
</p>
<p>
  The current packages are version 2.6.32-35~test1, but there may be
  further test versions before an official stable update.
</p>
<h4>How to test</h4>
<p>
  For network drivers, I suggest the following regression tests:
</p>
<ol>
  <li>
    If the driver tries to load firmware (only required for some
    chips), does this work once the firmware file(s) are installed?
  </li>
  <li>
    Can you receive and transmit VLAN-tagged frames after creating a
    VLAN interface?
  </li>
  <li>
    Does the interface work after suspend and resume?
  </li>
  <li>
    Does the interface work after removing the cable for 10 seconds and
    reinserting it?
  </li>
  <li>
    Does multicast configuration work?  (IPv6 autoconfiguration or mDNS
    will cover this.)
  </li>
  <li>
    Can the interface send and receive TCP/IP across a LAN at the same
    speed, before and after these changes?  (Use e.g. netperf to test
    this, but don't forget to remove the netperf package after use.)
  </li>
  <li>
    Are any warnings or errors logged by the kernel during the
    preceding tests?
  </li>
</ol>
<p>
  For storage drivers, unfortunately I don't have a good idea of what
  tests would be suitable.  In any case, please don't test on disks
  storing valuable data!
</p>
<p>
  Please send test reports to the bug reports linked above, stating
  the driver name, the PCI ID for the device you tested
  (from <tt>lspci -n</tt>) and any other device identification that
  the kernel log (for example, r8169 logs the 'XID' of the device).
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Mon, 23 May 2011 18:51 GMT</pubDate>
</item>
<item>
   <title>Upcoming changes in Debian Linux packages for i386</title>
   <guid isPermaLink="false">upcoming-changes-in-debian-linux-packages-for-i386</guid>
   <link>http://womble.decadent.org.uk/blog/upcoming-changes-in-debian-linux-packages-for-i386.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  The major upcoming configuration change in Linux 2.6.39 is to get
  rid of the '686' flavour.  This may be surprising, because it's the
  most widely used flavour of the 4 we have a present:
</p>
<table>
  <tr>
    <th>Name</th>
    <th>Minimum CPU features</th>
    <th>Maximum total CPU threads</th>
    <th>Physical address space</th>
  </tr>
  <tr>
    <td>486</td>
    <td>486-class</td>
    <td>1</td>
    <td>4&nbsp;GiB</td>
  </tr>
  <tr>
    <td>686</td>
    <td>686-class; CMOV instruction</td>
    <td>32</td>
    <td>4&nbsp;GiB</td>
  </tr>
  <tr>
    <td>686-bigmem</td>
    <td>686-class; PAE</td>
    <td>32</td>
    <td>64&nbsp;GiB</td>
  </tr>
  <tr>
    <td>amd64</td>
    <td>x86-64</td>
    <td>512</td>
    <td>64&nbsp;TiB</td>
  </tr>
</table>
<p>
  However, the physical address limitation means that an increasing
  proportion of new PCs and the majority of PC servers need the
  '686-bigmem' flavour.  Even those that have less than 4&nbsp;GiB RAM
  do support PAE and can run the '686-bigmem' flavour.  There is a
  small cost (up to about 0.1% of RAM) in the use of larger hardware
  page tables.  There is also an important benefit on recent
  processors: the larger page table entries include an NX bit (also
  known as XD) which provides protection against some buffer overflow
  attacks, both in the kernel and in user-space..
</p>
<h3>Q: What about 686 processors without PAE?</h3>
<p>
  There are only a few 686-class processors that support CMOV but not
  PAE: most Intel Pentium M models, the VIA C3 'Nehemiah' and the AMD
  Geode LX.  These also all lack SMP support, which means the '486'
  flavour is suitable for them.
</p>
<p>
  Some benchmarking on two of those - a Pentium M model 745 and a C3
  'Nehemiah' - indicated that they run the '486' flavour slightly
  faster than the '686' flavour.  It appears that the performance gain
  from using plain uniprocessor code (rather than SMP-alternatives,
  which are patched with NOPs on uniprocessor systems) outweighs the
  performance loss from avoiding use of some newer instructions.
</p>
<h3>Q: Why get rid of '686' but keep the 'amd64' flavour?</h3>
<p>
  We intend to get rid of 'amd64' too, but we need to ensure that
  upgrades from linux-image-2.6-amd64:i386 to
  linux-image-2.6-amd64:amd64 work properly.
</p>
<h3>Q: If '686-bigmem' will be the default, isn't 'bigmem' redundant?</h3>
<p>
  Yes, it is.  Therefore '686-bigmem' will be renamed to '686-pae'.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 24 Apr 2011 03:34 GMT</pubDate>
</item>
<item>
   <title>Recent changes in Debian Linux packages</title>
   <guid isPermaLink="false">recent-changes-in-debian-linux-packages</guid>
   <link>http://womble.decadent.org.uk/blog/recent-changes-in-debian-linux-packages.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<h3>Linux 2.6.38 and 2.6.39</h3>
<p>
  As you've probably seen, the testing suite finally got a new
  upstream kernel version (Linux 2.6.38) and is currently synchronised
  with unstable.  I'm just about to upload a new version of linux-2.6
  based on upstream stable update 2.6.38.4.
</p>
<p>
  Linux 2.6.39 is well on its way to release, so 2.6.39-rc4 should
  soon be in experimental.  The Debian source package will add support
  for the new armhf (ARM with hardware floating-point) architecture.
</p>
<h3>Splitting linux-2.6</h3>
<p>
  The linux-base package, introduced to handle transitions and other
  support functions for 'image' packages, is now built from a separate
  source package.  It won't be changed very often, so you will no
  longer need to upgrade linux-base every time you upgrade an 'image'
  package.  (This doesn't apply within 'squeeze', but I may have a
  way to work around that.)
</p>
<p>
  The firmware-linux-free package, containing a few firmware and
  configuration blobs from Linux that are DFSG-compliant, is also now
  built from a separate source package.  These blobs have not changed
  for a very long time, so again you will no longer be recommended to
  upgrade this package every time you upgrade an 'image' package.
  Secondly, this allows us to remove the entire 'firmware' directory
  from the upstream source rather than carefully removing and patching
  to leave just the DFSG-compliant bits.
</p>
<h3>Wireless regulations</h3>
<p>
  The '2.4 GHz' and '5 GHz' ISM bands used for wifi are not defined
  identically around the world.  The exact frequency ranges and
  maximum permitted power levels vary between countries.  Radio
  equipment manufacturers have a legal responsibility to ensure their
  equipment operates within these regulations.  Since it is expensive
  to implement such regulations in hardware (including many different
  variants for different regions), these restrictions are usually
  implemented in the driver using a country code retrieved from the
  hardware's EEPROM or flash.  So this is now our responsibility.
</p>
<p>
  We need to be able to look up regulations by country codes, and we
  also need to support the case where a device sold in one country is
  used in another country with tighter regulations.  For some time,
  the wifi configuration library (cfg80211) included regulatory
  information for a small number of countries and regions.  However,
  the default since Linux 2.6.34 has been to build-in only the 'world'
  domain (intersection of all the restrictions) and to request
  information from user-space.  In Debian, we didn't have anything to
  provide this information, so for example channels 12-13 became
  unavailable for users in Europe.
</p>
<p>
  The regulatory information should be provided by the Central
  Regulatory Domain Agent (CRDA) from a current database.  These are
  now packaged as <code>crda</code> and <code>wireless-regdb</code>
  respectively.  Drivers that do not use cfg80211 (mostly those from
  the 'staging' area) will not be affected, and may or may not
  implement correct regulations.
</p>
<p>
  When you travel to another country or use an imported wifi device
  with an incorrect country code (I hear 'CN' is common), you can
  use <code>iw reg set</code> to ensure that your wifi devices operate
  within the regulations of the country you are in.  Set
  the <code>REGDOMAIN</code> variable in
  <code>/etc/default/crda</code> to make this persistent.  These will
  be <em>intersected</em> with the regulations specified by the
  hardware.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sat, 23 Apr 2011 16:40 GMT</pubDate>
</item>
<item>
   <title>Distinguishing Ethernet-like net device types</title>
   <guid isPermaLink="false">distinguishing-ethernet-like-net-device-types</guid>
   <link>http://womble.decadent.org.uk/blog/distinguishing-ethernet-like-net-device-types.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<a href="http://www.hanskalabs.net/posts/network-devices-python-udev/">David
  Paleino asks</a>:
<blockquote>
  I'm still missing how to reliably detect if a device is a "wired" or
  a "wireless" one. I suspect that checking the existence of /phy80211
  would be enough, but I can't really tell, and seems like I'm not
  able to find an exhaustive sysfs reference manual.
</blockquote>
<p>
  Sadly there is no exhaustive manual, but many attributes found in
  sysfs are documented under
  <a href="http://www.kernel.org/doc/Documentation/ABI/">Documentation/ABI/</a>.
  In this case you need the DEVTYPE name from the net device's uevent,
  which may be e.g. 'wlan' or 'wwan' (and is absent for wired Ethernet
  devices). I don't know why this isn't also exposed as an attribute
  in its own right.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Fri, 18 Feb 2011 22:23 GMT</pubDate>
</item>
<item>
   <title>USB serial console</title>
   <guid isPermaLink="false">usb-serial-console</guid>
   <link>http://womble.decadent.org.uk/blog/usb-serial-console.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  <a href="http://blog.andrew.net.au/2010/12/05#usb_serial_console">Andrew
    Pollock writes:</a>
</p>
<blockquote>
  <p>
    If you're trying to use a USB serial adapter as your Linux kernel
    console...
  </p>
  <p>
    The kernel needs to be compiled with CONFIG_USB_SERIAL_SERIAL=y
  </p>
</blockquote>
<p>
  That's CONFIG_USB_SERIAL_CONSOLE.
</p>
<blockquote>
  <p>
    Debian kernels do not appear to be. Somewhat strangely, the config
    option doesn't even wind up in the config file in the typical
    commented-out manner, so you don't even know the option exists
    until you discover it from random Web searching, and then looking
    at drivers/usb/serial/Kconfig in the kernel source.
  </p>
</blockquote>
<p>
  Console drivers need to be built-in, so CONFIG_USB_SERIAL_CONSOLE
  depends on CONFIG_USB_SERIAL=y.  We build the USB serial code as a
  module so CONFIG_USB_SERIAL_CONSOLE is not an available option.
  This is unlikely to change, as a built-in feature takes memory from
  every Debian GNU/Linux installation.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 05 Dec 2010 20:49 GMT</pubDate>
</item>
<item>
   <title>RCBW(eekend) 2010-11-01</title>
   <guid isPermaLink="false">rcbw-2010-11-01</guid>
   <link>http://womble.decadent.org.uk/blog/rcbw-2010-11-01.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<ul>
<li>
  <a href="http://bugs.debian.org/595396">#595396</a> - probably
  fixable with a binNMU, but I also changed debian/rules to catch
  regressions
</li>
<li>
  <a href="http://bugs.debian.org/596646">#596646</a> - downgraded;
  no justification given for 'serious' severity
</li>
<ins><li>
  <a href="http://bugs.debian.org/597059">#597059</a> - closed as not a bug
</li></ins>
<li>
  <a href="http://bugs.debian.org/599262">#599262</a> - reassigned
  to the kernel (linux-2.6) and downgraded as not RC there
</li>
<li>
  <a href="http://bugs.debian.org/599709">#599709</a> - applied
  the upstream fix
</li>
<li>
  <a href="http://bugs.debian.org/599711">#599711</a> - backported
  the upstream fix; downgraded as it's only a denial of service and
  may not even affect Debian
</li>
</ul>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Mon, 01 Nov 2010 17:48 GMT</pubDate>
</item>
<item>
   <title>Boot loader disruption in sid</title>
   <guid isPermaLink="false">boot-loader-disruption-in-sid</guid>
   <link>http://womble.decadent.org.uk/blog/boot-loader-disruption-in-sid.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  <img src="http://images.cheezburger.com/completestore/2010/8/27/12908597-8a76-4bd7-ae2e-4c304dc4b8c7.jpg"
       alt="IN UR DISTRO BRAKIN UR PACKAGEZ">
</p>
<p>
  <a href="http://bugs.debian.org/594479">Something</a> was bound to
  go <a href="http://bugs.debian.org/594189">wrong<a/> when changing
  the policy for boot loaders.  Let me try that again.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sat, 28 Aug 2010 02:39 GMT</pubDate>
</item>
<item>
   <title>'This Week in Debian' podcast</title>
   <guid isPermaLink="false">this-week-in-debian-podcast</guid>
   <link>http://womble.decadent.org.uk/blog/this-week-in-debian-podcast.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  A few weeks ago
  <a href="http://upsilon.cc/~zack/blog/posts/2010/07/debian_podcast_planning/">Zack
    wrote</a> about preparations for a new podcast to be called 'This
    Week in Debian'.
    I <a href="http://wiki.debian.org/ThisWeekInDebian">volunteered to
    be interviewed</a>, and have now talked with Jonathan Nadeau for
    about 30 minutes about the work of the kernel team and the release
    process.  Hopefully he'll be editing down my rambling so the first
    episode won't be too boring!  If you do work on Debian that you'd
    like to talk about to an interested audience, follow the link
    above and add yourself to the list of potential interviewees.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Fri, 06 Aug 2010 23:23 GMT</pubDate>
</item>
<item>
   <title>Cancelling a command in bash</title>
   <guid isPermaLink="false">cancelling-a-command-in-bash</guid>
   <link>http://womble.decadent.org.uk/blog/cancelling-a-command-in-bash.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p><a href="http://rb.doesntexist.org/blog/2010/05/22/changing-some-configuration-from-defaults/">Rog&eacute;rio Brito writes</a>:</p>
<blockquote>
  [...] whenever I was typing a command line, changed my mind and
  pressed C-c, I got a ^C printed on the screen, usually overwriting
  one or two characters of what I had typed. And this prevented me
  from automatically copying and pasting the command that I had typed.
</blockquote>
<p>
  There is an alternative to using C-c, and that is M-#.  This adds a
  '#' to the start of the line, commenting it out, and then behaves as
  if you pressed Return.  The result is that the command is cancelled
  but still remains on-screen <em>and</em> in your history.  You can
  then copy the command later using the mouse or keyboard.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sat, 22 May 2010 21:56 GMT</pubDate>
</item>
<item>
   <title>Adding debian/source/format</title>
   <guid isPermaLink="false">adding-debiansourceformat</guid>
   <link>http://womble.decadent.org.uk/blog/adding-debiansourceformat.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<a href="http://www.linux.codehelp.co.uk/serendipity/index.php?/archives/200-guid.html">Neil Williams writes</a>:
<blockquote>
  <p>
    The new lintian addition "missing-debian-source-format" is starting to remind me of a pestering nanny.</p>
  <p>
    I use source format 3.0 only where I see a technical benefit and that
    - so far - is restricted to packages that use a .tar.bz2 upstream and
    one or two with really tricky patching requirements.
  </p>
</blockquote>
<p>
  You are missing the point - <tt>debian/source/format</tt> allows
  you to make it explicit that the source format is 1.0, if you want
  to stick with that.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Thu, 25 Mar 2010 03:39 GMT</pubDate>
</item>
<item>
   <title>Debian Linux packages: the 'Big Bang' release</title>
   <guid isPermaLink="false">debian-linux-packages-the-big-bang-release</guid>
   <link>http://womble.decadent.org.uk/blog/debian-linux-packages-the-big-bang-release.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  Max Attems uploaded a new version of the Linux kernel package
  (linux-2.6) today.  This includes the last major changes to the
  package before Debian 6.0 'squeeze', which led me to label it
  the 'Big Bang' release:
</p>
<ul>
  <li>
    The Xen (dom0 and enhanced domU) flavour is back.  It should
    probably be considered experimental at the moment.
  </li>
  <li>
    The OpenVZ flavour is back.  This should also be considered
    experimental.
  </li>
  <li>
    The Direct Rendering Manager (DRM) system and drivers were updated
    to the versions in Linux 2.6.33.  This brings some bug fixes and
    extra features for the i915 driver, and working Kernel Mode
    Setting (KMS) for the radeon driver.  It also includes the
    kernel-mode part of the nouveau driver for Nvidia GPUs, but this
    will not yet be loaded automatically as the user-mode parts of
    nouveau have not been packaged.
  </li>
  <li>
    The
    <a href="/blog/this-season-i-have-mostly-been-building-kernels.html">libata
    transition for PATA (IDE) controller drivers</a>.  After some
    review we realised that this only affects PC hardware at the
    moment, so only users of the i386 or amd64 architectures will see
    the upgrade prompts.  Thanks to everyone who tested and reported
    bugs in the experimental packages.
  </li>
</ul>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Thu, 18 Mar 2010 03:01 GMT</pubDate>
</item>
<item>
   <title>KVM reliability</title>
   <guid isPermaLink="false">kvm-reliability</guid>
   <link>http://womble.decadent.org.uk/blog/kvm-reliability.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<a href="http://etbe.coker.com.au/?p=1829">Russell Coker writes</a>:
<blockquote>
  I had also hoped that it would be really reliable and work with the
  latest kernels (unlike Xen) but it is giving me problems with 2.6.32
  on Opteron.
</blockquote>
<p>
  This is a regression caused by a recent security fix (CVE-2010-0298,
  "KVM: x86 emulator: fix memory access during x86 emulation").  It
  appears to affect only recent Linux kernels running as guests on AMD
  systems, and it will probably be fixed soon.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Tue, 16 Mar 2010 23:35 GMT</pubDate>
</item>
<item>
   <title>FOSDEM 10 Distribution Developer Room videos now available</title>
   <guid isPermaLink="false">fosdem-10-distribution-developer-room-videos-now-available</guid>
   <link>http://womble.decadent.org.uk/blog/fosdem-10-distribution-developer-room-videos-now-available.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
As previously announced elsewhere,
<a href="http://video.debian.net/2010/fosdem10/">video recordings from
the Distribution Developer Rooms at FOSDEM 10</a> are now available.
All but two talks were recorded and are available in Ogg Theora+Vorbis
format, in low-bandwidth (~300 kbit/s) and high-bandwidth (~1.5
Mbit/s) versions.
</p>
<p>
These recordings should also be available later on the
<a href="http://www.youtube.com/fosdemtalks">FOSDEM YouTube
channel</a>.
</p>
<p>
Video and audio were recorded by Dominique Dumont (H.1302) and the
DebConf video team (H.1308) with the assistance of some additional
volunteers.  Thanks to everyone involved in recording, and thanks also
to the speakers and the organisers of FOSDEM.
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 28 Feb 2010 20:17 GMT</pubDate>
</item>
<item>
   <title>This season I have mostly been building kernels</title>
   <guid isPermaLink="false">this-season-i-have-mostly-been-building-kernels</guid>
   <link>http://womble.decadent.org.uk/blog/this-season-i-have-mostly-been-building-kernels.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>
  As some people noticed, a driver update to support
  <a href="http://www.solarflare.com/news/news_press_show.php?release=20090824">a
  major hardware release</a> in my day job
  and <a href="http://article.gmane.org/gmane.linux.kernel/911054">a
  long series of trivial patches motivated by Debian kernel work</a>
  combined to make me <a href="http://lwn.net/Articles/373405/">joint
  most prolific change author for Linux 2.6.33</a>.  This was a fluke,
  and 2.6.34 is likely to be fairly quiet for me.
</p>
<h3>Team work</h3>
<p>
  Meanwhile the kernel team is still working hard on fixing bugs in
  Linux 2.6.32.  As previously announced, this kernel version will be
  used in both Debian 6.0 'squeeze' and Ubuntu 10.04 LTS.  It is also
  known to be the kernel version for RHEL 6 though this has not been
  officially announced.  If you find a serious bug that was fixed in
  2.6.33 or later, please ask the author to send the fix to
  stable@kernel.org so that it will be included in all these
  distributions.  Note that this happens automatically for commits
  with the line 'Cc: stable@kernel.org' in their description.
</p>
<p>
  We are also continuing to backport new drivers and new hardware
  support in existing drivers into Debian 5.0 'lenny' (stable).
  Missing support for common hardware is considered an important bug
  and suitable for stable updates.  However, if there were major
  changes to a driver before those that added new hardware support, we
  may be unable to produce a backport.  We are not able to carry out
  comprehensive hardware testing and do not want to risk a regression
  existing hardware support.
</p>
<h3>libata transition - call for testing</h3>
<p>
  Finally, a major change I have been working on is the transition
  from the old IDE drivers for PATA controllers to new drivers based
  on libata.  The old IDE subsystem is no longer developed and some
  drivers do not properly support all the hardware that their
  libata-based counterparts do.  However, while the IDE drivers
  generate device names beginning with 'hd', libata presents PATA
  devices as SCSI devices and generates device names beginning with
  'sd'.  In a system that already has other SCSI or SCSI-like disks,
  names may change somewhat unpredictably.  Similar problems exist for
  PATA CD/DVD and tape devices.
</p>
<p>
  So, while the transition doesn't involve any kernel hacking, it does
  require a complex upgrade process.  Any configuration files that
  refer to IDE or SCSI device names may need to be changed.  It is not
  enough to switch to only SCSI device names, since we cannot know what
  they are in advance and the configuration files should continue to
  work with kernel versions from before and after the transition.  In
  the case of disks we can normally use the partition label or UUID:
  many tools understand the <tt>LABEL=</tt> and <tt>UUID=</tt> syntax,
  and for others we can refer to the symlinks under <tt>/dev/disk</tt>
  created by udev.  In the case of CD/DVD devices, we can use the
  aliases <tt>/dev/cdrom</tt> etc.  created by udev.  In the case of
  tape devices, however, you're on your own.
</p>
<p>
  In experimental, kernel image packages depend on a new package
  <tt>linux-base</tt> which implements this transition (from
  2.6.33-1~experimental.2; the previous version was broken).  The
  postinst script will prompt you to make changes automatically or
  manually.  It can convert most bootloader configuration files,
  <tt>/etc/fstab</tt>, the udev CD aliases configuration and
  the <tt>initramfs-tools</tt> resume partition.  It can also label
  partitions that don't have a label or UUID.  Please do test it and
  verify that its changes are correct.  All changed configuration
  files are backed up with a suffix of '.old' (or '^old' in one case).
</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 28 Feb 2010 18:11 GMT</pubDate>
</item>
<item>
   <title>Debian kernel team at Linux Plumbers Conference</title>
   <guid isPermaLink="false">debian-kernel-team-at-linux-plumbers-conference</guid>
   <link>http://womble.decadent.org.uk/blog/debian-kernel-team-at-linux-plumbers-conference.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>Most of the Debian kernel team members are attending the
<a href="http://linuxplumbersconf.org/2009/">Linux
Plumbers Conference</a> in Portland over the next 3 days.  We'll be
discussing kernel packaging and integration issues among ourselves
and with upstream and other distributors.~</p>
<p>You may have noticed that Linux 2.6.31 is out but not yet in sid.
This kernel version contains a large number of known regressions
which should be fixed in subsequent stable updates, so we will wait
for those.  In the mean time we've uploaded an update to 2.6.30 which
should resolve the most serious bugs.</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Wed, 23 Sep 2009 17:34 GMT</pubDate>
</item>
<item>
   <title>DebConf 9 videos - progress</title>
   <guid isPermaLink="false">debconf-9-videos---progress</guid>
   <link>http://womble.decadent.org.uk/blog/debconf-9-videos---progress.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p><a href="http://meetings-archive.debian.net/pub/debian-meetings/2009/debconf9/low/">Low-bandwidth
versions of the recorded talks</a> are now available.  There are currently
two exceptions:</p>
<ul>
<li>Some of the music for 'Welcome to DebConf 9' is licenced as CC BY-NC-ND,
which unfortunately doesn't allow use in a video.  I'm discussing this
with Marga and hope to upload a new version soon.</li>
<li>'Debian por dentro' has a piece missing which should be restored from
tape.</li>
</ul>
<p>While the master versions of all these talks have been checked, not all
the generated low-bandwidth versions have.  Please let us know on
<a href="mailto:debconf-video@lists.debconf.org">debconf-video@lists.debconf.org</a>
if there is something wrong with them other than the following:</p>
<ul>
<li>A few of the recordings were unfortunately incomplete; this is indicated
by a fade-in or fade-out</li>
<li>Some of the recordings are in two pieces</li>
<li>There were a few drop-outs where you will see a black screen and no sound
for up to a second</li>
<li>The text on some slides is unreadable; in this case, refer to the file
provided by the speaker or wait for the high-bandwidth version</li>
</ul>
<p>The high-bandwidth versions will be uploaded over the next week (slow
connection is slow).</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Sun, 13 Sep 2009 13:14 GMT</pubDate>
</item>
<item>
   <title>DebConf 9 videos</title>
   <guid isPermaLink="false">debconf-9-videos</guid>
   <link>http://womble.decadent.org.uk/blog/debconf-9-videos.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>Several people have been asking after the videos.  My answer to
them is "we release when it's ready".</p>
<p>Seriously, though, I'm sorry about the delay in publishing videos.
There was some miscommunication between me and the sysadmin team at
DebConf which meant I couldn't take files away with me then.  Peter
Palfrader reassembled the video RAID later, copied the necessary
files onto a single hard disk, and posted that to me.  This disk
apparently got lost on the way, but eventually arrived here last
week after a 3-week journey.</p>
<p>Over the weekend I dealt with most of the videos that required
editing, and today I was able to resume the transcoding process.
Tomorrow I intend to start uploading again.</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Thu, 10 Sep 2009 03:24 GMT</pubDate>
</item>
<item>
   <title>Photos from DebConf 9</title>
   <guid isPermaLink="false">photos-from-debconf-9</guid>
   <link>http://womble.decadent.org.uk/blog/photos-from-debconf-9.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<a href="https://gallery.debconf.org/v/debconf9/benh/">My photos
from DebConf 9</a>. These are all taken with my new digital compact
as my film SLR is in need of repair. I'm quite pleased with the results.

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Tue, 11 Aug 2009 11:43 GMT</pubDate>
</item>
<item>
   <title>¡Olé!</title>
   <guid isPermaLink="false">olé</guid>
   <link>http://womble.decadent.org.uk/blog/ol%C3%A9.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/zws5m58RFxI&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/zws5m58RFxI&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">Geek Flamenco, by Nattie</embed></object>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Wed, 29 Jul 2009 23:12 GMT</pubDate>
</item>
<item>
   <title>Status of firmware in Debian</title>
   <guid isPermaLink="false">status-of-firmware-in-debian</guid>
   <link>http://womble.decadent.org.uk/blog/status-of-firmware-in-debian.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p><a href="http://lists.debian.org/debian-project/2009/07/msg00203.html">A question from AJ</a>
reminded me that I haven't said much about the changes to packaging of firmware
in Debian, and in particular the separation of non-free firmware from the Linux
kernel.</p>
<h3>Linux kernel packages</h3>
<p>There is an ongoing process upstream to move firmware blobs from drivers
into a firmware/ subdirectory of the source, which is now almost complete.
Since most of this firmware is non-free, we remove it from the source tarballs for
kernel packages but use it to update the firmware-nonfree "source" package.</p>
<p>We continue to patch some drivers to separate out firmware, and
have been submitting our changes upstream.  Most of these have been accepted
though the DRI drivers matrox, r128 and radeon are notable exceptions.</p>
<p>A few months ago I attempted to make a new <a
href="http://wiki.debian.org/KernelFirmwareLicensing#Inventory">inventory of
the remaining firmware blobs</a> outside of the firmware/ subdirectory.  I
identified three that should still be addressed.  The <a
href="http://linux-libre.fsfla.org/">Linux-libre</a> project, however, <a
href="http://www.fsfla.org/svn/fsfla/software/linux-libre/scripts/">removes
many other constant arrays from the kernel</a> (and disables the affected
drivers) where I judged the array to be a plausible preferred form of
modification.</p>
<h3>Firmware packages</h3>
<p>Much of the non-free firmware removed from the kernel is now available
in the firmware-linux package in the non-free section of the Debian archive.
Starting with Linux 2.6.31, we will build the DFSG-free firmware shipped
with Linux into a package called firmware-linux-free, which will be
recommended by kernel image packages.  The contents of firmware-linux
will be moved to firmware-linux-nonfree and firmware-linux becomes a
meta-package depending on the other two packages.</p>
<p><a href="http://packages.debian.org/source/sid/firmware-nonfree">Many
other firmware images</a> never distributed with Linux are also
packaged for the benefit of users that require them.</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Wed, 29 Jul 2009 16:23 GMT</pubDate>
</item>
<item>
   <title>DebConf</title>
   <guid isPermaLink="false">debconf</guid>
   <link>http://womble.decadent.org.uk/blog/debconf.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p><img src="http://media.debconf.org/dc9/images/debconf9-going-to.png" alt="I'm going to DebConf 9"></p>
<p>I'll be involved in the video team again.</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Fri, 12 Jun 2009 02:14 GMT</pubDate>
</item>
<item>
   <title>Python relicencing</title>
   <guid isPermaLink="false">python-relicencing</guid>
   <link>http://womble.decadent.org.uk/blog/python-relicencing.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>One of the more interesting talks at last week's PyCon was on the
<a href="http://pycon.blip.tv/file/1931026/">new Python licence</a>.</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Wed, 01 Apr 2009 01:51 GMT</pubDate>
</item>
<item>
   <title>Busy at PyCon</title>
   <guid isPermaLink="false">busy-at-pycon</guid>
   <link>http://womble.decadent.org.uk/blog/busy-at-pycon.html</link>
   <description><![CDATA[
<!--*- mode: html -*-->
<p>This week I'm at PyCon in Chicago, helping to train and supervise
the A/V team in recording the tutorials and talks.  We have a lot of
inexperienced volunteers but they're learning quickly.  Carl Karsten
(in charge of A/V) and Ryan Verner (another outsider with long
experience from LCA) are organising things.  Ryan, Dave Noble and I
provide technical assistance to the rest of the team.</p>

<p>I'm also working
on my first Django app, which will be used for reviewing files.  This
is essentially a clone of the excellent work done by Gunnar Wolf and
Damian Viano in Pentabarf.  PyCon doesn't have a centralised
database so this is a standalone application.  Ryan is now applying
styles to my horribly bare HTML, and I have a short list of bugs to
fix before we ask the video team to start reviewing.</p>

<p>The tutorials started yesterday and talks wil start tomorrow in
different rooms, so we have to set up all the equipment again and
reconfigure for multiple cameras.  Hopefully by Saturday things
will be running smoothly and I can spend some time in the city.  It
would be a shame to come all this way and stay by the airport for
the entire time!</p>

]]></description>
   <category domain="http://womble.decadent.org.uk/blog"></category>
   <pubDate>Thu, 26 Mar 2009 18:58 GMT</pubDate>
</item>
</channel>
</rss>
