embedded systems English articles OpenWrt qi-hardware Tech

OpenWrt on the Ben NanoNote!

The Ben NanoNote I got a few weeks ago by qi-hardware is now running OpenWrt!

The patch, published by the manufacturer ingenic itself, which provides linux support for their SoC’s (System-on-a-Chip’s), is roughly cleaned up, unneeded stuff is cleared out and it’s levelled up to (originally the patch refers to and – running!

That’s the good news…

…now the bad ones:

  • The mentioned patch by ingenic contains not only linux kernel source but also binary data – ELF-formatted binary code for the mips instruction set! For more details you may want to look at my post on the developer-mailinglist ( They patch in a proprietary mtdblock-replacement which seems to differ to the original in nand-flash error correction and handling of bad blocks. That’s a no-go – not just because of the reaosons of open hardware/software but also as not being able to forward the patchset to a newer kernel version.
  • Strange problems appear with the MMC / SD-card hardware. Randomly the hardware does not recognize the card correctly (more precisely, the card is recognized but not the partition table why the kernel panics because of not finding it’s given root device). Spent days not on this issue, but weren’t able to figure out yet what’s causing this kind of behaviour 🙁

What’s next?

  • get this bloody MMC/SD-card issue fixed
  • get the NAND flash supported – either we get the sourcecode of the modified mtdblock driver or get it supported elsewise
  • further cleanups of the existing patchset
  • level up the patchset to a recent kernel version (2.6.31 would be best – much stuff went upstream / is now handled nativly, e.g. nand-chips > 4 GB don’t need the ingenic hacks anymore, also there’s a new interface for gpio-based keyboards which should make it pretty easy to write a keyboard-driver and allows us to get rid of the existing stuff).
  • (re)writing some (of the) drivers (e.g. MMC/SD-card support and support for SDIO, keyboard-driver as mentioned above)

I was in Hamburg this weekend meeting Lars for a hack-session on the Ben NanoNote. He’s also part of the OpenWrt-team and now another proud owner of such a device 🙂

Besides his ongoing contributions to the Openmoko-project, hopefully he will also help us* spending some of his time on the NanoNote – thank’s a lot at this point for your great work and efforts!

*i’m happy to announce that last week I “became an official developer of the [qi-]core team” with “focus
on the OpenWrt integration” – let’s see what will happen 🙂

6 replies on “OpenWrt on the Ben NanoNote!”

It isn’t that trivial :/

Even with using rootwait or rootdelay=60 – after the device is powered on for some time, next time it won’t recognize the SD-card anymore with DMA enabled.

You have to wait several hours – powered off – until the device will recognize the mmc correctly while booting again.

This may sound like the chip is overheating…

But the “funny” thing is: Once it’s bootet (from MMC or NAND) I’m able to perform I/O-operations on MMC for days – reading, writing, verifying – everything without problems (booting from NAND and mounting the MMC always works).


It always pains me to hear about another open-source project that is having trouble with SD cards.

OLPC XO-1, OpenMoko, SheevaPlug, NanoNote… the list goes on and on. All are small embedded systems running Linux. All have had trouble with SD. This has been going on for years, and I’m not sure any of these projects has really solved the problem. Even people running Linux on the EEE-PC have reported problems.

The SD card problem on OLPC XO-1 was noticed almost two years ago. They worked on this a long time, but the interim solution was to post a list of “believed to be compatible” cards on the wiki. I don’t know if they ever really got beyond this interim solution. In other words, I can pop any old SD card in my camera and it will Just Work, but will it work reliably if I put it in an XO-1 with the latest patches? I don’t know.

Here’s the first bug report I saw relating to this kind of problem, maybe it will give you some clues:

If you have any kind of suspend/resume functionality running on your system, that would be the first thing to look at — disable it and see if the problem goes away.

I hope this turns out to be a minor problem for you, easy to solve. Looking forward to the NanoNote! Good luck…

watched the same problem with FR = 2.6.28. what size of card used? may try 512MB card from FR’s kit?

watched the same problem with FR 2.6.26 and less. think that the problem will be solved with 2.6.28 or high. what size of card used? may try 512MB card from FR’s kit?

(pls. delete prev. msg – “>” not visible here)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.