</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

نصب هسته — مرور کلی

معرفی کامل نصب هسته در Gentoo: تفاوت سورس‌های مختلف، انتخاب میان Distribution Kernel، Manual Kernel و genkernel.

متوسط۹ دقیقه مطالعهآخرین بروزرسانی: ۱ تیر ۱۴۰۵ویرایش در گیت‌هاب

هسته (Kernel) قلب هر سیستم لینوکس و پلی میان سخت‌افزار و نرم‌افزار است. در Gentoo می‌توانید هسته را به‌صورت کاملاً دستی پیکربندی کنید یا از هسته‌های ازپیش‌آمادهٔ Gentoo استفاده کنید. این انعطاف یکی از بزرگ‌ترین نقاط قوت Gentoo و در عین حال یکی از مهم‌ترین تصمیم‌های نصب است.

چرا هسته در Gentoo مهم است؟#

بسیاری از توزیع‌ها (مانند Ubuntu یا Fedora) یک هستهٔ عمومی (generic kernel) نصب می‌کنند که تقریباً همهٔ درایورها را به‌صورت ماژول در اختیار دارد. این رویکرد ساده است، اما باعث می‌شود هسته حجیم‌تر و گاهی کندتر شود. در Gentoo شما کنترل کاملی روی این موضوع دارید که کدام درایورها، سیستم‌فایل‌ها و قابلیت‌ها داخل هسته ساخته شوند و کدام به‌صورت ماژول بارگذاری گردند.

هسته در Gentoo

هسته در Gentoo یک «بسته» در Portage است که با emerge نصب می‌شود، اما خروجی نهایی (فایل bzImage، ماژول‌ها و گاهی initramfs) به‌صورت مستقل روی دیسک نصب می‌گردد. به همین دلیل نصب هسته چند مرحله‌ای است: نصب سورس، پیکربندی، کامپایل و نصب نهایی.

سورس‌های هسته در Gentoo#

Gentoo چندین بستهٔ سورس هسته ارائه می‌دهد که هر کدام کاربرد متفاوتی دارند:

بستهتوضیحکاربرد
sys-kernel/gentoo-sourcesسورس رسمی Gentoo با وصله‌های Gentooرایج‌ترین انتخاب، تعادل پایداری و ویژگی
sys-kernel/vanilla-sourcesسورس خام بالا‌دست (kernel.org)بدون وصله، برای کسانی که می‌خواهند کرنل خالص داشته باشند
sys-kernel/git-sourcesسورس توسعه‌ای از gitبرای آزمایش ویژگی‌های جدید و توسعه‌دهندگان
sys-kernel hardened-sourcesسورس با وصله‌های امنیتیبرای سرورها و محیط‌های حساس
sys-kernel/ck-sourcesسورس با وصله‌های ck (Con Kolivas)برای دسکتاپ و اولویت پاسخ‌گویی

نصب اولیهٔ سورس هسته#

پس از ورود به محیط chroot، نخستین گام نصب سورس هسته است:

# نصب سورس رسمی Gentoo
emerge --ask sys-kernel/gentoo-sources
# خروجی:
# [ebuild  N    ] sys-kernel/gentoo-sources-6.6.21
# The following USE flags are enabled: build symlink
 
# بررسی نصب
ls -l /usr/src/
# خروجی:
# lrwxrwxrwx 1 root root  22 linux -> linux-6.6.21-gentoo
# drwxr-xr-x 24 root root 4096 linux-6.6.21-gentoo

مسیر /usr/src/linux یک symlink است که به سورس فعال اشاره می‌کند. این symlink برای بسیاری از ابزارها (مانند module-rebuild یا ساخت درایورهای خارجی مانند NVIDIA) حیاتی است.

انتخاب سورس فعال با eselect#

اگر چند نسخه سورس نصب دارید، با eselect kernel می‌توانید نسخهٔ فعال را انتخاب کنید:

# فهرست سورس‌های نصب‌شده
eselect kernel list
# خروجی:
# Available kernel symlink targets:
#   [1]   linux-6.6.21-gentoo
#   [2]   linux-6.6.16-gentoo *
 
# تنظیم نسخه فعال
eselect kernel set 1
# یا مستقیماً
eselect kernel set linux-6.6.21-gentoo
 
# بررسی
readlink /usr/src/linux
# /usr/src/linux-6.6.21-gentoo

اهمیت symlink

همیشه مطمئن شوید /usr/src/linux به نسخه درستی اشاره می‌کند. اگر این symlink خراب باشد، ساخت ماژول‌های خارجی (مثل nvidia-drivers یا virtualbox-modules) با خطا مواجه می‌شود.

سه مسیر نصب هسته#

Gentoo سه راه اصلی برای نصب هسته ارائه می‌دهد که هر کدام مناسب کاربر خاصی است:

مسیرپیکربندیسرعت نصبکنترلمناسب برای
Distribution Kernelخودکار توسط Gentooسریعکمکاربران جدید، سرورهای ساده، کسانی که می‌خواهند به‌روزرسانی خودکار داشته باشند
genkernelخودکار اما عمومیمتوسطمتوسطکاربرانی که نمی‌خواهند دستی پیکربندی کنند اما کنترل بیشتری می‌خواهند
Manual Kernelکاملاً دستیکند (اما آموزشی)بسیار بالاکاربران حرفه‌ای، دسکتاپ‌های بهینه، سخت‌افزار خاص

Distribution Kernel#

بسته‌های sys-kernel/gentoo-kernel (ساخت از سورس) و sys-kernel/gentoo-kernel-bin (باینری ازپیش‌کامپایل‌شده) هسته را با پیکربندی استاندارد Gentoo نصب می‌کنند. این پیکربندی تقریباً همهٔ سخت‌افزارهای رایج را پشتیبانی می‌کند و به‌روزرسانی آن با emerge انجام می‌شود. این روش در آموزش Distribution Kernel به‌طور کامل بررسی شده است.

Manual Kernel#

ساخت دستی با make menuconfig بیشترین کنترل را در اختیار شما می‌گذارد. شما دقیقاً تصمیم می‌گیرید چه چیزی داخل هسته باشد، چه چیزی به‌صورت ماژول بارگذاری شود و چه چیزی حذف گردد. این مسیر زمان‌بر است، اما نتیجهٔ نهایی یک هستهٔ سبک و بهینه برای سخت‌افزار شماست. این روش در آموزش Manual Kernel توضیح داده شده است.

genkernel: راه میانه#

اگر نمی‌خواهید دستی پیکربندی کنید اما سراغ Distribution Kernel هم نمی‌روید، genkernel گزینه‌ای میانه است:

# نصب ابزار genkernel
emerge --ask sys-kernel/genkernel
 
# ساخت و نصب کرنل و initramfs با پیکربندی پیش‌فرض
genkernel all
# این دستور:
# 1) یک .config عمومی ایجاد می‌کند
# 2) کرنل را می‌سازد
# 3) ماژول‌ها را نصب می‌کند
# 4) bzImage را در /boot کپی می‌کند
# 5) یک initramfs می‌سازد

genkernel سبک اما حجیم

خروجی genkernel یک هستهٔ عمومی شبیه به توزیع‌های دیگر است؛ بدین معنا که اکثر درایورها به‌صورت ماژول ساخته می‌شوند و initramfs بزرگی تولید می‌شود. اگر به دنبال بهینه‌سازی هستید، Manual Kernel را انتخاب کنید.

راهنمای انتخاب#

این جدول ساده به شما کمک می‌کند تصمیم بگیرید:

وضعیت شماپیشنهاد
تازه با Gentoo آشنا شده‌ایدDistribution Kernel
می‌خواهید سریع نصب کنید و سر بزنیدgentoo-kernel-bin
سرور با سخت‌افزار ثابتgentoo-kernel با savedconfig
دسکتاپ و کنترل کامل می‌خواهیدManual Kernel
لپ‌تاپ با سخت‌افزار خاصManual Kernel
نیاز به initramfs دارید اما نه پیکربندی دستیgenkernel

نصب ابزارهای کمکی#

مستقل از اینکه کدام مسیر را انتخاب می‌کنید، چند ابزار کمکی ضروری‌اند:

# ابزارهای مدیریت کرنل و ماژول
emerge --ask sys-kernel/installkernel
emerge --ask sys-kernel/linux-firmware
emerge --ask sys-firmware/intel-microcode  # برای پردازنده‌های Intel
emerge --ask sys-apps/kmod                  # جایگزین modutils
 
# ابزار ساخت initramfs (یکی از دو مورد)
emerge --ask sys-kernel/dracut     # مدرن، استفاده در Distribution Kernel
emerge --ask sys-kernel/genkernel  # سنتی، همه‌کاره

linux-firmware

بستهٔ sys-kernel/linux-firmware شامل فریمور دستگاه‌های مختلف (کارت شبکه، بلوتوث، Wi-Fi و GPU) است. بدون آن، بسیاری از دستگاه‌ها کار نخواهند کرد، حتی اگر درایور آن‌ها داخل هسته باشد.

خطاهای رایج#

* ERROR: Could not find a usable kernel source tree

دلیل: symlink /usr/src/linux وجود ندارد یا به مسیر اشتباهی اشاره می‌کند. راه‌حل:

eselect kernel list
eselect kernel set 1
readlink /usr/src/linux
# باید مسیر معتبر برگرداند

۲. خطای build tools missing#

make: gcc: No such file or directory

دلیل: ابزارهای ساخت نصب نیستند. راه‌حل:

emerge --ask sys-devel/gcc sys-devel/make sys-devel/bc sys-libs/ncurses

۳. خطای no space on /usr/src#

No space left on device

دلیل: پارتیشن /usr پر شده یا چند سورس هستهٔ قدیمی روی هم نصب شده‌اند. راه‌حل:

# پاک کردن سورس‌های قدیمی
eclean-dist
rm -rf /usr/src/linux-6.6.16-gentoo

خلاصه و مرحله بعد#

نصب هسته در Gentoo تصمیمی مهم است که مسیر نصب را تعیین می‌کند. سه مسیر اصلی وجود دارد: Distribution Kernel (ساده و خودکار)، genkernel (میانه) و Manual Kernel (دقیق و دستی). بر اساس نیاز و دانش خود یکی را انتخاب کنید.

در ادامه، یا Distribution Kernel را نصب کنید یا Manual Kernel را پیکربندی نمایید. پس از نصب هسته، باید GRUB را نصب کنید. اگر هنوز وارد chroot نشده‌اید، ابتدا آموزش chroot را ببینید.

اشتراک‌گذاری:

این صفحه در تاریخ ۱ تیر ۱۴۰۵ به‌روزرسانی شده است.