Update: success
I successfully got a modified rootfs booting:
# uname -a
Linux skywirelessbooster 2.6.22 #1 Fri Oct 25 21:46:20 EEST 2013 mips GNU/Linux
# fwversion
Responses:
sysmgr-0:fwversion 1.0.0.31
# ls -l /etc/test
-rw-r--r-- 1 root root 8 Jan 22 2014 /etc/test
# cat /etc/test
Success
This worked with dualimage=disabled set in nvram, a modified rootfs image and stock sky kernel/boot.
Worth noting that the 'rootfs' partition (accessed via load/save/readflash/writeflash commands) actually contains the boot, kernel and rootfs. So if you want to create a custom one, you will need to generate a squashfs image for the rootfs and concatenate it onto the end of the boot and kernel images.
I was stuck for a while with mksquashfs, it was rejecting any squashfs images I created. Eventually it worked using 'squashfs-3.2-r2-wnr1000' version from firmware-mod-kit
To write a new rootfs partition from CFE, you'll need to get tftpd working on a laptop/PC then:
load -tftp -raw -addr=0x80200000 192.168.2.103:newrootfs.bin -max=3599922
writeflash rootfs 0x36ee32
This copies the newrootfs.bin file from 192.168.2.103 (via tftp) to memory address 0x80200000. Then, the writeflash command copies the contents of the memory at 0x80200000 to the rootfs partition (at 0xDA580).
You might want to backup the contents of the partitions first:
readflash rootfs 0x003CFFFF
save 192.168.2.103:rootfs_backup.bin 0x80200000 0x003CFFFF
This does the opposite, copies the contents of the rootfs partition into memory (at 0x80200000), then transfers that over tftp to rootfs_backup.bin at 192.168.2.103.
Sidenote, I was also able to get the original Air4400 firmware booting this way.
Next up, building an OpenWRT image.