جب ترقی ابھی شروع ہو رہی ہے، یہ اکثر اب بھی واضح نہیں ہوتا ہے کہ کون سے پیکجز ٹارگٹ rootfs میں جائیں گے۔
دوسرے لفظوں میں، LFS، buildroot یا yocto (یا کچھ اور) پر قبضہ کرنا بہت جلد ہے، لیکن آپ کو پہلے ہی شروع کرنے کی ضرورت ہے۔ امیروں کے لیے (میرے پاس پائلٹ نمونوں پر 4GB eMMC ہے)، ڈویلپرز کو ڈسٹری بیوشن کٹ تقسیم کرنے کا ایک طریقہ ہے جس کی مدد سے وہ فوری طور پر کوئی ایسی چیز فراہم کر سکیں گے جو اس وقت غائب ہے، اور پھر ہم ہمیشہ پیکج کی فہرستیں اکٹھا کر سکتے ہیں اور ہدف rootfs کے لئے فہرست.
یہ مضمون نیا نہیں ہے اور ایک سادہ کاپی پیسٹ ہدایت ہے۔
مضمون کا مقصد ARM بورڈز کے لیے Ubuntu rootfs بنانا ہے (میرے معاملے میں 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 انسٹال کر سکتے ہیں۔
ٹھیک ہے، ہم کہتے ہیں کہ ہم نے اپنی اسمبلی کو تقسیم کیا، کام چلتا رہا، ہمارے نظام کے مختلف ورژن کو کیسے جمع کرنا ہے؟