Steve's blog
   


Steve About
Steve's blog,
The Words of the Sledge
steve@einval.com

Subscribe
Subscribe to the RSS feed.

Links

  • Home
  • Debian
  • PlanetDebian
  • Search PlanetDebian
  • Friends

  • Matthew Garrett
  • Jonathan McDowell
  • Jo McIntyre
  • Martin Michlmayr
  • Andrew Mobbs
  • Mike Pitt
  • Daniel Silverstone
  • Andy Simpkins
  • Neil Williams

  •        
    Tuesday, 12 March 2019

    Debian BSP in Cambridge, 08 - 10 March 2019

    Lots of snacks, lots of discusssion, lots of bugs fixed! YA BSP at my place.

    BSP

    03:08 :: # :: /debian/bsp :: 0 comments

    Monday, 07 January 2019

    Rebuilding the entire Debian archive twice on arm64 hardware for fun and profit

    I've posted this analysis to Debian mailing lists already, but I'm thinking it's also useful as a blog post too. I've also fixed a few typos and added a few more details that people have suggested.

    This has taken a while in coming, for which I apologise. There's a lot of work involved in rebuilding the whole Debian archive, and many days spent analysing the results. You learn quite a lot, too! :-)

    I promised way back before DebConf 18 last August that I'd publish the results of the rebuilds that I'd just started. Here they are, after a few false starts. I've been rebuilding the archive specifically to check if we would have any problems building our 32-bit Arm ports (armel and armhf) using 64-bit arm64 hardware. I might have found other issues too, but that was my goal.

    The logs for all my builds are online at

    https://www.einval.com/debian/arm/rebuild-logs/

    for reference. See in particular

    for automated analysis of the build logs that I've used as the basis for the stats below.

    Executive summary

    As far as I can see we're basically fine to use arm64 hosts for building armel and armhf, so long as those hosts include hardware support for the 32-bit A32 instruction set. As I've mentioned before, that's not a given on all arm64 machines, but there are sufficient machine types available that I think we should be fine. There are a couple of things we need to do in terms of setup - see Machine configuration below.

    Methodology

    I (naively) just attempted to rebuild all the source packages in unstable main, at first using pbuilder to control the build process and then later using sbuild instead. I didn't think to check on the stated architectures listed for the source packages, which was a mistake - I would do it differently if redoing this test. That will have contributed quite a large number of failures in the stats below, but I believe I have accounted for them in my analysis.

    I built lots of packages, using a range of machines in a small build farm at home:
    • Macchiatobin
    • Seattle
    • Synquacer
    • Multiple Mustangs

    using my local mirror for improved performance when fetching build-deps etc. I started off with a fixed list of packages that were in unstable when I started each rebuild, for the sake of simplicity. That's one reason why I have two different numbers of source packages attempted for each arch below. If packages failed due to no longer being available, I simply re-queued using the latest version in unstable at that point.

    I then developed a script to scan the logs of failed builds to pick up on patterns that matched with obvious causes. Once that was done, I worked through all the failures to (a) verify those patterns, and (b) identify any other failures. I've classified many of the failures to make sense of the results. I've also scanned the Debian BTS for existing bugs matching my failed builds (and linked to them), or filed new bugs where I could not find matches.

    I did not investigate fully every build failure. For example, where a package has never been built before on armel or armhf and failed here I simply noted that fact. Many of those are probably real bugs, but beyond the scope of my testing.

    For reference, all my scripts and config are in git at

    https://git.einval.com/cgi-bin/gitweb.cgi?p=buildd-scripts.git

    armel results

    Total source packages attempted 28457
    Successfully built 25827
    Failed 2630

    Almost half of the failed builds were simply due to the lack of a single desired build dependency (nodejs:armel, 1289). There were a smattering of other notable causes:

    • 100 log(s) showing build failures (java/javadoc)
      Java build failures seem particularly opaque (to me!), and in many cases I couldn't ascertain if it was a real build problem or just maven being flaky. :-(
    • 15 log(s) showing Go 32-bit integer overflow
      Quite a number of go packages are blindly assuming sizes for 64-bit hosts. That's probably fair, but seems unfortunate.
    • 8 log(s) showing Sbuild build timeout
      I was using quite a generous timeout (12h) with sbuild, but still a very small number of packages failed. I'd earlier abandoned pbuilder for sbuild as I could not get it to behave sensibly with timeouts.
    The stats that matter are the arch-specific failures for armel:
    • 13 log(s) showing Alignment problem
    • 5 log(s) showing Segmentation fault
    • 1 log showing Illegal instruction
    and the new bugs I filed:
    • 3 bugs for arch misdetection
    • 8 bugs for alignment problems
    • 4 bugs for arch-specific test failures
    • 3 bugs for arch-specific misc failures

    Considering the number of package builds here, I think these numbers are basically "lost in the noise". I have found so few issues that we should just go ahead. The vast majority of the failures I found were either already known in the BTS (260), unrelated to what I was looking for, or both.

    See below for more details about build host configuration for armel builds.

    armhf results

    Total source packages attempted 28056
    Successfully built 26772
    Failed 1284

    FTAOD: I attempted fewer package builds for armhf as we simply had a smaller number of packages when I started that rebuild. A few weeks later, it seems we had a few hundred more source packages for the armel rebuild.

    The armhf rebuild showed broadly the same percentage of failures, if you take into account the nodejs difference - it exists in the armhf archive, so many hundreds more packages could build using it.

    In a similar vein for notable failures:

    • 89 log(s) showing build failures (java/javadoc)
      Similar problems, I guess...
    • 15 log(s) showing Go 32-bit integer overflow
      That's the same as for armel, I'm assuming (without checking!) that they're the same packages.
    • 4 log(s) showing Sbuild build timeout
      Only 4 timeouts compared to the 8 for armel. Maybe a sign that armhf will be slightly quicker in build time, so less likely to hit a timeout? Total guesswork on small-number stats! :-)

    Arch-specific failures found for armhf:

    • 11 log(s) showing Alignment problem
    • 4 log(s) showing Segmentation fault
    • 1 log(s) showing Illegal instruction

    and the new bugs I filed:

    • 1 bugs for arch misdetection
    • 8 bugs for alignment problems
    • 10 bugs for arch-specific test failures
    • 3 bugs for arch-specific misc failures

    Again, these small numbers tell me that we're fine. I liked to 139 existing bugs in the BTS here.

    Machine configuration

    To be able to support 32-bit builds on arm64 hardware, there are a few specific hardware support issues to consider.

    Alignment

    Our 32-bit Arm kernels are configured to fix up userspace alignment faults, which hides lazy programming at the cost of a (sometimes massive) slowdown in performance when this fixup is triggered. The arm64 kernel cannot be configured to do this - if a userspace program triggers an alignment exception, it will simply be handed a SIGBUS by the kernel. This was one of the main things I was looking for in my rebuild, common to both armel and armhf. In the end, I only found a very small number of problems.

    Given that, I think we should immediately turn off the alignment fixups on our existing 32-bit Arm buildd machines. Let's flush out any more problems early, and I don't expect to see many.

    To give credit here: Ubuntu have been using arm64 machines for building 32-bit Arm packages for a while now, and have already been filing bugs with patches which will have helped reduce this problem. Thanks!

    Deprecated / retired instructions

    In theory(!), alignment is all we should need to worry about for armhf builds, but our armel software baseline needs two additional pieces of configuration to make things work, enabling emulation for

    • SWP (low-level locking primitive, deprecated since ARMv6 AFAIK)
    • CP15 barriers (low-level barrier primitives, deprecated since ARMv7)

    Again, there is quite a performance cost to enabling emulation support for these instructions but it is at least possible!

    In my initial testing for rebuilding armhf only, I did not enable either of these emulations. I was then finding lots of "Illegal Instruction" crashes due to CP15 barrier usage in armhf Haskell and Mono programs. This suggests that maybe(?) the baseline architecture in these toolchains is incorrectly set to target ARMv6 rather than ARMv7. That should be fixed and all those packages rebuilt at some point.

    UPDATES

    • Peter Green pointed out that ghc in Debian armhf is definitely configured for ARMv7, so maybe there is a deeper problem.
    • Edmund Grimley Evans suggests that the Haskell problem is coming from how it drives LLVM, linking to #864847 that he filed in 2017.

    Bug highlights

    There are a few things I found that I'd like to highlight:

    • In the glibc build, we found an arm64 kernel bug (#904385) which has since been fixed upstream thanks to Will Deacon at Arm. I've backported the fix for the 4.9-stable kernel branch, so the fix will be in our Stretch kernels soon.
    • There's something really weird happening with Vim (#917859). It FTBFS for me with an odd test failure for both armel-on-arm64 and armhf-on-arm64 using sbuild, but in a porter box chroot or directly on my hardware using debuild it works just fine. Confusing!
    • I've filed quite a number of bugs over the last few weeks. Many are generic new FTBFS reports for old packages that haven't been rebuilt in a while, and some of them look un-maintained. However, quite a few of my bugs are arch-specific ones in better-maintained packages and several have already had responses from maintainers or have already been fixed. Yay!
    • Yesterday, I filed a slew of identical-looking reports for packages using MPI and all failing tests. It seems that we have a real problem hitting openmpi-based packages across the archive at the moment (#918157 in libpmix2). I'm going to verify that on my systems shortly.

    Other things to think about

    Building in VMs

    So far in Debian, we've tended to run our build machines using chroots on raw hardware. We have a few builders (x86, arm64) configured as VMs on larger hosts, but as far as I can see that's the exception so far. I know that OpenSUSE and Fedora are both building using VMs, and for our Arm ports now we have more powerful arm64 hosts available it's probably the way we should go here.

    In testing using "linux32" chroots on native hardware, I was explicitly looking to find problems in native architecture support. In the case of alignment problems, they could be readily "fixed up / hidden" (delete as appropriate!) by building using 32-bit guest kernels with fixups enabled. If I'd found lots of those, that would be a safer way to proceed than instantly filing lots of release-critical FTBFS bugs. However, given the small number of problems found I'm not convinced it's worth worrying about.

    Utilisation of hardware

    Another related issue is in how we choose to slice up build machines. Many packages will build very well in parallel, and that's great if you have something like the Synquacer with many small/slow cores. However, not all our packages work so well and I found that many are still resolutely chugging through long build/test processes in single threads. I experimented a little with my config during the rebuilds and what seemed to work best for throughput was kicking off one build per 4 cores on the machines I was using. That seems to match up with what the Fedora folks are doing (thanks to hrw for the link!).

    Migrating build hardware

    As I mentioned earlier, to build armel and armhf sanely on arm64 hardware, we need to be using arm64 machines that include native support for the 32-bit A32 instruction set. While we have lots of those around at the moment, some newer/bigger arm64 server platforms that I've seen announced do not include it. (See an older mail from me for more details. We'll need to be careful about this going forwards and keep using (at least) some machines with A32. Maybe we'll migrate arm64-only builds onto newer/bigger A64-only machines and keep the older machines for armel/armhf if that becomes a problem?

    At least for the foreseeable future, I'm not worried about losing A32 support. Arm keeps on designing and licensing ARMv8 cores that include it...

    Thanks

    I've spent a lot of time looking at existing FTBFS bugs over the last weeks, to compare results against what I've been seeing in my build logs. Much kudos to people who have been finding and filing those bugs ahead of me, in particular Adrian Bunk and Matthias Klose who have filed many such bugs. Also thanks to Helmut Grohne for his script to pull down a summary of FTBFS bugs from UDD - that saved many hours of effort!

    Finally...

    Please let me know if you think you've found a problem in what I've done, or how I've analysed the results here. I still have my machines set up for easy rebuilds, so reproducing things and testing fixes is quite easy - just ask!

    13:57 :: # :: /debian/arm :: 1 comment

    Friday, 31 August 2018

    And lo, we sacrificed to the gods of BBQ once more

    As is becoming something of a tradition by now, Jo and I hosted another OMGWTFBBQ at our place last weekend. People came from far and wide to enjoy themselves. Considering the summer heatwave we've had this year, we were a little unlucky with the weather. But with the power of gazebo technology we kept (mostly!) dry... :-)

    I was too busy cooking and drinking etc. to take any photos myself, so here are some I sto^Wborrowed from my friends!

    We continued to celebrate Debian getting old:
    the cake is not a lie!
    Photo from Jonathan McDowell

    We had much beer from the nice folks at Milton Brewery:
    is 3 firkins enough?
    Photo from Rob Kendrick

    Much meat was prepared and cooked:
    very professional!
    Photo from Stefano Rivera

    And we had a lot of bread too!
    BREAD!
    Photo from Rob Kendrick

    Finally, many thanks to a number of awesome companies for again sponsoring the important refreshments for the weekend. It's hungry/thirsty work celebrating like this!

    03:24 :: # :: /debian/uk :: 0 comments

    Thursday, 16 August 2018

    25 years...

    We had a small gathering in the Haymakers pub tonight to celebrate 25 years since Ian Murdock started the Debian project.

    people in the pub!

    We had 3 DPLs, a few other DDs and a few more users and community members! Good to natter with people and share some history. :-) The Raspberry Pi people even chipped in for some drinks. Cheers! The celebrations will continue at the big BBQ at my place next weekend.

    22:42 :: # :: /debian/birthday :: 0 comments

    Sunday, 12 August 2018

    DebConf in Taiwan!

    DebConf 18 logo

    So I'm slowly recovering from my yearly dose of full-on Debian! :-) DebConf is always fun, and this year in Hsinchu was no different. After so many years in the project, and so many DebConfs (13, I think!) it has become unmissable for me. It's more like a family gathering than a work meeting. In amongst the great talks and the fun hacking sessions, I love catching up with people. Whether it's Bdale telling me about his fun on-track exploits or Stuart sharing stories of life in an Australian university, it's awesome to meet up with good friends every year, old and new.

    DC18 venue

    For once, I even managed to find time to work on items from my own TODO list during DebCamp and DebConf. Of course, I also got totally distracted helping people hacking on other things too! In no particular order, stuff I did included:

    • Working with Holger and Wolfgang to get debian-edu netinst/USB images building using normal debian-cd infrastructure;
    • Debugging build issues with our buster OpenStack images, fixing them and also pushing some fixes to Thomas for build-openstack-debian-image;
    • Reviewing secure boot patches for Debian's GRUB packages;
    • As an AM, helping two DD candidates working their way through NM;
    • Monitoring and tweaking an archive rebuild I'm doing, testing building all of our packages for armhf using arm64 machines;
    • Releasing new upstream and Debian versions of abcde, the CD ripping and encoding package;
    • Helping to debug UEFI boot problems with Helen and Enrico;
    • Hacking on MoinMoin, the wiki engine we use for wiki.debian.org;
    • Engaging in lots of discussions about varying things: Arm ports, UEFI Secure Boot, Cloud images and more

    I was involved in a lot of sessions this year, as normal. Lots of useful discussion about Ignoring Negativity in Debian, and of course lots of updates from various of the teams I'm working in: Arm porters, web team, Secure Boot. And even an impromptu debian-cd workshop.

    Taipei 101 - datrip venue

    I loved my time at the first DebConf in Asia (yay!), and I was yet again amazed at how well the DebConf volunteers made this big event work. I loved the genius idea of having a bar in the noisy hacklab, meaning that lubricated hacking continued into the evenings too. And (of course!) just about all of the conference was captured on video by our intrepid video team. That gives me a chance to catch up on the sessions I couldn't make it to, which is priceless.

    So, despite all the stuff I got done in the 2 weeks my TODO list has still grown. But I'm continuing to work on stuff, energised again. See you in Curitiba next year!

    16:11 :: # :: /debian/dc18 :: 0 comments

    Friday, 25 August 2017

    Let's BBQ again, like we did last summer!

    It's that time again! Another year, another OMGWTFBBQ! We're expecting 50 or so Debian folks at our place in Cambridge this weekend, ready to natter, geek, socialise and generally have a good time. Let's hope the weather stays nice, but if not we have gazebo technology... :-)

    Many thanks to a number of awesome companies and people near and far who are sponsoring the important refreshments for the weekend:

    I've even been working on the garden this week to improve it ready for the event. If you'd like to come and haven't already told us, please add yourself to the wiki page!

    03:00 :: # :: /debian/uk :: 1 comment

    Thursday, 22 June 2017

    -1, Trolling

    Here's a nice comment I received by email this morning. I guess somebody was upset by my last post?

    From: Tec Services <tecservices911@gmail.com>
    Date: Wed, 21 Jun 2017 22:30:26 -0700
    To: steve@einval.com
    Subject: its time for you to retire from debian...unbelievable..your
             the quality guy and fucked up the installer!
    
    i cant ever remember in the hostory of computing someone releasing an installer
    that does not work!!
    
    wtf!!!
    
    you need to be retired...due to being retarded..
    
    and that this was dedicated to ian...what a
    disaster..you should be ashames..he is probably roling in his grave from shame
    right now....
    

    It's nice to be appreciated.

    22:59 :: # :: /misc :: 8 comments

    Tuesday, 20 June 2017

    So, Stretch happened...

    Things mostly went very well, and we've released Debian 9 this weekend past. Many many people worked together to make this possible, and I'd like to extend my own thanks to all of them.

    As a project, we decided to dedicate Stretch to our late founder Ian Murdock. He did much of the early work to get Debian going, and inspired many more to help him. I had the good fortune to meet up with Ian years ago at a meetup attached to a Usenix conference, and I remember clearly he was a genuinely nice guy with good ideas. We'll miss him.

    For my part in the release process, again I was responsible for producing our official installation and live images. Release day itself went OK, but as is typical the process ran late into Saturday night / early Sunday morning. We made and tested lots of different images, although numbers were down from previous releases as we've stopped making the full CD sets now.

    Sunday was the day for the release party in Cambridge. As is traditional, a group of us met up at a local hostelry for some revelry! We hid inside the pub to escape from the ridiculouly hot weather we're having at the moment.

    Party

    Due to a combination of the lack of sleep and the heat, I nearly forgot to even take any photos - apologies to the extra folks who'd been around earlier whom I missed with the camera... :-(

    23:21 :: # :: /debian/releases :: 2 comments

    Friday, 12 May 2017

    Fonts and presentations

    When you're giving a presentation, the choice of font can matter a lot. Not just in terms of how pretty your slides look, but also in terms of whether the data you're presenting is actually properly legible. Unfortunately, far too many fonts are appallingly bad if you're trying to tell certain characters apart. Imagine if you're at the back of a room, trying to read information on a slide that's (typically) too small and (if you're unlucky) the presenter's speech is also unclear to you (noisy room, bad audio, different language). A good clear font is really important here.

    To illustrate the problem, I've picked a few fonts available in Google Slides. I've written the characters "1lIoO0" (that's one, lower case L, upper case I, lower case o, upper case O, zero) in each of those fonts. Some of the sans-serif fonts in particular are comically bad for trying to distinguish between these characters.

    font examples

    It may not matter in all cases if your audience can read all the characters on your slides and tell them apart, put if you're trying to present scientific or numeric results it's critical. Please consider that before looking for a pretty font.

    23:08 :: # :: /misc :: 2 comments

    Wednesday, 15 February 2017

    Start the fans please!

    This probably won't mean much to people outside the UK, I'm guessing. Sorry! :-)

    The Crystal Maze was an awesome fun game show on TV in the UK in the 1990s. Teams would travel through differently-themed zones, taking on challenges to earn crystals for later rewards in the Crystal Dome. I really enjoyed it, as did just about everybody my age that I know of...

    A group have started up a new Crystal Maze attraction in London and Manchester, giving some of us a chance of indulging our nostalgia directly in a replica of the show's setup! Neil NcGovern booked a load of tickets and arranged for a large group of people to go along this weekend.

    It was amazing! (Sorry!) I ended up captaining one of the 4 teams, and our team ("Failure is always an option!") scored highest in the final game - catching bits of gold foil flying around in the Dome. It was really, really fun and I'd heartily recommend it to other folks who like action games and puzzle solving.

    I just missed the biting scorn of the original show presenter, Richard O'Brien, but our "Maze Master" Boudica was great fun and got us all pumped up and working together.

    00:32 :: # :: /misc :: 2 comments

    Tuesday, 01 November 2016

    Twenty years...

    So, it's now been twenty years since I became a Debian Developer. I couldn't remember the exact date I signed up, but I decided to do some forensics to find out. First, I can check on the dates on my first Debian system, as I've kept it running as a Debian system ever since!

    jack:~$ ls -alt /etc
    ...
    -rw-r--r--   1 root   root     6932 Feb 10  1997 pine.conf.old
    -rw-r--r--   1 root   root     6907 Dec 29  1996 pine.conf.old2
    -rw-r--r--   1 root   root    76739 Dec  7  1996 mailcap.old
    -rw-r--r--   1 root   root     1225 Oct 20  1996 fstab.old
    jack:~$
    

    I know that I did my first Debian installation in late October 1996, migrating over from my existing Slackware installation with the help of my friend Jon who was already a DD. That took an entire weekend and it was painful, so much so that several times that weekend I very nearly bailed and went back. But, I stuck with it and after a few more days I decided I was happier with Debian than with the broken old Slackware system I'd been using. That last file (fstab.old) is the old fstab file from the Slackware system, backed up just before I made the switch.

    I was already a software developer at the time, so of course the first thing I wanted to do once I was happy with Debian was to become a DD and take over the Debian maintenance of mikmod, the module player I was working on at the time. So, I mailed Bruce to ask for an account (there was none of this NM concept back then!) and I think he replied the next day. Unfortunately, I don't have the email in my archives any more due to a disk crash back in the dim and distant past. But I can see that the first PGP key I generated for the sake of joining Debian dates from October 30th 1996 which gives me a date of 31st October 1996 for joining Debian.

    Twenty years, wow... Since then, I've done lots in the project. I'm lucky enough to been to 11 DebConfs, hosted all around the world. I'm massively proud to have been voted DPL for two of those twenty years. I've worked on a huge number of different things in Debian, from the audio applications I started with to the installer (yay, how things come back to bite you!), from low-level CD and DVD tools (and making our CD images!) to a wiki engine written in python. I've worked hard to help make the best Operating System on the planet, both for my own sake and the sake of our users.

    Debian has been both excellent fun and occasionally a huge cause of stress in my life for the last 20 years, but despite the latter I wouldn't go back and change anything. Why? Through Debian, I've made some great friends: in Cambridge, in the UK, in Europe, on every continent. Thanks to you all, and here's to (hopefully) many years to come!

    00:17 :: # :: /debian/stats :: 2 comments

    Friday, 09 September 2016

    Time flies

    Slightly belated...

    Another year, another OMGWTFBBQ. By my count, we had 49 people (and a dog) in my house and garden at the peak on Saturday evening. It was excellent to see people from all over coming together again, old friends and new. This year we had some weather issues, but due to the delights of gazebo technology most people stayed mostly dry. :-)

    Also: thanks to a number of companies near and far who sponsored the important refreshments for the weekend:

    As far as I could tell, everybody enjoyed themselves; I know I definitely did!

    16:57 :: # :: /debian/uk :: 2 comments

    Friday, 02 September 2016

    And about time, too!

    A couple of weekends back, we had an awesome time at Jonathan and Charlene's wedding. I'd have blogged sooner, but I had to wait for this photo of the happy couple with the Debian gang... :-)

    Careful!

    Unfortunately, somebody let Charlene hide at the back! Follow the link for more photos...

    14:54 :: # :: /misc :: 2 comments

    Sunday, 29 November 2015

    Supporting the Software Freedom Conservancy too!

    Software Freedom Conservancy Supporter

    I'm happy to chip in and help the awesome folks at the Software Freedom Conservancy with funding for their work, standing up for copyleft. It's clear that there are a lot of people who will ignore the terms of Free Software licensing, whether by oversight or deliberately, so the SFC are doing an important job working to defend the Freedoms that lots of us are using every day as developers and users.

    It seems that some of SFC's corporate supporters have stopped sponsorship since the beginning of their lawsuit in Germany against VMware for GPL violations. Maybe some folks are happy to support SFC, but not when they really push things like this. Let's hope that we can find many more individual supporters to cover SFC's funding needs instead. This week, there's an anonymous pledge to match donations from new supporters so right now is an even better time to sign up!

    Thanks to Paul Wise for posting about this and indirectly prodding me to sign up too.

    21:19 :: # :: /debian/sfc :: 2 comments

    Friday, 25 September 2015

    Linaro VLANd v0.4

    VLANd is a python program intended to make it easy to manage port-based VLAN setups across multiple switches in a network. It is designed to be vendor-agnostic, with a clean pluggable driver API to allow for a wide range of different switches to be controlled together.

    There's more information in the README file. I've just released v0.4, with a lot of changes included since the last release:

    • Large numbers of bugfixes and code cleanups
    • Code changes for integration with LAVA:
      • Added db.find_lowest_unused_vlan_tag()
      • create_vlan() with a tag of -1 will find and allocate the first unused tag automatically
    • Add port numbers as well as names to the ports database, to give human-recognisable references. See README.port-numbering for more details.
    • Add tracking of trunks, the inter-switch connections, needed for visualisation diagrams.
    • Add a simple http-based visualisation feature:
      • Generate network diagrams on-demand based on the information in the VLANd database, colour-coded to show port configuration
      • Generate a simple website to reference those diagrams.
    • Allow more ports to be seen on Catalyst switches
    • Add a systemd service file for vland

    VLANd is Free Software, released under the GPL version 2 (or any later version). For now, grab it from git; tarballs will be coming shortly.

    01:44 :: # :: /linaro :: 2 comments

    Sunday, 02 August 2015

    New UEFI team in Debian

    We've just started a new team in Debian for maintaining our UEFI packages together, with git repositories in a shared project on alioth etc. We're just working out the exact details of how we're going to manage things, but for now we've moved the following packages under the team's umbrella:

    • efibootmgr
    • efivar
    • fwupd
    • fwupdate
    • pesign

    and in the future we'll clearly end up adding more. We've also started a new IRC channel (#debian-efi) on irc.debian.org aka irc.oftc.net. New members always welcome to help with the work here!

    00:40 :: # :: /debian/efi :: 1 comment

    Tracking broken UEFI implementations

    There can be issues with shipping installer images including UEFI. But they're mainly due to crappy UEFI implementations that vendors have shipped. It's fairly well-known that Apple have shipped some really shoddy firmware over the years, and to allow people to install Debian on older Apple x86 machines we've now added the workaround of a non-UEFI 32-bit installer image too. But Apple aren't the only folks shipping systems with horrendously buggy UEFI, and a lot of Linux folks have had to deal with this over the last few years.

    I've been talking to a number of other UEFI developers lately, and we've agreed to start a cross-distro resource to help here - a list of known-broken UEFI implementations so that we can share our experiences. The place for this in in the OSDev wiki at http://wiki.osdev.org/Broken_UEFI_implementations. We're going to be adding new information here as we find it. If you've got a particular UEFI horror story on your own broken system, then please either add details there or let me know and I'll try to do it for you.

    00:40 :: # :: /debian/efi :: 3 comments

    Justifying 32-bit UEFI on 64-bit Intel hardware, and tracking broken UEFI implementations

    You might have seen some of the posts I've written in the last few months about adding support in Debian for so-called Mixed-EFI systems like the Intel Bay Trail: a 64-bit processor shipped with a 32-bit EFI implementation.

    I've finally seen a public justification from Intel evangelist Brian Richardson as to why these systems are crippled^Wconfigured this way, and it's nice to see our guesses confirmed. The reason is simply cost - like most consumer PCs shipped today, they come with Windows. In terms of system design, it's cheaper to just include the limited memory and storage needed for 32-bit Windows. 64-bit Windows takes a lot more storage in particular. And on modern systems 32-bit Windows can only boot using 32-bit UEFI. Fair enough...

    However, Brian goes on to state some more things that are simply out of date, saying that "Linux support for UEFI IA32 is still an unanswered question". Ummm, Brian: we've got working 32-bit x86 UEFI support in our standard Jessie (and newer) installation images already, and they work just fine on CD/DVD or USB stick. We've even gone one stage further than anybody else (thus far!) in adding easy support for running a full 64-bit Linux system on top of those 32-bit UEFI implementations.

    I say "thus far" here because all the work here here is Free Software. Other folks added the support in Linux for making a 64-bit kernel work with a 32-bit UEFI; I added code in Linux to expose some of the details to userspace, and code in Grub to work with it. My changes have gone upstream already, so I'd expect to see other distros like Fedora or Ubuntu also using them soon.

    00:40 :: # :: /debian/efi :: 1 comment

    Friday, 31 July 2015

    Linaro VLANd v0.3

    VLANd is a python program intended to make it easy to manage port-based VLAN setups across multiple switches in a network. It is designed to be vendor-agnostic, with a clean pluggable driver API to allow for a wide range of different switches to be controlled together.

    There's more information in the README file. I've just released v0.3, with a lot of changes included since the last release:

    • Massive numbers of bugfixes and code cleanups
    • Added two new switch drivers:
      • TP-Link TL-SG2XXX family (TPLinkTLSG2XXX)
      • Netgear XSM family (NetgearXSM)
    • Added "debug" option to all the switch drivers to log all interactions
    • Added internal caching of port modes within the driver core for a large speed-up in normal use
    • Bug fix to handling of trunk ports in the CiscoCatalyst driver, improving VLAN interop with other switches
    • Huge changes to the test lab, now using 5 switches and 10 hosts
    • Big improvements to the test suite:
      • Match the new test lab layout
      • Move more of the core test code into the test-common utility library
      • Massively improved the check-networks test runner for the test hosts
      • Added parsing of the UP/DOWN results in test-common to give a simple PASS/FAIL result for each test
      • Added more tests
    • All logging now in UTC

    VLANd is Free Software, released under the GPL version 2 (or any later version). For now, grab it from git; tarballs will be coming shortly.

    17:04 :: # :: /linaro :: 1 comment

    Wednesday, 01 July 2015

    Quick trip to Sweden

    Jo and I spent a few days in Sweden and had an awesome time! The main reason for being there was Leif and Maria's wedding way up north in Skellefteå. They cunningly organised their ceremony for the Midsummer weekend, which was an excellent plan - we had a full weekend of partying while we were there. :-)

    the happy couple

    We had some time to ourselves while we were there, so we wandered about a little and got to see some of the beautiful coastal countryside.

    Trundön

    Then on the way home we stopped off in Umeå to visit Mattias Wadenstein (maswan) and his wife Melanie, and he showed me around some of the machines that he's been admining on behalf of Debian. Maybe I'm a sad geek, but I feel quite a bond with one of the machines there, pettersson.debian.org. It's the official CD build machine for Debian, and I've been responsible for thrashing it really hard for the last 5 years or so... :-)

    Pettersson and friends

    Massive thanks to the University of Umeå and their Academic Computer Club for hosting Debian machines and serving all the CD images for us!

    maswan and a lot of disks

    The only downsides from the trip were the massive tiredness (midnight sun is pretty, but notconducive to sleep!) the mosquito bites and the nasty plague^Wcold that we picked up while we were there... Ah well. :-)

    01:06 :: # :: /travel :: 1 comment