Khi quá trình phát triển mới bắt đầu, thường không rõ gói nào sẽ đi tới rootf mục tiêu.
Nói cách khác, còn quá sớm để lấy LFS, buildroot hoặc yocto (hoặc thứ gì khác), nhưng bạn đã cần phải bắt đầu. Đối với người giàu (tôi có 4GB eMMC trên các mẫu thử nghiệm), có một cách để phân phối cho các nhà phát triển một bản phân phối cho phép họ nhanh chóng phân phối thứ hiện đang bị thiếu và sau đó chúng tôi luôn có thể thu thập danh sách các gói và tạo danh sách cho các rootf mục tiêu.
Bài viết này không mới và chỉ là một hướng dẫn sao chép-dán đơn giản.
Mục đích của bài viết là xây dựng Ubuntu rootfs cho bo mạch ARM (trong trường hợp của tôi là dựa trên Colibri imx7d).
Xây dựng hình ảnh
Chúng tôi tập hợp các rootf mục tiêu để nhân rộng.
Giải nén cơ sở Ubuntu
Chúng tôi tự chọn bản phát hành dựa trên nhu cầu và sở thích của riêng mình. Ở đây tôi đã đưa ra 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
Kiểm tra hỗ trợ BINFMT trong kernel
Nếu bạn có bản phân phối chung thì có hỗ trợ BINFMT_MISC và mọi thứ đều được định cấu hình, nếu không, thì tôi chắc chắn rằng bạn biết cách bật hỗ trợ BINFMT trong kernel.
Các tệp và mô-đun tiêu đề hạt nhân là một vấn đề riêng biệt. Tất nhiên, chúng tôi sẽ không cài đặt bootloader, kernel, mô-đun, cây thiết bị qua Ubuntu. Chúng sẽ đến với chúng tôi từ bên ngoài hoặc chúng tôi sẽ tự lắp ráp chúng hoặc chúng sẽ được nhà sản xuất bo mạch cung cấp cho chúng tôi, trong mọi trường hợp, điều này nằm ngoài phạm vi của hướng dẫn này.
Ở một mức độ nào đó, sự phân kỳ phiên bản có thể chấp nhận được, nhưng tốt hơn là nên lấy chúng từ bản dựng kernel.
# apt install --yes linux-headers-generic
Hãy xem điều gì đã xảy ra và nó diễn ra rất nhiều:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Đừng quên đặt mật khẩu.
Đóng gói hình ảnh
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Ngoài ra, chúng ta có thể cài đặt etckeeper bằng cài đặt autopush
Chà, giả sử chúng tôi đã phân phối bản lắp ráp của mình, công việc bắt đầu tìm cách tốt nhất để lắp ráp các phiên bản khác nhau sau này của hệ thống của chúng tôi.