I am running out of names for computers

Somewhere in 2010/11 I decided to clean up mess of naming machines at home and decided to go with character names from “Winnie the Pooh” books (Polish edition). Today I got new developer board and had to spend a moment to get a name for it.

So “klapouchy” (Eyeore) will be new name for DragonBoard. Maybe not best one but most of the names are already taken:

  • krzys (Christopher Robin) is my router (because Chris decides who can enter Hundred Acre Wood which is the name of my WiFi network)
  • puchatek (Winnie the Pooh) is main desktop
  • lumpek (Lumpy) is conference laptop (it was lucek before because it got Ubuntu Lucid as first system)
  • gofer (Gopher) is Efika MX Smartbook
  • krolik (Rabbit) is Samsung Chromebook
  • malenstwo (Roo) is Pandaboard (there were malenstwo-a1 and malenstwo-ea1 when I had two boards)
  • prosiaczek (Piglet) was MX53 Quickstart
  • kangurzyca (Kanga) is my wife laptop (she chosen the name)
  • sowa (Owl) is another router
  • tygrysek (Tigger) is my VPS (at beginning it was up/down/up/down all the time)

So most of the names from books are already taken. There are also Disney movies which adds few new ones (like Gopher and Lumpy) and cartoons (which I am not fan of). In worst case one day I will start re-using names or add names from other story.

What I used before? Desktop was “home” or “hrw”, Dell laptop (now “kangurzyca”) was “maluch” (small) due to 12″ size, “lumpek” was “lucek” due to Ubuntu Lucid installed and rest was named by hardware name (which is a default in OpenEmbedded).

How you are naming your machines?

Let’s compare some cpu ;)

When I bought Samsung Chromebook friend started “nbench” on it. So I did same on my conference laptop. None of devices won…

Idea of testing cpu power was sitting somewhere at back of my head and finally I decided to just run one simple command available on nearly every GNU/Linux based system: “openssl speed”. Sure, on some systems it will use hardware accelerators, on others (or not) some options enabled to get more speed (like ARM assembly version which is not enabled in Debian/Ubuntu systems). But it is something what anyone can run at home.

Table may be hard to decipher so I also give it as Google Docs. It also has few more devices listed and whole tables (one below is for 8192 size samples).

Devices in table are:

  • my Intel Core i7-2600K desktop
  • my Intel U7300 (ultra low voltage) conference laptop
  • Exynos5 Dual powered Samsung ARM Chromebook
  • Exynos4 Dual powered Tizen development platform (got rid of it today)
  • i.mx515 powered Efika MX Smartbook
  • Beaglebone with AM335x cpu
  • Sheevaplug (as only armv5te device which can compare with other entries)

Devices were running different versions of OpenSSL under different systems. It is listed in Google Docs document.

CPU Core i7 U7300 Exynos 5250 Exynos 4210 i.mx515 AM335x Feroceon 88FR131
Architecture x86-64 x86-64 armv7a (a15) armv7a (a9) armv7a (a8) armv7a (a8) armv5te
MHz 3400 1300 1700 1000 800 720 1200
OpenSSL version 1.0.1c 1.0.1c 1.0.1c 1.0.0f 1.0.1a 1.0.0i 1.0.0d
 
md4 1111896 393198 328471 205906 143746 103068 119367
md5 693969 249301 224040 148089 85401 53365 86518
hmac(md5) 686511 248859 225839 149153 86728 54981 87651
sha1 721528 222770 147739 71233 49525 35446 38123
rmd160 247453 93500 106935 57790 40188 26318 30803
rc4 894615 225660 153949 86829 63770 29364 45036
des cbc 73703 27191 37811 21299 14966 8601 8829
des ede3 28091 10578 14183 7806 5526 3005 3130
seed cbc 78204 31181 39002 24361 17650 11671 13087
rc2 cbc 44327 13839 23691 15494 10897 7393 10699
blowfish cbc 133455 52004 49471 37540 23536 15654 20584
cast cbc 118852 49162 55326 31738 22848 15298 20590
aes-128 cbc 127378 95955 65360 22386 16477 10876 11697
aes-192 cbc 106141 81002 55973 18653 13912 9221 9968
aes-256 cbc 90487 69148 48564 16419 12091 7981 8677
camellia-128 187958 44403 58698 15447 23325 15507 14197
camellia-192 141346 33180 45867 12090 18300 12261 11138
camellia-256 141422 33272 45927 12050 18383 12247 11131
sha256 216766 86791 64334 23427 18148 12022 13040
sha512 336729 135935 31126 8877 5321 2484 3221
whirlpool 121211 47920 27820 4602 3840 2262 3085
aes-128 ige 122085 43018 63218 22126 15590 10469 11219
aes-192 ige 102133 36107 54269 18696 13355 8904 9647
aes-256 ige 87514 31001 47636 16307 11635 7735 8433
ghash 1938609 168034 35479 12136

Most interesting columns are U7300 and Exynos 5250 ones — 3 years old laptop which I bought for conferences compared to Chromebook. Looks like for next conferences/events I will rather go with Chromebook not UL30A. This will give me one or two hours of battery life less but it is much lighter device at same time. But have to test it first for few days to check is it comfortable enough for daily use.

New thing to buy: Samsung Chromebook

Sometimes it is good to take a look at IRC channel in the evening. There will be new chromebook from Samsung. Someone may say “So what? It’s just yet another chromebook not worth looking at.” but I will disagree.

What is special in this device? Specification of course 😉 Exynos5 Dual (5250) which has 2 Cortex-A15 cores, 2GB of memory, 16GB of eMMC (a bit small but 64GB sd cards exist) and all that in 11.6″ netbook case. There is no ARM device on a market which could be compared and run open source operating system.

I hope to get one soon — online stores will sell it on Monday. From what I know there will be a way to run other operating system than ChromeOS — I will switch to Ubuntu or Debian on first day probably.

And finally will replace Efika MX Smartbook.

What interest me in ARM world

When I published my last post about ARM boards there were many questions and suggestions with interesting devices. Thank You all for it.

But there were also suggestions about ARM9 or ARM11 based devices. So I decided that it is good time to write what interest me now in ARM world.

But first some inventory. I had/used/have several devices with ARM cpu:

  • StrongARM (armv4) one:

    • Sharp Zaurus SL-5500 (which took me to ARM world)
  • ARM920 (armv4t) ones:

    • Openmoko GTA01 bv3, bv4 (s3c2410)
    • EDB9301 (EP9301 cpu)
    • Sim-One (EP9307)
  • ARM926 (armv5te) ones:

    • Sharp Zaurus sl-5600 (pxa250)
    • Sharp Zaurus c760/sl-6000 (pxa255)
    • Sharp Zaurus sl-c3000 (pxa272)
    • Sheevaplug (kirkwood)
    • Atmel devboards (at91sam9263, at91sam9m10)
    • ST-Microelectronics/ST-Ericsson NDK-15, NHK-15 (st88n15)
    • Nokia 770 (omap1710)
    • Linksys NSLU2 (ixp425 iirc)
  • ARM1136 (armv6) ones:

    • Nokia N810 (omap2430)
    • Bug r1.0, r1.2 (i.mx31)
  • Cortex-A8 (armv7a) ones:

    • Beagleboard B7, B7, C3 (omap3430)
    • Nokia N900 (omap3430)
    • Nexus S (exynos3)
    • Genesi Efika MX Smartbook (i.mx51)
    • Freescale Quickstart (i.mx53)
  • Cortex-A9 (armv7a) ones:

    • Pandaboard EA1, A1 (omap4430)
    • Archos G9 80 (omap4430)

All of that during last 8 years. Most of my ARM live so far was around ARM926 based devices (some of them still can not be listed here) and I do not want to go there again. Kirkwood core was fastest one with 1.2GHz clock and 512MB of RAM it was really fast machine. I only missed Serial ATA in my Sheevaplug (rev 1.0) but even with hard drive on USB it was nice improvement.

Then I played a bit with ARM11 processors. Ok, they were faster than most of ARM9 cpus but I already had experience with Sheevaplug. And after few months first Cortex-a8 board landed on my desk — I got Beagleboard B7 from Bug labs as test platform for their new device. This was improvement!

I still remember my reaction when connected it to normal LCD monitor and saw it used at 720p resolution (1680×1050 was a bit hard for omap3). Moved to Nokia N900 few months later and found that fast cpu means nothing when paired with slow storage and not enough memory for system.

So today I prefer to not look below Cortex-A9 (or comparable cores like ones from Qualcomm or Marvell). Hope to play one day with Cortex-A5 (which should replace ARM926 one day) just to see how low-end armv7a cpu behave.

And wait for ARMv8 to hit market.

Flashing U-Boot on Efika MX Smartbook

From time to time I read posts where people wrote that their Efika MX Smartbook does not boot any more. The only thing which it does is white power led blinking about twice per second. Standard reply in such case is “send device back to Genesi”.

Some time ago a friend of mine borrowed Efika MX Smartbook from me. During his experiments he managed to get netbook into such state. I have serial/jtag debug dongle so decided to take a look at it (and unbrick device). I managed to fix it but also somehow broke serial port so can not check why my automate way does not want to work.

What needs to be done to get Smartbook back to live? Few things:

Needed steps:

  1. Repartition SD card. You can use any tool for it. All what has to be done is set up first partition at 1MB offset so we have space for U-Boot.
  2. Format partition (if needed) as FAT.
  3. Run “sudo dd if=u-boot.imx of=/dev/sdd bs=1k seek=1” (replace /dev/sdd with your SD card).
  4. Put card into SD slot of Efika MX Smartbook.
  5. Take out keyboard — you need to use small screwdriver to push holes near F1, F6, F10, End keys.
  6. Change DIP switches – they are in a middle of motherboard. You need to reverse default setup.
  7. Power on your Efika. There should be U-Boot output on screen. You may even get system loaded up at this step 😉
  8. Take out SD card and copy ‘boot.scr’ to it.
  9. Power off Efika, put SD card and boot.
  10. Old U-Boot will be stored into NOR flash (output will be visible on screen).
  11. Change DIP switches – they are in a middle of motherboard. You need to reverse them to default setup.
  12. Put keyboard back.
  13. Take out SD card.
  14. Boot your Efika MX Smartbook — operating system should load.

Some information:

  • old U-Boot got flashed because new one was not tested for NOR boot
  • finding out information for this how to took me few hours
  • this procedure can be done without Efika MX Smartbook serial/jtag dongle
  • similar procedure can be used for Efika MX Smarttop but as I do not have such I can not offer help

Thanks goes to:

  • Genesi for giving me free Smartbook and serial/jtag dongle
  • Marek Vasut for his work on mainlining U-Boot support for Efika MX devices
  • Matt Sealey for some hints on IRC

Square board with five edges

Some time ago I got yet another developer board from Linaro — this time it was i.mx53 Quickstart also known as mx53 LOCO. At that time I only found time to power it on and check does it work at all.

Yesterday I booted it with Ubuntu desktop image from Linaro but without connecting to display (I have HDMI addon so can use VGA and HDMI outputs). Lot of lights (voltage controls mostly) appeared on board — funny thing is that to power some of them all you need is VGA or HDMI cable connected.

Today I went shopping… Board comes with power supply (did not used), USB cable and 8GB microSD card. Last item is important as mx53loco boots from it by default — I do not know does it checks SD card too. What I lacked was Serial ATA -> E-SATA cable for my external hard drive. Yes… SATA->ESATA as board has standard connector for connecting drives directly but as it lacks SATA power connector (about which I wrote already) I had to use external case. Good thing is that local electronics shop had those cables available. Disk speed is quite nice:

Serial ATA disk speed
Serial ATA disk speed
Same disk on USB
Same disk on USB

Compare it with SD card:

SD card speed
SD card speed

Which interface you prefer for storage? 🙂 I hope that new Efika MX53 from Genesi will have some good Serial ATA storage inside.

But then I got hit by other issue… Mounting of board started to be a problem. I hope that next version of board will be bigger. This one is too packed — and HDMI addon makes it even worse at it adds 5th edge to square board. In past I wrote a post about perfect developer board and some points apply here. What I do not like:

  • too small amount of space around mounting holes — hard to reach with 5mm key
  • VGA and RS232 connectors forced me to use very tiny screws to be able to mount board to my board plate
  • Power button is hidden behind screw and hard to reach
  • HDMI addon makes use of Reset and Power buttons very hard — have to use pen or stylus instead of finger when cable is connected
  • leds are too bright — will have to put some duct tape on them

Is there something I like? Of course — I do not want to only complain 😉 This is the only cheap developer board from Linaro supported ones with native Serial ATA interface (iirc Samsung cpu could have it but Origenboard does not have connector). Two SD interfaces allow to prototype devices which require extra expansions in case of Beagleboard or Pandaboard. And this is smallest devboard I ever used (cause I never played with Gumstix — but even they usually run in some carrier boards). And compare to Texas Instruments boards it comes with cables and power supply. I plan to make small distcc/icecream farm from my ARM boards and this one will be for use one of nodes.

Linux 2.6.38 on Efika MX Smartbook

Some time ago I updated my Efika MX Smartbook to run latest natty (which it was running since I got it) and then to newer kernel: 2.6.38 version.

Most of informations how to do it I got from guys sitting on #efika irc channel. There are 3 git repositories involved:

Fetch/checkout all three into separate directories.

First we need sdma firmware. Do not ask me what it is — you will need it to build kernel. Cd into directory, call “make” then copy sdma-imx51-to3.bin into firmware directory of linux kernel sources.

Second step is applying patches to kernel. Cd into linux dir, checkout a10aabd5e313ec6481569be20d120191692b4ca6 revision (this is which I used) and call:

QUILT_PATCHES=../rtp-patches/ quilt push -a

This will apply all required patches. Grab my kernel configuration and store it under .config name. Feel free to make some changes into it. Then build kernel.

How to get kernel to device is left for readers — if you know how to build then you are expected to know that.

Next step (we nearly finished) is to boot kernel. So reboot machine and watch how it gets up and running. With my kernel config you will probably see nothing… Cause I moved lot of things into modules. Edit /etc/modules file and add:

  • snd-soc-imx-3stack-sgtl5000 — sound driver
  • efikasb_rfkill — needed for wifi to work
  • mx5fb — framebuffer

Do not expect that 2d/3d stuff which works on official images (with non-free packages) will work. But if you will check modules then you can also look what is in NOR flash (but better do not play with it):

hrw@efika:~$ cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00001000 “u-boot”
mtd1: 00010000 00001000 “config”
mtd2: 00010000 00001000 “test”

Is it worth playing? Yes and no. Good is that kernel is more fresh then 2.6.31.14.20 which was installed, but also it lost some 2d/3d acceleration support. But who knows… Maybe one day 🙂

Debug board for Efika MX Smartbook

I finally found a time to connect debug board to Efika MX Smartbook. I got that dongle about week ago but had more important things to do.

Package arrived in small box with BBRV signature on it:

Inside was “Lange 3 DB Board” made by Pegatron company. This provides ARM JTAG and serial connectors.

To connect it with Efika MX Smartbook first thing to do is take out keyboard. To do this small screwdriver is needed to push in four places at the top edge:

Inside you see empty space for mini-pciexpress card (but only USB signalling) which is used for 3G modems. On the right is half size mini-pciexpress card (also USB only ofcourse) wifi card based on Ralink 3273 chipset. Debug board cable needs to be connected to CONN1501 connector under 3G modem space (contacts bottom).

Keyboard can be put back into place so it is possible to use serial/JTAG and keyboard at same time:

What for I would use debug board? Time will show. So far I found out that kernel based on 10.08 Freescale code drop has worse battery driver then previous one (10.07 based). After one hack I got at least system which boots normally.

Efika MX SmartBook hacking day 3

Today I spent some time on hacking Efika MX Smartbook to be more useful.

First thing which got fixed was display panel placement — one kernel compilation later I had it working. Kernel is provided in my Efika MX download zone. No warranty etc of course. Sources available on request (or you can fetch them from gitorious repository).

Then I got rid of initrd — kernel has everything built-in to boot from internal drive so why bother with reading few megabytes on each boot? Here I looked at /boot/ and after few reboots I got into system which does not need initrd to start.

But editing “/boot/boot.scr” by hand was not what I would call handy. So I checked flash-kernel modifications done by Genesi, cleaned it up and proposed for merge. Resulting package is also provided in download zone.

What next? Time will show. Maybe will look at USB suspend/resume problem or again at making KDE fly (this needs some rebuilds done first).

I got Efika MX Smartbook from Genesi

Yesterday Konstantinos Margaritis from Genesi USA was giving out about 40 Efika MX Smartbooks and few Efika MX Smarttops. I had that luck to became owner of one of those Smartbooks.

That’s nice device. Powered by 800MHz Freescale i.MX515 cpu with 512MB ram has enough juice to be used as web/email netbook. After charging I got nice message from kernel’s power supply subsystem: 427 minutes of battery life — nice value for just 3-cell battery (6-cell is an option according to box informations and website). What else inside:

  • 10.1″ TFT-LCD, 16:9 with LED backlight, 1024 x 600 resolution
  • 3D Graphics Processing Unit
  • Multi-format HD video decoder and D1 video encoder
  • 16GB Nand Flash
  • External MMC / SD card slot (up to SD v2.0 and MMC v4.2)
  • Internal MicroSD slot
  • 802.11 b/g/n WiFi (with on/off switch) – Ralink chipset
  • Bluetooth 2.1 + EDR
  • 2 x USB 2.0 ports
  • Phone jack for headset (audio in / out)
  • Built-in 1.3MP video camera
  • Built-in microphone
  • Built-in stereo speaker

That “16GB Nand Flash” in reality is 15GB Flash-on-module connected to PATA controller. According to “hdparm” tests it makes 22-24MB/s which is quite for this type of devices. My class 10 SD card managed to get 14MB/s (compare it with 5.3MB/s in BeagleBoard) so storage options are nice. Ah… there is also MicroSD slot behind the battery but I did not tested how fast it is.

Note one thing: by default Smartbook boots from internal PATA drive but if there is SD card in slot then it is used for booting. This allows to test development kernels without need of getting to U-Boot. I got hit once by that because card which I used to transfer some data had OMAP3 kernels on it… As you can imagine it did not booted properly…

After I think hour or two I got it upgraded from Ubuntu 10.10 “maverick” to “natty” and got hit by some modifications done by Genesi. After copying “/boot/” from other Efika MX I got it working again. Next days will bring me working KDE 4.5.2 desktop (will have to rebuild some packages for it).

My plans for it? Mobile ARM test platform + laptop replacement for events where I do not need more then email + web + IM.