TAHA
04-23-2010, 09:56 PM
به جرات میتوان گفت که یکی از جالبترین و شگفت انگیزترین بخشهای سیستمعامل لینوکس، هسته آن است. هر کاربر کنجکاوی پس از مدتی کار کردن با این سیستمعامل دوست دارد تا با هسته نیز کلنجار رود. اینکه شما بتوانید یکی از اصلیترین بخشهای سیستمعامل خودتان را بنا به میل و نیازتان تنظیم کنید بسیار هیجان انگیز است. تاکنون راهنماهای فارسی متعددی در مورد چگونگی کامپایل کردن هسته لینوکس به فارسی نوشته شده است، ولی چیزی که بسیاری از کاربران کم تجربهتر علاوه بر آن نیاز دارند، این است که بدانند قبل از کامپایل، چگونه و با چه قدمهایی باید هسته سیستم خود را پیکربندی و تنظیم کنند.
به چه چیزی نیاز دارید؟
برای پیکربندی و کامپایل هسته، چیز زیادی لازم نیست:
۱) کدمنبع کامل هسته
۲) اطلاعات کامل در مورد انواع سختافزارهای نصب شده در سیستم
۳) نرمافزارهای توسعه مانند کامپایلر GCC، Make و...
۴) زمان و دقت کافی
دریافت کد منبع هسته
کد منبع کامل هسته سیستمعامل لینوکس را همواره میتوانید از آرشیو آن واقع در آدرس The Linux Kernel Archives دریافت نمایید. نسخههای متعددی از هسته برای دانلود موجود میباشد. شما همیشه آخرین نسخه پایدار را دریافت نمایید. کد منبع را به دو صورت میتوانید دریافت کنید. وصله (patch) و کد منبع کامل (Full). این دو چه تفاوتی باهم دارند؟ کد منبع کامل حدود ۴۰ مگابایت حجم دارد. وصله کد منبع حدود ۲-۳ مگابایت حجم دارد. در صورتی که هیچ کد منبع کاملی از سری مورد نظرتان که آنرا برای نصب روی سیستم در نظر گرفتهاید ندارید (مانند سری 2.6 که موضوع این مقاله است) باید کد منبع کامل را دریافت نمایید. ولی اگر کد منبع کامل نسخههای کمی قبلتر (مثلا نسخه پایدار فعلی 2.6.3 است، ولی شما کدهای منبع 2.6.2 را دارید) را دارید و مایلید تا آخرین نسخه را روی سیستمتان نصب کنید، لازم نیست تا کل کدهای منبع را مجددا دریافت و نصب نمایید. در این موارد وصله نسخه مورد نظر را دریافت و بر روی نسخه قدیمیتر اعمال میکنید. جلوتر این مطلب را بیشتر توضیح خواهم داد.
اطلاعات کامل در مورد سختافزارهای نصب شده
اگر این اطلاعات را نداشته باشید، عملا قادر نخواهید بود هسته خود را به درستی تنظیم کنید و هسته هنگام کارکرد با مشکل مواجه خواهد شد. بنابراین، کافی است که اطلاعات تمامی سختافزارهای نصب شده مانند تراشههای برد مادر، درایوهای مختلف، کارت گرافیک، کارت صوتی، مودم و... را از دفترچههای موجود تهیه نمایید و یا از اشخاص وارد دقیقا سوال کنید. (مثلا تنها دانستن مدل برد مادر به شما کمکی نخواهد کرد و حتما باید بدانید دارای چه چیپ ستی است و یا برخی کارتهای صوتی Genius از چیپ ست FM801 استفاده میکنند و برخی دیگر از چیپ ست Yamaha. تنها دانستن اینکه کارت صوتی شما Genius است، در چنین مواردی کمکی به شما نخواهد کرد.)
نرمافزارهای توسعه
فرقی نمیکند که از چه توزیعی استفاده میکنید. برای کامپایل کردن هسته، حتما باید ابزارهای Development موجود در توزیع مورد استفاده تان را نصب نمایید. انتظار نداشته باشید بدون داشتن یک کامپایلر هستهتان را کامپایل کنید. علاوه بر ابزارهای توسعه، هسته نیز ممکن است به تعدادی نرمافزار پیشنیاز، نیاز داشته باشد. مثلا هسته 2.6.3 که در این مقاله آنرا نصب خواهیم کرد، به تعدادی ابزار نیاز دارد که برای عملکرد صحیح حتما باید نسخههای صحیح آنها را در سیستم خود داشته باشید. برای اطلاعات بیشتر در مورد شماره نسخههای ابزارهای لازم و دریافت آنها اینجا را ببینید. (البته اکثر توزیعهای جدید بیشتر نسخههای پیشنیاز را دارا هستند و احتمالا تنها ۱ الی ۲ بسته را باید قبل از کامپایل و نصب هسته نصب نمایید، مگر اینکه توزیع مورد استفاده شما بسیار قدیمی باشد!)
زمان و دقت کافی
تنظیم و کامپایل هسته کاری است که دقت و زمان زیادی (بسته به قدرت پردازنده شما) خواهد طلبید. بنابراین آنرا زمانی انجام دهید که دارای زمان و تمرکز کافی هستید و چیزی مزاحم شما نمیشود! در غیر اینصورت ممکن است هسته شما درست از آب درنیاید! البته خوبی سیستمعامل لینوکس در این است که شما در آن واحد قادرید چندین هسته داشته باشید و در صورت عدو موفقیت هسته جدید، قادر خواهید بود با هسته سابق به سیستم بوت شوید و عملیات را از اول انجام دهید! پس زیاد نگران نباشید. همیشه چند تجربه نخست، موفقیت آمیز نخواهد بود.
شروع عملیات
اکنون فرض میکنیم که کلیه موارد بالا انجام شده و برای شروع عملیات تنظیم و کامپایل هسته آماده هستیم. عملیات تنظیم و کامپایل هسته را میتوان به مراحل زیر تقسیم کرد:
۱) قرار دادن کد منبع هسته در محل مربوطه و خارج کردن آن از حالت فشرده
۲) تنظیم و پیکربندی هسته که مطلب اصلی مورد بحث ما در این مقاله است
۳) نصب هسته
۴) تنظیم برنامه مدیر بوت جهت اضافه شدن امکان بوت با هسته جدید
یک پنجره ترمینال باز کرده و عملیات را شروع میکنیم.
قرار دادن کد منبع در محل مربوطه و خارج کردن آن از حالت فشرده
فرض میکنیم که اکنون کد منبع کامل هسته موجود بوده و مایل هستید تا آنرا در جای صحیح قرار داده و آنرا از حالت فشرده خارج کرده و ادامه عملیات را بر روی آن انجام دهید. با این احتمال که کد منبع اکنون در دایرکتوری خانگی شما موجود میباشد، آنرا به محل مناسب آن که عموما در مسیر usr/src/ است، منتقل یا کپی میکنیم. برای مثال:
$ su
# cp /home/alan/linux-2.6.3.tar.bz2 /usr/src/
ویا اگر آنر روی CD داشتید:
$ su
# mount /cdrom (or mount /mnt/cdrom)
# cp /cdrom/linux-2.6.3.tar.gz /usr/src/
کد منبع هسته ممکن است در دو حالت فشرده bz2 و یا gzip در اختیار شما قرار گرفته شده باشد که برای خارج کردن آن از حالت فشردگی از دستورات زیر استفاده خواهید کرد:
# cd /usr/src/
# gunzip linux-2.6.3.tar.gz (if file is in tar.gz format)
# bzip2 -d linux-2.6.3.tar.bz2 (if file is in tar.bz2 format)
پس از اجرای دستورات فوق، حاصل کار یک بسته tar خواهد بود که برای بازکردن آن نیز باید از دستور زیر استفاده نمایید:
# tar -xf linux-2.6.3.tar
اکنون در مسیر usr/src/ یک دایرکتوری با نام linux-2.6.3 موجود است. طبق عرف (و نه به اجبار) یک میانبر به نام linux به دایرکتوری linux-2.6.3 ایجاد میکنیم:
# ln -s linux-2.6.3 linux
بسیار خوب. تا این مرحله تمامی کارهای اولیه انجام شده و به اتمام رسید. در بالا درمورد وصلههای هسته صحبت کردم. مثلا اگر شما کد منبع کامل هسته 2.6.2 را دارید و مایل هستید که هسته 2.6.3 را که فعلا آخرین هسته موجود میباشد (البته 2.6.4 چند روز دیگر ارائه خواهد شد!) را روی سیستم خود نصب نمایید، لازم نیست تا تمامی کد منبع را مجددا دانلود نمایید. کافی است که وصله (patch) آنرا که معمولا فایلی حدود یا کمتر از ۲ مگابایت است را دریافت کرده و کد منبع هسته موجود را به آن ارتقا دهید. به این صورت که کلیه مراحل گفته شده را برای هسته مثلا نسخه 2.6.2 انجام دهید و سپس وصله را از سایت آرشیو هسته دریافت کنید. با اجرای دستورات زیر، کد منبع هسته شما به نسخه 2.6.3 ارتقا پیدا خواهد کرد:
# cd /usr/src/linux
# bzcat /home/alan/patch-2.6.3.tar.bz2 | patch -p1
با اجرای دستور فوق، فایلهای مورد نیاز به نسخه جدید ارتقا پیدا خواهند کرد. سپس عملیات زیر را انجام دهید (یک نوع تمیزکاری!):
# rm linux
# mv linux-2.6.2 linux-2.6.3
# ln -s linux-2.6.3 linux
البته میتوانستید همان موقع میانبر را ایجاد نکرده و پس از انجام عمل ارتقا آنرا ایجاد کنید تا دوباره کاری نشود. اکنون همه چیز برای پیکربندی و تنظیم هسته آماده است.
تنظیم و پیکربندی هسته
پیکربندی هسته را میتوانید با استفاده از سه رابط کاربری متفاوت انجام دهید. دوتا از این رابطها گرافیکی و بسیار شبیه به هم هستند و رابط سوم متنی است. البته اصول کاری با تمامی این رابطها یکسان است. این رابطها با دستورات زیر اجرا خواهند شد:
# cd /usr/src/linux
# make xconfig (graphical)
# make gconfig (graphical)
# make menuconfig (text based)
شما میتوانید همه آنها را آزمایش کنید و با هرکدام که راحتتر بودید کار کنید. من شخصا اکثرا از گزینه xconfig و در سیستمهای متنی (مانند سرویسدهندهها یا دستگاههای راه دور) از menuconfig استفاده میکنم. تصاویر زیر این رابطها را نمایش میدهد. (برای دیدن تصاویر بزرگتر روی آنها کلیک کنید).
make gconfig
make menuconfig
makexconfig
این رابطها همگی دارای لیستی از بخشهای مختلف هسته هستند که تنظیمات آنرا باید انجام دهید. اکنون بخشهای اصلی این تنظیمات را که برای یک کامپیوتر معمولی ضروری است، بررسی میکنیم. اگر بخواهیم تمامی بخشها را بررسی کنیم، این مقاله تبدیل به یک کتاب میشود!
مسئله این است: ماژول یا کد درونی؟
قبل از شروع به تشریح بخشهای تنظیم هسته، مایل هستم تا نکتهای را تشریح کنم. بخشهای مختلفی را که برای هسته خودتان فعال میکنید (مانند انواع راهاندازها، تراشههای مختلف و...) به دو صورت میتوانند در هسته بکار گرفته شوند:
۱) درون کد هسته کامپایل شوند
۲) بصورت یک ماژول جدای از هسته ولی قابل بارگذاری در هسته کامپایل شوند
این دو حالت چه مزایا و چه تفاوتی دارند؟ در صورتی که راهاندازی درون کد هسته کامپایل شود، اولا نیازی نیست تا در هربار بوت مجددا بارگذاری شود و دسترسی به آن نیز سریعتر خواهد بود. ولی اگر آنرا بصورت یک ماژول جداگانه کامپایل نمایید، باید در هربار بوت بارگذاری شود (البته این بارگذاری خودکار انجام خواهد شد) و دسترسی به آن کمی کندتر از دسترسی به صورت درونی است. مزیت آن چیست؟ اگر شما سختافزاری را پس از کامپایل کردن هسته از کامپیوترتان جدا کنید، کد درونی همچنان فعال بوده و ممکن است سبب شود تا هسته در فشار نبود آن سختافزار کار کند، ولی در حالت ماژول، شما به سادگی قادر خواهید بود تا ماژول را از حالت بارگذاری خارج نمایید.
تصمیم اینکه چه بخشی را بصورت ماژول کامپایل کنید و چه بخشی را بصورت کد درونی، به عهده خودتان میگذارم.
شروع میکنیم
یکی از رابطهای مورد نظر خود را با دستوراتی که شرح داده شد، اجرا کنید و مراحل تنظیم هسته را قدم به قدم پیش ببرید. میتوانید به بخشهایی که در این مقاله توضیح داده نشدهاند توجه نکنید و از آنها عبور کنید. در صورتی که کنجکاو هستید، میتوانید از Help این برنامهها استفاده نمایید که بسیاری از مواقع نکات مبهم را روشن میکنند.
قدم اول: پردازنده کامپیوتر (Processor)
نخستین تنظیمی که باید انجام دهید، تعیین نوع پردازنده سیستم است. این کار کدهای ایجاد شده را برای پردازنده شما بهینه کرده و در سرعت هسته تاثیر خواهد گذاشت. بنابراین در بخش Processor type and features پردازنده خود را انتخاب کرده (البته معمولا سیستم بطور خودکار آنرا برای شما انتخاب کرده است) و سپس گزینه Symmetric multi-processing support را غیر فعال نمایید. (البته در صورتی که کامپیوتر شما بیش از یک پردازنده دارد آنرا فعال باقی بگذارید) فعال باقی گذاشتن این گزینه در سیستمهای تک پردازندهای باعث کاهش سرعت خواهد شد. در صورتی که هسته را برای یک سیستم اداری و میزکار یا سیستم خانگی پیکربندی میکنید، گزینه Preemptive Kernel را نیز فعال نمایید که پاسخهای سیستم در هنگامی که سیستم زیر بار است سریعتر شود. تنظیمات پردازنده سیستم در این بخش به پایان میرسد.
قدم دوم: مدیریت توان (Power Management)
این گزینهها امکان خاموش شدن خودکار سیستم، بکارگیری باطری، سیاستهای حفاظت انرژی و... را فراهم میسازد. در شاخه اصلی، امکان فعال کردن کلی این قابلیت (Power Management Support) و قابلیتهای ذخیره در دیسک (Suspend-to-disk) وجود دارد. (برای فعال شدن قابلیت مورد نظرتان بصورت کد درونی کلید Y و برای کامپایل آن بصورت ماژول کلید M را فشار دهید). سپس در بخش ACPI میتوانید گزینههای مورد نظرتان را فعال نمایید. من گزینه اصلی ACPI Support و گزینه Button را برای خاموش شدن خودکار سیستم انتخاب نمایید. در صورتی که هسته یک کامپیوتر کیفی را پیکربندی میکنید، علاوه بر این گزینهها، گزینههای AC Adapter، Battery و Processor را نیز فعال نمایید. در صورتی که کامپیوتر شما از نوع ASUS یا Toshiba است، گزینههایی نیز برای آن وجود دارد که میتوانید آنرا نیز فعال کنید. گزینه بعدی APM است که توصیه میشود برای کامپیوترهای کیفی آنرا فعال نمایید.
قدم سوم: گذرگاههای عمومی (Bus Options)
در این بخش باید گذرگاههای PCI، ISA و PCMCIA را فعال نمایید. به این منظور گزینههای PCI Support، PCD devicename database، ISA Support ( در صورتی ISA را فعال نمایید که برد اصلی شما دارای آن باشد) برای پشتیبانی از PCMCIA، بخش Support for hot-pluggable devices را فعال نموده در زیر آن بخشهای مربوط به PCMCIA/CardBus support را فعال نمایید. (PCMCIA تنها برای کامپیوترهای کیفی لازم است).
قدم چهارم: راهاندازهای دستگاهها (DeviceDrivers)
همانطور که از عنوان این بخش پیداست، در این بخش باید راهاندازهای ابزارهای مختلف را فعال نمایید. نخستین گزینهای که باید آنرا فعال نمایید، درگاه موازی یا Parallel port support است. در این قسمت بخشهای PC-stylehardware و IEEE 1284 transfer modes را (برای حالتهای انتقال داده EPP و ECP) فعال نمایید.
قسمت بعدی که باید آنرا تنظیم نمایید، بخش Block Devices است که باید در آن گزینههای Normal floppy disk support و Loopbackdevice support را فعال نمایید. در صورت نیاز گزینههای RAM disk support و Initial RAM disk support را هم میتوانید انتخاب کنید.
بخش بعدی تنظیمات مربوط به درایوهای مختلف و دیسکهای سخت میباشد. در بخش ATA/ATAPI/MFM/RLL support گزینههای Include IDE/ATA-2Disk support، Use multi-mode by default، IncludeIDE/ATAPI CD-ROM، گزینه SCSI emulation support (در صورتی که یک CD-Writer دارید الزامی است) generic/default IDEchipset support و سپس گزینه PCI IDE chipset support را فعال نمایید. در بخش PCI IDE chipset support گزینههای Sharing PCI IDE interrupts support، Generic PCIbus-master DMA support، Use PCI DMA by default whenavailable و در نهایت نوع تراشه کنترل کننده IDE روی برد اصلیتان را تعیین کنید. مثلا من برای برد اصلی خودم که دارای تراشه سری VIA KT133 است، گزینه VIA82CXXX را انتخاب میکنم.
قسمت بعدی در این قدم SCSI device support است که باید در آن گزینههای legacy /proc/scsi support، SCSIdisk support، SCSI CD-ROM support، SCSI generic support، Probe all LUNs on each SCSI device را فعال نمایید. در صورتی که کارت اسکازی خاصی بر روی سیستمتان نصب شده است، راهانداز آنرا از بخش SCSI low level drivers فعال نمایید.
در مرحله بعد باید پشتیبانی از شبکه (Networking Support) و پروتکلهای مختلف را فعال نمایید. فعال کردن این بخش حتما به این معنی نیست که باید شبکه یا کارت شبکه داشته باشید. بخشهایی از آن حتی برای اتصال Dialup به اینترنت نیز لازم است. در این بخش گزینههای Dummy net driver support، PPP، PPP support for asyncserial ports، PPP support for sync tty ports، PPPdeflate compression و PPP BSD Compress compression را فعال نمایید. در صورتی که یک کارت شبکه در کامپیوترتان نصب شده و مایل هستید تا راهانداز آنرا نیز فعال نمایید، نام/تراشه آنرا میتوانید در یکی از دستههای Ethernet 10or 100Mbit، Ethernet 1000 Mbit و Ethernet 10000 Mbit پیدا کنید. مثلا من برای فعال کردن کارت Realtek خود روی گزینه Ethernet 10 or 100 Mbit کلیک کرده و سپس با فعال کردن گزینه EISA, VLB, PCI and on board controllers راهانداز کارت مربوطه را فعال میکنم.
در مرحله بعدی باید راهاندازهای دستگاههای ورودی مانند ماوس، Gamepad و... را فعال کنید. بنابراین در بخش Input device support، گزینههای Gameport support، Serial port line discipline، Mice و بخشهای زیر آن یعنی PS/2 و Serial و قسمت Misc بخش PC Speaker support را فعال کنید. در صورتی که دسته بازی دارید گزینههای joystick interface و joysticks را نیز فعال کنید.
پس از اتمام بخش Input device support، باید بخش Character devices را فعال کنید. در این بخش گزینههای Unix98 PTY support، Parallel printer support، /dev/agpgart support و تراشه AGP برد مادر، DirectRendering Manager و تراشه مربوطه (اگر هیچیک نبود تنها همان گزینه Direct Rendering Manager را نگه دارید) را فعال نمایید. سپس در بخش Serial drivers باید گزینههای 8250/16550 and compatible serial support و 8250/16550 device discovery via ACPI namespace را فعال کنید.
در مرحله بعدی باید گزینههای Graphics support را که راهاندازهای گرافیکی هسته میباشد را تنظیم کنید. در این بخش گزینههای Support for frame buffer devices و سپس تراشه کارت گرافیکی خود را فعال نمایید.
پس از این مرحله نوبت به کارت صوتی میرسد. در بخش Sound گزینه Soundcard support را فعال کرده و سپس در قسمت Advanced LinuxSound Architecture گزینههای Sequencer support، OSS APIemulation، OSS Mixer API، OSS PCM API و OSS SequencerAPI را فعال نمایید. (راهانداز صوتی پیشگزیده در هستههای سری 2.6 از OSS به ALSA تغییر کرده است و گزینههای OSS Emulation جهت سازگاری با برنامههایی است که از این راهنداز استفاده میکردهاند.) سپس در بخش Generic device قسمت Generic MPU-401 UART driver را فعال کنید. برای فعال شدن راهانداز کارت صوتیتان، در قسمت PCIDevices نام/تراشه آنرا فعال کنید. (در صورتی که این بخش را فعال کردید و پس از اتمام، کامپایل و نصب هسته صدای شما کار نکرد، تنظیمات Mixer را با برنامهای مانند kmix بررسی نمایید. معمولا صداها در حالت Mutt قرار میگیرند)
در مرحله بعدی به مبحث شیرین USB میرسیم. در قدم نخست Support for USB و USB device filesystem را فعال نمایید. سپس با توجه به نوع سختافزاری که دارید، یکی از گزینههای EHCI، OHCI یا UHCI را فعال کنید (در صورتی که نمیدانید تراشه کنترل کننده USB شما در کدام گروه قرار دارد، از دستور lspci -v استفاده نمایید.) در صورتی که ابزارهای صوتی یا بلندگوی USB دارید، گزینه USB Audio support را فعال کنید. در صورتی که مودم شما USB است، گزینه USB Modem را فعال کنید. درصورتی که چاپگر USB دارید، گزینه USBPrinter را فعال نمایید. در صورتی که از دیسکهای همراه USB یا دوربین دیجیتال دارید، گزینه USB Mass Storagesupport را فعال نمایید. در صورتی که کیبورد و ماوس USB دارید، گزینه USB Human Interface Device را فعال نمایید. برخی دیگر از ابزارهای گرافیکی، شبکه، ویدئو و... نیز پشتیبانی میشوند که در صورتی که آنها را در سیستم خود دارید، گزینه مربوط به آنها را نیز میتوانید فعال کنید. در صورتی که در حال حاضر هیچ ابزار USB ندارید، میتوانید از این مرحله عبور نمایید.
در مرحله بعدی باید پشتیبانی از فایل سیستمهای مختلف را فعال نمایید. در بخش Filesystems گزینههای Second extended fs support (برای پشتیبانی از ext2)، سپس Ext3 journaling file systemsupport، به همراه Ext3 extended attributes، سپس ReiserFSsupport، سپس Quota Support (در صورتی که مایل هستید فضای دیسک مصرفی هر کاربر را محدود نمایید – مانند شبکهها و سرویسدهندههای عمومی) و در آخر Kernel automounterversion 4 support را فعال کنید. برای پشتیبانی از فایل سیستمهای CD/DVD، در بخش CD-ROM/DVD filesystems، گزینههای ISO 9660 و Microsoft Joliet و UDF را فعال نمایید. برای پشتیبانی از پارتیشنهای DOS/Fat32 و NTFS، گزینههای مربوطه را در بخش DOS/FAT/NT filesystems فعال کنید.
سپس در قسمت Pseudo filesystems گزینههای procfilesystem support، dev/pts filesystem for unix98 و virtual memory filesystem support را فعال کنید. (این گزینه را فراموش نکنید!) در صورتی که سیستم شما در محیط شبکه قرار دارد و مایل هستید تا به درایوهای شبکه به اشتراک گذاشته شده در سیستمهای ویندوز و یا سرویسدهندههای لینوکس دسترسی پیدا کنید، گزینههای NFSfilesystem support، NFS server support و SMB filesystemsupport را فعال نمایید. (گزینه NFS Server را در صورتی فعال نمایید که میخواهید از سیستم خود بعنوان یک سرویسدهنده NFS استفاده کنید).
قدم پنجم: ذخیره تغییرات و خروج
خسته نباشید! قدم پیشین کمی بیشتر از یک قدم شد و به یک راه طولانی بیشتر شبیه است! ببخشید. در این مرحله تنظیمات هسته به پایان رسیده و اکنون باید از برنامههای رابط خارج شوید. هنگام خروج از شما درخواست خواهد شد تا تغییرات را ذخیره نمایید. حتما این کار را انجام دهید و اگرنه هر چه را که تاکنون رشتهاید، پنبه خواهید کرد!
قدم ششم: کامپایل کردن هسته
در این مرحله باید کد منبع هسته را که اکنون تنظیم و آماده شده است، کامپایل نمایید تا به کدهای اجرایی قابل استفاده برای سیستم تبدیل شوند. برای انجام این کار، دستورات زیر را انجام دهید:
# cd /usr/src/linux
# make bzImage && make modules && make modules_install
در صورتی که از یکی از توزیعهای مبتنی بر دبیان استفاده میکنید (مانند دبیان، لیبرانت، کناپیکس، Mepis و...) به سادگی خواهید توانست با وارد کردن دستور زیر بجای دستورات بالا، یک بسته دبیان حاوی هسته جدید و ماژولهای مربوطه ایجاد نموده و آنرا برای استفادههای آتی نیز نگهداری نمایید و در صورتی که نیاز پیدا کردید تا سیستم را مجددا نصب نمایید، تنها همین بسته را برای ارتقاء به هسته جدید نصب خواهید کرد (چه خوب!):
# cd /usr/src/linux
# make-kpkg kernel_image modules_image
مدت زمان لازم جهت عملیات کامپایل هسته کاملا بستگی به قدرت سیستم شما و گزینههای انتخاب شده دارد. در سیستم من که یک اتلون تاندربرد 1333 مگاهرتزی است، این عملیات حدود ۸ الی ۹ دقیقه طول میکشد. در سیستمهای قدیمی ممکن است این عملیات ساعتها به طول انجامد. بنابراین کافی است که کمی حوصله به خرج دهید. تصویر زیر هسته را هنگام کامپایل شدن نشان میدهد:
قدم هفتم: نصب هسته
پس از اینکه کامپایل هسته با موفقیت به اتمام رسید، سیستم آماده دریافت فرمان از شما میباشد. در حالتی که هسته را با دستور make کامپایل کردهاید، برای نصب آن در محل بوت دستورات زیر را وارد نمایید:
# cd /usr/src/linux
# mv arch/i386/boot/bzImage /boot/vmlinuz-2.6.3
# mv System.map /boot/System.map-2.6.3
در حالتی که هسته را با دستور make-kpkg کامپایل کردهاید، دستور زیر را برای نصب آن وارد نمایید. توجه داشته باشید در صورتی که از lilo به عنوان مدیر بوت سیستم استفاده نمیکنید، سوال پیکربندی lilo را با پاسخ NO و در غیر اینصورت با Yes پاسخ دهید:
# cd /usr/src/
# dpkg -i kernel-image-2.6.3_Custom_i386.deb
البته ممکن است نام بسته دبیان ایجاد شده روی سیستمتان با نام فوق متفاوت باشد. بنابراین قبل از صدور این دستور این امر را بررسی کنید. (این کار را میتوانید با یک دستور ساده ls /usr/src انجام دهید. البته با تایپ dpkg -i kernel و فشار دادن کلید tab نام فایل بطور خودکار تکمیل خواهد شد.)
قدم هشتم: پیکربندی مدیر بوت
به مرحله پایانی نصب و پیکربندی هسته میرسیم. پیکربندی مدیر بوت سیستم جهت بوت شدن با هسته جدید. بدلیل اینکه اکثر توزیعهای لینوکس از گراب به عنوان مدیر بوت استفاده میکنند، ما تنظیم گراب را بررسی خواهیم کرد. تنظیم لیلو نیز کاملا مشابه است. برای باز کردن فایل پیکربندی گراب دستورات زیر را وارد نمایید:
# vi /boot/grub/menu.lst (in Redhat: /boot/grub/grub.conf)
فایل پیکربندی گراب در ویرایشگر vi باز خواهد شد. احتمالا اکنون خطی همانند خط زیر (البته ممکن است در سیستم شما دارای مقادیر متفاوتی باشد) در این فایل وجود دارد:
title Libranet GNU/Linux, kernel 2.4.21
root (hd0,1)
kernel /vmlinuz-2.4.21 root=/dev/hda3 ro hdb=scsi
savedefault
boot
شما میتوانید به راحتی این بخش را انتخاب و با کلیک راست ماوس در حافظه کپی نمایید. سپس کلید Insert را فشار داده و اشاره گر را به یک خط خالی در زیر آن انتقال داده و سپس با کلیک راست متن قبلی را Paste کرده و مطابق زیر ویرایش نمایید:
title Libranet GNU/Linux, kernel 2.6.3
root (hd0,1)
kernel /vmlinuz-2.6.3 root=/dev/hda3 ro hdb=scsi
savedefault
boot
پس از اتمام ویرایش، کلید Esc را فشار داده و دستور wq را تایپ نمایید تا تغییرات ذخیره شده و از ویرایشگر vi خارج شوید. (در صورتی که نیاز داشتید در مورد vi بیشتر بدانید، مقالهای در مورد آن در سایت موجود است) خوب. پیکربندی مدیر بوت نیز به پایان رسید. اکنون به پایان کار نصب و پیکربندی هسته رسیدهاید. برای دیدن نتیجه کار خود کافی است که سیستم را بوت کرده و از مدیر بوت گزینهای را که اکنون اضافه نمودید انتخاب کنید. معمولا باید همه چیز به خوبی پیش رود. در صورتی که به خطایی برخورد کردید، مجددا پیکربندی و تنظیمات خود را بررسی نمایید. معمولا با چند بار سعی مجدد مشکلاتتان حل خواهند شد. موفق باشید
به چه چیزی نیاز دارید؟
برای پیکربندی و کامپایل هسته، چیز زیادی لازم نیست:
۱) کدمنبع کامل هسته
۲) اطلاعات کامل در مورد انواع سختافزارهای نصب شده در سیستم
۳) نرمافزارهای توسعه مانند کامپایلر GCC، Make و...
۴) زمان و دقت کافی
دریافت کد منبع هسته
کد منبع کامل هسته سیستمعامل لینوکس را همواره میتوانید از آرشیو آن واقع در آدرس The Linux Kernel Archives دریافت نمایید. نسخههای متعددی از هسته برای دانلود موجود میباشد. شما همیشه آخرین نسخه پایدار را دریافت نمایید. کد منبع را به دو صورت میتوانید دریافت کنید. وصله (patch) و کد منبع کامل (Full). این دو چه تفاوتی باهم دارند؟ کد منبع کامل حدود ۴۰ مگابایت حجم دارد. وصله کد منبع حدود ۲-۳ مگابایت حجم دارد. در صورتی که هیچ کد منبع کاملی از سری مورد نظرتان که آنرا برای نصب روی سیستم در نظر گرفتهاید ندارید (مانند سری 2.6 که موضوع این مقاله است) باید کد منبع کامل را دریافت نمایید. ولی اگر کد منبع کامل نسخههای کمی قبلتر (مثلا نسخه پایدار فعلی 2.6.3 است، ولی شما کدهای منبع 2.6.2 را دارید) را دارید و مایلید تا آخرین نسخه را روی سیستمتان نصب کنید، لازم نیست تا کل کدهای منبع را مجددا دریافت و نصب نمایید. در این موارد وصله نسخه مورد نظر را دریافت و بر روی نسخه قدیمیتر اعمال میکنید. جلوتر این مطلب را بیشتر توضیح خواهم داد.
اطلاعات کامل در مورد سختافزارهای نصب شده
اگر این اطلاعات را نداشته باشید، عملا قادر نخواهید بود هسته خود را به درستی تنظیم کنید و هسته هنگام کارکرد با مشکل مواجه خواهد شد. بنابراین، کافی است که اطلاعات تمامی سختافزارهای نصب شده مانند تراشههای برد مادر، درایوهای مختلف، کارت گرافیک، کارت صوتی، مودم و... را از دفترچههای موجود تهیه نمایید و یا از اشخاص وارد دقیقا سوال کنید. (مثلا تنها دانستن مدل برد مادر به شما کمکی نخواهد کرد و حتما باید بدانید دارای چه چیپ ستی است و یا برخی کارتهای صوتی Genius از چیپ ست FM801 استفاده میکنند و برخی دیگر از چیپ ست Yamaha. تنها دانستن اینکه کارت صوتی شما Genius است، در چنین مواردی کمکی به شما نخواهد کرد.)
نرمافزارهای توسعه
فرقی نمیکند که از چه توزیعی استفاده میکنید. برای کامپایل کردن هسته، حتما باید ابزارهای Development موجود در توزیع مورد استفاده تان را نصب نمایید. انتظار نداشته باشید بدون داشتن یک کامپایلر هستهتان را کامپایل کنید. علاوه بر ابزارهای توسعه، هسته نیز ممکن است به تعدادی نرمافزار پیشنیاز، نیاز داشته باشد. مثلا هسته 2.6.3 که در این مقاله آنرا نصب خواهیم کرد، به تعدادی ابزار نیاز دارد که برای عملکرد صحیح حتما باید نسخههای صحیح آنها را در سیستم خود داشته باشید. برای اطلاعات بیشتر در مورد شماره نسخههای ابزارهای لازم و دریافت آنها اینجا را ببینید. (البته اکثر توزیعهای جدید بیشتر نسخههای پیشنیاز را دارا هستند و احتمالا تنها ۱ الی ۲ بسته را باید قبل از کامپایل و نصب هسته نصب نمایید، مگر اینکه توزیع مورد استفاده شما بسیار قدیمی باشد!)
زمان و دقت کافی
تنظیم و کامپایل هسته کاری است که دقت و زمان زیادی (بسته به قدرت پردازنده شما) خواهد طلبید. بنابراین آنرا زمانی انجام دهید که دارای زمان و تمرکز کافی هستید و چیزی مزاحم شما نمیشود! در غیر اینصورت ممکن است هسته شما درست از آب درنیاید! البته خوبی سیستمعامل لینوکس در این است که شما در آن واحد قادرید چندین هسته داشته باشید و در صورت عدو موفقیت هسته جدید، قادر خواهید بود با هسته سابق به سیستم بوت شوید و عملیات را از اول انجام دهید! پس زیاد نگران نباشید. همیشه چند تجربه نخست، موفقیت آمیز نخواهد بود.
شروع عملیات
اکنون فرض میکنیم که کلیه موارد بالا انجام شده و برای شروع عملیات تنظیم و کامپایل هسته آماده هستیم. عملیات تنظیم و کامپایل هسته را میتوان به مراحل زیر تقسیم کرد:
۱) قرار دادن کد منبع هسته در محل مربوطه و خارج کردن آن از حالت فشرده
۲) تنظیم و پیکربندی هسته که مطلب اصلی مورد بحث ما در این مقاله است
۳) نصب هسته
۴) تنظیم برنامه مدیر بوت جهت اضافه شدن امکان بوت با هسته جدید
یک پنجره ترمینال باز کرده و عملیات را شروع میکنیم.
قرار دادن کد منبع در محل مربوطه و خارج کردن آن از حالت فشرده
فرض میکنیم که اکنون کد منبع کامل هسته موجود بوده و مایل هستید تا آنرا در جای صحیح قرار داده و آنرا از حالت فشرده خارج کرده و ادامه عملیات را بر روی آن انجام دهید. با این احتمال که کد منبع اکنون در دایرکتوری خانگی شما موجود میباشد، آنرا به محل مناسب آن که عموما در مسیر usr/src/ است، منتقل یا کپی میکنیم. برای مثال:
$ su
# cp /home/alan/linux-2.6.3.tar.bz2 /usr/src/
ویا اگر آنر روی CD داشتید:
$ su
# mount /cdrom (or mount /mnt/cdrom)
# cp /cdrom/linux-2.6.3.tar.gz /usr/src/
کد منبع هسته ممکن است در دو حالت فشرده bz2 و یا gzip در اختیار شما قرار گرفته شده باشد که برای خارج کردن آن از حالت فشردگی از دستورات زیر استفاده خواهید کرد:
# cd /usr/src/
# gunzip linux-2.6.3.tar.gz (if file is in tar.gz format)
# bzip2 -d linux-2.6.3.tar.bz2 (if file is in tar.bz2 format)
پس از اجرای دستورات فوق، حاصل کار یک بسته tar خواهد بود که برای بازکردن آن نیز باید از دستور زیر استفاده نمایید:
# tar -xf linux-2.6.3.tar
اکنون در مسیر usr/src/ یک دایرکتوری با نام linux-2.6.3 موجود است. طبق عرف (و نه به اجبار) یک میانبر به نام linux به دایرکتوری linux-2.6.3 ایجاد میکنیم:
# ln -s linux-2.6.3 linux
بسیار خوب. تا این مرحله تمامی کارهای اولیه انجام شده و به اتمام رسید. در بالا درمورد وصلههای هسته صحبت کردم. مثلا اگر شما کد منبع کامل هسته 2.6.2 را دارید و مایل هستید که هسته 2.6.3 را که فعلا آخرین هسته موجود میباشد (البته 2.6.4 چند روز دیگر ارائه خواهد شد!) را روی سیستم خود نصب نمایید، لازم نیست تا تمامی کد منبع را مجددا دانلود نمایید. کافی است که وصله (patch) آنرا که معمولا فایلی حدود یا کمتر از ۲ مگابایت است را دریافت کرده و کد منبع هسته موجود را به آن ارتقا دهید. به این صورت که کلیه مراحل گفته شده را برای هسته مثلا نسخه 2.6.2 انجام دهید و سپس وصله را از سایت آرشیو هسته دریافت کنید. با اجرای دستورات زیر، کد منبع هسته شما به نسخه 2.6.3 ارتقا پیدا خواهد کرد:
# cd /usr/src/linux
# bzcat /home/alan/patch-2.6.3.tar.bz2 | patch -p1
با اجرای دستور فوق، فایلهای مورد نیاز به نسخه جدید ارتقا پیدا خواهند کرد. سپس عملیات زیر را انجام دهید (یک نوع تمیزکاری!):
# rm linux
# mv linux-2.6.2 linux-2.6.3
# ln -s linux-2.6.3 linux
البته میتوانستید همان موقع میانبر را ایجاد نکرده و پس از انجام عمل ارتقا آنرا ایجاد کنید تا دوباره کاری نشود. اکنون همه چیز برای پیکربندی و تنظیم هسته آماده است.
تنظیم و پیکربندی هسته
پیکربندی هسته را میتوانید با استفاده از سه رابط کاربری متفاوت انجام دهید. دوتا از این رابطها گرافیکی و بسیار شبیه به هم هستند و رابط سوم متنی است. البته اصول کاری با تمامی این رابطها یکسان است. این رابطها با دستورات زیر اجرا خواهند شد:
# cd /usr/src/linux
# make xconfig (graphical)
# make gconfig (graphical)
# make menuconfig (text based)
شما میتوانید همه آنها را آزمایش کنید و با هرکدام که راحتتر بودید کار کنید. من شخصا اکثرا از گزینه xconfig و در سیستمهای متنی (مانند سرویسدهندهها یا دستگاههای راه دور) از menuconfig استفاده میکنم. تصاویر زیر این رابطها را نمایش میدهد. (برای دیدن تصاویر بزرگتر روی آنها کلیک کنید).
make gconfig
make menuconfig
makexconfig
این رابطها همگی دارای لیستی از بخشهای مختلف هسته هستند که تنظیمات آنرا باید انجام دهید. اکنون بخشهای اصلی این تنظیمات را که برای یک کامپیوتر معمولی ضروری است، بررسی میکنیم. اگر بخواهیم تمامی بخشها را بررسی کنیم، این مقاله تبدیل به یک کتاب میشود!
مسئله این است: ماژول یا کد درونی؟
قبل از شروع به تشریح بخشهای تنظیم هسته، مایل هستم تا نکتهای را تشریح کنم. بخشهای مختلفی را که برای هسته خودتان فعال میکنید (مانند انواع راهاندازها، تراشههای مختلف و...) به دو صورت میتوانند در هسته بکار گرفته شوند:
۱) درون کد هسته کامپایل شوند
۲) بصورت یک ماژول جدای از هسته ولی قابل بارگذاری در هسته کامپایل شوند
این دو حالت چه مزایا و چه تفاوتی دارند؟ در صورتی که راهاندازی درون کد هسته کامپایل شود، اولا نیازی نیست تا در هربار بوت مجددا بارگذاری شود و دسترسی به آن نیز سریعتر خواهد بود. ولی اگر آنرا بصورت یک ماژول جداگانه کامپایل نمایید، باید در هربار بوت بارگذاری شود (البته این بارگذاری خودکار انجام خواهد شد) و دسترسی به آن کمی کندتر از دسترسی به صورت درونی است. مزیت آن چیست؟ اگر شما سختافزاری را پس از کامپایل کردن هسته از کامپیوترتان جدا کنید، کد درونی همچنان فعال بوده و ممکن است سبب شود تا هسته در فشار نبود آن سختافزار کار کند، ولی در حالت ماژول، شما به سادگی قادر خواهید بود تا ماژول را از حالت بارگذاری خارج نمایید.
تصمیم اینکه چه بخشی را بصورت ماژول کامپایل کنید و چه بخشی را بصورت کد درونی، به عهده خودتان میگذارم.
شروع میکنیم
یکی از رابطهای مورد نظر خود را با دستوراتی که شرح داده شد، اجرا کنید و مراحل تنظیم هسته را قدم به قدم پیش ببرید. میتوانید به بخشهایی که در این مقاله توضیح داده نشدهاند توجه نکنید و از آنها عبور کنید. در صورتی که کنجکاو هستید، میتوانید از Help این برنامهها استفاده نمایید که بسیاری از مواقع نکات مبهم را روشن میکنند.
قدم اول: پردازنده کامپیوتر (Processor)
نخستین تنظیمی که باید انجام دهید، تعیین نوع پردازنده سیستم است. این کار کدهای ایجاد شده را برای پردازنده شما بهینه کرده و در سرعت هسته تاثیر خواهد گذاشت. بنابراین در بخش Processor type and features پردازنده خود را انتخاب کرده (البته معمولا سیستم بطور خودکار آنرا برای شما انتخاب کرده است) و سپس گزینه Symmetric multi-processing support را غیر فعال نمایید. (البته در صورتی که کامپیوتر شما بیش از یک پردازنده دارد آنرا فعال باقی بگذارید) فعال باقی گذاشتن این گزینه در سیستمهای تک پردازندهای باعث کاهش سرعت خواهد شد. در صورتی که هسته را برای یک سیستم اداری و میزکار یا سیستم خانگی پیکربندی میکنید، گزینه Preemptive Kernel را نیز فعال نمایید که پاسخهای سیستم در هنگامی که سیستم زیر بار است سریعتر شود. تنظیمات پردازنده سیستم در این بخش به پایان میرسد.
قدم دوم: مدیریت توان (Power Management)
این گزینهها امکان خاموش شدن خودکار سیستم، بکارگیری باطری، سیاستهای حفاظت انرژی و... را فراهم میسازد. در شاخه اصلی، امکان فعال کردن کلی این قابلیت (Power Management Support) و قابلیتهای ذخیره در دیسک (Suspend-to-disk) وجود دارد. (برای فعال شدن قابلیت مورد نظرتان بصورت کد درونی کلید Y و برای کامپایل آن بصورت ماژول کلید M را فشار دهید). سپس در بخش ACPI میتوانید گزینههای مورد نظرتان را فعال نمایید. من گزینه اصلی ACPI Support و گزینه Button را برای خاموش شدن خودکار سیستم انتخاب نمایید. در صورتی که هسته یک کامپیوتر کیفی را پیکربندی میکنید، علاوه بر این گزینهها، گزینههای AC Adapter، Battery و Processor را نیز فعال نمایید. در صورتی که کامپیوتر شما از نوع ASUS یا Toshiba است، گزینههایی نیز برای آن وجود دارد که میتوانید آنرا نیز فعال کنید. گزینه بعدی APM است که توصیه میشود برای کامپیوترهای کیفی آنرا فعال نمایید.
قدم سوم: گذرگاههای عمومی (Bus Options)
در این بخش باید گذرگاههای PCI، ISA و PCMCIA را فعال نمایید. به این منظور گزینههای PCI Support، PCD devicename database، ISA Support ( در صورتی ISA را فعال نمایید که برد اصلی شما دارای آن باشد) برای پشتیبانی از PCMCIA، بخش Support for hot-pluggable devices را فعال نموده در زیر آن بخشهای مربوط به PCMCIA/CardBus support را فعال نمایید. (PCMCIA تنها برای کامپیوترهای کیفی لازم است).
قدم چهارم: راهاندازهای دستگاهها (DeviceDrivers)
همانطور که از عنوان این بخش پیداست، در این بخش باید راهاندازهای ابزارهای مختلف را فعال نمایید. نخستین گزینهای که باید آنرا فعال نمایید، درگاه موازی یا Parallel port support است. در این قسمت بخشهای PC-stylehardware و IEEE 1284 transfer modes را (برای حالتهای انتقال داده EPP و ECP) فعال نمایید.
قسمت بعدی که باید آنرا تنظیم نمایید، بخش Block Devices است که باید در آن گزینههای Normal floppy disk support و Loopbackdevice support را فعال نمایید. در صورت نیاز گزینههای RAM disk support و Initial RAM disk support را هم میتوانید انتخاب کنید.
بخش بعدی تنظیمات مربوط به درایوهای مختلف و دیسکهای سخت میباشد. در بخش ATA/ATAPI/MFM/RLL support گزینههای Include IDE/ATA-2Disk support، Use multi-mode by default، IncludeIDE/ATAPI CD-ROM، گزینه SCSI emulation support (در صورتی که یک CD-Writer دارید الزامی است) generic/default IDEchipset support و سپس گزینه PCI IDE chipset support را فعال نمایید. در بخش PCI IDE chipset support گزینههای Sharing PCI IDE interrupts support، Generic PCIbus-master DMA support، Use PCI DMA by default whenavailable و در نهایت نوع تراشه کنترل کننده IDE روی برد اصلیتان را تعیین کنید. مثلا من برای برد اصلی خودم که دارای تراشه سری VIA KT133 است، گزینه VIA82CXXX را انتخاب میکنم.
قسمت بعدی در این قدم SCSI device support است که باید در آن گزینههای legacy /proc/scsi support، SCSIdisk support، SCSI CD-ROM support، SCSI generic support، Probe all LUNs on each SCSI device را فعال نمایید. در صورتی که کارت اسکازی خاصی بر روی سیستمتان نصب شده است، راهانداز آنرا از بخش SCSI low level drivers فعال نمایید.
در مرحله بعد باید پشتیبانی از شبکه (Networking Support) و پروتکلهای مختلف را فعال نمایید. فعال کردن این بخش حتما به این معنی نیست که باید شبکه یا کارت شبکه داشته باشید. بخشهایی از آن حتی برای اتصال Dialup به اینترنت نیز لازم است. در این بخش گزینههای Dummy net driver support، PPP، PPP support for asyncserial ports، PPP support for sync tty ports، PPPdeflate compression و PPP BSD Compress compression را فعال نمایید. در صورتی که یک کارت شبکه در کامپیوترتان نصب شده و مایل هستید تا راهانداز آنرا نیز فعال نمایید، نام/تراشه آنرا میتوانید در یکی از دستههای Ethernet 10or 100Mbit، Ethernet 1000 Mbit و Ethernet 10000 Mbit پیدا کنید. مثلا من برای فعال کردن کارت Realtek خود روی گزینه Ethernet 10 or 100 Mbit کلیک کرده و سپس با فعال کردن گزینه EISA, VLB, PCI and on board controllers راهانداز کارت مربوطه را فعال میکنم.
در مرحله بعدی باید راهاندازهای دستگاههای ورودی مانند ماوس، Gamepad و... را فعال کنید. بنابراین در بخش Input device support، گزینههای Gameport support، Serial port line discipline، Mice و بخشهای زیر آن یعنی PS/2 و Serial و قسمت Misc بخش PC Speaker support را فعال کنید. در صورتی که دسته بازی دارید گزینههای joystick interface و joysticks را نیز فعال کنید.
پس از اتمام بخش Input device support، باید بخش Character devices را فعال کنید. در این بخش گزینههای Unix98 PTY support، Parallel printer support، /dev/agpgart support و تراشه AGP برد مادر، DirectRendering Manager و تراشه مربوطه (اگر هیچیک نبود تنها همان گزینه Direct Rendering Manager را نگه دارید) را فعال نمایید. سپس در بخش Serial drivers باید گزینههای 8250/16550 and compatible serial support و 8250/16550 device discovery via ACPI namespace را فعال کنید.
در مرحله بعدی باید گزینههای Graphics support را که راهاندازهای گرافیکی هسته میباشد را تنظیم کنید. در این بخش گزینههای Support for frame buffer devices و سپس تراشه کارت گرافیکی خود را فعال نمایید.
پس از این مرحله نوبت به کارت صوتی میرسد. در بخش Sound گزینه Soundcard support را فعال کرده و سپس در قسمت Advanced LinuxSound Architecture گزینههای Sequencer support، OSS APIemulation، OSS Mixer API، OSS PCM API و OSS SequencerAPI را فعال نمایید. (راهانداز صوتی پیشگزیده در هستههای سری 2.6 از OSS به ALSA تغییر کرده است و گزینههای OSS Emulation جهت سازگاری با برنامههایی است که از این راهنداز استفاده میکردهاند.) سپس در بخش Generic device قسمت Generic MPU-401 UART driver را فعال کنید. برای فعال شدن راهانداز کارت صوتیتان، در قسمت PCIDevices نام/تراشه آنرا فعال کنید. (در صورتی که این بخش را فعال کردید و پس از اتمام، کامپایل و نصب هسته صدای شما کار نکرد، تنظیمات Mixer را با برنامهای مانند kmix بررسی نمایید. معمولا صداها در حالت Mutt قرار میگیرند)
در مرحله بعدی به مبحث شیرین USB میرسیم. در قدم نخست Support for USB و USB device filesystem را فعال نمایید. سپس با توجه به نوع سختافزاری که دارید، یکی از گزینههای EHCI، OHCI یا UHCI را فعال کنید (در صورتی که نمیدانید تراشه کنترل کننده USB شما در کدام گروه قرار دارد، از دستور lspci -v استفاده نمایید.) در صورتی که ابزارهای صوتی یا بلندگوی USB دارید، گزینه USB Audio support را فعال کنید. در صورتی که مودم شما USB است، گزینه USB Modem را فعال کنید. درصورتی که چاپگر USB دارید، گزینه USBPrinter را فعال نمایید. در صورتی که از دیسکهای همراه USB یا دوربین دیجیتال دارید، گزینه USB Mass Storagesupport را فعال نمایید. در صورتی که کیبورد و ماوس USB دارید، گزینه USB Human Interface Device را فعال نمایید. برخی دیگر از ابزارهای گرافیکی، شبکه، ویدئو و... نیز پشتیبانی میشوند که در صورتی که آنها را در سیستم خود دارید، گزینه مربوط به آنها را نیز میتوانید فعال کنید. در صورتی که در حال حاضر هیچ ابزار USB ندارید، میتوانید از این مرحله عبور نمایید.
در مرحله بعدی باید پشتیبانی از فایل سیستمهای مختلف را فعال نمایید. در بخش Filesystems گزینههای Second extended fs support (برای پشتیبانی از ext2)، سپس Ext3 journaling file systemsupport، به همراه Ext3 extended attributes، سپس ReiserFSsupport، سپس Quota Support (در صورتی که مایل هستید فضای دیسک مصرفی هر کاربر را محدود نمایید – مانند شبکهها و سرویسدهندههای عمومی) و در آخر Kernel automounterversion 4 support را فعال کنید. برای پشتیبانی از فایل سیستمهای CD/DVD، در بخش CD-ROM/DVD filesystems، گزینههای ISO 9660 و Microsoft Joliet و UDF را فعال نمایید. برای پشتیبانی از پارتیشنهای DOS/Fat32 و NTFS، گزینههای مربوطه را در بخش DOS/FAT/NT filesystems فعال کنید.
سپس در قسمت Pseudo filesystems گزینههای procfilesystem support، dev/pts filesystem for unix98 و virtual memory filesystem support را فعال کنید. (این گزینه را فراموش نکنید!) در صورتی که سیستم شما در محیط شبکه قرار دارد و مایل هستید تا به درایوهای شبکه به اشتراک گذاشته شده در سیستمهای ویندوز و یا سرویسدهندههای لینوکس دسترسی پیدا کنید، گزینههای NFSfilesystem support، NFS server support و SMB filesystemsupport را فعال نمایید. (گزینه NFS Server را در صورتی فعال نمایید که میخواهید از سیستم خود بعنوان یک سرویسدهنده NFS استفاده کنید).
قدم پنجم: ذخیره تغییرات و خروج
خسته نباشید! قدم پیشین کمی بیشتر از یک قدم شد و به یک راه طولانی بیشتر شبیه است! ببخشید. در این مرحله تنظیمات هسته به پایان رسیده و اکنون باید از برنامههای رابط خارج شوید. هنگام خروج از شما درخواست خواهد شد تا تغییرات را ذخیره نمایید. حتما این کار را انجام دهید و اگرنه هر چه را که تاکنون رشتهاید، پنبه خواهید کرد!
قدم ششم: کامپایل کردن هسته
در این مرحله باید کد منبع هسته را که اکنون تنظیم و آماده شده است، کامپایل نمایید تا به کدهای اجرایی قابل استفاده برای سیستم تبدیل شوند. برای انجام این کار، دستورات زیر را انجام دهید:
# cd /usr/src/linux
# make bzImage && make modules && make modules_install
در صورتی که از یکی از توزیعهای مبتنی بر دبیان استفاده میکنید (مانند دبیان، لیبرانت، کناپیکس، Mepis و...) به سادگی خواهید توانست با وارد کردن دستور زیر بجای دستورات بالا، یک بسته دبیان حاوی هسته جدید و ماژولهای مربوطه ایجاد نموده و آنرا برای استفادههای آتی نیز نگهداری نمایید و در صورتی که نیاز پیدا کردید تا سیستم را مجددا نصب نمایید، تنها همین بسته را برای ارتقاء به هسته جدید نصب خواهید کرد (چه خوب!):
# cd /usr/src/linux
# make-kpkg kernel_image modules_image
مدت زمان لازم جهت عملیات کامپایل هسته کاملا بستگی به قدرت سیستم شما و گزینههای انتخاب شده دارد. در سیستم من که یک اتلون تاندربرد 1333 مگاهرتزی است، این عملیات حدود ۸ الی ۹ دقیقه طول میکشد. در سیستمهای قدیمی ممکن است این عملیات ساعتها به طول انجامد. بنابراین کافی است که کمی حوصله به خرج دهید. تصویر زیر هسته را هنگام کامپایل شدن نشان میدهد:
قدم هفتم: نصب هسته
پس از اینکه کامپایل هسته با موفقیت به اتمام رسید، سیستم آماده دریافت فرمان از شما میباشد. در حالتی که هسته را با دستور make کامپایل کردهاید، برای نصب آن در محل بوت دستورات زیر را وارد نمایید:
# cd /usr/src/linux
# mv arch/i386/boot/bzImage /boot/vmlinuz-2.6.3
# mv System.map /boot/System.map-2.6.3
در حالتی که هسته را با دستور make-kpkg کامپایل کردهاید، دستور زیر را برای نصب آن وارد نمایید. توجه داشته باشید در صورتی که از lilo به عنوان مدیر بوت سیستم استفاده نمیکنید، سوال پیکربندی lilo را با پاسخ NO و در غیر اینصورت با Yes پاسخ دهید:
# cd /usr/src/
# dpkg -i kernel-image-2.6.3_Custom_i386.deb
البته ممکن است نام بسته دبیان ایجاد شده روی سیستمتان با نام فوق متفاوت باشد. بنابراین قبل از صدور این دستور این امر را بررسی کنید. (این کار را میتوانید با یک دستور ساده ls /usr/src انجام دهید. البته با تایپ dpkg -i kernel و فشار دادن کلید tab نام فایل بطور خودکار تکمیل خواهد شد.)
قدم هشتم: پیکربندی مدیر بوت
به مرحله پایانی نصب و پیکربندی هسته میرسیم. پیکربندی مدیر بوت سیستم جهت بوت شدن با هسته جدید. بدلیل اینکه اکثر توزیعهای لینوکس از گراب به عنوان مدیر بوت استفاده میکنند، ما تنظیم گراب را بررسی خواهیم کرد. تنظیم لیلو نیز کاملا مشابه است. برای باز کردن فایل پیکربندی گراب دستورات زیر را وارد نمایید:
# vi /boot/grub/menu.lst (in Redhat: /boot/grub/grub.conf)
فایل پیکربندی گراب در ویرایشگر vi باز خواهد شد. احتمالا اکنون خطی همانند خط زیر (البته ممکن است در سیستم شما دارای مقادیر متفاوتی باشد) در این فایل وجود دارد:
title Libranet GNU/Linux, kernel 2.4.21
root (hd0,1)
kernel /vmlinuz-2.4.21 root=/dev/hda3 ro hdb=scsi
savedefault
boot
شما میتوانید به راحتی این بخش را انتخاب و با کلیک راست ماوس در حافظه کپی نمایید. سپس کلید Insert را فشار داده و اشاره گر را به یک خط خالی در زیر آن انتقال داده و سپس با کلیک راست متن قبلی را Paste کرده و مطابق زیر ویرایش نمایید:
title Libranet GNU/Linux, kernel 2.6.3
root (hd0,1)
kernel /vmlinuz-2.6.3 root=/dev/hda3 ro hdb=scsi
savedefault
boot
پس از اتمام ویرایش، کلید Esc را فشار داده و دستور wq را تایپ نمایید تا تغییرات ذخیره شده و از ویرایشگر vi خارج شوید. (در صورتی که نیاز داشتید در مورد vi بیشتر بدانید، مقالهای در مورد آن در سایت موجود است) خوب. پیکربندی مدیر بوت نیز به پایان رسید. اکنون به پایان کار نصب و پیکربندی هسته رسیدهاید. برای دیدن نتیجه کار خود کافی است که سیستم را بوت کرده و از مدیر بوت گزینهای را که اکنون اضافه نمودید انتخاب کنید. معمولا باید همه چیز به خوبی پیش رود. در صورتی که به خطایی برخورد کردید، مجددا پیکربندی و تنظیمات خود را بررسی نمایید. معمولا با چند بار سعی مجدد مشکلاتتان حل خواهند شد. موفق باشید