Ketika pengembangan baru saja dimulai, seringkali tidak jelas paket mana yang akan menuju ke rootf target.
Dengan kata lain, masih terlalu dini untuk menggunakan LFS, buildroot atau yocto (atau yang lainnya), tetapi Anda sudah harus memulainya. Bagi orang kaya (saya memiliki eMMC 4GB pada sampel percontohan) ada jalan keluar untuk mendistribusikan distribusi kepada pengembang yang memungkinkan mereka dengan cepat mengirimkan sesuatu yang saat ini hilang, dan kemudian kami selalu dapat mengumpulkan daftar paket dan membuat daftar untuk rootf target.
Artikel ini bukanlah hal baru dan merupakan instruksi salin-tempel sederhana.
Tujuan artikel ini adalah untuk membangun rootf Ubuntu untuk papan ARM (dalam kasus saya, berdasarkan Colibri imx7d).
Membangun citra
Kami merakit rootf target untuk replikasi.
Membongkar Basis Ubuntu
Kami memilih sendiri rilisnya berdasarkan kebutuhan dan preferensi 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
Memeriksa dukungan BINFMT di kernel
Jika Anda memiliki distribusi umum, maka ada dukungan untuk BINFMT_MISC dan semuanya sudah dikonfigurasi, jika tidak, maka saya yakin Anda tahu cara mengaktifkan dukungan BINFMT di kernel.
File dan modul header kernel adalah masalah terpisah. Tentu saja, kami tidak akan menginstal bootloader, kernel, modul, pohon perangkat melalui Ubuntu. Mereka akan datang kepada kami dari luar atau kami akan merakitnya sendiri atau akan diberikan kepada kami oleh produsen papan, dalam hal apa pun hal ini di luar cakupan instruksi ini.
Sampai batas tertentu, perbedaan versi dapat diterima, tetapi lebih baik mengambilnya dari versi kernel.
# apt install --yes linux-headers-generic
Mari kita lihat apa yang terjadi dan ternyata banyak:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Jangan lupa untuk mengatur kata sandi.
Mengemas gambar
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Selain itu, kita dapat menginstal dllkeeper dengan pengaturan autopush
Katakanlah kita mendistribusikan perakitan kita, pekerjaan dimulai pada cara terbaik untuk merakit versi sistem kita yang berbeda nanti.
Tentu saja kita dapat membuat cabang pada perangkat terlebih dahulu (misalkan kita membuat skrip atau layanan yang akan berjalan saat pertama kali diluncurkan).