انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: چگونه کرنل خود را کامپایل نمایید  (دفعات بازدید: 7194 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
چگونه کرنل خود را کامپایل نمایید
« : 21 تیر 1386، 03:30 ب‌ظ »
با سلام
بعد از ترجمه و نوشتن مقاله ای تحت عنوان ایجاد لیو سی دی شخصی از اوبونتو که آقای اردوخانی هم کمک کردن حال به ترجمه و نوشتن مقال ای تحت عنوان کامپایل کرنل در گنو/لینوکس توزیع اوبونتو می پردازیم .
این مقاله رو آقای Falko Timme نوشتند که بسیار هم سلیس هست
منبع :http://www.howtoforge.com/kernel_compilation_ubuntu
این نوشتار ممکن است ناقص و خالی از اشتباه نباشد لطفا در تکمیل آن به ما کمک نمایید.
خوب این مقاله تنها راه برای کاوپایل کرنل نیست و راههای بسیاری برای این کار پیشنهاد شده است که یکی از آن موارد مقاله زیر است
این مقاله آموزشی بر روی نسخه های اوبونتوی زیر تست شده و جواب گرفته شده است :
Ubuntu 6.10 Server ("Edgy Eft") and Ubuntu 6.06 Desktop ("Dapper Drake")همانطور که می دانید کامپایل کرنل سیستم عامل گنو/لینوکس یکی از جذابترین و علمی ترین مواردی است که به شمار می رود چون شما با دانستن اطلاعات کافی و خوب می توانید نسخه جدید از توزیعی که نصب کرده اید را به نام خود و توزیع جدید ارائه کنید.
همانطور که می دانید توزیع های مختلف و متفاوت گنو/لینوکس توسط کامپایل و ادیت سورس انجام گرفته است .
برای شروع:
در این آموزش ما تمامی کار ها را از root انجام خواهیم داد در صورتی که شما این کاربر اصلی را تعریف نکرده اید به روش زیر عمل کنید:
sudo passwd rootبعد از انجام کار از دستور زیر وارد root شوید
su
خوب توجه داشته باشید در صورتی که شما می خواهید موارد و دستورات زیر را با کاربر معمولی خودتان انجام دهید از عبارت کلیدی sudo استفاده کنید .
حال دستور زیر را وارد کنید
 apt-get updateدر اوبونتو 6/10، /bin/sh به صورت پیش فرض یک سیمبلیک به /bin/dash است . این شاخه و مسیر برای این است که در صورتی که مشکلی در نصب بسته نرم افزار و کامپایل بوجود آمد در این قسمت ذخیره می شود .
خوب اگر شما الان از اوبونتو 6/10 استفاده می کنید برای ایجاداین سیمبلیک از دستورات زیر استفاد کنید :
rm -f /bin/sh
ln -s /bin/bash /bin/sh
نصب بسته های لازم برای کامپایل کرنل:
خوب در ابتدا فایل سورس خود را آپدیت می کنیم :
apt-get updateبعد از انجام دستور فوق دستور زیر را برای دانلود و نصب بسته های لازم اجرا می کنیم :
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2که در دستور فوق بسته های  kernel-package و  libncurses5-dev و ... دانلود و نصب خواهند شد .
حال نوبت به دانلود کرنل و هسته اصلی گنو/لینوکس فرا می رسد .در لینک http://www.kernel.org شما می توانید کرنل خود را انتخاب و دانلود نمایید در صورتی که مایلید از ورژن 2.6 استفاده کنید می توانید به آدرس زیر مراجعه نمایید ما نیز در این مقاله از این کرنل استفاده کرده ایم:
http://www.kernel.org/pub/linux/kernel/v2.6خوب ابتدا دستور زیر را وارد نمایید :
cd /usr/src
حال دستور زیر را وارد کنید تا فایل کرنل دانلود شود . توجه کنید که چون ما در دستور بالا به شاخه اصلی که کرنل در آن قرار دارد منتقل شده ایم فایل دانلود شده نیز اتومات در این قسمت قرار خواهد گرفت :
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2فایل دانلود شده را از حالت فشرده خارج می کنیم و یک shortcut به شاخه linux ایجاد می کنیم (دسترسی بهتر و راحت تر)
دستورات زیر را وارد نمایید :
برای خارج کردن از حالت فشرده:
tar xjf linux-2.6.18.1.tar.bz2ایجاد سیمبلیک :
ln -s linux-2.6.18.1 linuxورود به شاخه linux که در دستور بالا یک shortcut است:
cd /usr/src/linuxاعمال patch های لازم به سورس کرنل:
احتمالا می پرسید این کار برای چیست ؟
خوب شما در این قسمت می توانید درایورهای سخت افزاری لازم برای کرنل خود را نصب کنید .
ضمنا می توانید تکنولوژی هایی مانند virtualization را نصب نمایید .
توجه داشته باشید که patch ها باید به مسیر /usr/src/linux اعمال شوند دستورات زیر را برای این کار به ترتیب زیر انجام دهید :
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1
توجه:
دستور اول فقط یک تست می باشد و آن هم برای این است که در صورتیکه شما هیچ خطایی مشاهده نکردید می توانید از دستور دوم برای اعمل patch ها استفاده نمایید
فایل patch که patch-2.6.19-rc4.bz2 می باشد در حال حاضر برای استفاده و دانلود آماده است که با ورود به آدرس زیر می توانید آن را دانلود نمایید
http://kernel.org/patchtypes/pre.htmlتوجه داشته باشید که در صورتی که شما از این patch استفاده می کنید و آن را کامپایل نمایید بایستی فایل سورس kernel 2.6.18.1  را از آدرس: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 دانلود و آن زیپ نمایید.
حال اگه موارد فوق را پیش برده اید در زیر دستورات لازم را برای اعمال patch به کرنل 2.6.19-rc4 یاد آوری می کنیم
دستورات زیر را وارد نمایید :
cd /usr/srcوارد شاخه مورد نظر می شویم :
 wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2فایل patch لازم را دانلود می کنیم :
cd /usr/src/linuxوارد شاخه linux که سیمبولیک به شاخه اصلی است می شویم :
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 –dry-runبرای اعمال patch لازم یک تست میگیریم در صورتی که بدون اشکال بود دستور زیر را وارد می کنیم :
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1پیکربندی کرنل:
ممکن است شما دارای عقاید خاصی باشید و یا ممکن است از هوش و ذکاوت فوق العاده ای بر خوردار باشید . در این قمست شما می توانید تنظیمات خاص و شخصی خودتان را با کمال آرامش و راحت اعمال نمایید.
خوب دستورات زیر را وارد نمایید :
cp /boot/config-`uname -r` ./.configخوب الان دستور زیر رو بزنید :
make menuconfig
در صورتی که می خواهید تنظیمات و پیکربندی را به حد بالا برسانید گزینه مورد نظر را که در شکل زیر نشان داده شده است انتخاب کنید
و مرحله بعدی را طبق شکل دنبال نمایید
شما طبق شکل زیر می توانید سراسر تنظیمات و پیکر بندی کرنل را ببینید و حتی می توانید تنظیمات خاص خودتان را نیز اعمال نمایید به خاطر داشته باشید که در جواب سئوالDo you wish to save your new kernel configuration کلید yes را انتخاب نمایید.
ساختن کرنل :
خوب اگر تا کنون مراحل و تنظیمات خاص خود را پیش برده اید بایستی کرنل خود را کامپایل و ایجاد کنید تا بتوانید از آن استفاده کنید ، نگران نباشید ساختن و کامپایل آن نیز به راحتی مراحل بالا می باشد .
دستورات زیر کار شما را راه می اندازند :
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
توجه:
بعد از عبارت زیر در دستور بالا می توانید عبارتی دلخواه برای راهنمایی خودتان بنویسید
– –append-to-version= انجام دستورات بالا ممکن است ساعت(ها)ی طول بکشد بنابراین باید صبور باشید البته این بستگی به سخت افزار کامپیوتر شما نیز دارد که تاثیر بسزایی برای تسریع کار دارد .
خوب الان به شما یاد خواهیم داد چگونه کرنل خودتان که پیکربندی و کامپایل کرده اید را نصب نمایید . ما در کامپایل کرنل از عبارت 2.6.18.1  استفاده کرده ایم، ممکن است که آن را در کدام قسمت وارد کرده ایم . اشاره کنم که به جای – –append-to-version=
ما از  2.6.18.1 استفاده کرده ایم
خوب در مورد نصب کرنل نیز دستورات زیر را وارد می کنیم
ابتدا وارد دایرکتوری که کرنل در آن ساخه شده وموجود است وارد می شویم همانطور که می  دانید در ابتدا ما از مسیر اصلی یعنی       cd /usr/src استفاده کرده ایم
cd /usr/src
ls -l
از دستور ls هم برای اطمینان از صحت کار استفاده می کنیم.
بعد از اینکه شما کرنل را کامپایل کردید دو فایل deb. برای شما فراهم می شود که یکی از آن خود کرنل و دیگری header های مربوط به کرنلی که دستی کامپایل کردید می باشد ، پس به نوبت آن رو نصب می کنیم :
dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
توجه داشته باشید که در اینجا نام فایل همان نامی است که شما موقع ساختن کرنل وارد کرده اید و ممکن است این نام متفاوت باشد.
حال فایل menu.lst که منوی اصلی در boot loader ماست را ادیت خواهیم کرد.
دستور زیر را وارد نمایید :
vi /boot/grub/menu.lstدر صورتی که به ویرایشگر vi تسلط کافی ندارید می توانید از gedit یا نرم افزارهای ویرایشگر گرافیکی دیگر استفاده نمایید.
خطوط زیر را به تناسب کار و استفاده خود می توانید در ابتدا یا انتهای فایل منو درج نمایید .
title         Ubuntu, kernel 2.6.18.1-custom
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash
initrd          /boot/initrd.img-2.6.18.1-custom
savedefault
boot

title           Ubuntu, kernel 2.6.18.1-custom (recovery mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single
initrd          /boot/initrd.img-2.6.18.1-custom
boot
خوب تا اینجا که خسته نشده اید ؟
نوبت به تست کرنل خودتان فرا رسیده است . از دستور زیر استفاده کنید :
shutdown -r nowبعد از اینکه دستگاه خودتان رستارت شد عکس زیر ظاهر می شود :

شما بعد از بالا آوردن کرنل خود می توانید با استفاده از دستور uname -r نسخه کرنل خود را چک نمایید
اگر تمام مراحل بالا آمدن با موفقیت انجام شد به شما تبریک و خسته نباشید می گوییم
« آخرین ویرایش: 21 تیر 1386، 03:56 ب‌ظ توسط مهدی پیشگوی »

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #1 : 21 تیر 1386، 06:13 ب‌ظ »
ویکی شد !! ;) ولی با کلی اشکال شرمنده !!
لطفا یکی از ناظران انجمن درستش کنن توش عکس هم بذارن و غیره ممنون میشم ;)

آفلاین amin

  • Sr. Member
  • *
  • ارسال: 454
  • جنسیت : پسر
  • We live, as we dream - Joseph conrad
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #2 : 21 تیر 1386، 08:46 ب‌ظ »
ویکی شد !! ;) ولی با کلی اشکال شرمنده !!
لطفا یکی از ناظران انجمن درستش کنن توش عکس هم بذارن و غیره ممنون میشم ;)
خوب چرا لینک ویکی رو نذاشتی ؟ !! حالا ما از کجا پیداش کنیم؟ ;D
@cybertux
no sign

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #3 : 21 تیر 1386، 08:55 ب‌ظ »
آخ یادم رفته ببخشید این هم لینکش http://wiki.ubuntu-ir.org/KernelCompilationUbuntu  ;)
« آخرین ویرایش: 21 تیر 1386، 09:40 ب‌ظ توسط مهدی پیشگوی »

آفلاین Mehdi

  • ناظر ویژه انجمن
  • *
  • ارسال: 3284
  • جنسیت : پسر
    • هزاردستان
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #4 : 22 تیر 1386، 02:16 ب‌ظ »
 :)
راهنمای بسیار خوب و مفیدیه! ‌خیلی وقتها نیاز میشه که شما کرنل دلخواهتون رو کامپایل و نصب کنید... همین روزا یه وقتی میگذارم برای ویرایش ;)
Of one Essence is the human race,
Thusly has Creation put the Base;
One Limb impacted is sufficient,
For all Others to feel the Mace.
~Saadi (persian poet) -1258
Hezardastan | Free As in Freedom

آفلاین Saied

  • Full Member
  • *
  • ارسال: 118
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #5 : 22 تیر 1386، 04:05 ب‌ظ »
یک مقاله خوب هم توی ویکی خود اوبونتو هست فکر کنم با اسم kernelcustombuild که خیلی کامله.

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #6 : 22 تیر 1386، 05:37 ب‌ظ »
:)
راهنمای بسیار خوب و مفیدیه! ‌خیلی وقتها نیاز میشه که شما کرنل دلخواهتون رو کامپایل و نصب کنید... همین روزا یه وقتی میگذارم برای ویرایش ;)
دستت درد نکنه مهدی جان واقعا به ویرایش نیاز داره ممنونم .
یک مقاله خوب هم توی ویکی خود اوبونتو هست فکر کنم با اسم kernelcustombuild که خیلی کامله.
من بی سواد فقط تونستم این مقاله رو خوب متوجه بشم تقصیر از مقاله نیست از منه ;)

آفلاین Mehdi

  • ناظر ویژه انجمن
  • *
  • ارسال: 3284
  • جنسیت : پسر
    • هزاردستان
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #7 : 26 تیر 1386، 09:55 ب‌ظ »
من بخشهایی از این راهنما رو ویرایش کردم و به نظرم هنوز نیاز به کمی ویرایش داره....
Of one Essence is the human race,
Thusly has Creation put the Base;
One Limb impacted is sufficient,
For all Others to feel the Mace.
~Saadi (persian poet) -1258
Hezardastan | Free As in Freedom

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #8 : 27 تیر 1386، 07:51 ق‌ظ »
دستت درد نکنه مهدی جان خلاصه من دیگه سوادم قط نمیده ;)

آفلاین علی ستاری

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
    • corelist.net
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #9 : 30 تیر 1386، 08:25 ق‌ظ »
سلام
مقاله مفیدیه! کامپایل کرنل دلخواه تجربه هیجان انگیزیه!

فقط یک نکته به نظرم اومد:
پسورد ست کردن برای root نیازی نیست. حقیقتش توزیعهای قبلی رو یادم نیست. (زیاد کار نکردم) ولی روی feisty میشه با دستور sudo su به root لاگین کرد.

من روی feisty کرنل کامپایل کردم همین اخیرا! و تقریبا 60% مراحل این آموزش رو انجام ندادم! :d یعنی بدون اینها هم درست کارها انجام شد!
سورس رو گرفتم! کانفیگ کردم! با make-kpkg بسته های deb ساختم و نصب کردم.
نه با sh به مشکل خوردم! نه نیاز به کانفیگ grub داشتم (dpkg انجام داد).

شاید نیاز باشه برای به روز شدن یک ویرایش فنی هم بشه.

موفق باشید
Ali Sattari (AKA Ali ix)
http://corelist.net

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
پاسخ به: چگونه کرنل خود را کامپایل نمایید
« پاسخ #10 : 30 تیر 1386، 10:45 ق‌ظ »
ممنون از توضیحاتتون .
همونطور که گفتم این جزو راههایی هستش که میشه باهاش کار کرد و راههای بسیار زیاد دیگری هم هست . شما به نظرم یه مقاله دیگه رو آماده کنین و تو همون ویکی که من ساختم پایینش بویسین راه دیگه مفید تر باشه . و یا اینکه .... ;)