کمپایل کردن و پیکربندی مجدد هسته لینوکس

هنگامی که لینوکس را نصب میکنید، در اکثر توزیع‌ها هسته (که قلب سیستم عامل است) بصورت خودکار پیکربندی شده و آماده به کار میشود. قابلیت‌های زیادی مانند انواع راه اندازهای سخت افزار و سرویسهایی که هسته ارائه میکند، در آن گنجانده شده است. گاهی اوقات نیاز به تغییر این قابلیت ها دارید. مانند هنگامی که می‌خواهید قابلیت‌های جدیدی به آن اضافه کنید. در این مواقع نیاز به پیکربندی مجدد هسته خواهید داشت.


نکته : اضافه کردن تمام قابلیت‌ها نیاز به پیکربندی مجدد هسته ندارند. مثلا بسیاری از راه اندازهای سخت افزاری بصورت ماژولهای قابل بارگزاری در هسته (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 قرار دارد، هسته جدید را در آن تعریف نمایید. همانطور که متوجه شده‌اید، در لینوکس میتوانید ۲ یا چند هسته را در کنار هم استفاده نمایید.

بطور کلی پیکربندی مجدد هسته کار دشواری است که تا در انجام آن مهارت پیدا کنید، ممکن است مدت زمانی طول بکشد و ممکن است گاهی مجبور شوید یک هسته را چندین و چندین بار نصب و کامپایل نمایید تا بطور صحیح کار کند.

منبع : technotux.com

طریقه نشان دادن درایو های ویندوز در لینوکس

در لینوکس و یونیکس بدون در نظرگرفتن اینکه چه نوع درایو یا سخت افزاری برروی سیستم نصب گردیده کلیه منابع سیستم در یک دایرکتوری اصلی بنام ریشه ( / ) یا ROOT  قرار دارد .

بطورمعمول این روش بسیار بهتر و کاراتراز روش سنتی نامگذاری درایوها در ویندوز عمل میکند و فایل سیستم را صرفنظر از نوع سخت افزار بسیار ساده و کارآمد مینماید و این نکته وقتی نمود پیداخواهد کرد  که شما مجبور باشید سخت افزار جدیدی مثل هارد دیسک دوم و سوم و ... و یا منابع به اشتراک گذاشته شده از طریق شبکه را به سیستم خود بیافزائید .

نباید از نظر دورداشت که برای کاربران سیستم عامل ویندوز و کسانی که با سیستم سنتی نامگذاری درایوها مثلا C ، D ، E  و ... عادت کرده اند درک درست ساختار فایل سیستم لینوکس و کار با آن قدری پیچیده بنظر میرسد . اما بطور خلاصه باید گفت که در لینوکس نباید بدنبال درایوهای خود بگردید ، چون کلیه محتویات دیسکها را در یک فایل سیستم واحد لینوکس میتوانید مشاهده و یا متصل نمائید . (directory tree)

بطور پیش گزیده محتویات درایوهای قابل جابجائی مثل سی دی و فلاپی درایو  بصورت خودکار در این ساختا ر دیده نمیشوند و شما باید نخست این درایو ها را به فایل سیستم لینوکس متصل یا mount  نمائید . همچنین بخاطر داشته باشید که قبل از خارج نمودن این گونه درایوها از کامپیوتر باید آنها را ابتدا  از فایل سیستم جدا یا unmount‌ نمود .

شما با عملیات mount ‌ کردن خواهید توانست طیف گسترده ای از فایل سیستمهای ایجاد شده توسط سایر سیستمهای عامل همچون ویندوز را مثلFAT,  FAT32,  NTFS  بصورت خواندن و نوشتنی یا فقط خواندنی به سیستم لینوکس خود متصل کنید و از آنها در یک دایرکتوری درست مثل درایوهای سنتی ویندوز استفاده کنید . این موضوع در مورد اتصال درایوهای ZIP‌ و فلاپی و سی دی و کلیه فایل سیستمهای دیگر صادق است .

برای درک بهتر موضوع به ارئه یک مثال میپردازم :

فرض کنید شما میخواهید درایو سی دی خود را به لینوکس متصل mount کرده و محتویات یک سی دی را مشاهده و از آن استفاده کنید:

ابتدا بایستی اجازه دسترسی به منابع سیستم را بعنوان کابر ریشه با تایپ دستور زیر و وارد نمودن password  کاربر ریشه کسب کنید .

$ su

Enter password : ***********

در ادامه  بایستی بدانید که محتویات فایل سیستم روی سی دی شما باید به لینوکس متصل و در داخل یک دایرکتوری که عموما در مسیر /mnt/cdrom/   یا هر کجای دیگر که خودتان صلاح بدانید مشاهده شود پس ابتدا بایستی دایرکتوری با نام cdrom  در مسیر فوق با دستور زیر ایجاد یا از قبل وجود داشته باشد :

# mkdir  /mnt/cdrom

سپس باید از دستور زیر برای اتصال این فایل سیستم به لینوکس استفاده نمائید :

# mount  -t auto  /dev/cdrom  /mnt/cdrom

شاید میپرسید  -t  auto و یا /dev/cdrom  چیست .؟

عبارت اول یعنی -t  auto باعث شناسائی خودکار فایل سیستم موجود روی سی دی شده  و استفاده از آن در نسخه های جدید لینوکس اختیاری است ، اما عبارت دوم یعنی /dev/cdrom محل اسقرار درایور یا گرداننده سی دی رام IDE interface را نشان میدهد و ممکن است بسته به محل اتصال کابل سی دی به کامپیوتر به صورت /dev/hdd  یا /dev/hdb   و یا /dev/hdc  تغییر یابد .

در اینصورت بعنوان مثال شکل فرمان بدینگونه اصلاح خواهد شد :

# mount  -t auto  /dev/hdd  /mnt/cdrom

اگر همه کارها را به درستی انجام داده باشید محتویات سی دی قرار گرفته در درایو سی دی رام را در دایرکتوری /mnt/cdrom  مشاهده خواهید کرد .

در خاتمه کار باید با دستور زیر ابتدا سی دی را unmount ‌ کرده و سپس از درایو مربوطه خارج کرد :

# umount   /mnt/cdrom

توجه کنید که برای unmount کردن هر وسیله آن ابزار نباید در حال بهره برداری یا inuse‌ باشد .

بدیهی است در صورت عدم انجام مرحله آخر ممکن است درایو سی دی رام شما اجازه خروج سی دی را از جایگاه خود ندهد . البته باید خاطر نشان کرد که کل این عملیات در لینوکس بدلیل امنیت و کارائی بیشتر بدین صورت طراحی شده تا کاربران متعدد اجازه دسترسی همزمان را به منابع یک رسانه و ایجاد اختلال در عملیات سیستم عامل را نداشته و از امنیت بالاتری بهره مند شوند .

ضمنا در توزیعهای جدید لینوکس اغلب عملیات mount  و  unmount‌ کردن درایو ها با نرم افزاری موسوم به kudzu  بصورت کاملا اتوماتیک در آمده و کاربری آن بسیار ساده شده است .

آموزش کامل دوره راهبری سیستم عامل لینوکس ۴۴ فصل (حرفه ای)

فکر کنم این ۴۴ فصل دیگر کامل ترین مرجع برای آموزش حرفه ای لینوکس است! امیدوارم خوشتان بیاید...

دو E-Book فارسی در زمینه اموزش لینوکس

کتاب  آموزش  گنو/لینوکس که به زبان فارسی هم هست کتاب خوب و مفیدی در زمینه اموزش لینوکس است با حجم 15MB .

این کتاب هم که به زبان فارسی است و نحوه پیکربندی و ساخت و کار یک سرور به وسیله APACHE را یاد می دهد با حجم تقریبا ۱MB