Bootstrap a minimal debian rootfs for sunxi boards https://github.com/bleuchtang/sunxi-debian
![]() |
10 years ago | |
---|---|---|
olinux | 10 years ago | |
.gitignore | 10 years ago | |
Dockerfile | 10 years ago | |
README.md | 10 years ago |
Bootstrap a minimal debian rootfs with sunxi kernel and boot files. For now only 3 olinuxino boards are available. All scripts in this repository are generic so it's easy to add a new boad. Please make a pull request if you create and test a new board. I need reviewer for olinuxino lime2 and micro olinuxino boards.
Thanks to lukas2511 for quick bootstrap.
sudo docker pull debian:stable
git clone https://github.com/bleuchtang/sunxi-debian
cd sunxi-debian && sudo docker build -t debian:olinux .
We cannot perform a debootstrap in dockerfile because dockerfile doesn't accept privileged mode. For more details see docker issue
To build the minimal debian rootfs run:
sudo docker run --privileged -i -t -v $(pwd)/olinux/:/olinux/ debian:olinux sh ./olinux/create_arm_debootstrap.sh
Optional arguments:
To build sunxi kernel and boot files run:
sudo docker run --privileged -i -t -v $(pwd)/olinux/:/olinux/ debian:olinux sh ./olinux/create_sunxi_boot_files.sh
Optional arguments:
Find your device card (with dmesg for instance) and put it in a variable.
mmc=/dev/sdc
Make 2 partitions; one for boot files (kernel, file with custom boot args...), and another for root fs.
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
Make SD card bootable, add kernel your previously builded and file with motherboard paramaters.
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/linux-sunxi/arch/arm/boot/uImage /media/usb/
cp olinux/sunxi/script.bin /media/usb/
If you want to do a server without graphical session, you can disable allocated ram for the graphical card. To do that copy uEnv.txt file; This file add custom kernel parameters to save 32MB of ram. If you want to use the graphical card; don't copy uEnv.txt file.
cp olinux/uEnv.txt /media/usb/
umount /media/usb
Copy the rootfs you previously builded with debootstrap, and add firmware and modules build with sunxi kernel.
mount ${mmc}2 /media/usb/
cp -r olinux/debootstrap/* /media/usb/
sync
chmod 1777 /media/usb/tmp/
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
You can now connect to your box via ssh. Default root password is olinux. After your first connection on your box you should run depmod to build moddep file.
ssh root@mybox
depmod -a
That's it ! Now you probably doesn't want do more system administration for your home server so get an eye on yunohost ;)