کرنل یا هسته لینوکس از قسمتهایی تشکیل شده که به اصطلاح به آنها module
یا اگر بخواهیم کاملتر بگوییم kernel module میگویند. بسیاری از این
module ها درایورهای
مختلف هستند. گاهی لازم میشود که برای کاری تحقیقاتی یک سیستم سبک و کم حجم
بسازید، یا module ای را به کرنل خود اضافه کنید. این
کار را با کامپایل و نصب کردن کرنل لینوکس خود میتوانید انجام دهید. دستورات این
پست با
Fedora
Core 6
امتحان شدهاند. احتمالا با کمی تغییر میتوانید همین کار را با distribution
های دیگر هم انجام دهید. برای انجام این کار احتیاج به پکیج سورس کرنل خود نیز
دارید. در مورد فدورایی که من استفاده میکردم این فایل (که یک فایل
.src.rpm است) از اینجا (فایل:+، فولدر:+) قابل دانلود است.
۱.
اگر نتوانستید به راحتی بالا سورس کرنل لینوکس خود را دانلود کنید، اول باید
ببینید نسخه آن چیست. برای این کار از دستور زیر استفاده کنید:
$ uname -r [this will print kernel release version] $ uname -a [this will print all system information] |
سپس با اطلاعات بالا دنبال پکیج سورس آن بگردید، یا به پانوشت ۱ مراجعه کنید.
۲.
فرض کنید پکیج سورس کرنل را دانلود کردهاید. در مورد فدورایی که من استفاده
میکنم، نام این فایل kernel-2.6.18-1.2798.fc6.src.rpm است. در دستورات این نام را با نام
بسته خودتان عوض کنید. برای اجرای بقیه دستورها باید کاربری با اختیارات
root یا خود root باشید.
$ rpm -Uvh kernel-2.6.18-1.2798.fc6.src.rpm $ cd /usr/src/redhat/SPECS $ rpmbuild -bp --target $(arch) kernel-2.6.spec |
دستور rpm اولی موجب نصب پکیج میشود، اما چون این بسته تنها یک بسته سورس
است، یک سری فایل سورس در /usr/src کپی خواهد کرد.
–Uvh به معنای upgrade کردن بسته است (U) و گزارش لحظه به لحظه از کاری که در
حال انجام است (v) و نشان دادن میزان پیشرفت با کاراکتر hash که #
است (h). حاصل آن فایل .spec ایست که rpmbuild
در دستور بعدی
از آن استفاده
خواهد کرد.
۳.
حالا وقت اضافه و کم کردن module
هاست. این که به طور پیش فرض چه module هایی نصب میشوند در فایل مخفی .config
نوشته شده. برای تغییر محتویات این فایل به طور گرافیکی یا متنی از
دستورات زیر استفاده کنید.
$ cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18-i686 [the .config file and the Makefile reside here] $ make help [lists all available options to configure and make] [run one of the following, as you wish] $ make xconfig [GUI configuration, using Qt for KDE] [probably the most user-friendly option] $ make gconfig [GUI configuration, using GTK for GNOME] $ make menuconfig [text based configuration, using ncurses] |
اگر از روش گرافیکی استفاده میکنید، میتوانید درختی از تمامی
module ها ببینید.
آنهایی را که میخواهید نصب کنید را انتخاب کنید و آنهایی را که نمیخواهید را از
حالت انتخاب بیرون بیاورید. مثلا میتوانید به قسمت filesystems بروید و ntfs را انتخاب کنید. با save
کردن تغییراتی که دادید فایل
.config
بهروز خواهد شد.
۴.
الآن دیگر میتوانید کامپایل و نصب را شروع کنید. این کار تقریبا نیم الی یک ساعت طول خواهد کشید. توجه کنید که مرحله آخر نصب، boot-loader را نیز update خواهد کرد.
$ make $ make modules_install $ make install |
۵.
برای استفاده از کرنل جدید باید سیستم را reboot کنید. با این کار خواهید دید که یک گزینه به گزینههای grub (یا lilo) اضافه شده. گزینه جدید که کلمه prep در آن به چشم میخورد، همان کرنل جدید است.
پ.ن.
۱. نسخههای اصلی کرنل را گروهی به سرپرستی
لینوس توروالدس تولید میکنند. سپس
distribution های مختلف، بسته به کاربرد یا
ایدئولوژی خود، آن را تغییر میدهند (patch تغییراتشان اکثرا از سایت خودشان قابل
دانلود است). نسخههای اصلی کرنل را میتوان ازwww.kernel.org
دانلود کرد. اگر قصد کامپایل چنین نسخهای را دارید، توجه
کنید که نسخه آن باید با نسخه کرنل لینوکس شما سازگار باشد، مثلا با
2.6.18
شروع شده باشد. اگر این نسخه را کامپایل کنید، کرنل حاصل دیگر کرنل patch شده توسط
distribution شما نیست، بلکه کرنلی است که لینوس
توروالدس منتشر کرده.
۲. این دستورات مخصوص distribution های redhat ایست، و به احتمال زیاد برای distribution های debian ای مثل Ubuntu کار نخواهند کرد. اصلا در این نسخهها
دستور rpm وجود ندارد، و
احتمالا پسوند پکیج سورس آنها .deb است.
0 نظر:
ارسال یک نظر
جهت نمایش صحیح آدرس سایتتان، حتما قبل از آدرس //:http را درج کنید.