"Compilați nucleul - nu rupeți nucile", - suspin de multe ori cei care au un nucleu recompilat nu vrea să boot. Deși această piuliță este destul de puternică, recompilarea rămâne inevitabilă, cu care fiecare administrator de sistem Linux se va ciocni mai devreme sau mai târziu.
Și eu nu am scăpat de această soartă. În acest articol, voi trece prin toate etapele de compilare a kernel-ului. Cred că acest lucru vă va oferi încredere și compilația va înceta să fie o "misiune imposibilă" pentru dvs.
În termeni simpli, nucleul este partea centrală a majorității sistemelor de operare. Printre funcțiile de bază ale kernelului sunt: managementul proceselor, gestionarea resurselor și așa mai departe. Primul nucleu este încărcat în memoria principală atunci când computerul este pornit și rămâne în memorie până când aparatul este oprit. Tocmai pentru că nucleul este prezent în mod constant în memoria RAM, trebuie să fie cea mai mică dimensiune posibilă.
În Linux, kernelul este singurul fișier numit vmlinuz. Literele inițiale vm denotă memoria virtuală, iar ultima literă z indică faptul că fișierul este comprimat. Fișierul vmlinuz este localizat în directorul / boot.
În ce cazuri recompilați nucleul?
Pentru a adăuga sau elimina suport pentru anumite dispozitive:
Pentru a interacționa cu orice dispozitiv cu sistemul de operare, aveți nevoie de driverul corespunzător al dispozitivului. De exemplu, prin conectarea unui dispozitiv USB la un calculator, trebuie să furnizăm driverul corespunzător pentru funcționarea acestuia. În termeni tehnici, este necesar să activați suportul driverului USB în kernel.
Pentru a schimba setările de sistem:
Parametrii sistemului includ: suport pentru memoria "top", gestionarea limitelor resurselor alocate și altele asemenea. Pentru a gestiona memoria fizică de peste 4 GB, aveți nevoie de suport pentru memoria "superioară" (până la 64 GB).
Care sunt etapele de recompilare a kernel-ului?
1. Verificați și actualizați pachetele necesare
2. Obțineți codul sursă pentru kernel
3. Obțineți informații despre hardware-ul computerului
4. Configurați kernel-ul
5.Creați nucleul
6. Configurați încărcătorul
7. Reporniți serverul
1. Verificați și actualizați pachetele necesare
Acest pas este necesar numai atunci când versiunea de kernel este modernizată de la 2.4 la 2.6. Dacă faceți upgrade de la 2.6.x la 2.6.x, puteți trece peste primul pas.
Înainte de a începe actualizarea kernel-ului, trebuie să vă asigurați că sistemul este capabil să accepte un nou kernel. Verificați utilitarele care interacționează cu sistemul dvs. și asigurați-vă că acestea sunt cele mai recente versiuni. Dacă nu, atunci actualizați-le mai întâi.
Principalele pachete pentru verificarea și actualizarea:
binutils, e2fsprogs, procps, gcc și module-init-tools.
Când actualizați module-init-tools, trebuie să fii foarte atent. Un modul este un program care poate fi inclus în kernel la cerere (dacă este necesar). Module -init-tools conțin utilitare pentru gestionarea modulelor kernel Linux - pentru încărcarea, descărcarea, enumerarea și scoaterea modulelor. Principalele utilități disponibile sunt:
* insmod
* rmmod
* modprobe
* depmod
* lsmod
Atât modprobe cât și insmod sunt folosite pentru a conecta module. Singura diferență dintre ele este că insmod "nu știe" locația modulelor și nu avertizează despre dependențe. Modprobe "știe" despre acest lucru prin navigarea în fișierul / lib / modules /<версия ядра>/modules.dep
Cum se instalează module-init-tools?
# tar -zxf modul-init-tools-3.2.2.tar.gz
2. Configurați-l:
# cd module-init-tools-3.2.2 # ./configure --prefix = /
3. Redenumiți versiunea 2.4 existentă a utilitarului la utilitarul.old:
4. Creați și instalați:
# face
# faceți instalarea
5. Rulați scriptul genera-modprobe.conf pentru a transfera date din versiunea module de fișier de configurare kernel 2.4 (/etc/modules.conf) într-un fișier folosind versiunea de kernel 2.6 (/etc/modprobe.conf)
6. Verificați versiunea modulelor-init-tools disponibile
2. Obținerea codului sursă al kernelului
3. Obținerea de informații despre calculatorul "fier"
Informații despre configurația hardware a computerului vă vor ajuta să obțineți următoarele comenzi:
Acest utilitar va afișa informații despre cardul de rețea și despre toate dispozitivele conectate la aparat. Dacă primiți o eroare "lscpi: command not found" ca răspuns la comanda lspci, trebuie să instalați pachetul pciutils-2.1.99.test8-3.4 rpm pe serverul dvs.
Ieșirea tipică a comenzii lspci arată astfel:
[root] # lspci
Podea PCI: Podul Broadcom BCM5785 [HT1000] PCI / PCI-X
00: 02.0 Podul gazdă: Broadcom BCM5785 [HT1000] Legacy South Bridge
Interfață IDE 00: 02.1 IDE: Broadcom BCM5785 [HT1000] IDE
00: 02.2 punte ISA: Broadcom BCM5785 [HT1000] LPC
00: 03.0 Controler USB: Broadcom BCM5785 [HT1000] USB (rev 01)
00: 03.1 Controler USB: Broadcom BCM5785 [HT1000] USB (rev 01)
00: 03.2 Controler USB: Broadcom BCM5785 [HT1000] USB (rev 01)
00: 05.0 Controler compatibil VGA: ATI Technologies Inc Rage XL (rev 27)
00: 18.0 Podul de gazdă: Advanced Micro Devices [AMD]
K8 [Athlon64 / Opteron] Configurația tehnologiei HyperTransport
00: 18.1 Podul gazdă: dispozitive avansate micro [AMD]
K8 [Athlon64 / Opteron] Harta de adrese
00: 18.2 Podul de gazdă: Advanced Micro Devices [AMD]
K8 [Athlon64 / Opteron] Controler DRAM
00: 18.3 Podul gazdă: dispozitive avansate micro [AMD]
K8 [Athlon64 / Opteron] Controlul divers
01: 0d.0 punte PCI: Broadcom BCM5785 [HT1000]
Podul PCI / PCI-X (rev b2)
01: 0e.0 Controler de magistrală RAID: Broadcom BCM5785 [HT1000]
SATA (modul SATA nativ)
02: 03.0 Controller Ethernet: Broadcom Corporation
NetXtreme BCM5704 Gigabit Ethernet (rev 10)
02: 03.1 Controller Ethernet: Broadcom Corporation
NetXtreme BCM5704 Gigabit Ethernet (rev 10)
Informații despre procesor pot fi obținute din fișierul / proc / cpuinfo
Un program util pentru obținerea de informații despre "hardware". Oferă o descriere detaliată a modulelor. Înainte de a utiliza comanda modinfo, trebuie mai întâi să aflați ce module sunt încărcate. Pentru a face acest lucru, utilizați comanda lsmod - afișează o listă a modulelor încărcate.
[root] # lsmod
libata 105757 1 sata_svw
[root] #
lsmod a emis modulul sata_svw, iar informații detaliate despre acest modul pot fi obținute folosind comanda modinfo.
[root] # modinfo sata_svw
fișier: /lib/modules/2.6.9-55.ELsmp/kernel/drivers/ata/sata_svw.ko
autor: Benjamin Herrenschmidt
descriere: driver low-level pentru controlerul K2 SATA
licență: GPL
versiune: 2.0 9FF8518CB6CD3CB4AE61E35
vermagic: 2.6.9-55.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4
depinde: libata
alias: pci: v00001166d00000240sv * sd * bc * sc * i *
alias: pci: v00001166d00000241sv * sd * bc * sc * i *
alias: pci: v00001166d00000242sv * sd * bc * sc * i *
alias: pci: v00001166d0000024Asv * sd * bc * sc * i *
alias: pci: v00001166d0000024Bsv * sd * bc * sc * i *
[root] #