IMPORTANTE: Se toma como dispositivo de la memoria sd a "/dev/mmcblk0", esto puede variar en sistema. Chequear previamente mirando los mensajes del sistema cuando se conecta la memoria.
# tail -f /var/log/messages
kernel: [28809.763463] mmc0: new high speed SDHC card at address aaaa
kernel: [28809.785516] mmcblk0: mmc0:aaaa SU08G 7.40 GiB
kernel: [28809.788804] mmcblk0: p1 p2
Primreo preparar la memoria micro sd, crear una nueva tabla de particiones DOS y despues la particion.
# fdisk /dev/mmcblk0
o
w
Dejo 2mb libres al inico (offset) para el uboot y la paticion de 2G menos los 2M del uboot(usados previamente).
# fdisk /dev/mmcblk0
n
p
1
2048
+2046M
w
Chequeo que todo haya quedado bien:
# fdisk /dev/mmcblk0
p
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 4192255 2095104 83 Linux
q
Formateo la nueva particion usando el sistema de archivos ext4.
# mkfs.ext4 /dev/mmcblk0p1
La instalacion se realiza sobre los 2M libres previo a la particion.
/U-BOOT# dd if=spl/sunxi-spl.bin of=/dev/mmcblk0 bs=1024 seek=8
23+1 records in
23+1 records out
24064 bytes (24 kB) copied, 0.0134392 s, 1.8 MB/s
/U-BOOT# dd if=u-boot.bin of=/dev/mmcblk0 bs=1024 seek=32
221+1 records in
221+1 records out
226996 bytes (227 kB) copied, 0.0861941 s, 2.6 MB/s
# mount /dev/mmcblk0p1 /mnt
# rsync -aAXv ROOTFS/* /mnt --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,qemu-arm-static}
# sync
/KERNEL# cp arch/arm/boot/uImage /mnt/boot
/KERNEL# make INSTALL_MOD_PATH=/mnt ARCH=arm modules_install
Obtener un archivo modelo de seteo IO para la cubieboard del repositorio sunxi.
/# cd SUNXI-TOOLS/
/SUNXI-TOOLS# wget https://raw.github.com/linux-sunxi/sunxi-boards/master/sys_config/a10/cubieboard.fex
Este es el momento de setear la direccion MAC. Como la NIC no tiene eeprom, esta es seteada durante el arranque.
/SUNXI-TOOLS# vi cubieboard.fex
[dynamic]
MAC = "000000000000"
Compilarlo y copiar el texto como referencia.
/SUNXI-TOOLS# ./fex2bin cubieboard.fex /mnt/boot/script.bin
/SUNXI-TOOLS# cp cubieboard.fex /mnt/boot/
En el directorio de u-boot previamente habia quedado un archivo con variables de arranque, copiarlo junto al de texto.
/U-BOOT# cp boot.cmd boot.scr /mnt/boot/
En este punto el sistema estaria listo. Sync para garantizar que no hay transferencia pendiente y desmontar.
/# sync
/# umount /mnt
Colocar la tarjeta en la Cubie y probar. Al momento de postear esto desde mis notas, repeti secuencialmente cada uno de los pasos y termine con un login debian en el monitor. Al ver el inicio del arranque por serial, se ve unos errores del u-boot que todavia no investigue, pero el sistema levanta sin problemas.
Algunas explicaciones:
http://www.denx.de/wiki/view/DULG/WarningBadCRCUsingDefaultEnvironment