پیکربندی مجدد هسته لینوکس
جمعه 15 آبان 1388 1:12 PM
پیکربندی مجدد هسته لینوکس
هنگامی که لینوکس را نصب میکنید، در اکثر توزیعها هسته ( که قلب سیستم عامل است ) بصورت خودکار پیکربندی شده و آماده به کار میشود . قابلیتهای زیادی مانند انواع راه اندازهای سخت افزار و سرویسهایی که هسته ارائه میکند، در آن گنجانده شده است . گاهی اوقات نیاز به تغییر این قابلیت ها دارید . مانند هنگامی که میخواهید قابلیتهای جدیدی به آن اضافه کنید . در این مواقع نیاز به پیکربندی مجدد هسته خواهید داشت .
نکته : اضافه کردن تمام قابلیتها نیاز به پیکربندی مجدد هسته ندارند . مثلا بسیاری از راه اندازهای سخت افزاری بصورت ماژولهای قابل بارگزاری در هسته (Loadable modules) هستند . از این ماژولها میتوان برای اضافه کردن قابلیتهای جدید به هسته استفاده کرد . برای مثال قابلیت PCMCIA از ماژولهای قابل بارگزاری استفاده میکند . برای بارگزاری این ماژولها باید از دستورات insmod و modprobe استفاده کنید . |
پیکربندی مجدد هسته کاری خسته کننده است . مثلا طی آن باید به سوالات بسیاری پاسخ دهید که پاسخ برخی از آنها را واقعا نمیدانید . در بیشتر موارد پروسه پیکربندی مجدد هسته دارای پاسخهای پیشگزیده است . در صورتی که به سوالی بر خوردید که پاسخ آنرا نمیدانید، کافی است کلید Enter را فشار دهید . همچنین این کار زمانی را در حدود ۲۰ تا ۹۰ دقیقه، بسته به سخت افزار کامپیوترتان طلب میکند .
برای ساده کردن فرایند پیکربندی مجدد هسته، میتوانید از گزینه xconfig برای پیکربندی در حالت گرافیکی استفاده کنید . با استفاده از دستور make xconfig میتواید دقیقا راه اندازهای مورد نیاز سیستمتان را انتخاب کنید و مجبور به نصب همه راه اندازها نیستید .
تصمیم گیری برای پیکربندی مجدد هسته لینوکس
برخی اوقات بعلت نیازهای کاری مجبور هستید هسته لینوکس را مجددا پیکربندی نمایید . بسیاری از قابلیت های هسته لینوکس بصورت پیشگزیده غیر فعال هستند . علت این امر این است که برخی قابلیت ها هنوز در مرحله آزمایش قرار دارند و یا برای کاربردهای عیب زدایی بکار میروند . برای مثال :
- نوع پردازنده و قابلیت های آن : در صورتی که از یک پردازنده 386 یا 486 بدون کمک پردازنده ریاضی استفاده میکنید، باید قابلیت شبیه ساز عملیات ریاضی را در هسته خاموش کنید . همچنین میتوانید با انتخاب دقیق نوع پردازنده خود، مانند 386 ، 486/Cx486/586/K5/5x86/6x86/Pentium/TSC/K6/K7/PPro/6x86MX و ... عملکرد آنرا بهینه کنید .
- گزینه های شبکه : شبکه بصورت پیشگزیده فعال است . حتی اگر به شبکه وصل نباشید . زیرا محیط گرافیکی Xwindow از آن استفاده میکند . در صورتی که بخواهید از لینوکس خود بعنوان یک مسیریاب شبکه استفاده کنید، هسته آن نیاز به پیکربندی مجدد دارد . همچنین برخی از گزینه های شبکه مانند X.25 و SPX بصورت پیشگزیده غیر فعال هستند .
- ابزارهای مبتنی بر Block : برای برخی از دیسکهای سخت قدیمی، شما نیاز دارید تا راه اندازهای قدیمی را فعال کنید .
بوسیله ابزارهایی مانند X Kernel Configuration ، میتوانید تعیین کنید که کدام قابلیت ها فعال یا غیر فعال هستند و هسته ای ایجاد کنید که مطابق با نیازهای شما باشد .
نکته : در صورتی که میخواهید سخت افزاری را بطور موقت در سیستمتان نصب کنید، برای شناساندن آن از ماژولهای قابل بارگزاری استفاده کنید . زیرا با استفاده از این قابلیت هرگاه بخواهید میتوانید این ماژولها را نصب کنید یا آنها را بردارید، بدون اینکه هسته را مجبور کنید هنگام عدم وجود آن ابزار تحت فشار کار کند . |
نصب کد منبع هسته
برای پیکربندی مجدد هسته به کد منبع آن نیاز دارید . شما میتوانید آنرا از روی CD های لینوکس خود نصب کنید . در صورتی که کدهای منبع هسته قبلا نصب شده باشند، باید در مسیر usr/src/linux قرار داشته باشند . مثلا usr/src/linux-2.4. در صورتی که کدهای منبع را پیدا نمیکنید، باید آنها را نصب نمایید . بسته به اینکه از چه توزیعی استفاده میکنید، نحوه نصب متفاوت خواهد بود . مثلا در لینوکس ردهت میتوانید از بخش Add/Remove Software این کار را انجام دهید و یا بسته tar.gz هسته را از اینترنت گرفته و باز کنید . مهم نیست آنرا در کجا باز میکنید .
نکته : همیشه کد منبع آخرین نسخه پایدار یا در حال توسعه هسته را میتوانید از اینترنت دریافت نمایید . کافی است به آدرس http://www.kernel.org مراجعه کنید . البته حجم بسته های کدمنبع در حدود ۳۰ - ۳۵ مگابایت میباشد . |
شروع پیکریندی مجدد هسته
مراحلی که برای انجام پیکربندی مجدد باید انجام دهید شامل انتخاب گزینهها، بررسی نرم افزارهای مورد نیاز، پاک کردن فایلهای کامپایل شده قبلی و کامپایل کردن هسته جدید است . تمام این مراحل به ترتیب شرح داده خواهند شد .
از سیستم خود حفاظت کنید
هنگام نصب لینوکس ممکن است دیسکت بوت را ایجاد کرده باشید . این دیسکت به شما امکان بوت کردن در صورت عدم کارکردن هسته جدید یا اشکال در کار مدیر بوت گراب را میدهد . در صورتی که این دیسکت را ایجاد نکرده اید، یک فلاپی دیسک خالی در درایو قرار داده و دستور زیر را تایپ کنید :
# mkbootdisk –device /dev/fd0 2.4.21
در صورتی که شماره نسخه هسته شما متفاوت است میتوانید بجای شماره مثال بالا آنرا وارد نمایید .
نکته : فرمان mkbootdisk در مسیر sbin قرار دارد . در صورتی که در حالت عادی اجرا نشد، به این دایرکتوری وارد شده و از آنجا آنرا اجرا نمایید . |
آماده سازی برای پیکربندی
برای شروع کار یک پنجره ترمینال باز کرده و به مسیری که فایلها منبع هسته قرار دارند (usr/src/linux-2.4) رفته و دستور زیر را تایپ کنید :
# make mrproper
این دستور هسته را برای پیکربندی آماده میکند . همچنین تمام دایرکتوریهای پیکربندی را از وجود فایلهای قدیمیتر پاک میکند .
اعمال پیکربندی
برای انتخاب گزینه های مورد نیاز خود، باید دستور make را با سوئیچهای config ، menuconfig و یا xconfig اجرا نمایید . آسان ترین گزینه، سوئیچ xconfig است . البته باید در حال اجرای یک محیط گرافیکی مانند GNOME یا KDE باشبد . دستور زیر را تایپ کنید ( تصویر ۱ ):
# make xconfig
تصویر ۱ پیکربندی هسته جدید را با گزینه xconfig نشان میدهد
در صورتی که محیط گرافیگی در حال اجرا نیست، میتوانید از دو سوئیچ دیگر استفاده نمایید . سوئیچ config شما را در یک محیط متنی خالص با انبوهی از سوال و جوابها قرار میدهد . سوئیچ menuconfig یک محیط مبتنی بر منو را برای پیکربندی مجدد هسته برای شما فراهم میکند .
استفاده از گزینه های xconfig و menuconfig شما را قادر میسازد تا فقط قسمتهایی را که مایل به تغییر هستید را انتخاب کنید، در حالی که با سوئیچ config باید تمام اجزا را پیکربندی کنید . ( تصویر۲ )
بررسی وابستگی های نرم افزاری
هنگامی که پیکربندی هسته را به پایان رساندید، تغییرات را ذخیره کرده و دستور زیر را تایپ کنید :
# make dep
این دستور، وابستگی های نرم افزاری هسته را بررسی میکند تا چیزی کم نباشد . پس از این کار باید دایرکتوری های کد منبع را برای کامپایل هسته جدید آماده کنید .
تصویر ۲ پیکربندی هسته جدید را با گزینه menuconfig نشان میدهد
آماده سازی دایرکتوری ها
برای آماده سازی دایرکتوری های کد منبع برای کامپایل کردن هسته جدید باید دستور زیر را اجرا نمایید :
# make clean
کامپایل کردن هسته جدید
شما انتخاب های گوناگونی برای کامپایل کردن هسته جدید دارید . میتوانید image بوت هسته جدید را روی دیسک سخت خود و یا روی یک فلاپی دیسک داشته باشید . داشتن آن روی فلاپی برای آزمایش آن خوب است . میتوانید قبل از نصب هسته جدید آنرا از روی فلاپی دیسک بوت نموده و در صورتی که اشکالی در کار آن وجود داشته باشد، آنرا نصب نکنید .
برای کامپایل کردن هسته جدید و ذخیره آن در فلاپی، یک دیسکت فلاپی در درایو قرار داده و دستور make zdisk را تایپ کنید . برای کامپایل کردن و ذخیره هسته جدید در دیسک سخت، از دستور make zImage استفاده نمایید . در صورتی که حجم image ایجاد شده خیلی زیاد شد، میتوانید از دستور make bzImage استفاده کنید که هسته جمع و جورتری را تحویل شما خواهد داد !
این بخش از کار مدتی طول خواهد کشید . در صورتی که پردازنده شما پردازنده ای قدیمی و کند است، میتوانید تا آماده شدن هسته جدید یک چرت کوچک بزنید ! نتیجه نهایی کار یک image فشرده است که در مسیر arch/i386/boot قرار دارد . ممکن است حین کامپایل شدن به پیغامهای خطایی برخورده و متوقف شوید . در این صورت باید مجددا با استفاده از xconfig یا menuconfig گزینهای را که در آن خطا رخ داده است را تغییر دهید تا خطا رفع شود .
ایجاد و نصب ماژولها
ماژولهای قابل بارگزاری را که همراه هسته کامپایل نمیشوند، باید جداگانه کامپایل و نصب نمایید . برای این کار دستورات زیر را تایپ کنید :
# make modules
# make modules_install
ماژولها در مسیر lib/modules نصب میشوند . برای اضافه کردن ماژولها به سیستم، هنگامی که سیستم عامل در حال اجراست باید از دستورات insmod و modprobe استفاده کنید .
ایجاد image دیسک رم (initrd)
در صورتی که کامپیوتر شما کارت اسکازی ندارد، از این مرحله عبور کنید . در صورتی که شما یک کارت اسکازی دارید که هنگام بوت باید بارگزاری شود، باید یک image دیسک رم ایجاد کنید . ابتدا بررسی کنید کارت اسکازی شما در فایل etc/modules.conf وجود دارد یا خیر . برای مثال :
alias scsi_hostadapter aic7xxx
سپس از دستور mkinitrd برای ایجاد image جدید استفاده کنید . این دستور دو آرگومان دریافت میکند . آرگومان اول نشاندهنده نام image جدید و آرگومان دوم نشاندهنده هسته ای است که ماژولها از آن دریافت میشوند . برای مثال :
# mkinitrd /boot/newinitrd-image 2.4.22
نصب هسته جدید
برای نصب فایلهای هسته جدید در محلهای مربوطه خود باید دستور زیر را تایپ کنید :
# make install
با این دستور هسته جدید نصب شده و یگ گزینه به مدیر بوت گراب اضافه میشود تا بتوانید با هسته جدید سیستم خود را بوت کنید . در صورتی که بصورت خودکار گزینه به گراب اضافه نشد، باید بوسیله ویرایش فایل پیکربندی grub که در مسیر boot/grub/menu.lst قرار دارد، هسته جدید را در آن تعریف نمایید . همانطور که متوجه شدهاید، در لینوکس میتوانید ۲ یا چند هسته را در کنار هم استفاده نمایید .
بطور کلی پیکربندی مجدد هسته کار دشواری است که تا در انجام آن مهارت پیدا کنید، ممکن است مدت زمانی طول بکشد و ممکن است گاهی مجبور شوید یک هسته را چندین و چندین بار نصب و کامپایل نمایید تا بطور صحیح کار کند .