[armedslack] ARMedslack says: "Hello World", on the Openmoko Freerunner

Wybrand Lohman w.lohman at chello.nl
Mon Jun 15 08:08:49 UTC 2009


Hi y'all!

Today I inform you that ARMedslack has said 'Hello World" on the Openmoko 
Freerunner. Now this is nothing to get excited about. "Hello World" is all 
she wrote. For now, booting the device gives ~10,000 errors. It complains 
about just about everything and its dog. 

There is no way to interface with the device yet. No access to a shell, no 
method of input either locally or remotely. All these things need to be 
worked on. But! This, to me, is encouraging to continue working on the 
device, as this proved it is possible to install a custom payload and not 
have the device die.

The method I used is crude. What I did was I took the initrd from the 
ARMedslack installer, because that's an environment I am familiar with on x86 
and I've used it before to build a very limited (but effective) network based 
OS. The initrd of Slackwares installer has useful networking and maintenance 
tools while being relatively small, so it's ideal for this sort of work.
I added some minor adjustments in this initrd, and converted it to a jffs2 
filesystem. I flashed that onto the device, and lo! It booted :D

I don't even have a todo list yet. I'm thinking that the mentioned initrd with 
some changes somehow pulls the rest of the ARMedslack installer files over 
NFS so to allow a local install on the device. But this will be Real Slow, so 
I'm considering other options... Thoughts on this are welcome ;-)

Cheers,
Wybrand


This is how I did it:

#######################
# INSIDE QEMU ARMedslack INSTALL #
#######################

# Assuming this is a Full Install, import two packages:
# 1)  'MTD-utils' (Memory Technology Devices)
#	 This is needed to make jffs2 filesystems
# 2) 'initrd-versatile' from the ARMedslack installer
#	 This image is a good place to start the first 
#	 tests on.

#######################
# WARNING
# Do not run this as script
echo "No warranties and all that"
exit

#######################
# MTD-UTILS
# This gets the tools needed to builds jffs2 filesystems:
wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.2.0.tar.bz2

# Install per usual:
tar -xjf mtd-utils-1.2.0.tar.bz2
cd mtd-utils-1.2.0
make && make clean
make install

#######################
# INITRD-VERSATILE
# This gets the ramdisk image:
wget \
ftp.slackware.org.uk/armedslack/armedslack-current/isolinux/initrd-versatile.img

# Create working directory:
mkdir /tmp/moko ; cp initrd-versatile.img /tmp/moko
cd /tmp/moko

# Extract image:
gzip -dc initrd-versatile.img | cpio -id

# Look around for a bit:
ls # This is what the device will look like

# This is an excellent time to make some adjustments to the image.
# I recommend at least adding a 'Hello World' in /tmp/moko/etc/rc.d/rc.S
# At line 160 is a good idea, because as of yet the device doesn't
# accept input and boot hangs on 'Select keyboard'.

#######################
# MKFS.JFFS2
# This creates a jffs2 filesystem from the current directory.
# Relying heavily on defaults, which is probaby not a good idea. More 
# reading is required... when time allows. For now it works.
mkfs.jffs2 -o /path/to/outputfile.jffs2

#######################
# FLASHING THE DEVICE
# Flash the device as normal:
dfu-util -a rootfs -R -D /path/to/outputfile.jffs2




More information about the ARMedslack mailing list