دریافت، استخراج و تایید صحت سورس کرنل
شما همیشه میتوانید سورس کرنل را از ادرس https://www.kernel.org دانلود کنید. در این محل چند شاخه به چشم میخوره که هرکدومشو مختصر توضیح میدم.
۱-mainline
این شاخه مستقیما توسط لینوس توروالدز نگهداری میشه. در این شاخه ویژگیهای جدید و چیزهای جذابی برای توسعه دهندگان کرنل وجود داره.
۲- stable
بعد ار انتشار هرنسخه از کرنل، اون نسخه تست میشه و باگهاش مشخص و رفع میشه. چنانچه نسخه ای بتونه بدون مشکل خاص و پیچیدهای کار کنه در شاخه stable قرار میگیره. نگه دارنده این شاخه آقای گرگ کرو هرتمن است.
۳- longterm
توسعه دهندگان کرنل همیشه دنبال پیشرفت و ارتقای کرنل هستند. اونها نمیتونن بمدت خیلی طولانی رو تمام نگارشها کار کنن. در عوض هر یک الی دو سال یک نسخه رو بعنوان longterm انتخاب میکنن که کسانی که میخوان رو نسخه ثابتی به مدت طولانی بمونن، بتونن پچهای امنیتی و باگ فیکس ها رو دریافت کنند.
اگر میخواید برای سیستمی به مدت طولانی از یک ورژن خاص استفاده کنید، شاخه longterm انخاب منطقی هست. هیچوقت جز برای توسعه و استفاده روزمره و تست کردن، برای سرور از نسخه های rc استفاده نکنید. چون مسئولیت حفظ و نگهداری اون برعهده خودتونه.
۴- linux-next
همانند شاخه mainline با این تفاوت که دائما در حال تغییر است و صرفا مخصوص توسعه دهندگان است. در این شاخه لزومی به ارائه پچ نیست زیرا این شاخه اصلا ثابت نیست که بخواد پچ یا باگ فیکس دریافت کنه. در عوض پچها و رفع باگها به mainline منتقل میشه.
دانلود سورس کرنل
روشهای زیادی برای دانلود کرنل وجود داره که ما اینجا از wget استفاده میکنیم:
در این کانال میخوایم تا پایان آموزش رو آخرین نسخه شاخه stable بمونیم. بعد از تکمیل آموزش، هرکس مختاره از هر شاخه ای که دوست داشت استفاده کنه.
1 |
$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.19.tar.xz -P ~/Downloads |
دانلود signature
1 |
$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.19.tar.sign -P ~/Downloads |
دانلود پچ کرنل
1 |
$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/patch-4.19.19.xz -P ~/Downloads |
اکسترکت کردن کرنل
ساخت یک دایرکتوری برای استخراج سورس کرنل که بتونیم کارهامون رو در اون انجام بدیم:
1 |
$ mkdir ~/kernelbuild |
سپس سورس کرنل رو اکسترکت میکنیم:
1 |
$ unxz ~/Downloads/linux-4.19.19.tar.xz |
وریفای کردن signature:
1 |
$ gpg --verify ~/Downloads/linux-4.19.19.tar.sign |
چنانچه خروجی شما به این شکل بود:
gpg: assuming signed data in ‘Downloads/linux-4.19.19.tar’
gpg: Signature made Thu 31 Jan 2019 10:45:28 AM +0330
gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Can’t check signature: No public key
بدین شکل عمل کنید:
1 |
$ gpg --recv-keys 647F28654894E3BD457199BE38DBBDC86092693E |
و بعد:
1 |
$ gpg --verify Downloads/linux-4.19.19.tar.sign |
خروجی باید حاوی این خط باشد:
gpg: Good signature from “Greg Kroah-Hartman <gregkh@linuxfoundation.org>” [unknown]
استخراج کرنل در دایرکتوری kernelbuild:
1 |
$ tar xvf ~/Downloads/linux-4.19.19.tar -C ~/kernelbuild |
نصب ابزارهای لازم در اوبونتو:
1 |
$ sudo apt install build-essential libncurses5-dev gcc libssl-dev grub2 bc |
ورود به جایی که باید کارمون رو شروع کنیم:
1 |
$ cd ~/kernelbuild/linux-4.19.19 |