4.7 ابني نواة لينكس بنفسك كتاب لينكس الشامل >>

4.7 كيف تبني نواة لينكس ال kernel

4.7.1 لماذا أفعل هذا

بناء نواة لينكس تجربة مسلية جدا وعلى كل من يريد أن يسمي نفسه مستخدم لينكس محترف أن يجربها ليس لأنها صعبة بل ليعرف كل تلك الأشياء التي تقوم بها النواة وعلى أي حال هذه أهم الأسباب

4.7.1 من أين أحصل عليها

يمكنك الحصول على نواة قديمة نسبيا مع التوزيعة أما للحصول على أي اصدار تريد يمكنك تنزيلها من موقع www.kernel.org حيث ستجد ما تريد، لاحظ أن الحزمة لا تسمى kernel بل linux.

4.7.3 لنبدأ

انسخ الملف المضغوط وفك ضغطه في المجلد /usr/src/linux إذا كان هناك أكثر من نواة أو كانت في مكان آخر اعمل وصلة بأمر ln إلى ذلك المكان مثلاً بالأمر cd /usr/src; ln -s linux-2.4.22 linux. قم بازالة الملفات غير الضرورية make clean ; make mrproper حتى لو لم تكن موجودة. ، انسخ الإعدادات من مرات سابقة أو اعمل إعدادات جديدة بواسطة قائمة نصية make menuconfig أو رسومية بشعة make xconfig ، اعمل الملفات والأدوات التي يحتاجها make dep واعمل النواة ب make bzImage وهذا يأخذ وقت طويل ، وفي نفس الوقت اعمل الملفات الإضافية modules وذلك ب make modules وتركيبها (نقلها إلى الدليل المناسب) وذلك ب make modules_install عند انهاء العملية اضف الخيار إلى lilo/grub وأعد تشغيل الجهاز اذا كان كل شيء على مايرام تتطيع حذف الملفات الزائدة، واذا كنت تريد توزيعها تستطيع عمل ملف rpm. هذه الأوامر (جربها أولاً دون nohup إذا كنت لم تتعامل مع هذه الأداة) ،

bash$ su
bash# cd /usr/src
bash# ln -sf linux-2.4.24 linux
bash# cd linux
bash# pwd
/usr/src/linux
bash# make clean ; make mrproper
bash# make menuconfig
bash# make dep
bash# nohup make bzImage & 
# you can see the file nohup.out by tail -f nohup.out
bash# nohup make modules 1> mod.out 2> mod.err & 
# to check the progress tail -f mod.out or tail -f mod.err
# wait to finish making the modules then type
bash# make modules_install
# wait to finish making the kernel then type
bash# cp /usr/src/linux/arch/i386/boot/bzImage /boot
# remove intermedite files do
bash# make clean
# if you wnt you can make rpm
bash# make rpm
فشلت لماذا؟ انظر الرسالة على الشاشة أو في ملف nohup.out وحدد السبب. إذا طلب منك حزمة معينة فتأكد أن تكون هي وحزمة التطوير الخاصة بها مركبة مثلاً ncurses و ncurses-devel (أو ncurses-dev) وهكذا. طبعاً إضافة لمصنف سي و سي++ ومكتبتهما glibc-devel ...

tipتلميح

يمكنك اعطاء اسم فريد للنواة التي أعددتها بفتح ملف Makefile وتحرير سطر وعدل قيمة ال EXTRAVERSION

tipتلميح

استبدل كل bzImage ب zImage لعمل نواة عادية مضغوطة بطريقة z (أي vmlinuz) بدلا من النواة العملاقة المضغوطة بطريقة bz2

tipتلميح

يمكن تسريع عملية التصنيف بوضع الخيار -jN حيث N هي عدد مثلاً make modules -j2 حيث سيتم تشغيل عمليتان process مصنفان compilers دفعة واحدة. رقم N الذي تنصح به بعض وثائق HOWTO (TLDP) عند تصنيف modules هو ححم الرام بالميغا مقسوم على 8 ثم جمع واحد.

4.7.4 اختيار الإعدادات

هذه أهم الملاحظات


<< السابق كتاب لينكس الشامل التالي >>