FreedomBox activities at Debconf11

I spent the last two weeks of July 2011 in Banja Luka. The occasion was the annual Debian developer's conference, Debconf11 and preceding work week known as Debcamp. This was my tenth successive year attending Debconf, and I had a very productive and pleasant time! The facilities were good, the local team was friendly, enthusiastic, and very helpful, and in addition to giving three talks and hosting a couple panel discussions, I managed to put a burst of energy into work on FreedomBox. Several other developers working on FreedomBox were also present, and a good number of Sheeva and Dream plugs were evident in the hacklabs sporting new FreedomBox stickers. Working together in the same place for several days, we made good progress on several projects, and also had some great discussions about what we want to do going forward.

image building tools

For some time, I've been working towards a light-weight tool set to build FreedomBox software images. Shortly before Debconf started, I chose the name 'freedom-maker' for this tool and shared a link to a readable copy of my git repository with other developers I expected to work with in Banja Luka. With input from Bert Agaz and Jonas Smedegaard during Debcamp, freedom-maker went from almost useful to actually useful. It still deserves work to be more useful to others, but I have now pushed a copy of the git repository to git.debian.org so that we can take advantage of the tools supported there to enable others to more easily contribute to the code.

Very soon, Bert plans to add support to freedom-maker for using Lars Wirzenius' vmdebootstrap to build x86 images suitable for testing in a virtualized environment. At the same time, we plan to refactor the existing code slightly to enable lists of desired packages for the various image flavors we expect to produce independently of the configuration for each specific image building tool.

Jonas continued in parallel to work on his alternate packaging toolset boxer. It offers some potentially interesting features for the future, and we may eventually merge some or all of it into freedom-maker, but for now it remains a separate utility.

uAP user space tools

Several weeks ago, we received from Marvell the source code to two user space programs that are necessary for configuring and monitoring the binary firmware provided for the uAP wireless chip used in the DreamPlug. Early during my stay in Banja Luka, I packaged these for Debian as uaputl and uapevent, and I am pleased to note that they were quickly accepted into the archive and are now present in Debian mirrors.

u-boot

Another bit of code received very shortly before Debconf started was the source for the version of u-boot shipped by Globalscale in the DreamPlug units we're working with. During Debcamp, Clint Adams passed a copy of this source to Jason Cooper, who was already trying to add support for the DreamPlug to upstream u-boot, but had stalled due to a lack of information. Jason has now merged his own work with the sources we got from the manufacturer, and is making good progress towards merging DreamPlug support into upstream u-boot. Once that happens, we should be able to flash our Sheeva and Dream plug devices with a u-boot image built from the source in the Debian u-boot package, in the process enabling things that matter to us like the ability to boot from an ext2 partition, and hopefully the ability to execute command scripts from that partition instead of having to hard-code kernel filenames in flash. This will allow us to support the ongoing effort in Debian to move away from the need for kernel symlinks.

DreamPlug kernels

With respect to kernels, another work stream at Debconf primarily involving Héctor Orón and Nick Bane was to analyze the current state of the patches from Marvell and Globalscale used to support the DreamPlug against both upstream and current Debian kernel sources. To my surprise and our collective pleasure, the remaining patch set required against current upstream kernels is much smaller than we previously believed! There are still several patches critical to us that are not merged upstream, but the work remaining to be able to build images for our devices from mainline and Debian kernel source trees now seems like something we might be able to complete before Debian's next stable release.

One of our discoveries during the u-boot and kernel work during Debconf was that Globalscale did not obtain a new machine id for the DreamPlug, but instead re-used the one for the GuruPlug series, despite there being some differences in the hardware that require at least one additional driver. After much discussion, we plan to continue using the existing machine id instead of requesting another, particularly because the ARM kernel community has apparently stopped issuing new ids for the moment. We will add a new kernel config option for the DreamPlug, however, and are likely to build distinct Sheeva and Dream kernel packages that do not require initrd for use in FreedomBox images, even if doing so is not strictly necessary. This will allow us to optimize both the in-memory footprint and boot times for our devices.

software configuration

Another area of investigation in Banja Luka was technology for package configuration. Mirsal Ennaime performed various tests using debconf and Config::Model, with some results reflected in this commit relating to configuring the bitcoind daemon in the bitcoin package for Debian.

identity and trust management

While we did not actually do any FreedomBox specific work on the trust management layer we know is necessary, after several rounds of conversation, I am now more convinced than ever that the right path forward is to base our trust relationships on OpenPGP keys using GnuPG and Monkeysphere as starting software elements. Our thinking to date is captured on an Identity Management page in the wiki.

communication services

Another thing that became fairly clear to me during discussions at Debconf is that in the near term, planning to build communication services around XMPP is the approach most likely to give good results. Investigating the software choices available to build an interesting XMPP infrastructure is now a high priority for me. Jonas has done some work towards configuring and integrating ejabberd or Prosody, I've started studying yate as a possible call manager and VoIP server choice with XMPP/jingle support, and we await with great interest a release from the Buddycloud developers to evaluate as a possible basis for deploying social network services.

Some of these software choices will lead us to use Apache as our web services base technology because of the need for features that only it supports well among daemons that are Free Software.

Jonas completed packaging GNU Sip Witch for Debian, and it is now available in the mirror network. Tzafrir Cohen and Jonas did some initial testing on its use.

documentation

A number of new wiki pages were written (or at least started) in order to sum up ideas, design various aspects of FreedomBox, and reflect discussions that happened during DebConf11. A lot of work is needed to complete these pages though, as well as others to capture more of the current state of the project.

press coverage

Finally, while in Banja Luka I got some great press coverage for FreedomBox! On Sunday the 24th, I was interviewed by the main television network serving the Republika Srpska. This led to a couple of minutes of coverage near the top of the national news program that night, immediately following the lead story about the President and several ministers appearing at Debian Day that morning to help open the conference. This interview was later re-used in another TV program that summarized Debconf11. On the morning of Thursday the 28th, I was part of a small group that spent more than an hour meeting with the Minister of Science and Technology in his office, and the relationship between Debian and our work on FreedomBox was one of the items of discussion in that meeting and the associated press conference. I'm told this resulted in more press coverage, but if true I have not seen it yet.

summary

On Friday afternoon the 29th, I gave a talk in the main Debconf program containing a FreedomBox Progress Report . In it, I talked about the structure of the FreedomBox Foundation, progress the foundation has made, and the work that was still then underway in Banja Luka. It was streamed live over the internet, and replays are available online. The reaction from Debian developers present was very positive, which was good to learn since by that time my energy level was quite low after the nearly two weeks of intense technical and social interaction that is Debconf!

All in all, we got lots of work done on FreedomBox in Banja Luka, enough that I think at least the next few steps along the road towards an eventual "1.0" release of a reference implementation are now much clearer than they were two weeks ago!

Posted Sat Aug 6 11:35:25 2011 Tags: debian

Earlier this year, I agreed to join the board of Eben Moglen's FreedomBox Foundation, and to chair the recently announced Technical Advisory Committee.

To date, most of the time I've been able to personally invest in the foundation has gone towards work "behind the scenes", all of which was necessary, but little of which is worthy of external report or attention. I now believe it's time to take a more active role in communicating what we're actually trying to do, and how I think we can get there.

To that end, I intend to be more visible in discussions on the freedombox-discuss mailing list. I'm also accumulating a list of interesting technical challenges that I'll articulate here over time, along with status reports I believe are worthy of broad dissemination.

Posted Thu Jun 9 17:27:14 2011 Tags: debian

Since October of 2002, HP has sponsored a "corporate subscription" to LWN on behalf of Debian, and I recently renewed the subscription through April of 2011. As of this moment, 571 Debian Developers and Debian Maintainers are enabled to take advantage of this subscription.

From discussion on IRC this morning, I gather one recent change hasn't been adequately communicated: I now allow Debian Maintainers to access the subscription. The process remains unchanged:

If you are a Debian Developer or Debian Maintainer and want full LWN access at HP's expense, just go to lwn.net and create an account for yourself (no money is required to create a user account). Then, send email to

lwn-subscription@debian.org

containing your LWN account name. Sign this email with your key on the appropriate Debian keyring. Then, exercise patience. Eventually, I will process your request, and add you to the "Debian Project group" and send you an email acknowledgement.

Likewise, if you retire from being a DD or DM, please let me know at the same address so that I can take you off the Debian subscription.

I believe I've caught up on all pending requests, but sometimes things get mis-filed, so if you're still waiting and I haven't replied, please re-send your request.

Posted Thu May 13 12:19:20 2010 Tags: debian

In preparation for several upcoming high power rocket launches, I've spent some time over the last two weeks building up several more TeleMetrum boards. Five new ones, in fact, serial numbers 7 through 11. The first four are fully-loaded normal boards, the last one has a 100 gee accelerometer installed instead of the normal 50 gee part.

While I haven't yet tested 100% of the functionality on all five, I'm definitely getting better at loading and reflow soldering these boards. I found exactly one soldering defect, a bridge between two pins on the cc1111 noticed during initial visual inspection which was easily removed, and all five flashed and passed initial tests on the first try!

I also retrieved one of the OLPC XO machines from my son and loaded it up with Debian for the XO, then upgraded it to unstable so that I can use it as a ground station for receiving telemetry. Having a small machine with long battery life and a screen that is readable in direct sunlight should be a huge win!

Now that I care about having working AltOS bits on more than one machine, I took some time today and created a Debian package. In the process, as I stumbled over various issues, Keith was quick to jump in and help... as were fellow Debian developers on IRC. We now have a "lintian clean" package that's easily maintainable from our shared git repository, and yes, we even have man pages for all the utilities!

A special note for folks near Colorado. Weather permitting, this Sunday morning the 23rd of August, I'm planning to "drag race" my big Goblin airframe against Jason Chamberlin's similarly-sized Polecat Fat Man on long-burning Aerotech M650W motors at Chili Blaster. Even for those of us who fly high power model rockets every chance we get, a drag-race between 10-inch airframes on long-burning M motors is a special event. If you've never seen rockets like this fly, and/or would like to see a TeleMetrum board in action, this would be a great time to come hang out with us!

Posted Tue Aug 18 22:51:23 2009 Tags: debian

I just uploaded makedev version 2.3.1-89, the most significant change of which is a move from Debian package priority 'required' to priority 'extra'. I've also filed a suitable bug against ftp.debian.org asking the ftp-masters to do the required bit on their end.

This change was largely motivated by bug #522048, which pointed out that in an era of reliable udev, most Linux users should no longer care about the presence of MAKEDEV. The Debian packaging of the Hurd apparently uses it's own MAKEDEV script, and I understand this change is a non-issue for the BSD porters in Debian as well. Since the makedev package is not marked 'essential', and the package documentation and Debian policy encourage conditional use of the MAKEDEV script, there should be no package changes required as a result of this demotion in priority.

If anyone experiences any undue pain as a result of this change, please let me know.

Posted Thu Jul 30 10:00:39 2009 Tags: debian

As already reported, while at Debconf9 this week, I succumbed to peer pressure, and have generated a new 4096-bit RSA key. Doing this was made substantially more pleasant (and certainly a bit more amusing!) by the fact that I was loaned a prototype of the new Simtec Entropy Key to play with.

Can't wait until they're in production and available for sale...

Basically, it's "just" a very high quality hardware random number generator that sits on a USB interface. Associated with this is a small MIT-licensed daemon that gets loaded along with some udev configuration (all in a Debian package in my case), such that any time you plug it in, your system available entropy goes way up and stays up until you unplug it. It really is that easy! My new 4096-bit GPG key generated without perceptable delay, while the one my daughter made at the same time on her similar notebook required lots of mouse wiggling and I/O traffic generation to accumulate enough bits. A dramatic difference, to say the least!

Anything that needs lots of random bits for generating things like session keys will clearly benefit from a device like this. Some systems have other hardware sources of random numbers, but I was impressed by the attention to detail the guys have put into this little widget, and the work they've done to make it integrate so well with Debian.

Very cool.

Posted Tue Jul 28 09:24:08 2009 Tags: debian

In recent months, a number of arguments have been made in favor of abandoning use of SHA-1, which I won't rehash here (yes, pun intended!). The practical consequence that matters to me is that many Debian developers are in the process of transitioning to new, stronger gpg keys, and in the process also moving to generate more strongly coded key signatures.

While at Debconf9 this week, I succumbed to peer pressure, and have generated a new 4096-bit RSA key 0xC095D941 which I will henceforth use as my primary key. I note in passing that my previous key 0xF2CF01A8 is just over 10 years old, and thanks largely to my intense business travel in recent years and willingness to engage in key signings everywhere I go, had risen to be one of the world's best connected keys and thus very near the center of the "strong set". Since I have no evidence that this key has been compromised, I have no intention to immediately revoke it, and in fact will continue to sign keys with both my old and new keys for at least a while until my new key establishes itself. In the process of creating and setting up my new key, I stumbled over some issues that I think others should be aware of.

To create a strong key, there are several reasonable recipes, and following one is a good idea. I started with these notes from Ana's blog. Make sure to read the followup comments and follow the suggestion to add the algorithm preferences to the gpg.conf file before creating your new key, so that you don't have to update the preferences manually afterwards. I also learned a lot by reading about using multiple subkeys here... while the document says it's out of date, most of the important bits are still completely accurate. With these two documents, and a little man page review, creating my shiny new key was pretty easy.

For quite some time, I've been exclusively using caff (which stands for "CA - fire and forget") from the PGP Tools repository that ends up as the signing-party package in Debian to do all my key signing. Unfortunately it has a bug or feature relating to the use of a distinct home for gpg within the ~/.caff directory such that new options added to my normal ~/.gnupg/gpg.conf file were not noticed by caff! So even though I moved to a new strong key, I was continuing to generate weak SHA-1 signatures with the new key! The fix for this turned out to be simple enough (after burning a half-hour or so figuring out what the problem was!), I just created a symbolic link so that ~/.caff/gnupghome/gpg.conf points to my canonical gpg.conf file, and all was well. Or, almost all...

It bothered me that I had generated weak signatures with my new strong key, so I decided to re-sign the keys I had already signed with my new key so that all the signatures issued with my new strong key are strong signatures. To do this, I used gpg's --edit-key option with gpg warped to point to the caff home to 'delsig' the signatures I'd made to these keys, then used caff with the '--no-download' option to re-sign the keys and re-issue the associated emails. Trolling ~/.caff/keys helped me discover which keys were in the affected set, then I studied the command lines caff was feeding to gpg to see what options I'd need for gpg. Here's an example of the commands required to fix key id 0x2DA8B985:

gpg --homedir=/home/bdale/.caff/gnupghome --secret-keyring /home/bdale/.gnupg/secring.gpg --no-auto-check-trustdb --trust-model=always --edit-key 2DA8B985
caff --no-download 2DA8B985

I haven't fixed all the signatures made this week yet, but I will. Those of you who think I'm just re-sending the same signatures, take note of what's really going on! I understand that adding the new signatures works and you'll end up with my stronger signatures replacing the weak ones.

Hope this helps someone else avoid the frustration I felt while chasing these details down last night late!

Posted Tue Jul 28 08:55:27 2009 Tags: debian

In between keeping things going at work and hanging out more than usual with my kids (who are off from school on spring break), I've been trying to help out around the edges with Debian Installer this week. Probably the most significant thing I've done is to provide access to one of my hppa systems so that nightly builds of d-i for hppa can happen. However, trying to help out has finally gotten me to organize "my other rack" in a way that testing stuff like this will be easier in the future.

What I've done is to set up a modest test server with a private subnet behind it. The private subnet now has an APC Masterswitch remotely-controllable power switch, a Cyclades 16-port serial server, and a growing set of target systems representing different Debian architectures. The server provides DHCP and TFTP support for network booting the various target systems, my evolving conserver configuration makes it possible to access serial consoles on each target system, and the Masterswitch makes it possible to power cycle the target systems remotely. There's a bit of security work yet to do before I allow anyone else to play, but my intent is to allow other folks working on debian-installer to also have access to this lashup for remote testing of some of the less-readily-available system architectures...

My only gripe is that conserver is in non-free. I'm not entirely sure why, though, since the licensing appears at first glance to be a mixture of BSD-like with and without advertising clauses. Time to email the maintainer and ask...

Posted Tue Feb 3 11:11:57 2009 Tags: debian

People keep asking me about the beard thing... Here's my take on what happened and why.

Just before I left for LCA 2009, my wife offered to send along one of the limited edition prints of her award-winning waterfall photograph. She knew from prior years that the LCA organizers often host an auction or raffle to raise money for some worthy charity at the conference banquet. Since the photo was taken at Milford Sound on the way to last year's LCA in Melbourne, there was a connection between the photo and LCA. We had no idea what this year's charity might be, nor did we anticipate that her photo would become the centerpiece of the evening's fund-raising activities.

The charity selected this year was an organization that is trying to save the Tasmanian Devil from extinction. Professor Hamish McCallum, the chief scientist with the program, gave a talk after dinner and before the auction began. The native population is suffering from a fatal facial tumor disease that results in horrible lesions, and is likely to kill off all the Devils within a decade or three. My family and I all have a strong love of nature, and Karen and I had the pleasure of touring Tasmania after LCA 2003 in Perth, so this seemed like a great charity to raise money for with her photo.

As often happens at LCA, the auction and related fund-raising activities got complicated. This year, the photo alone was bid up to $2500 (which was very cool!), before people started offering things for higher bids. For years, going maybe as far back as Perth, I've been cajoled about shaving my beard if the bidding hit some level, and have always said no. This year, someone offered $5000 if I would shave my beard, and again I said no. Much later, after more cajoling and many counter offers, when the bids and various matching offers had us approaching $20,000 in total donation to the charity, I relented and announced that if we hit a total of $25,000 going to the charity I would consent to a shave. The resulting frenzy, including the suggestion that if it went high enough Linus should do the shaving, and the formation of a bidding consortium that kept raising more money and bidding against itself, was completely unexpected! Others have tried to capture details of the insanity, but the bottom line is that by the end of the evening, the total had blown way past anything we could have imagined, and by the end of the conference the total going to the charity was on the order of $40,000!

Why did I agree to let Linus shave my beard? To be honest, I'm not entirely certain. I only had one beer that evening, so I can't blame intoxication. The fact that it would yield a worthy charity something over 10 times what my wife's photo alone had drawn as a maximum bid seemed significant to me. In hindsight, I also think I was at least a little bit curious to see what my face looked like after having a beard since sometime around September of 1982! In any case, I made the offer, insane amounts of money were raised, and on the last day of the conference, over the lunch hour, Linus took trimmers in hand and removed my beard in front of an audience.

The reactions have been completely overwhelming. A local TV station and a local newspaper in Hobart were both there and ran stories. The ripple of mentions in the blogosphere was and is just astounding. There's even a silly Shaving Bdale game created overnight by the "Mad Scientists" at Secret Lab! And from all over the globe, people I do and don't know have been sending emails and finding me on IRC to plead with me to grow my beard again! Right after the shave, my good friend Keith Packard said "Bdale, grow it back!". Before I left Hobart, my wife emailed saying she and the kids hoped I wasn't waiting until I got home to start. Joey Hess blogged a hairy tale about how I'd scarred the minds of young Debian developers. The leader of Debian-RS sent word by email that the group all hoped I would re-grow my beard. And on and on and on... I'm really not used to being the center of so much attention!

Being suddenly without beard felt weird in lots of silly little ways. I was hyper-sensitive to drafts. The feel of cold beverages hitting my upper lip was downright strange. And I kept wanting to scratch what wasn't there! After making faces at myself in the mirror for a while, I decided I really wasn't happy, and do prefer being bearded. So I haven't shaved since Saturday morning in Hobart, and am pretty scruffy looking. My wife said today that I'm "already starting to look like Bdale again".

At the current growth rate, I have high hopes of having at least some facial dignity back by the time I speak at FOSDEM. And no, I won't be shaving my beard off again any time soon...

Posted Fri Jan 30 01:35:54 2009 Tags: debian

Yesterday, I closed Debian bug #211765 regarding material under the GLX Public License violating the DFSG.

That's two less open bugs tagged lenny-ignore!

Posted Tue Jan 20 16:26:43 2009 Tags: debian