هنگامی که توسعه تازه شروع می شود، اغلب مشخص نیست که کدام بسته ها به rootfs هدف می روند.
به عبارت دیگر، برای گرفتن LFS، buildroot یا yocto (یا چیز دیگری) خیلی زود است، اما از قبل باید شروع کنید. برای ثروتمندان (من 4 گیگابایت eMMC در نمونه های آزمایشی دارم) راهی برای توزیع بین توسعه دهندگان وجود دارد که به آنها امکان می دهد به سرعت چیزی را که در حال حاضر گم شده است تحویل دهند، و سپس ما همیشه می توانیم لیست بسته ها را جمع آوری کنیم و لیستی برای آنها ایجاد کنیم. ریشه های هدف
این مقاله جدید نیست و یک دستورالعمل کپی پیست ساده است.
هدف مقاله ساخت rootfهای اوبونتو برای بردهای ARM است (در مورد من، بر اساس Colibri imx7d).
تصویر را بسازید
ما ریشه های هدف را برای تکثیر جمع می کنیم.
باز کردن پایه اوبونتو
ما خودمان نسخه را بر اساس نیاز و ترجیحات خود انتخاب می کنیم. اینجا من 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
بررسی پشتیبانی BINFMT در هسته
اگر توزیع مشترکی دارید، پس از BINFMT_MISC پشتیبانی میشود و همه چیز پیکربندی میشود، اگر نه، مطمئن هستم که میدانید چگونه پشتیبانی BINFMT را در هسته فعال کنید.
فایلهای هدر هسته و ماژولها موضوعی جداگانه هستند. البته بوت لودر، کرنل، ماژول ها، درخت دستگاه را از طریق اوبونتو نصب نمی کنیم. آنها از خارج به ما مراجعه می کنند یا خودمان آنها را مونتاژ می کنیم یا توسط سازنده برد در اختیار ما قرار می گیرد، در هر صورت این موضوع از حوصله این دستورالعمل خارج است.
تا حدودی، واگرایی نسخه قابل قبول است، اما بهتر است آنها را از بیلد کرنل بگیرید.
# apt install --yes linux-headers-generic
بیایید ببینیم چه اتفاقی افتاد و خیلی چیزها معلوم شد:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
تنظیم رمز عبور را فراموش نکنید.
بسته بندی تصویر
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
علاوه بر این، ما می توانیم etckeeper را با تنظیمات autopush نصب کنیم
خوب، فرض کنید ما مونتاژ خود را توزیع کردیم، کار بر روی بهترین روش برای مونتاژ نسخه های بعدی سیستم ما آغاز شد.