Apabila pembangunan baru bermula, selalunya tidak jelas pakej mana yang akan pergi ke rootfs sasaran.
Dalam erti kata lain, terlalu awal untuk mengambil LFS, buildroot atau yocto (atau sesuatu yang lain), tetapi anda sudah perlu bermula. Bagi orang kaya (saya mempunyai 4GB eMMC pada sampel perintis) terdapat jalan keluar untuk mengedarkan kepada pembangun pengedaran yang akan membolehkan mereka menghantar sesuatu yang tiada pada masa ini dengan cepat, dan kemudian kami sentiasa boleh mengumpul senarai pakej dan membuat senarai untuk rootfs sasaran.
Artikel ini bukan baru dan merupakan arahan salin-tampal yang mudah.
Tujuan artikel adalah untuk membina rootfs Ubuntu untuk papan ARM (dalam kes saya, berdasarkan Colibri imx7d).
Membina imej
Kami mengumpulkan rootfs sasaran untuk replikasi.
Membongkar Pangkalan Ubuntu
Kami memilih keluaran sendiri berdasarkan keperluan dan keutamaan kami sendiri. Di sini saya telah memberikan 20.
$ mkdir ubuntu20
$ cd ubuntu20
$ mkdir rootfs
$ wget http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04-base-armhf.tar.gz
$ tar xf ubuntu-base-20.04-base-armhf.tar.gz -C rootfs
Menyemak sokongan BINFMT dalam kernel
Jika anda mempunyai pengedaran biasa, maka terdapat sokongan untuk BINFMT_MISC dan semuanya dikonfigurasikan, jika tidak, maka saya pasti anda tahu bagaimana untuk membolehkan sokongan BINFMT dalam kernel.
Fail dan modul pengepala kernel adalah perkara yang berasingan. Sudah tentu, kami tidak akan memasang pemuat but, kernel, modul, pokok peranti melalui Ubuntu. Mereka akan datang kepada kami dari luar atau kami akan memasangnya sendiri atau mereka akan diberikan kepada kami oleh pengeluar papan, dalam apa jua keadaan ini di luar skop arahan ini.
Pada tahap tertentu, perbezaan versi boleh diterima, tetapi lebih baik untuk mengambilnya dari binaan kernel.
# apt install --yes linux-headers-generic
Mari lihat apa yang berlaku dan ia ternyata banyak:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Jangan lupa tetapkan kata laluan.
Mengemas imej
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Selain itu, kita boleh memasang etckeeper dengan tetapan autopush
Baiklah, katakan kami mengedarkan pemasangan kami, kerja bermula tentang cara terbaik untuk memasang versi sistem kami yang berbeza kemudian.
Kita boleh, sudah tentu, membuat cawangan pada peranti terlebih dahulu (katakan kita membuat skrip atau perkhidmatan yang akan dijalankan pada kali pertama ia dilancarkan).