Bootable SD kortelės paruošimas
Kadangi jau paruošėme bootloaderį ir susikompiliavome kernelį, galime juos įrašyti į sd kortelę ir paleisti sistemą. Tačiau prieš tai dar reikia pasirūpinti pačia linux aplinka (programomis). Jūsų laimei kiekvienos komandos atskirai kompiliuoti nereikės, yra priruošta daug failų sistemos medžių (rootfs/filesystem tree), kuriais be problemų galėsite naudotis.
Keli pavyzdžiai:
- Linaro Ubuntu nano (tik konsolinė aplinka) http://releases.linaro.org/ubuntu/images/nano/15.12/linaro-vivid-nano-20151215-714.tar.gz
- Linaro Ubuntu developer (konsolinė aplinka, papildomi kompiliavimo įrankiai) http://releases.linaro.org/ubuntu/images/developer/15.12/linaro-vivid-developer-20151215-714.tar.gz
- Linaro VIVID (grafinė aplinka, prikišta visokių nesąmonių) http://releases.linaro.org/ubuntu/images/gnome/15.12/linaro-vivid-gnome-20151215-714.tar.gz
- Arch linux http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz
Kurią sistemą pasirinksite nėra labai svarbu, tai tiesiog skonio reikalas. Kai jau išsirinkote, galite ir parsisiųsti:
1 | wget -c http://my.favorite.distro/arch.tar.gz |
SD kortelės paruošimas
Išvalome sd kortelę:
1 | dd if=/dev/zero of=/dev/sdX bs=1M count=10 |
Sukuriame skirsnius (particijas). Pirmasis skirsnis turėtų būti atitrauktas nuo pradžios, nes pradžioje įrašysime bootloaderį.
| Pavadinimas | Formatas | Pradžia | Dydis |
|---|---|---|---|
| BOOT | fat | 1MB | 100MB |
| RootFS | ext4 | 100MB | bent 4GB, priklauso nuo tavo pasirinktos distribucijos |
Partition table kūrimui naudojau cfdisk:
Dabar suformatuojame skirsnius:
1 | mkdosfs /dev/sdX1 |
Išarchyvuojame rootfs:
1 | tar xpvf <mano/distro>/arch.tar.gz -C /mnt/rootfs/ |
Nukopijuojame kernelį, device-tree ir kernelio modulius:
1 | cp <path to kernel>/deploy/zImage /mnt/boot/ |
Pakoreguojame fstabą. SD kortelės linuxuose enumeruojamos kaip /dev/mmcblk0pX, todėl jas dabar ir užregistruosime fstab’e:
1 | /dev/mmcblk0p2 / auto errors=remount-ro 0 1 |
Jeigu reikia, galima paruošti ir tinklo konfigūraciją:
1 | auto lo |
Įrašome bootloaderį. Atitraukiame nuo pradžios per 8 sektorius, kad tilptų ir partition table:
1 | dd if=<path to u-boot>/u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8 |
Sukuriame bootloaderio config failą:
1 | mkdir -p /mnt/boot/extlinux/ |
1 | label Mano Linux |
Viskas baigta, tereikia išmuontinti sd kortelę:
1 | umount /mnt/boot/ |
Galite kišti sd kortelę į savo kompiuteriuką ir bootinti. Jeigu rašo, kad neranda tokio dtb, blogai pavadinote device-tree failą bekonfigūruodami u-boot ir dabar reikės arba perkompiliuoti u-boot arba pervadinti failą į tokį, kokio nori u-boot.
Username ir slaptažodis priklauso nuo distribucijos. Linaro distribucijose vartotojo vardas: “linaro”, be slaptažodžio. Arch’e - alarm/alarm.