8.3.1. Instalarea nucleului
Construirea nucleului implică câțiva pași — configurare, compilare și instalare. Citeste README fișier în arborele sursă al nucleului pentru metode alternative la modul în care această carte configurează nucleul.
Pregătiți-vă pentru compilare rulând următoarea comandă:
face mrproper
face mrproper
Acest lucru asigură că arborele nucleului este absolut curat. Echipa de kernel recomandă ca această comandă să fie lansată înainte de fiecare compilare a nucleului. Nu vă bazați pe arborele sursă să fie curat după decuplare.
Configurați nucleul printr-o interfață condusă de meniu. Pentru informații generale despre configurarea nucleului, consultați http://www. linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. BLFS are câteva informații cu privire la cerințele specifice de configurare a nucleului pentru pachetele din afara LFS la http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index. Informații suplimentare despre configurarea și construirea nucleului pot fi găsite la http://www.kroah.com/lkn/
notițe
Un bun loc de pornire pentru configurarea nucleului este rularea face defconfig. Acest lucru va seta configurația de bază la o stare bună, care ia în considerare arhitectura actuală a sistemului.
Asigurați-vă că activați/dezactivați/setați următoarele caracteristici, altfel este posibil ca sistemul să nu funcționeze corect sau să nu pornească deloc:
Drivere de dispozitiv --->
Opțiuni generice de driver --->
[ ] Asistență pentru uevent helper [CONFIG_UEVENT_HELPER]
[*] Menține un sistem de fișiere devtmpfs pentru a fi montat la /dev [CONFIG_DEVTMPFS]
Hacking kernel --->
Alegeți derularea nucleului (derularea indicatorului de cadru) ---> [CONFIG_UNWINDE
Există câteva alte opțiuni care pot fi dorite în funcție de cerințele sistemului. Pentru o listă de opțiuni necesare pentru pachetele BLFS, consultați Indexul BLFS al setărilor kernelului (http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index).
notițe
Dacă hardware-ul gazdă folosește UEFI, atunci „make defconfig” de mai sus ar trebui să adauge automat câteva opțiuni de kernel legate de EFI.
Pentru a permite pornirea nucleului dumneavoastră LFS din mediul de boot UEFI al gazdei dumneavoastră, nucleul dumneavoastră trebuie să aibă această opțiune selectată:
Tipul și caracteristicile procesorului
[*]
--->
[CONFIG_EFI_STUB]
Tipul și caracteristicile procesorului
[*]
Suport pentru stub EFI
Suport pentru stub EFI
O descriere mai completă a gestionării mediilor UEFI din cadrul LFS este acoperită de indiciu lfs-uefi.txt la
http://www.linuxfromscratch.org/hints/downloads/files/lfs-uefi.txt.
Motivul pentru elementele de configurare de mai sus:
Suport pentru asistentul uevent
Setarea acestei opțiuni poate interfera cu gestionarea dispozitivului atunci când utilizați Udev/Eudev.
Mențineți un devtmpfs
Acest lucru va crea noduri de dispozitiv automate care sunt populate de nucleu, chiar și fără a rula Udev. Udev rulează apoi pe deasupra, gestionând permisiunile și adăugând linkuri simbolice. Acest element de configurare este necesar pentru toți utilizatorii Udev/Eudev.
Face menuconfig
Face menuconfig
Semnificația variabilelor de mediu opționale make:
LANG= LC_ALL=
Aceasta stabilește setarea locală la cea utilizată pe gazdă. Acest lucru poate fi necesar pentru un desen corespunzător al interfeței menuconfig ncurses pe o consolă text Linux UTF-8.
Dacă este folosit, asigurați-vă că îl înlocuiți prin valoarea lui $LANG variabilă de la gazda dvs. Puteți utiliza alternativ valoarea gazdei de $LC_ALL or $LC_CTYPE.
Alternativ, face oldconfig poate fi mai potrivită în anumite situații. Vezi README fișier pentru mai multe informații.
Dacă doriți, săriți peste configurația nucleului prin copierea fișierului de configurare a nucleului, .config, de la sistemul gazdă (presupunând că este disponibil) la cel dezambalat linux-5.2.8 director. Cu toate acestea, nu recomandăm această opțiune. Este adesea mai bine să explorați toate meniurile de configurare și să creați configurația kernel-ului de la zero.
Compilați imaginea nucleului și modulele:
face
face
Dacă utilizați module kernel, configurarea modulelor în /etc/modprobe.d poate fi cerut. Informațiile referitoare la module și configurația nucleului se găsesc în Secțiunea 7.3, „Prezentare generală asupra gestionării dispozitivelor și modulelor” și în documentația nucleului din linux-5.2.8/Documentare director. De asemenea, modprobe.d(5) poate fi de interes.
Instalați modulele, dacă configurația nucleului le folosește:
face modules_install
face modules_install
După ce compilarea nucleului este completă, sunt necesari pași suplimentari pentru a finaliza instalarea. Unele fișiere trebuie copiate în / boot director.
Prudență
Dacă sistemul gazdă are o partiție /boot separată, fișierele copiate mai jos ar trebui să meargă acolo. Cel mai simplu mod de a face asta este să legați /boot pe gazdă (în afara chroot) la /mnt/lfs/boot înainte de a continua. Ca utilizator root în sistem gazdă:
Prudență
Dacă sistemul gazdă are o partiție /boot separată, fișierele copiate mai jos ar trebui să meargă acolo. Cel mai simplu mod de a face asta este să legați /boot pe gazdă (în afara chroot) la /mnt/lfs/boot înainte de a continua. Ca utilizator root în sistem gazdă:
mount --bind /boot /mnt/lfs/boot
mount --bind /boot /mnt/lfs/boot
Calea către imaginea nucleului poate varia în funcție de platforma utilizată. Numele fișierului de mai jos poate fi schimbat pentru a se potrivi gusturilor dvs., dar tulpina numelui fișierului ar trebui să fie vmlinuz pentru a fi compatibil cu setarea automată a procesului de pornire descris în secțiunea următoare. Următoarea comandă presupune o arhitectură x86:
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0
System.map este un fișier simbol pentru kernel. Mapează punctele de intrare în funcție ale fiecărei funcții din API-ul nucleului, precum și adresele structurilor de date ale nucleului pentru nucleul care rulează. Este folosit ca resursă atunci când se investighează problemele nucleului. Lansați următoarea comandă pentru a instala fișierul hartă:
cp -iv System.map /boot/System.map-5.2.8
cp -iv System.map /boot/System.map-5.2.8
Fișierul de configurare a nucleului .config produs de Face menuconfig pasul de mai sus conține toate opțiunile de configurare pentru nucleul care tocmai a fost compilat. Este o idee bună să păstrați acest fișier pentru referințe viitoare:
cp -iv .config /boot/config-5.2.8
cp -iv .config /boot/config-5.2.8
Instalați documentația pentru nucleul Linux:
instalați -d /usr/share/doc/linux-5.2.8
cp -r Documentație/* /usr/share/doc/linux-5.2.8
instalați -d /usr/share/doc/linux-5.2.8
cp -r Documentație/* /usr/share/doc/linux-5.2.8
Este important să rețineți că fișierele din directorul sursă al nucleului nu sunt deținute de rădăcină. Ori de câte ori un pachet este despachetat ca utilizator rădăcină (așa cum am făcut în interiorul chroot), fișierele au ID-urile utilizatorului și grupului de orice au fost pe computerul pachetului. Aceasta nu este de obicei o problemă pentru orice alt pachet care urmează să fie instalat, deoarece arborele sursă este eliminat după instalare. Cu toate acestea, arborele sursă Linux este adesea păstrat pentru o lungă perioadă de timp. Din acest motiv, există șansa ca orice ID de utilizator folosit de ambalator să fie atribuit cuiva de pe computer. Acea persoană ar avea apoi acces de scriere la sursa kernelului.
notițe
În multe cazuri, configurația nucleului va trebui actualizată pentru pachetele care vor fi instalate ulterior în BLFS. Spre deosebire de alte pachete, nu este necesar să eliminați arborele sursă a nucleului după ce nucleul nou construit este instalat.
Dacă arborele sursă a nucleului va fi reținut, rulați chown -R 0:0 pe linux-5.2.8 director pentru a vă asigura că toate fișierele sunt deținute de utilizator rădăcină.
notițe
În multe cazuri, configurația nucleului va trebui actualizată pentru pachetele care vor fi instalate ulterior în BLFS. Spre deosebire de alte pachete, nu este necesar să eliminați arborele sursă a nucleului după ce nucleul nou construit este instalat.
Dacă arborele sursă a nucleului va fi reținut, rulați chown -R 0:0 pe linux-5.2.8 director pentru a vă asigura că toate fișierele sunt deținute de utilizator rădăcină.
avertizare
Unele documentații ale nucleului recomandă crearea unui link simbolic de la /usr/src/linux indicând către directorul sursă al nucleului. Acest lucru este specific nucleelor anterioare seriei 2.6 și nu trebuie să fi creat pe un sistem LFS, deoarece poate cauza probleme pentru pachetele pe care doriți să le construiți odată ce sistemul dumneavoastră LFS de bază este complet.
avertizare
Unele documentații ale nucleului recomandă crearea unui link simbolic de la /usr/src/linux indicând către directorul sursă al nucleului. Acest lucru este specific nucleelor anterioare seriei 2.6 și nu trebuie să fi creat pe un sistem LFS, deoarece poate cauza probleme pentru pachetele pe care doriți să le construiți odată ce sistemul dumneavoastră LFS de bază este complet.
avertizare
Anteturile din sistem include director (/ usr / include) ar trebui să mereu fie cele împotriva cărora a fost compilat Glibc, adică anteturile igienizate instalate în Secțiunea 6.7, „Linux-5.2.8 Anteturi API”. Prin urmare, ar trebui nu fi înlocuit fie de anteturile nucleului brut, fie de orice alte anteturi dezinfectate de nucleu.
avertizare
Anteturile din sistem include director (/ usr / include) ar trebui să mereu fie cele împotriva cărora a fost compilat Glibc, adică anteturile igienizate instalate în Secțiunea 6.7, „Linux-5.2.8 Anteturi API”. Prin urmare, ar trebui nu fi înlocuit fie de anteturile nucleului brut, fie de orice alte anteturi dezinfectate de nucleu.