d9d0bbb39fcb7250086e5580a736a66938496289
[web/gag.com] / bdale / blog / posts / FreedomBox_in_Banja_Luka.mdwn
1 # FreedomBox activities at Debconf11
2
3 I spent the last two weeks of July 2011 in Banja Luka.  The occasion was the 
4 annual [Debian](http://debian.org) developer's conference, 
5 [Debconf11](http://debconf11.debconf.org) and preceeding work week known as
6 Debcamp.  This was my tenth successive year attending Debconf, and I had a
7 very productive and pleasant time!  The facilities were good, the local team
8 was friendly, enthusiastic, and very helpful, and in addition to giving three
9 talks and hosting a couple panel discussions, I managed to put a burst
10 of energy into work on [FreedomBox](http://freedomboxfoundation.org).  Several
11 other developers working on FreedomBox were also present, and a good number of 
12 [Sheeva](http://www.globalscaletechnologies.com/p-22-sheevaplug-dev-kit-us.aspx)
13 and 
14 [Dream](http://www.globalscaletechnologies.com/c-5-dreamplugs.aspx)
15 plugs were evident in the hacklabs sporting new FreedomBox stickers.
16 Working together in the same place for several days, we made good progress 
17 on several projects, and also had some great discussions about what we want 
18 to do going forward.
19
20 ## image building tools
21
22 For some time, I've been working towards a light-weight tool set to build
23 FreedomBox software images.  Shortly before Debconf started, I chose the 
24 name 'freedom-maker' for this tool and shared a link to a readable copy of my
25 git repository with other developers I expected to work with in Banja Luka.
26 With input from Bert Agaz and Jonas Smedegaard during Debcamp, freedom-maker 
27 went from almost useful to actually useful.  It still deserves work to be 
28 more useful to others, but I have now pushed a copy of the git repository to 
29 [git.debian.org](http://anonscm.debian.org/gitweb/?p=freedombox/freedom-maker.git;a=summary) so that we can take advantage of the tools supported there to 
30 enable others to more easily contribute to the code.
31
32 Very soon, Bert plans to add support to freedom-maker for using Lars Wirzenius'
33 [vmdebootstrap](https://gitorious.org/vmdebootstrap) to build x86 images 
34 suitable for testing in a virtualized environment.  At the same time, we plan 
35 to refactor the existing code slightly
36 to enable lists of desired packages for the various image flavors we expect
37 to produce independently of the configuration for each specific image building
38 tool.
39
40 Jonas continued in parallel to work on his alternate packaging toolset 
41 [boxer](http://git.emdebian.org/?p=upstream/boxer.git;a=summary).
42 It offers some potentially interesting features for the future, and we may
43 eventually merge some or all of it into freedom-maker, but for now it remains
44 a separate utility.
45
46 ## uAP user space tools
47
48 Several weeks ago, we received from Marvell the source code to two user space
49 programs that are necessary for configuring and monitoring the binary firmware
50 provided for the uAP wireless chip used in the DreamPlug.  Early during my
51 stay in Banja Luka, I packaged these for Debian as
52 [uaputl](http://packages.debian.org/uaputl) and 
53 [uapevent](http://packages.debian.org/uapevent), and I am pleased to note
54 that they were quickly accepted into the archive and are now present in Debian
55 mirrors.
56
57 ## u-boot
58
59 Another bit of code received very shortly before Debconf started was the
60 source for the version of u-boot shipped by 
61 [Globalscale](http://www.globalscaletechnologies.com/) in the DreamPlug
62 units we're working with.  During Debcamp, Clint Adams passed a copy of this
63 source to Jason Cooper, who was already trying to add support for the 
64 DreamPlug to upstream u-boot, but had stalled due to a lack of 
65 information.  Jason has now merged his own work with the sources we got 
66 from the manufacturer, and is 
67 making good progress towards merging DreamPlug support into upstream u-boot.
68 Once that happens, we should be able to flash our Sheeva and Dream plug devices
69 with a u-boot image built from the source in the Debian u-boot package, in the
70 process enabling things that matter to us like the ability to boot from an
71 ext2 partition, and hopefully the ability to execute command scripts from that
72 partition instead of having to hard-code kernel filenames in flash.  This will
73 allow us to support the ongoing effort in Debian to move away from the need
74 for kernel symlinks.
75
76 ## DreamPlug kernels
77
78 With respect to kernels, another work stream at Debconf primarily involving
79 Héctor Orón and Nick Bane was to analyze the current state of the patches from
80 Marvell and Globalscale used to support the DreamPlug against both upstream
81 and current Debian kernel sources.  To my surprise and our collective pleasure,
82 the remaining patch set required against current upstream kernels is much 
83 smaller than we previously believed!  There are still several patches critical
84 to us that are not merged upstream, but the work remaining to be able to build
85 images for our devices from mainline and Debian kernel source trees now seems
86 like something we might be able to complete before Debian's next stable 
87 release.
88
89 One of our discoveries during the u-boot and kernel work during Debconf was
90 that Globalscale did not obtain a new machine id for the DreamPlug, but 
91 instead re-used the one for the GuruPlug series, despite there being some
92 differences in the hardware that require at least one additional driver.  After
93 much discussion, we plan to continue using the existing machine id instead 
94 of requesting another, particularly because the ARM kernel community
95 has apparently stopped issuing new ids for the moment.  We will add a new
96 kernel config option for the DreamPlug, however, and are likely to build
97 distinct Sheeva and Dream kernel packages that do not require initrd for use 
98 in FreedomBox images, even if doing so is not strictly necessary.  This will
99 allow us to optimize both the in-memory footprint and boot times for our
100 devices.
101
102 ## software configuration
103
104 Another area of investigation in Banja Luka was technology for package
105 configuration.  Mirsal Ennaime performed various tests using debconf and 
106 Config::Model, with some results reflected in [this commit](http://git.mirsal.fr/?p=bitcoin.git;a=commitdiff;h=d79bc9e212dff19a9cc1a4aceaaf8f195d61dab0) 
107 relating to configuring the bitcoind daemon in the bitcoin package for Debian.
108
109 ## identity and trust management
110
111 While we did not actually do any FreedomBox specific work on the trust
112 management layer we know is necessary, after several rounds of conversation,
113 I am now more convinced than ever that the right path forward is to base our
114 trust relationships on OpenPGP keys using GnuPG and Monkeysphere as starting
115 software elements. Our thinking to date is captured on an 
116 [Identity Management](http://wiki.debian.org/FreedomBox/IdentityManagement) 
117 page in the wiki.
118
119 ## communication services
120
121 Another thing that became fairly clear to me during discussions at Debconf
122 is that in the near term, planning to build communication services around
123 XMPP is the approach most likely to give good results.  Investigating the 
124 software choices available to build an interesting XMPP infrastructure is 
125 now a high priority for me.  Jonas has done some work towards
126 configuring and integrating [ejabberd](http://www.ejabberd.im/) 
127 or [Prosody](http://prosody.im/), I've started studying 
128 [yate](http://yate.null.ro/pmwiki/) as a possible call manager and VoIP 
129 server choice with 
130 XMPP/jingle support, and we await with great interest a release from the 
131 [Buddycloud](http://buddycloud.com/) developers to evaluate as
132 a possible basis for deploying social network services.
133
134 Some of these software choices will lead us to use Apache as our web services
135 base technology because of the need for features that only it supports well
136 among daemons that are Free Software.  
137
138 Jonas completed packaging [GNU Sip Witch](http://www.gnu.org/s/sipwitch/)
139 for Debian, and it is now available in the mirror network.  Tzafrir Cohen and 
140 Jonas did some initial testing on its use.
141
142 ## documentation
143
144 A number of new [wiki pages](https://wiki.debian.org/FreedomBox) were written 
145 (or at least started) in order to sum up ideas, design various aspects of 
146 FreedomBox, and reflect discussions that happened during DebConf11.  A lot 
147 of work is needed to complete these pages though, as well as others to capture
148 more of the current state of the project. 
149
150 ## press coverage
151
152 Finally, while in Banja Luka I got some great press coverage for FreedomBox!
153 On Sunday the 24th, I was 
154 [interviewed](http://www.youtube.com/watch?v=VY2wlfjHFx4) 
155 by the main television network serving the Republika Srpska.  This led
156 to a couple of minutes of coverage near the top of the national news program 
157 that night, immediately following the lead story about the President and 
158 several ministers appearing at Debian Day that morning to help open the
159 conference.  This interview was later re-used in 
160 [another TV program](http://rtrs.tv/av/player.php?id=14234&x=1) 
161 that summarized Debconf11.  On the morning of Thursday the 28th, I was part 
162 of a small group that spent more than an hour meeting with the Minister of 
163 Science and Technology in his office, and the relationship between Debian
164 and our work on FreedomBox was one of the items of discussion in that meeting 
165 and the associated press conference.  I'm told this resulted in more press
166 coverage, but if true I have not seen it yet.
167
168 ## summary
169
170 On Friday afternoon the 29th, I gave a talk in the main Debconf program containing a [FreedomBox Progress Report]( http://meetings-archive.debian.net/pub/debian-meetings/2011/debconf11/low/704_FreedomBox_progress_report.ogv) .  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!
171
172 All in all, we got lots of work done on FreedomBox in Banja Luka, enough that 
173 I think at least the next few steps along the road towards an eventual "1.0" 
174 release of a reference implementation are now much clearer than they were two
175 weeks ago!  
176
177 [[!tag tags/debian]]
178 [[!tag tags/freedombox]]