Bootable SD card
From linux-sunxi.org
Contents |
Identify the card
First identify the device of the card and export it as $card.
card=/dev/sdc
Partitioning
dd if=/dev/zero of=$card bs=1M count=1
sfdisk -R $card
cat <<EOT | sfdisk --in-order -uM $card
1,16,c
,,L
EOT
mkfs.vfat ${card}1
mkfs.ext4 ${card}2
but with recent u-boot it's fine to use ext2/ext3 as boot partition, and other filesystems in the root partition too.
Bootloader
dd if=spl/sunxi-spl.bin of=$card bs=1024 seek=8 dd if=u-boot.bin of=$card bs=1024 seek=32
Boot Partition
mount ${card}1 /mnt/
cp uImage /mnt/
cp script.bin /mnt/
umount /mnt/
Rootfs
here this depends on what distribution you want to install.
Using rootfs tarball
mount ${card}2 /mnt/
tar -C /mnt/ -xjf my-chosen-rootfs.tar.bz2
umount /mnt
the recommended rootfs is ubuntu-alip.
Ubuntu Precise Userspace
Normally you would install it using a rootfs tarball as described in the previous section, but debootstraping it is also an option.
mount ${card}2 /mnt/
debootstrap --arch=armhf --variant=buildd --foreign precise /mnt/
cp /usr/bin/qemu-arm-static /mnt/usr/bin/
chroot /mnt
/debootstrap/debootstrap --second-stage
exit
cat <<EOT > etc/apt/sources.list
deb http://ports.ubuntu.com/ precise main universe
deb-src http://ports.ubuntu.com/ precise main universe
deb http://ports.ubuntu.com/ precise-security main universe
deb-src http://ports.ubuntu.com/ precise-security main universe
deb http://ports.ubuntu.com/ precise-updates main universe
deb-src http://ports.ubuntu.com/ precise-updates main universe
EOT
cat <<EOT >> etc/fstab
none /tmp tmpfs defaults,noatime,mode=1777 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 0
EOT
umount /mnt