My webblog at evolvis.org

breiPott: Free (as in Freedom) music party in Berlin

Now this is cool!

Yesterday I learned about a club in my city that exclusivly plays CreativeCommons-licensed music. According to their website they also make sure that only those variants of the CC-licenses are used that free software people would identify as ‘free’ :-)

Tommorrow there will be a party where they celebrate the adaption of the latest CC-BY-SA (version 3.0) to the German jurisdiction. They use a CC-BY-SA licensed excerpt from OpenStreetMap on their flyer:

Damn, I find it so cool when people combine all those free as in freedom things! In my opinion this is exactly the goal we wanted to achieve with the free software movement and which many of its naysayers and opponents did not get. :-)

And while talking about OpenStreetMap. Here are two examples from OSM which shows that this effort has so much potentiality in being vastly superior than existing proprietary map data.

The first screenshot is from the area around the city train station Ostkreuz (some 500m from my home):

Noticed those crossed quads connected by grey lines which start in the west of the Lenbachplatz? Those are overhead power lines. So imagine if you want to move within Berlin and want to avoid living besides those, just scan the area with OSM first. :-)

The next example is from the Teufelsberg (a hill) which lies within the Grunewald forest:

Some really hard-working people (perhaps its just one who knows) have mapped all the footways in the forest surrounding the hill. If you look up the same spot on the proprietary Google Maps you will only see a large green area with no ways drawn in.

Well done OpenStreetMap!

Now imagine every place on the planet would have such incredible accuracy and you do not need to sign a contract with anyone to use that data in any way you want: This is what we mean with “free as in freedom”.

Invasion of the low power devices

Thanks to TI and the drawing they did at LinuxTag 2008 I got a BeagleBoard Rev. B4. When the package arrived I started getting the necessary serial cable.

This board is unbelievable small. You get in a small box together with a mini USB cable:

And now on to my favorite: The OMAP3 on the board runs at 500 MHz. As you see it is not dangerous to put a finger on the running CPU :-)

Some other CPU manufacturers should better work on being as efficient as this one instead of wasting money with delusive marketing campaigns.

Despite
there are not many Beagleboards in the wild the community around it is
quite active. Without doubt Koen Kooi is ahead of everyone else: He is
fixing kernel, gcc and mplayer problems altogether. Thanks to this work,
people will have it a lot easier when the board can finally be bought
in shops.

Jalimo on
the Beagleboard is currently blocked by libtool 2.2 and/or GNU
Classpath issues. I have a workaround but am waiting for answers from
the libtool developers about a real solution.

She got me again

Looking carefully at the posts from GNU Classpath members you realize that a lot of them play an instrument. Years ago I took (acoustic) guitar lessons but did not continue this after moving.

One thing that bothered me over the years is that when I heard a nice song and started finding out how the (guitar) melody is played either I was not skilled enough or it just does not sound good on the acoustic guitar.

Three weeks ago I put and end to this situation and decided to take guitar lessons again. This time I will learn to play the electric guitar which I think is the instrument I like more. I am a big fan of indie rock and brit pop music. Listening to Johnossi and the Blood Red Shoes as well as visiting the Immergut festival (where both bands played) certainly had a great impact on my latest decision.

Just one note: If deep in your mind the idea that one day you start learning to play an instrument is buried, do not wait any longer and start learning today! I think the worst thing that can happen is that you realize that you have a little bit of talent since this means you wasted time and could have started earlier …

After a week of practicing the pick I got with OpenMoko’s Neo1973 broke :-)


 

Will try harder

Offline days, online days

Last week was critical. Due to some problems with our Freifunk mesh network I was offline for some days. Well, not really offline. If I urgently needed Internet connection I had to take my girlfriend’s laptop (mine is still unable to deal with ad-hoc mode), walk to the Traveplatz park and start the OLSR daemon. Still this does not really help updating the various SVN, Mercurial and Monotone repositories on my desktop computer. :-)

On the other hand I worked on the JIT Cache which is thanks to Twisti and Andreas Krall, now my diploma thesis topic. I wanted to fix the issues it had before LinuxTag and was successfull doing so: The JIT Cache is now working on ARM!

What massively helped me achieving this goal was the good old GNU Debugger. It cannot tell you when you forgot to flush the system’s instruction and data caches (this was the final issue) but for everything else GDB was just great. Being an (x86) assembler addict in my young years I really enjoyed single stepping through JIT compiled code and watching the codegenerator emiting machine instructions.

I find it interesting to see how working on the Cacao virtual machine brings two of my otherwise quite unrelated interests together: Namely playing around with assembler stuff and working with a high-level programming language like Java. :-)

On related news: I committed MIDPath 0.3RC1 recipes to OpenEmbedded. These provide a fully configured and correctly set up installation of MIDPath. That means if your repo contains the binaries (I hope OpenMoko adopts those quickly) you just need to tell your package manager to install ‘midpath’ and that will install all of the mandatory packages and provides a suitable configuration (screen size, button mapping, GUI/sound provider, …) that lets you start MIDlets right through MIDPath’s SuiteManager.

Hint: Install ‘midpath-demos’ instead and you get everything from above plus a bunch of demo midlets to try out the platform.

MIDPath 0.3RC1 still has some rough edges but it is definitely maturing well. I hope that with the recipes more people will get to know about it.

OpenMoko FreeRunner entered mass production

Yeah, its true. The OpenMoko gals & guys finally fixed manufacturing issues and the first free (as in Freedom) mobile phone hardware is produced as you read this sentence. Great isn’t it?

Just in time for this I finished the first bit of work to get PhoneME Advanced compiled in OpenEmbedded. This means that soon no one wanting that runtime on their device needs to fumble with its intimidating build system. It will not be possible to provide recipes which allow setting all the countless configuration options but I will write the recipes in a way that you can easily derive the variant you want on your hardware.

If you look at the building instructions for PhoneME you will see that they contain a lot of annoying steps: Getting a GNU toolchain, patch some header files, set configuration options, point variables to a bunch of tools (javac, java, javah and so on). In contrast if you have a working OpenEmbedded environment all you need to do is enter:

bitbake phoneme-advanced-foundation

and this will not only give you that unhandy ZIP file the built produces. No, you get a package of any flavour (IPK, DEB and RPM) plus another one containing the unstripped ‘cvm’ executable. Sweet isn’t it?

Here kind of a proof that I really got this working (on OpenMoko Freerunner):

root@om-gta02:~# java-cdc -versionProduct: phoneME Advanced (phoneme_advanced_mr2-b73)Profile: Foundation Profile Specification 1.1JVM:     CVM phoneme_advanced_mr2-b73 (interpreter loop)

BeanShell (I still like it!) runs out of the box:

java-cdc -cp bsh.jar bsh.InterpreterBeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net)bsh % print(System.getProperties());{java.library.builtin.net=yes,sun.boot.library.path=/usr/lib/jvm/phoneme-advanced-foundation/lib,java.vm.version=phoneme_advanced_mr2-b73,java.vm.vendor=Sun Microsystems Inc.,java.vendor.url=http://java.sun.com/,path.separator=:,java.vm.name=CVM,file.encoding.pkg=sun.io,java.vm.specification.name=Java Virtual Machine Specification,user.dir=/home/root,os.arch=armv4tl,microedition.encoding=ISO-8859-1,java.io.tmpdir=/tmp, line.separator=,java.vm.specification.vendor=Sun Microsystems Inc.,microedition.profiles=,java.awt.fonts=,os.name=Linux,java.library.builtin.zip=yes,java.library.path=/usr/lib/jvm/phoneme-advanced-foundation/lib,microedition.platform=j2me,java.specification.name=Foundation Profile Specification,java.class.version=47.0,sun.misc.product=phoneME Advanced,os.version=2.6.24,user.home=/home/root,user.timezone=,file.encoding=ISO8859_1,java.specification.version=1.1,java.class.path=bsh.jar,microedition.locale=en_US, user.name=root,java.vm.specification.version=1.0,java.home=/usr/lib/jvm/phoneme-advanced-foundation,user.language=en,java.specification.vendor=Sun Microsystems Inc.,java.vm.info=interpreter loop,java.version=phoneme_advanced_mr2-b73,java.ext.dirs=,sun.boot.class.path=/usr/lib/jvm/phoneme-advanced-foundation/lib/foundation.jar,java.library.builtin.math=yes, microedition.commports=/dev/ttyS0,java.vendor=Sun Microsystems Inc.,file.separator=/,microedition.configuration=CLDC-1.1,sun.io.unicode.encoding=UnicodeLittle,sun.cpu.endian=little,user.region=US,sun.cpu.isalist=}

It is running interpreted only and with the most basic class library (“foundation” profile) but still it is a start.

Fixing problems and working around them

Like Roman I am very happy about where Wine is heading and welcome what I call the best Windows (implementation) ever. :-) I am wondering however how Wine will cope with the inherent disease that the proprietary software is suffering from: What I mean are API or even driver level workarounds for badly programmed software. Some weeks ago someone posted a mail to the Wine mailinglist where it is stated that the proprietary nvidia and ATI graphics drivers contain blacklists and workarounds for known application problems.

Granted, the free software world has its own black sheeps but I consider the situation in the proprietary world much more sick and I am happy to not have something to do with this. :-)

I am really more happy to work on stuff like GNU Classpath of which version 0.97.2 has just been released. This bugfix release contains among other remarkable things a patch that makes gjar and gjavah accept file arguments with a prepended @ sign. This undocumented behavior of the tools from OpenJDK makes it possible to build OpenJDK and PhoneME Advanced using our tools.

Yay, another problem solved and not worked around! :-D

LinuxTag 2008 – 2nd post

Today I am continuing my impressions of LinuxTag 2008 in Berlin.

Besides Harald and Rob I met Marcus Brinkmann at the social event (= kind of aftershow party). When reading the name on his speaker badge it reminded me of something but I had no clue. We were already in a longer discussion about rulerless societies when I realized that Markus is one of the main contributors to the HURD. It was very fun talking not about software to someone who participates to the core of the GNU project. :-)

The inherent desire of the GNU project to escape control, dominance and dependency from others always made me wonder whether anarchistic way of thinking is prevalent in this community.

When it comes to shared attitudes in a group I guess that people dealing with embedded systems dislike the x86 CPU architecture. At least Florian and Holger expressed their dislike at the LinuxTag and I know it from myself, too (guess why I use a PowerPC laptop ;-) ). Unfortunately in the embedded space ARM CPUs are what powers most of those nice little gagdets (mobiles, PDAs, MIDs/Internet tablets) and sometimes I wish there would be more AVR32 over the place. :-)

However as implied in my last LinuxTag post there is something happening in the embedded Linux world. More and more manufacturers are making specifications available for free and without the need to sign NDAs. Furthermore new hardware is developed with the goal to have free drivers and support from the free software community.

One of the younger efforts is BeagleBoard which is officially supported by Texas Instruments. The hardware contains an ARM Cortex A8 CPU clocked at 600 MHz. Calling this beast “embedded” is kind of an understatement. Still it has all the niceties of such a system: low energy consumption and no fans. If you are interested in what other nice things can be found on the BeagleBoard check out this site. Granted the hardware is already impressive but what IMO really rocks about the board is the new level of openness demonstrated by Texas Instrument (and to a great deal by ARM):

I became interested in the BeagleBoard shortly before LinuxTag and visited their booth at the end of the 2nd day. My questions to the friendly guy at the booth (sorry I do not remember the name, but it was TI staff) started right with the issues that are mostly pressing to me: specifications, NDAs, later lifting of access restrictions. What impressed me was the immediate offer to take one of the CDs from the desk. These CDs contain documents with thousands of pages of documentation of all stuff you find on the board. That reminded me of the cool marketing event of AMD (ATI) where they handed out CDs with specification to every member of a press conference.

So what you get is the reference manual for the board itself, the OMAP35xx embedded CPU and much more.

There are some special areas that are encumbered and need fixing: the board has an 3D accelerator from Imagination Technologies and a DSP with video decoding capabilities. The accelerator lacks public specification and to make use of the DSP a special compiler is needed which is only available as part of a larger licensing deal. There was a project of the Chemnitz University of Technology that implemented a GCC backend for the DSP. This port is not complete and has not been integrated upstream but still it is a start.

While I consider these encumbrances are an annoying drawback work is underway to fix the issue in one way or another. Furthermore those components are not essential – you can still access the framebuffer.

I would really like to get my hands on such a system and make run Jalimo’s VMs (Cacao, JamVM) and class libraries (Classpath, MIDPath) run nicely on them. What interests me most is the CPU’s floating-point support. Cacao has still trouble with ARM hardfloat and the BeagleBoard would allow me to debug that extensively.

Let me also add that I am currently fighting with PhoneME (Advanced, the CDC one) to get it compiled inside OpenEmbedded. I thank Ken Gillmer from Bug Labs helping me with this (Bug Labs are cool too. Have a look at their licensing page and you know why. :-) )

Back to TI and the Beagleboard: The guy from the Beagleboard booth told me that their interest with the hardware is that the FOSS community gathers around it produces all kinds of fixes and additions to existing projects (to make better use of the hardware or whatever). In return this will make the OMAP35xx series a better product to sell to other customers (and want to deploy some Linux on it). This may sound like exploitation but I think it is a fair deal because:

  • nobody is forced to work on/for the device
  • those who do will most likely gain a lot of experience that future employers will appreciate
  • everyone and not only TI will profit from the contributions made by the volunteers

Before I close this post I would like to highlight my latest finding: ARM is currently making a lot documentation available for free. You can access the documents over here. There are still some placeholders for documents which are restricted and I am not sure whether those will be added later or are out of scope of this effort. Nevertheless ARM provides an RSS link where you will be informed about the latest documentation releases and updates. I have done that and am impressed about the number of documents that are finally seeing the light. I really hope that one day “Jazelle v1 Architecture Reference Manual” will appear in my RSS reader …

Campaign for Software Freedom on Nokia IT Devices 2008

Yeah, I am in a writing spree today. I just sent this to the Maemo mailing list. Basically I continue where I left of last year.

Since comments are still not open for anyone at this site (Sorry, I cannot do something about this). Contact me via email (thebohemian _ at _ gmx.net) for suggestions. If you think I am silly, continue to do so but don’t start your mail program. ;)

Hi!(If some bits sound to serious for your taste, take them with a grain ofsalt.)

I finally subscribed to this list because I think the time is right. Iattended LinuxTag 2008 in Berlin/Germany a few days ago. Quim Gil andother people from Nokia and the Maemo community were there. In the firstMaemo talk Quim invited the community to speak out to Nokia (Btw: reallyNokia or just the OSSO team?) and I want to participate therein.

If you attended the first talk I was the guy asking to raise your handif you want to see the Nokia IT devices being freed of all proprietarysoftware in one way (install a different OS) or another (make IT OS 100%free itself).

This brings us right to the topic: Free Software - free as in freedom,you know. :) 

I was *not* asking the question to show the Nokia staff that there aremore than just '5 free software' visionaries in Maemo but mainly becauseI reported this[0] bug last year and was missing noticeable support fromother free software friends. I know that some really good people havealready given up on this topic and rest assured that this will also bemy last attempt to subvert this community. ;) 

So the question at the talk was for me to find out whether I am reallyalone with my views. Apparantly it also made all of you show that youare not alone, too. :) 

Ok, Quim introduced the '10 action days'. My impression is that theywould like to hear stuff like 'add feature X to the website', 'portapplication foo to maemo' or something else from that category. I haveno suggestion like that because I strongly believe that a healthy freesoftware community can fix any technical deficiency on their own.

You are not a zealot like me and need an argument now? Ok. The freesoftware scene came nearly out of nothing. Although free programsexisted long before Linux was written, there was no organisation ofthose. One of the early communities that rallied together to make achange was Debian. It evolved from nothing to something that commercialfree software vendors *want* to base their products on. Debian is thedistribution Maemo was derived from.

Ok, let me state some stuff before it gets hairy:

- I do not consider someone/an organisation/company evil here. There arejust different fears, opinions, convictions, way of doings etc.resulting in different behavior.

- I consider the OSSO team at Nokia to be more open to FOSS than anyother part in that company and that those guys are restricted by companypolicies. If there is something to fix than it will have most likely todo with that other parts.

- I am very thankful for every contribution from Nokia staff to the freesoftware community. However I treat every non-free part of the IT OS ifit does not exist when it comes to being thankful.

- If not said otherwise I speak in the name of those Maemo users whoknow that FOSS is the way to go. Everyone is free to completely disagreewith my views & opinions.

Over time I learned about a few reasons why companies keep theirLinux-based operating systems closed or deny NDA-free access tospecification. Here are some:

a) treaties/contracts made with chipset vendors (e.g. ARM, TI) enforce acertain non-disclosure of specificationsb) fear of being imitated/plagiated by ... well manufacturers that are*specialized* in doing soc) company-wide policies that enforce a certain working style or commonstandards in different company sections (set up to make it easier tocope with national laws/regulations from *inside* the company[1])d) fear of appearing less unique to the customer (something marketingpeople preach)e) fear of 'eating away' market share from other inhouse devices(especially from those where the margin is higher :)  )

Without knowing anything from inside OSSO/Nokia in this regard I stillhope that those reasons apply more or less to them because I want tobase this year's "Campaign for Software Freedom on Nokia IT devices(tm)"[2] on them. ;) 

What the campaign is hoping to achieve is the following:

1) Users should be able to install any compatible OSes on their Nokia ITdevices they wish like one can do on their desktop computers.

2) It should be possible to port and put Maemo on other non-Nokiadevices like it is possible to e.g. port Fedora to any machine.

-

The means to achieve this goal are the following:

1) All software in Maemo should be licensed under free software licenses(I do not care about Skype, Flash, etc).

2) Either specifications or free software drivers should be provided forthe components in the Nokia IT devices.

To achieve those goals the following things should be adhered to:

 * Tackle one bit after another.

Please prioritize important things (e.g. virtual keyboard/handwritingrecognition & battery management). If things start moving thecommunities' reward is patience. Feel free to make a big fuss when eachcomponent is freed. The free software community will party together withyou.

 * Future software/hardware releases should not add non-free components

Remember that there is always more than one way. E.g. the free softwarecommunity can certainly accept a proprietary GSM modem which responds toAT commands or a GPS module providing NMEA[3].

-

On the one hand it would be totally cool to get the existing devicesfreed and many people would welcome that BUT if all fails and non-OSSONokia staff cannot be convinced that this would be a remarkable andtrust encouraging move THEN the fallback plan is to bring future devicesinto a better FOSS shape. That way we will have fully free (as infreedom) devices in say 2 or 3 generations.

The free software heart aches when saying that but I accept that at thispoint in time Nokia's HW lab will already have designed the next devicesand there is no possibility to make substantial changes without causinghigh re-engineering costs.

-

Benefits: I am not a lawyer, marketing expert, economist or else. Askthem if you want advice. However a commodization of portable deviceslike the ITs is likely.

Firms and communities could also more easily order a bunch of Nokiadevices and make use of them for special tasks (without having to signspecial contracts, of course).

-

This is really a long mail. I stop here and present the short plan: Iwill distill the above stuff into an 'official' statement, put it onlinesomewhere (Maemo Wiki?) and let supporting users subscribe to it. Thefinal document is then given to Nokia/OSSO as part of the 'action days'and if the interest from them is not zero ... well, then you will readmore mails from me. I also hope^H^H^H^H expect more people to chime in then.

	After all this our common goal, isn't it?

Well done if you made it this far. If you are thinking about replyingplease use your time productively. I am not inviting to a discussion -instead I presented a plan. You either contribute to it or let us goahead without your support.

RegardsRobert

[0] - https://bugs.maemo.org/show_bug.cgi?id=1584

[1] E.g. in order to sell Nokia devices in some random country a numberof employees must be trained to deal with support and warrantyquestions. Stuff like this is what customers expect from amulti-national company.

[2] The acronym would be rather CSFONID but CFSONID can be pronouncedziff-sonid and I like that more. Call it whatever you like. ;) 

[3] Rest assured that one day GPS and GSM hardware will be produced asopen hardware.

The part where I say that this will be my last attempt may have a negative connotation but that is not my intention. I am just doing an economical decision like any investor would do. I have a limited resource at stake which is my freetime (or lifetime) and a number of possibilities to make investments in. If I do not see any prospect I will do something else because proprietary software is simply not my way to go.

SWT on Maemo updates

Just before FOSDEM I have a nice batch of screenshots to show. What I am going to present today is a new Jalimo demo application which is available in binary form from the Maemo Jalimo repository (sourcecode is in SVN).

It makes use of SWT 3.4′s ability to switch to fullscreen mode (and back). Since a convention for Maemo apps says that toggling fullscreen should be possible by pressing a certain hardware button, I added the neccessary listener as well. It works nicely. :-)

Last but not least while reading through through the Hildon documentation I learned that the environment provides its own file chooser dialog. Since I was fixing a bug in our SWT anyways I added support for this dialog as well.

The results can be seen here:

In related news:

Jalimo is actively contributing and committing stuff to OpenEmbedded now. One of the nice results is that other people start adding the packages into their distributions. Eg. OpenMoko now has GNU Classpath, Cacao, JamVM and SWT in their repositories. The same is going to happen for GPE and AFAIK Angstrom. Nice one!

For the Maemo packages which we provide on our own we lately switched from the manually and Scratchbox-built packages to the ones made by our OpenEmbedded-base autobuilder. For those who used the old repository for their N800/N810 device already I wrote a small migration guide.

And on a completely different topic:

Richard is in Berlin today and does a talk about the philosophy and history of free software. With a little luck a friend and I can organise an interview with him. I spent half the night on getting some interesting background information. :-)