Bootable SD card

From linux-sunxi.org
Jump to: navigation, search

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

See also

External

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox