عندما يبدأ التطوير للتو، غالبًا ما يكون من غير الواضح أي الحزم ستذهب إلى الجذور المستهدفة.
بمعنى آخر، من السابق لأوانه الحصول على LFS أو buildroot أو yocto (أو أي شيء آخر)، ولكن عليك أن تبدأ بالفعل. بالنسبة للأثرياء (لدي 4 غيغابايت من eMMC في العينات التجريبية) هناك طريقة لتوزيع توزيع على المطورين يتيح لهم تسليم شيء مفقود حاليًا بسرعة، ومن ثم يمكننا دائمًا جمع قوائم الحزم وإنشاء قائمة لـ الجذور المستهدفة
هذه المقالة ليست جديدة وهي عبارة عن تعليمات بسيطة للنسخ واللصق.
الغرض من هذه المقالة هو إنشاء جذور Ubuntu للوحات ARM (في حالتي، استنادًا إلى Colibri imx7d).
بناء الصورة
نقوم بتجميع rootfs الهدف للنسخ المتماثل.
تفريغ قاعدة أوبونتو
نختار الإصدار بأنفسنا بناءً على حاجتنا وتفضيلاتنا. هنا أعطيت 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 في النواة.
تعتبر ملفات ووحدات رأس Kernel مسألة منفصلة. بالطبع، لن نقوم بتثبيت أداة تحميل التشغيل والنواة والوحدات النمطية وشجرة الأجهزة عبر Ubuntu. سوف تأتي إلينا من الخارج أو سنقوم بتجميعها بأنفسنا أو سيتم إعطاؤها لنا من قبل الشركة المصنعة للوحة، وفي أي حال فإن هذا خارج نطاق هذه التعليمات.
إلى حد ما، يعد اختلاف الإصدار مقبولا، ولكن من الأفضل أخذه من بناء النواة.
# 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 باستخدام إعداد الدفع التلقائي
حسنًا، لنفترض أننا قمنا بتوزيع مجموعتنا، وبدأ العمل حول أفضل السبل لتجميع الإصدارات المختلفة اللاحقة من نظامنا.