Bootstrap a minimal debian rootfs for sunxi boards https://github.com/bleuchtang/sunxi-debian

Émile Morel 0b5dc0622f add uEnv.txt for custom boot 10 years ago
olinux 0b5dc0622f add uEnv.txt for custom boot 10 years ago
.gitignore 57b096936c rename sunxi directory 10 years ago
Dockerfile be44a16703 Dockerfile - remove useless lines 10 years ago
README.md 7e19b1ec54 README - change modules copy directory 10 years ago

README.md

olinux-a20-lime2

Bootstrap a minimal debian for olinuxino-a20-lime2

Thanks to lukas2511 for quick bootstrap.

Build docker image

sudo docker pull debian:stable
git clone https://github.com/bleuchtang/olinuxino-a20-lime2
cd olinuxino-a20-lime2 && sudo docker build -t debian/olinux .

Build minimal arm debootstrap

We cannot perform a debootstrap in dockerfile because dockerfile doesn't accept privileged mode. For more details see docker issue

sudo docker run --privileged -i -t -v $(pwd)/olinux/:/olinux/ debian/olinux sh ./olinux/create_arm_debootstrap.sh

Build sunxi kernel and boot files

You shoud have both debootstrap and sunxi directories in olinux/

sudo docker run --privileged -i -t -v $(pwd)/olinux/:/olinux/ debian/olinux sh ./olinux/create_sunxi_boot_files.sh

Install on a sd card

Partitioning

mmc=/dev/sdc
parted -s ${mmc} mklabel msdos
parted -a optimal ${mmc} mkpart primary fat32 1 16MiB
parted -a optimal ${mmc} mkpart primary fat32 16MiB 100%
mkfs.fat -F 32 ${mmc}1
mkfs.ext4 ${mmc}2

Installation

mkdir -p /media/usb
dd if=olinux/sunxi/u-boot-sunxi/u-boot-sunxi-with-spl.bin of=${mmc} bs=1024 seek=8
mount ${mmc}1 /media/usb/
cp olinux/sunxi/script.bin /media/usb/
cp olinux/sunxi/linux-sunxi/arch/arm/boot/uImage /media/usb/
umount /media/usb
mount ${mmc}2 /media/usb/
cp -r olinux/debootstrap/* /media/usb/
sync
rm -rf /media/usb/lib/firmware/
cp -rf olinux/sunxi/linux-sunxi/out/lib/firmware/ /media/usb/lib/
sync
rm -rf /media/usb/lib/modules/
cp -rf olinux/sunxi/linux-sunxi/out/lib/modules/ /media/usb/lib/
sync
umount /media/usb

TODO

  • change Install on a sd card to a script ?

Some links:

You probably want to Build your own docker image

  • Because it's quick and easy; tutorial here
  • Because you shoudn't trust regitry images; demonstration here

External links