FreeBSD nucleu Construirea bazei de cunoștințe - linia de nord

La un moment dat, de lucru cu sistemul de operare FreeBSD, vine nevoia de a recompilați kernel-ul. Acest moment este perfect, dar nu este întotdeauna ușor. asamblare de bază trebuie să fie efectuată nu numai în cazul în care doriți să adăugați unele funcționalități, dar, de asemenea, în cazuri de grele-sisteme în care kernel-ul ar trebui să fie la fel de legche.V Acest articol descrie procesul de reconstrucție a kernel-ului în sistemul de operare FreeBSD, cu excepția miezului unui număr de opțiuni care nu sunt necesare pentru a include funcționalitatea de bază suplimentară. Întregul proces poate fi împărțit în mai multe etape: pregătirea pentru asamblare, configurare, construi kernel.

Înainte de asamblare, kernel-ul trebuie să se asigure că sistemul conține codul sursă al sistemului și kernel-ul, dacă este necesar - pentru a actualiza codul sursă. Acestea sunt situate în / usr / src.

După cum puteți vedea, directorul nu este gol, codul sursă este prezent. Noi actualizăm sursa pentru acest articol. în orice mod convenabil.

De asemenea, vom face o copie de rezervă a kernel-ul curent de lucru, care a fost în cazul în care să se întoarcă, dacă ceva nu merge bine. Înainte de a executa comanda, trebuie să vă asigurați că rădăcina sistemului de fișiere / 250-300 MB de spațiu disponibil pe disc.

Să vedem ce fel de procesor este instalat în server.

Următorul pas vom crea curent al fișierului GENERIC de configurare kernel-ului (kernel-ul de bază) fișierul de configurare.

În același director în care se află fișierul și configurația GENERIC, face parte din configurația PRESTABILITE kernel-ului, care este conectat în mod implicit.

A se vedea o listă cu toate opțiunile disponibile de kernel pot fi în directorul / usr / src / sys / amd64 / conf /, prin rularea comenzii face LINT.

Acest lucru va aduce fișier scamele, care listează opțiuni de kernel toate disponibile în directorul curent. Mai departe la editarea fișierului de configurare a miezului viitor.

Încă o dată, verificați Creați un fișier de configurare kernel-ului.

Un nucleu mai adecvat de asamblare.

După asamblare, eliminați groapa binar al ultimului kernel, generat în mod automat de către sistem atunci când instalarea unui nou nucleu.

După crearea kernel-ul, puteți reporni. Dacă instalați un nou kernel vine de la distanță, este mai bine să profite de o dată de boot cu noul kernel pentru testare (utilitarul nextboot, vezi mai jos).

Dacă trebuie să lăsați kernel-ul GENERIC cu toate opțiunile sale și, în plus, permite orice module (sau elimina), nu puteți modifica GENERIC, și într-un fișier suplimentar, de exemplu SMP-PAE-ipfw priinkludit opțiunea GENERIC #“la fel de bine.

Conectarea modulelor și dispozitive suplimentare.

Dezactivați modulele și Supă genericului # „și ...

Această abordare este bun, deoarece, în funcție de versiunea FreeBSD, modificările GENERIC fișier (opțiunea Supă) și, ca rezultat, în versiuni diferite, chiar dacă opțiunile GENERIC # „, iar această abordare va funcționa.

În cazul în care sistemul, în cazul în care ansamblul are mai multe procesoare sau mai multe nuclee cu un procesor - are sens pentru a reduce timpul de asamblare și de a folosi de asamblare de bază multifir prin intermediul -j-cheie pentru a face. Recomandat pentru a seta valoarea fluxurilor pe una mai mult decât există în sistem, și anume, în cazul în care nucleul procesorului 2 - a pus J3.

În mod oficial, dezvoltatorii de această opțiune nu este acceptată, astfel încât în ​​cazul în care compilarea decolează cu o eroare - Scoateți cheia și executați din nou compilarea.

Pentru a porni directorul din /boot/kernel.test peremenuem de bază asamblat, și / boot / kernel scriere de lucru de bază testat (trecut de la /boot/kernel.good).

După aceea, se aplică utilitate nextboot, specificând modul în care kernel-ul sistemului pentru a încărca o singură dată, atunci când următoarea repornire (calea către noul nucleu este relativ la directorul / boot).

Va /boot/nextboot.conf fișier, vă puteți uita în ea și a vedea unele dintre setările. Vom verifica totul din nou și reporniți serverul.

După repornire, conectare la server și uita-te la modul în care sistemul de bază se execută.

Ceea ce este necesar. Mutați acest nucleu în / boot / kernel și poate reporni serverul din nou și verificați computerul în noul kernel implicit.