Note despre freebsd - reconstruirea kernel-ului

Procesul de reconstruire a kernel-ului constă în editarea fișierului de configurare și apoi în compilarea kernel-ului cu opțiunile specificate în fișierul de configurare. Pentru a construi kernelul, avem nevoie de sursele kernel-ului, dacă nu sunt instalate, atunci le puteți instala în două moduri:







Instalarea surselor kernel-ului sysinstall
Conectare ca rădăcină, a pus discul de instalare în unitatea și rulați sysinstall, se alege următoarele opțiuni: Configure-> Distributions-> src-> sys:

Note despre freebsd - reconstruirea kernel-ului


Instalarea surselor de kernel utilizând scriptul de instalare

Pentru a instala sursele, va trebui să montați discul de instalare și să rulați un script care instalează codul sursă în directorul / usr / src. Conectați-vă ca root, instalați discul de instalare în unitate și efectuați:

# mount / cdrom
# cd /cdrom/7.2-RELEASE/src
# mkdir / usr / src
# sh install.sh sys

Prima echipă pentru a instala unitatea în directorul / cdrom, echipa a doua pentru a merge la comanda /cdrom/7.2-RELEASE/src treimi de director creează un director src în directorul / usr, a patra echipa pentru a începe executarea script-ul cu argumentul sys, care este pus în / usr / src sys cu codul sursă. Dacă instalarea survine, pe ecran va apărea următorul mesaj:

Extragerea surselor în / usr / src.
Extragerea componentei sursă: sys
S-a terminat extragerea surselor.

Editarea configurației kernel-ului

După ce codul sursă al kernel-ului este în / usr / src / sys, puteți porni procesul actual de reconstruire a kernel-ului. În scopul reconstituirii, vom alege opțiunea de a include în opțiunile de kernel pentru afișarea consolei în modul grafic. Implicit, consola este afișată în modul text. Pentru a crea propria configurație a kernel-ului, procedați în felul următor:

# cd / usr / src / sys / i386 / conf /
# cp GENERIC MYKERN
# ee MYKERN

Prima echipă vom merge la directorul / usr / src / sys / i386 / conf / (nota directorul de i386, dacă mi-ar fi folosit un sistem de distribuție de arhitectură diferită, de exemplu, AMD64 mi-ar fi trebuit să se mute acc. În directorul meu de arhitectura) , apoi copiați fișierul GENERIC într-un fișier numit MYKERN, apoi editați fișierul MYKERN. De fapt, am copiat fișierul de configurare a kernel-ului implicit în MYKERN și corectați nu va GENERIC. Configurația kernel-ului constă din șiruri de caractere cu parametrii specificați:







În linia de configurare găsim:

cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident GENERIC

Și le schimbăm după cum urmează:

cpu I686_CPU
ident MYKERN

De exemplu, liniile care descriu tipurile de procesoare 486 și 586 sunt șterse ca inutile, iar în șirul ident introducem numele kernelului nostru. Acest lucru este necesar pentru a ne distinge nucleul de GENERIC.
Apoi urmează blocul care descrie opțiunile și dispozitivele care vor fi incluse în kernel. Opțiunile sunt indicate ca opțiuni și dispozitive ca dispozitiv. Trebuie să adăugăm două opțiuni la kernel - VESA și SC_PIXEL_MODE, le vom pune la sfârșitul primului bloc de opțiuni:


opțiuni STOP_NMI # Opriți CPUS folosind NMI în loc de IPI
opțiuni AUDIT # Audit de evenimente de securitate
#options KDTRACE_HOOKS # Cârlige DTrace pentru kernel

După adăugare:
.
opțiuni STOP_NMI # Opriți CPUS folosind NMI în loc de IPI
opțiuni AUDIT # Audit de evenimente de securitate
#options KDTRACE_HOOKS # Cârlige DTrace pentru kernel
opțiuni VESA
opțiuni SC_PIXEL_MODE

Următorul mesaj apare pe ecran:

Kernel build directory este. / compilați / MYKERN
Nu uita să faci `` a face cleandepend face dependenta ''

Apoi efectuăm:

# cd. / compilați / MYKERN
# make depend tot install clean

Prima comandă este să mergeți la directorul de deasupra nivelului compilei / MYKERN creat prin configurarea MYKERN și apoi să efectuați asamblarea kernel-ului, după asamblare, fișierele temporare rămase din ansamblul kernel-ului sunt șterse. După terminarea construcției, reporniți sistemul și examinați rezultatul comenzii uname -a:

De fapt, acest lucru înseamnă că nucleul este reconstruit. Și dacă executați comenzile vidcontrol -i, atunci vom vedea moduri VESA suplimentare care nu erau disponibile anterior, înainte de reconstruirea kernel-ului.

În cazul în care a apărut o problemă după repornirea sistemului - kernel-ul nu este încărcat, atunci puteți încărca kernel-ul GENERIC implicit utilizând linia de comandă pentru încărcarea încărcătorului de încărcare. Pentru a face acest lucru, selectați "Escape to loader promt" (item 6) din meniul Start cu alegerea cazurilor de încărcare, apoi vor apărea pe ecran următoarele instrucțiuni:

Pentru a șterge complet nucleul încărcat din toate modulele cu toate modulele, introduceți comanda de descărcare:

Nu apare nici o confirmare după intrarea pe ecran, după care vom încărca nucleul de lucru anterior. Introduceți load / boot / kernel.old / kernel:

OK încărcați /boot/kernel.old/kernel

După câteva secunde, kernel-ul va porni și va introduce comanda de boot:

Am pornit cu un kernel de lucru :)

Pentru ca manualul permanent să nu se încarce GENERIC, atunci când se află în sistem, procedați după cum urmează:

# cd / boot /
# mv kernel kernel.back
# mv kernel.old kernel

Prima echipă pentru a merge la directorul / boot, și apoi redenumiți kernel.back directorul kernel-ului (doar în cazul), și apoi redenumiți kernel.old (în acest director, și este un lucru nucleu GENERIC anterior) în kernel (în mod implicit, sistemul încarcă kernel-ul din directorul / boot / kernel).

P.S. Puteți introduce lista de comenzi pentru bootloader tastând "?". Pentru a obține informații despre o anumită comandă, introduceți numele de ajutor Command_name, de exemplu:







Trimiteți-le prietenilor: