Конфигурация на ядрото на Linux - Gentoo Wiki

Инсталиране на изходния код

Всички дистрибуции са изградени около ядрото на Linux. Ядрото е слоят между потребителския софтуер и физическия хардуер. Gentoo предоставя няколко варианта на изходния код на ядрото. Пълен списък с описание е наличен в статията за преглед на ядрото.

За системи, базирани на архитектурата amd64, се препоръчва пакетът sys-kernel/gentoo-sources.

Изберете подходящия източник на ядрото и инсталирайте с emerge:

Сега трябва да конфигурираме и изградим ядрото. Тук има два основни подхода:

  1. Ядрото се конфигурира и изгражда ръчно.
  2. Помощната програма genkernel го изгражда и инсталира автоматично.

В това ръководство ще ви покажем как да го направите ръчно, тъй като това е най-добрият начин да оптимизирате средата си.

Основна опция: Ръчна настройка

Според общоприетото схващане настройката на ядрото е най-сложната процедура, с която се сблъсква потребителят на Linux. Това е силно преувеличение и след като е събрал няколко ядра, никой няма да си спомни, че е било трудно.

Но един факт си струва да се вземе предвид. За да конфигурирате ръчно ядрото, трябва да имате представа от какво е изграден компютърът. Повечето могат да бъдат намерени чрез инсталиране на sys-apps/pciutils и изпълнение на командата lspci:

Друг източник на системна информация може да бъде получен, като стартирате lsmod и видите кои модули на ядрото са заредени на инсталационния носител.

Остава да отидете в директорията с ядрото и да изпълните make menuconfig. Ще бъдем посрещнати от екран за конфигурация.

Има много, много раздели в конфигурацията на ядрото на Linux. Нека първо прегледаме опциите, които трябва да бъдат активирани (в противен случай Gentoo няма да работи правилно или изобщо няма да стартира). За ощеЗа по-задълбочен поглед си струва да разгледате Ръководството за настройка на ядрото на Gentoo.

Активирайте необходимите опции

Уверете се, че драйверите, необходими за зареждане на системата (като SCSI контролера и т.н.), са вградени директно в ядрото, а не като модул. В противен случай системата може да не се стартира.

Трябва да изберете типа на процесора, а също така е препоръчително да активирате MCE опциите, за да получавате информация за проблеми с хардуера. При някои архитектури (напр. x86_64) такива грешки се съобщават не в dmesg, а в /dev/mcelog. Така че имате нужда от пакета app-admin/mcelog.

Активирайте опциятаПоддържане на файлова система devtmpfs за монтиране в /dev, тогава критичните за устройствата файлове ще бъдат заредени възможно най-рано (CONFIG_DEVTMPFS и CONFIG_DEVTMPFS_MOUNT):

Уверете се, че поддръжката на SCSI диск е активирана (CONFIG_BLK_DEV_SD):

След това трябва да активирате поддръжка за файловите системи, които използвате. Основната файлова система трябва да бъде включена в ядрото и да не се зарежда като модул, в противен случай Gentoo няма да може да монтира този дял. Не забравяйте също да активиратеВиртуална памети/proc файлова система. Ако е необходимо, изберете един или повече параметри от списъка (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS и CONFIG_TMPFS):

Ако PPPoE или модем за комутируема връзка се използва за свързване към интернет, активирайте следните параметри ( CONFIG_PPP , CONFIG_PPP_ASYNC и CONFIG_PPP_SYNC_TTY ):

Опциите за компресиране не вредят, но са незадължителни, както и PPP през Ethernet. Всъщност последното се използва само когато ppp е конфигуриран да използва PPPoE режим на ядрото.

Не забравяйте да настроите поддръжка за мрежови карти (кабелни и безжични).

Тъй като повечето съвременни системи са многоядрени, имаме нужда отПоддръжка за симетрична многопроцесорна обработка( CONFIG_SMP ):

Ако използвате USB входни устройства (напр. клавиатура и мишка) или други USB устройства, не забравяйте да активирате и тези опции (CONFIG_HID_GENERIC, CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD):

Специфична за архитектурата настройка на ядрото

Ако трябва да поддържате 32-битови програми, уверете се, че е избрана емулация на IA32 ( CONFIG_IA32_EMULATION ). Gentoo инсталира multilib (смесена 32/64 бита) система по подразбиране, така че тази опция е задължителна, освен ако не е избран профил без мултилиб, разбира се.

Активирайте поддръжка за GPT етикети, ако сте ги използвали преди, когато разделяте диск (CONFIG_PARTITION_ADVANCED и CONFIG_EFI_PARTITION):

Активирайте поддръжката на EFI stub и EFI променливи в ядрото на Linux, ако UEFI се използва за зареждане на системата (CONFIG_EFI, CONFIG_EFI_STUB, CONFIG_EFI_MIXED и CONFIG_EFI_VARS):

Компилация и инсталация

Когато настройката приключи, е време да компилирате и инсталирате ядрото. Излезте от настройката и започнете процеса на компилация:

След компилиране, копирайте изображението на ядрото в директорията /boot/. Това става с командата make install:

Тази команда ще копира изображението на ядрото в директорията /boot/ заедно с файла System.map и конфигурационния файл на ядрото.

По избор: Създайте initramfs

В някои случаи е необходимо да се активира поддръжка за initramfs - първоначална файлова система, базирана на RAM (файлова система, базирана на RAM). Най-честата причина е наличието на различни системни пътеки (като /usr/ или /var/) на различни дялове. ПриПри наличие на initramfs, тези секции могат да бъдат заредени чрез initramfs.

Без initramfs има възможност за неправилно зареждане, тъй като информацията за тези същите дялове може да е необходима за стартиране на някои файлови системи. Initramfs зарежда цялата информация в малък архив, който се чете веднага след зареждането на ядрото, но преди управлението да бъде предадено на услугите за инициализация. По този начин наборът от скриптове initramfs ще се увери, че всички дялове са монтирани правилно, преди да продължите с процеса на зареждане.

За да инсталирате initramfs, първо ви трябва sys-kernel/genkernel, който ще го генерира:

Ако имате нужда от поддръжка на LVM или RA >genkernel. За повече информация, погледнете genkernel --help. Следният пример включва поддръжка за LVM и софтуерен RA >mdadm):

Initramfs ще се намира в /boot/. Можете да видите файлове, започващи с "initramfs":

Алтернативно: Използване на genkernel

Ако ръчната инсталация изглежда твърде сложна, тогава трябва да използвате помощната програма genkernel, която автоматично ще конфигурира и изгради ядрото.

genkernel конфигурира ядрото почти по същия начин, както в инсталационния носител. По този начин ядрото, конфигурирано от genkernel, ще се опита да открие целия хардуер по време на процеса на зареждане. Тъй като genkernel не изисква да конфигурирате собственото си ядро, се препоръчва за тези, които не са готови да изградят собствено ядро.

Да започваме. Първо, трябва да инсталирате sys-kernel/genkernel:

След това редактирайте файла /etc/fstab, така че редът /boot/ да съдържа правилното устройство във второто поле. Ако сте следвали примера от това ръководство, най-вероятно това е /dev/sda2 с файлова система ext2 и редът трябва да изглежда така:

Остава да компилираме ядрото,като стартирате genkernel all . Моля, имайте предвид, че тъй като genkernel включва поддръжка за възможно най-широк набор от хардуер, процесът на изграждане може да отнеме известно време!

След завършване ще имаме пълен набор от модули и initramfs. Все още ще имаме нужда от ядрото и initrd, когато настройваме буутлоудъра. Запишете името на файловете на ядрото и initrd, тъй като ще ни трябват по-късно. Initrd се изпълнява веднага след ядрото за откриване на хардуер, преди самата система да стартира.

Модули на ядрото

Настройка на модула

Посочете модулите, които да се зареждат автоматично във файловете /etc/modules-load.d/*.conf. Един модул на ред. Допълнителни опции за модули, ако е необходимо, трябва да бъдат посочени във файловете /etc/modprobe.d/*.conf.

За да видите наличните модули, изпълнете командата find, като не забравяте да замените „ “ с версията, изградена в предишната стъпка:

Например, за да заредите автоматично модула 3c59x.ko (драйвер за конкретно семейство интернет карти на 3Com), редактирайте файла /etc/modules-load.d/network.conf, за да добавите името на модула. Действителното име на файл е без значение за буутлоудъра.

По избор: Инсталирайте файлове на фърмуера