jump to navigation

Computer startup aid using a LEGO train January 6, 2012

Posted by Florian in Devices, kernel concepts.

Some times it happens that I have to dig out some old piece of hardware and try to get it running again… I recently got a very geek present for my birthday – one that requires a working SGI Indigo next to it. Luckily nothing gets lost at kernel concepts and I was able to select from several Indigo gathering dust at the attic of our office. It looks like the machines survived quite some years not being used pretty well – including most of the harddisks. Unluckily all batteries which are supposed to supply the real-time clock chip were flat and these batteries are hard to get and soldered to the board. I did not have a replacement for the 3.6V Lithium battery but it was pretty easy to replace the battery with some cables to supply the board with 3.6V. The first thing to supply 3.6V I found was the electric LEGO locomotive the kids left lying around…

Indigo Lego Train

Indigo Lego Train

This one was powered by three 1.2V AA rechargeable batteries – perfect for some startup aid for this old machine. After applying power I was able to boot into IRIX 6.2 installed on this historic piece of hardware (100MHz MIPS R4000 CPU, 192MB of RAM, 2GB SCSI hard disk, ELAN graphics). I have to admit I somehow enjoyed the “time travel” experience playing around with such an old system for a while. Someone here still remembers the Netscape browser? Or Electropaint? One really scary experience was the network setup: IRIX 6.2 has the ability to configure a static IP through the GUI but obviously you have to edit the network startup script in order to set a default route on boot.

A lot more of information about these machines can be found here.

MeeGo or Maemo grown up February 15, 2010

Posted by Florian in kernel concepts, Linux, LinuxToGo, Maemo, MeeGo.

Wee..! Big news – Intel and Nokia joining their open source software platforms Maemo and Moblin into a single one: Meego

So what does this mean for developers and device manufacturers? One thing is for sure: The new platform will become the “grown up” version of Maemo and Moblin. Especially for the Maemo part this means that the focus will change from targeting a very few devices and a quite well-defined software stack to a more generic way to support multiple hard- and software environments. And this is good – only a portable and easy to support platform is attractive for the device makers while the availability of multiple devices is important for its attractively among software developers.

It looks like we have interesting times ahead…

Projects at kc February 9, 2010

Posted by Florian in kernel concepts, Linux, OpenEmbedded.
add a comment

I hope a few people wondered why my blog looked a little bit neglected in the past few months. Well finally I can say that I have been busy with several larger projects I was not supposed to talk about.  For two projects I am involved in there are related press releases from our customers and business partners.

One project is the Linux port to the Höft & Wessel skeye.pos mobile – I really like the press release because it mentions the fact the supplied devices are running Linux and what the devices are used for. The filesystem on these devices is built with OpenEmbedded and is based on an older Angström release.

The other big project is closely related to both my job for kernel concepts and OpenEmbedded which is one of my favourite open source projects. The µCross distribution will support chip- and device vendors who are going to ship Linux-based solutions. The main idea is to combine the power OpenEmbedded and its large community with a good portion simplicity and a few additions. I do not want to mention too many boring details here so I will just introduce the basic concept: The idea is to offer customers binary packages matching their target architecture, matching toolchains and tools for assembling and configuring filesystem images for their devices.

There is not really an offical announcement yet but one of our business partners just announced a nice SBC module which will come with a µCross-based SDK. The TK71 is a QSeven format module powered by a Marvell 88F6281 SoC (Sheeva core based).

A third project that gained some love is the updated Linux port to the Toshiba Topas910 and TopasA900 boards. I am trying to maintain an upstream compatible and up to date Linux port to these devices here – for the people who do not want to use several year old kernels or this strange Aura stuff.  The latest achievement is that I got some patches to make NAND flash work which is vital for the TopasA900 because its small NOR flash can’t keep a decent filesystem image with GUI.

Ok now I’m done with showing off and I should return to do something useful… such as writing a short report about FOSDEM!

Anjuta Plugin for OpenEmbedded SDK June 18, 2009

Posted by Florian in Devices, kernel concepts, Linux, OpenEmbedded, Source.
Tags: , , , , ,

I have always liked the idea to have an Anjuta plugin that simplifies the use of cross toolchains in order to develop for all sorts of mobile and embedded devices. Personally I do not rely on an IDE but I have worked with a lot of developers in the past who are not used to do application development with vi. The same applies to cross toolchains, but there are reasons why people compile natively or why tools like Scratchbox are developed.

Some time ago OpenedHand published an Anjuta plugin for Poky that almost fits these needs – apart from minor lacks and the fact that you can’t use it with an OpenEmbedded build tree because it relies on the Poky directory layout. It didn’t take me long to modify the Poky plugin to fit the needs for OpenEmbedded: I have added automatic detection of the toolchain host prefix and some functionality to deal with the (not 100% fixed) directory layout of OpenEmbedded. So what does it do?

  • Select a toolchain or OpenEmbedded build directory to use
  • Configure and build a project
  • Deploying of binaries to a target device using rsync and ssh
  • Some debug and remote device features from the original plugin I didn’t test so far
Anjuta OpenEmbedded SDK Plugin

Anjuta OpenEmbedded SDK Plugin

It is easy to install (and build if necessary). I have created an initial website for it at KC Labs. You can find both source archive and binary packages for Ubuntu (9.04) and Debian Lenny. Once you have it installed it you should be able to design your GUI, fill it with functionality and deploy the application to a target device withouth leaving Anjuta.

Feedback is very welcome – if you have ideas about new features or what you would like to see for cross development please let me know!

Have a nice time…

PS: LinuxTag is approaching – visit the Embeded Area with projects like OpenEmbedded and Coreboot!

LinuxTag, GSoC and some progress… June 3, 2009

Posted by Florian in Devices, GPE, kernel concepts, Linux, Maemo, OpenEmbedded.
Tags: , , , , , , , ,

Its time to make announcements… I should have done this earlier, but like always it takes me a while to find a free minute to write things down.

First is about OpenEmbedded: We will be present at LinuxTag from 24th to 27th of June in Berlin/Germany. I just hope they have a little bit more space for us at the Embedded Area compared to last year. We usually have a lot of interesting devices running OE built Linux we can show. I’m really looking forward to LinuxTag – I haven’t missed one for many years and its always a nice event with a good mixture of community members, business people and users.



Google Summer of Code is in progress for some weeks now and I’m in the great position to mentor a very interesting Maemo project… something I always wanted to see but noone found time to do it properly so far: Integrate the Maemo software framework into OpenEmbedded. The benefits are quite obvious – Maemo software will gain compatibility and quality by running on (and if necessary adapting to) various devices. Apart from the fact that Maemo is a pretty good open source framework attracting quite a lot of developers. This is something other devices can and should gain advantage from. Well rkirti made a pretty good description of the project which can be found here.

It would be pretty cool to see Maemo running on this nice device I received a few days ago…


Micro2440 running gpe-mini-browser2

Its a FriendlyARM Micro2440 from Watterott Electronic – this one is equipped with the 7 inch display which gives some more “freedom” to the applications :-) Apart from this the hardware is the same I described in my previous post.

The screen geometry would match the one used by all Maemo devices so far, so it would not mess up all the graphical user interfaces. But there is still some work to do till the boards become a really good development platform. We can build useful filesystem images for them but the installation is still split up into too many steps and the up to date kernels still lack proper support for the camera and the wifi module.

I have made a toolchain to build software for both these devices and the Topas910. Together with an updated install instruction it can be found here at labs.kernelconcepts.de.  Now I’m investigating ways to integrate the toolchains with IDEs in order to simplify application development for mobile and embedded devices.

Micro2440 with Ultimate++ demo application

Micro2440 with Ultimate++ demo application

Here the device runs one of the Ultimate++ demo applications built with its IDE and the GPE-flavour cross toolchain built with OpenEmbedded. A friendly colleague found out what needs to be done to use it for ARM targets… it still needs a little help since Ultimate++ doesn’t seem to have an idea about pkgconfig and I’m not really happy with the size of the resulting binaries. But more about IDEs later…

Have a good time… and see you in Berlin!

A friendly Development Board May 26, 2009

Posted by Florian in Devices, GPE, kernel concepts, Linux, OpenEmbedded.
Tags: , , , , ,

While we are at the topic ‘evaluation and development hardware’… here here a few lines about a similar piece of hardware. I promised to do something with a FriendlyARM board already – so I did. I choosed the Micro2440 because the board itself is very small and can be used for own design easily. The very similar Mini2440 has a lot of ports on board in contrast to the 2mm headers of the Micro2440. Both boards are available through local distributors in Europe and the US now so that its not necessary to place orders in China any more. Watterott Electronic was so kind to send me a Micro2440 board and the SDK baseboard for evaluation.

Micro2440 SDK

If you want to get started with embedded Linux the board might be exactly what you want: A 400MHz ARM9 based Samsung S3C2440A CPU which is pretty well supported by Linux. 64MB od RAM and the same amount of NAND flash and 2MB of NOR flash for a backup bootloader. The baseboard has the connectors for the serial ports, USB host and client, display, expansion and SD and adds an audio codec and an Ethernet chip. There are two variants available: One with a 3.5″ QVGA TFT (pictured) and one with a 7″ 800×480 TFT.  Both displays come with a touchscreen and in addition to this the board has a few buttons that can be used for a human interface. The whole SDK kit including Micro2440, SDK board, 3.5″ display cables and JTAG doesn’t cost more than 125 EUR incl. VAT which makes it even more appealing.

The ‘softer’ part of the SDK quite appealing too: The hardware is pretty well documented, even the schematics are available to the public. FriendlyARM released some demo images and Linux sources that are useful (but not perfect). The ‘Vivi’ bootloader used by the boards can be replaced with u-boot easily so that you get a 100% Open Source embedded development environment.

Thanks to the OpenMoko community the S3C is pretty well supported in Linux and u-boot. There is a public project providing up to date Linux, u-boot and QEmu supoort for these boards that can be found here. Like I usually do for a new piece of embedded or mobile hardware I used OpenEmbedded to built a GPE based filesystem image for it. Like you can see in the picture it works pretty well. For people interested in this I put together some notes I took and the binary images at KC Labs. Feel free to contact me about this… I plan to extend support for it a little bit and provide a toolchain and additional information.

Have a nice time!

PS: Sorry for the bad image this time, I had to use the webcam to capture it.

Linux Support for a Gem April 22, 2009

Posted by Florian in Devices, GPE, kernel concepts, Linux, OpenEmbedded.
Tags: , , , ,

Some time ago I got a nice looking and interesting TOPAS910 evaluation board for the ARM based Toshiba TMPA910 series of SoCs. With its black PCB and golden labels for the expansion ports it is definitely the best looking evaluation board I have seen so far. But its interesting from a technical point of view as well and of course you can run Linux on it.

Topas 910 Board

Topas 910 Board

The TMPA910CRAXBG SoC on the board is based of an ARM9 core clocked with 200MHz and a pile of external interfaces such as:

  • TFT controller
  • USB client
  • NAND and NOR flash
  • SPI
  • Touchscreen
  • ADC
  • SD / MMC
  • UART

The board can be powered from the USB port, has Ethernet, a QVGA TFT display and all necessary interfaces to get started with the SoC.  Some details can be found here.

Board Details

Expansion Connectors

The initial Linux port was made by a company called BPlan known for their Amiga projects. They provide two ports: A real port to the hardware platform and one making use of some proprietary OpenFirmware-like bootloader. The latter is quite useless because it depends on calling its firmware for every hardware access but the 2.6.26 patch, bootloader and documentation they provide on their website are a good start. After a deeper look into the kernel patch it was clear that they left a lot of things to do: Only half of the TFT, NOR flash, USB, Ethernet anf the serial port are supported. It among other lacks a driver for SD, NAND, audio, the joypad and all the GPIO ports.

I wasn’t able to resist and started a small project to improve support for it. I have updated the kernel to 2.6.29, added gpiolib support and drivers for joypad and the small LED display which helped testing the GPIO drivers. Of course I have OpenEmbedded support for it ready and pushed upstream today – even if this still uses the old kernel it is useful to build a tiny userland that is able to live in NOR flash. Now I need to get some storage facility sich as SD or NAND flash working in order to deploy a proper filesystem image.

The TMPA910 is the chip in the BGA case in the center of the image.

The TMPA910 is the BGA case in the center of the image

I would be interested in getting to know any hardware that is using this TMPA910. The results of my work: Sources and a small demo image can be found at KC Labs. We haven’t announced it yet, but its there already: KC Labs is the new Open Source projects website at kernel concepts.


Fun with BeagleBoard and projector devices January 19, 2009

Posted by Florian in Devices, GPE, kernel concepts, Linux, OpenEmbedded.

A PICO projector is a nice thing: An interesting toy, useful tool or whatever you might call it. I got one of these from Textas Instruments in order to prepare small demonstration of an idea… but more about this in a later article. The most intersting question about these PICO projector engines is what they mean for the design of future devices.

From a mechanical point of view they offer a very important improvement: It offers display sizes that are not limited to physical size of a device. This is an interesting perspective for mobile devices. Will we finally get smartphones that provide a display which is useful for office work and internet browsing and still small enough to fit in a pocket. (I have to admit that I carry a quite modern/big smartphone – a Nokia E90 – in my pocket: It fits, but I have to say that there is some room for improvement. :-)

When I read the announcement of the PICO projector at the BeagleBoard mailinglist another device I read about some time ago came to my mind: A projection keyboard.

Keyboard projection on desk

Keyboard projection on desk

Even if it takes a little bit of time to get used to the projection keyboard it is an interesting alternative for mobile use. If its well calibrated for the surface it is a quite usable replacement for a real keyboard and still fits in a pocket. But more important for me: After a closer look at the construction I am convinced that it would be possible to reduce the size quite a lot. You see, I have mobile devices in mind all the time :-)

BeagleBoard with Projector and Keyboard

BeagleBoard with Projector and Keyboard

The BeagleBoard is a nice platform because its performance and interfaces are similar to what we will have in quite some mobile devices soon. Its based on an OMAP3 SoC which is designed for powerful mobile devices and offers all sorts of peripheral controllers like USB host and OTG, TFT controller, SD interface and SPI. Several companies announced OMAP3 based devices already.

For my initial experiments I used the devices you can see in the image above. Apart from the BeagleBoard, a small USB HUB, the projection keyboard and the PICO projector there is a cheap USB Wifi adapter, a serial cable and a sheet of paper. Think about adding a powerful battery (power consumption is a very important topic, especially regarding the projector and the keyboard) – you would end up in a quite small device already. Not too bad, compared to the popular Netbooks but still with some drawbacks and a good mechanical design might be a challenge.

The BeagleBoard here runs a custom Linux filesystem with some GPE and other GTK+ based software built with OpenEmbedded. The latest 2.6.28 kernel OE builds seems to work pretty good, one major improvement seems to be the reliability of the USB OTG port which caused a lot of trouble in my previous tests.

Now I’ll add additional componets to get a more complex environment for playing with components and software I assume to be relevant in near future…

Devices July 28, 2008

Posted by Florian in Devices, GPE, kernel concepts, OpenEmbedded.
Tags: ,

I spend quite some time with Linux on all sorts of interesting devices. There are several ones not yet covered by my blog, so I decided to start a series of postings about devices running Linux. I introduce a new ‘Devices’ category in my blog to cover these hardware related topics.

Currently I am building a GPE filesystem image for the BeagleBoard I won at LinuxTag. They just announced that the board is on sale now.

For the friends of old Geode based web terminals such as the IBM Netvista J320/8365 I have an updated Angstrom based CF card image. It fits on a small 128MB card and comes with GPE and several browsers (gpe-mini-browser, midori and netsurf) to play with. In addition to this external USB touchscreens are supported. The CF image can be found here – if you want to build it yourself you can get kernel and filesystem seperately.

Another new ‘victim’ is the Neon board by Boundary Devices…. but more about these later.

Neon Board

Neon Board

Maemo Summit July 22, 2008

Posted by Florian in GPE, kernel concepts, Linux, Maemo, Source.
1 comment so far

Good news for me… after missing GUADEC and other interesting events it looks like I’ll make it to the first Maemo Summit in Berlin. The list of participants is quite impressive – I guess this will be a really interesting event. Just join us there :-)

I read a few lines about odeviced… anyone else who thinks that using something like this for Maemo might be a goo idea?

I do not have much time left for blogging and coding currently – family and work keep me busy these times. But a few good things are in prgress – OpenSync’s roadmap indicates that they are close to a new release. This will be a much better base for MaemoSync than current SVN trunk. Even GPE makes a little bit of progress. Graham continues fixing various PIM bugs and gpe-memo is close to become ready for its first release.

Have a nice time…