Linaro and i.MX53

I bought an i.MX53 development board a while ago, and just got it sorted out and running nicely. I picked this board over other options because it has SATA. I’ve now attached a 40GB SSD to it, so it has fast local storage.

This development board by default boots from a micro-SD card. You can change the boot option but it involves soldering. I didn’t want to risk breaking the board (and it looks like you’d need steady hands; tiny pads) so I’m using a micro-SD to hold uBoot and the kernel/initrd, and am booting the root filesystem from the SSD.

Linaro is pretty easy to get going. There were some tricks to getting it going on this board, so I thought I’d share them. I’m no expert on Linaro and your mileage may vary; use caution!

You’ll need a machine running Ubuntu/Natty. I used a VM running under Fusion on my Mac, with the card in a USB reader shared to the VM. I installed the latest 11.05-daily image with the ‘linaro-media-create’ command. I had to get the latest version of linaro-image-tools from bzr; the package in the Linaro PPA doesn’t know about the mx53loco architecture. In my case the magic command was:

linaro-media-create --rootfs ext3 --mmc /dev/<card> \
  --binary linaro-natty-alip-tar-20110527-0.tar.gz \
  --hwpack hwpack_linaro-lt-mx53loco_20110527-0_armel_supported.tar.gz \
  --dev mx53loco

That’ll take a while to run, and I had to type ‘y’ once to approve apt installing some packages without known GPG signatures. Don’t run the above while logged in graphically, you’ll hit problems with things automatically mounting filesystems (I think this is devkit-disk or whatever it’s called this week). That’ll stop the kernel re-reading the partition table when Linaro’s scripts change things. I just ran it from a text vty while logged out in the GUI and everything worked OK.

Chuck the card in the i.MX53 and turn the board on. You should see it boot normally if you watch the serial port.

I wanted to get the SSD going as the rootfs. All I had to do was make a filesystem on the SSD, rsync my install over onto it, then create a file /boot/boot.script and chuck this in it:

setenv bootcmd 'fatload mmc 0:2 0x70000000 uImage; fatload mmc 0:2 0x72000000 uInitrd; bootm 0x70000000 0x72000000'
setenv bootargs 'console=tty0 console=ttymxc0,115200n8  root=/dev/sda1 rootwait ro'

I then ran `flash-kernel’. At time of writing this aborts with an error about mismatched subarchitectures. I edited the `flash-kernel’ script in vi and took the check out and everything worked fine.

Now I have a completely silent setup with a 1GHz ARM, SSD, 1GB of memory, audio, VGA, … nice!

This entry was posted in Uncategorized. Bookmark the permalink.

2 Responses to Linaro and i.MX53

  1. Keith says:

    Woah, getting all that setup would have driven me INSANE! #Respect, sir :D

  2. Rune K. Svendsen says:

    This sounds very cool. I’m thinking about attempting this myself. Is iozone in the Natty build running on the board? Could I get you to do a quick benchmark? Something like this:
    iozone -I -a -s 256M -r 4k -r 64k -r 512k -i 0 -i 1 -i 2
    Based on what I’ve seen from videos, using a memory card as the root file system is simply too slow for me. Especially since I’ve become used to an SSD on my stationary computer.

    Also, I’m wondering, only the root file system is on the SSD you say. Does this even affect performance? I mean, the kernel is loaded into memory regardless of what, right? So maybe it would boot faster if the kernel resided on the SSD too, but when booted up the performance would be the same right?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s