PDA

View Full Version : آموزش: کامپایل لینوکس



tanzadeh7
سه شنبه 13 خرداد 1393, 10:54 صبح
چرا کامپایل هسته وقتی بسته کامپایل شده وجود دارد : چون اغلب کرنل های از قبل کامپایل شده اند جهت استفاده در یک سیستم خاص نبوده اند و طیف گسترده ای از ماژول ها را به همراه دارند که اغلب سیستم من به انها نیازی ندارد پس باعث کندی سیستم و اشغال بی رویه رم می گردند. لذا اگر ما بتوانیم یک هسته را به صورت صحیح پیکربندی و کامپایل کنیم مشکلات بالا را نخواهیم داشت. در ابتدا با مراجعه به سایت www.kernel.org (http://www.kernel.org/) سورس اخرین نسخه پایدار هسته را دانلود کنید(زمان نگارش این مطلب ۳.۳.۱ بود). سپس فایل دانلود شده را که یک فایل فشرده با پسوندtar.bz2 است از حالت فشرده خارج کنید. در ادامه باید بسته های مورد نیاز برای کامپایل هسته را نصب کنید؛برای این کار دستور زیر را در ترمینال وارد کنید. sudo apt-get install ncurses-dev kernel-package build-essential
سپس یک ترمینال در محلی که فایل فشرده را در انجا استخراج کرده اید اجرا کنید. پیکربندی هسته : به چندین صورت میتوان هسته را پیکربندی کرد که من به روش های رایجتر بسنده میکنم : ۱- menuconfig با اجرای دستور make menuconfig در ترمینال یک صفحه شبیه صفحه زیر نمایان میگردد. http://www.farsigeek.com/wp-content/uploads/2012/04/Terminal_002.png (http://www.farsigeek.com/?attachment_id=10570) توسط این ویزارد شما میتوانید به صورت دستی بر روی جزئیات هسته به صورت کامل نظارت داشته باشید؛ اما از انجا که این جزئیات بسیار زیاد و پیچیده هستند این گزینه را به کاربران مبتدی توصیه نمیکنم. ۲-oldconfig با اجرای دستور make oldconfig در ترمینال سیستم به صورت خودکار از فایل کانفیگ هسته قبلی برای پیکربندی هسته جدید استفاده میکند اما از انجا که ممکن است هسته قبلی شما از نوع از قبل کامپایل شده باشد ممکن است به نتیجه چندان مطلوبی نرسید. ۳-localmodconfig با اجرای دستور make localmodconfig در ترمینال یک ویزارد شروع به بررسی سخت افزار سیستم کرده و به صورت خودکار سعی در ایجاد یک پیکربندی مناسب و بهینه میکند. دقت کنید که تمامی اجزا سیستم را قبل از اجرای این دستور مانند وایرلس؛ USB و … فعال کنید تا این ویزارد انها را به درستی تشخیص و به فایل کانفیگ اضافه کند در غیر این صورت ویزارد به تصور این که شما از این اجزا استفاده نمیکنید انها را غیر فعال میکند. نکته: در صورتی که ۲ دستور ‘oldconfig’ و ‘localmodconfig’ در پیکربندی هسته جدید با ویژگی های جدیدی مواجه شوند درباره فعال کردن یا فعال نکردن انها از کاربر سوال میپرسند. کامپایل و نصب هسته : کامپایل هسته نیز ساده و زمانبر!!! است؛ زمان لازم برای کامپایل هسته بنا به نوع پیکر بندی و قدرت سخت افزار سیستم شما از چند دقیقه تا چند ساعت متغیر است. صبور بودن مهمترین فاکتور برای به پایان رساندن این مرحله است. جهت کامپایل هسته دستور زیر را در ترمینال وارد کنید make -j 4 نکته:شما میتوانید با توجه به تعداد هسته های پردازنده سیستم خود عدد جلو سوییچ -j را تغییر دهید؛ برای مثال پردازنده سیستم من Core i5 است و چون این پردازنده ۴ هسته دارد من جلو -j عدد ۴ را وارد کردم که باعث میگردد ۴ پردازش به صورت همزمان جهت کامپایل انجام شود و عملیات کامپایل سریعتر به پایان برسد. و در نهایت جهت نصب هسته جدید از دستور زیر استفاده کنید sudo make modules_install install دستور بالا به صورت خودکار هسته جدید را نصب و ان را به منوی گراب اضافه میکند. نکته: در صورتی که از burg به جای grub استفاده میکنید لازم است تا با وارد کردن دستور ‘sudo update-burg’ هسته جدید را به منوی burg اضافه کنید.