I was able to boot the stock APC kernel and U-Boot with the redsleeve rootfs on an SD card.  To do so you need to:

  • Create a partition on the SD card in some linux readable format (I used ext3)
  • Extract the redsleeve rootfs on the card (striping the first layer of the contents of the tar ball)
  • Extract the kernel_modules_WM8710.120130.1629.tgz (found in the binary apc firmware download) over the rootfs
  • Modify /etc/fstab to make /dev/mmcblk0p1 your root partition and

comment out the /dev/sda1 /boot partition.  Also, change the root partition type to be whatever you made it in step one.

  • Add /etc/init/ttyS0.conf with the following contents:
start on stopped rc RUNLEVEL=[2345]
stop on starting runlevel [016]


pre-start exec
/sbin/securetty ttyS0

/sbin/agetty -L /dev/ttyS0 115200 vt102
  • Finally move the SD card to your APC and boot the standard kernel with the following options:
nandrw r ${kernel-NAND_ofs} 0x1000000 ${kernel-NAND_len}
setenv bootargs mem=512M root=/dev/mmcblk0p1 init=/sbin/init noinitrd ro console=ttyS0,115200n8
bootm 0x1000000

This will boot you to a login prompt where you can setup networking and install openssh-server with will allow you to ssh in. So what do we have?

[root@localhost proc]# lspci
02.00:01.0 IDE interface: VIA Technologies, Inc. Device 1359
03.00:02.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 84)
04.00:04.0 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 90)
05.00:05.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)
06.00:06.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)
[root@localhost proc]# cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 532.24
Features : swp half thumb fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
15.CPU part : 0xb76
CPU revision : 7

Hardware : WMT
Revision : 0000
Serial : 0000000000000000

[root@localhost proc]# free -m

total used free shared buffers cached
Mem: 449 441 8 0 23 266
-/+ buffers/cache: 151 297
Swap: 0 0 0

[root@BTLocal ~]# cat /proc/mtd
dev: size erasesize name
mtd0: 00d00000 00010000 "filesystem-SF"
mtd1: 00280000 00010000 "kernel-SF"
mtd2: 00050000 00010000 "u-boot-SF"
mtd3: 00010000 00010000 "u-boot env. cfg. 1-SF"
mtd4: 00010000 00010000 "u-boot env. cfg. 2-SF"
mtd5: 00010000 00010000 "w-load-SF"
mtd6: 00100000 00100000 "w-load-NAND"
mtd7: 00900000 00100000 "u-boot env. cfg. 1-NAND"
mtd8: 00900000 00100000 "u-boot-NAND"
mtd9: 00800000 00100000 "kernel-NAND"
mtd10: 00600000 00100000 "initrd-NAND"
mtd11: 10000000 00100000 "filesystem-NAND"
mtd12: 00200000 00100000 "u-boot-logo"
mtd13: 00400000 00100000 "kernel-logo"
mtd14: 40000000 00100000 "android-data"
mtd15: 08000000 00100000 "android-cache"
mtd16: 25900000 00100000 "LocalDisk"
[root@localhost etc]# uname -a
Linux localhost #14 Wed Mar 14 17:32:30 CST 2012 armv6l armv6l armv6l GNU/Linux

If you’d like the board to always boot redsleeve you’ll need to modify the u-boot environment:

setenv bootargs mem=512M root=/dev/mmcblk0p1 init=/sbin/init noinitrd ro console=ttyS0,115200n8
setenv redsleeve "nandrw r ${kernel-NAND_ofs} 0x1000000 ${kernel-NAND_len}; bootm 0x1000000"
setenv bootcmd "run redsleeve"

This will change the env settings and write them to flash, so make sure you have a backup of your default environment if you’d like to set it back at some point.  You can see the full output from the boot process here.

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.