يتيح لك هذا المشروع بناء توزيعة Linux من الصفر
نحن بحاجة إلى بعض التبعيات لذلك تثبيت هذه
sudo apt get install bzip2 git vim make gcc libncurses-dev flex bison bc cpio libelf-dev libssl-dev syslinux dosfstools
الآن نحتاج إلى استنساخ kernel Linux وتحريره
git clone --depth 1 https://github.com/torvalds/linux.git
الآن التغيير إلى دليل Linux
cd linux
الآن نحتاج إلى تحرير النواة عن طريق تحرير الخيارات التي سيفتحها قائمة تفاعلية
make menuconfig
تأكد من تحديد 64 bit kernel (NEW)
ثم بعد صنع menuconfig إذا كان لديك أي نوى أكثر من 6 مما يمكنك جعله أكثر من 6 مثل 8 نوى
make -j 8
بعد الانتهاء من التجميع (لحظة gentoo) ، سترى رسالة مع bZimage ، قم بعمل دليل يدعى boot-files
mkdir /boot-files
ثم انسخ bZimage إلى دليل boot-files
cp arch/x86/boot/bzImage /boot-files
bzImage هو ملف لإعادة تشغيل القرص المضغوط
cd ..
الآن استنساخ صندوق مشغول
git clone --depth 1 https://git.busybox.net/busybox
ثم أدخل دليل busybox
cd busybox
ثم اجعل menuconfig
make menuconfig
انتقل إلى settings > Build static binary (no shared libs) (NEW) حدده الآن حفظه ، والسبب في أننا صنعنا بناءًا static هو أننا لا نريد ثنائيات خارجية الآن مع كمية النوى التي قمت بتشغيلها make -j <cores> مثل
make -j 8
بعد الانتهاء من الانتهاء initramds التجميع
mkdir /boot-files/initramfs
الآن الجري
make CONFIG_PREFIX=/boot-files/initramfs install
initRAMFS هو نظام الملفات الأولي الذي يتم تحميل kernel بعد التمهيد ، سنضع مشغولًا هناك الآن ننتقل إلى هذا المجلد
cd /boot-files/initramfs/
الآن إنشاء ملف يسمى init
nano init
أضف الآن هذه الأوامر إلى init
#!/bin/sh
/bin/sh
الآن احفظه الآن حذف linuxrc لا حاجة لهذا الملف
rm linuxrc
أضف الآن تصميات exec إلى init
chmod +x init
الآن ابحث عن حزمه على أرشيف .cpio
find . | cpio -o -H newc > ../init.cpio
-o يعني إنشاء أرشيف جديد الآن اذهب 1 دير مرة أخرى
cd ..
الآن تم إنشاء الملف استخدم ls لرؤيته ، لكننا سنستخدم محمل تمهيد يسمى syslinux Make the Bootfile
dd if=/dev/zero of=boot bs=1M count=50
سيؤدي ذلك إلى إنشاء ملف يتراوح بين 50 و 100 ميغابايت وسيملأه الأصفار سنستخدم نظام ملفات fat
mkfs -t fat boot
ثم ركض
syslinux boot
الآن قم بعمل دليل يسمى أي شيء ولكن من أجل السلامة ، سنستخدم m ثم تركيب Boot إلى M
mkdir m
mount boot m
ثم انسخ kernel و initramfs إلى boot fs
cp bzImage init.cpio m
الآن قم بإلغاء الحصول عليها
unmount m
الآن صورة التمهيد جاهزة لذلك سنقوم بتشغيله
qemu-system-x86_64 boot
سيقوم Syslinux بالتمهيد وسوف يسأل ما هو الملف لاستخدام التمهيد
/bzImage -initrd=init.cpio
روابط DFS GUI DFS For Embedded Devices