Skip to main content

Cyber AI România

Marți, 22 septembrie 2026

Cum compilezi un kernel Linux personalizat fără să elimini drivere esențiale

Compilarea unui kernel Linux personalizat nu mai este un ritual rezervat exclusiv dezvoltatorilor de distribuții, dar rămâne o operațiune care trebuie tratată cu atenție. Un kernel mai „curat”, adaptat hardware-ului tău, poate porni mai repede, poate ocupa mai puțin spațiu și poate elimina componente pe care nu le folosești niciodată. În același timp, o opțiune dezactivată greșit poate însemna un sistem care nu mai vede discul, placa de rețea, tastatura USB sau initramfs-ul necesar la boot.

Ideea corectă nu este să tai agresiv tot ce pare inutil, ci să construiești o variantă personalizată, testabilă și reversibilă.

Primul pas este să pornești de la configurația kernelului care funcționează deja. Pe multe distribuții, fișierul curent se găsește în /boot/config-$(uname -r), iar pe unele sisteme există și /proc/config.gz. Copierea acestei configurații ca .config în directorul surselor kernelului îți oferă o bază realistă: știi că opțiunile esențiale pentru mașina ta au fost deja activate de distribuție.

Documentația kernel.org recomandă folosirea unor ținte precum make oldconfig, make olddefconfig sau make localmodconfig, în funcție de scenariu. Pentru un kernel ajustat la sistemul curent, localmodconfig este tentant: el pornește de la modulele încărcate în acel moment și dezactivează multe opțiuni care nu par necesare. Aici apare însă capcana principală. Dacă nu ai conectat un dispozitiv sau nu ai folosit o funcție înainte de generarea configurației, modulul respectiv poate fi considerat inutil și eliminat.

De exemplu, dacă folosești rar VPN, un adaptor USB Ethernet, un cititor de carduri, un disc extern cu alt sistem de fișiere sau o mașină virtuală, modulele aferente pot lipsi din kernelul rezultat. De aceea, înainte de localmodconfig, este prudent să pornești scenariile reale de utilizare: conectează perifericele importante, montează tipurile de partiții pe care le folosești, activează VPN-ul, testează Wi-Fi-ul, Bluetooth-ul, camera, sunetul și orice echipament extern pe care te bazezi.

Un flux sigur arată așa: descarci sursele kernelului dintr-o sursă de încredere, ideal kernel.org sau pachetul sursă al distribuției tale; verifici semnătura sau integritatea acolo unde distribuția oferă această procedură; copiezi configurația kernelului actual; rulezi olddefconfig pentru a completa opțiunile noi; apoi folosești menuconfig sau nconfig ca să ajustezi manual doar ce înțelegi. localmodconfig poate fi util, dar nu trebuie tratat ca un verdict perfect.

În menuconfig, cele mai riscante zone sunt driverele de stocare, sistemele de fișiere, suportul pentru controlere SATA/NVMe/USB, rețeaua, criptarea discului, initramfs-ul, firmware-ul și opțiunile necesare pentru bootloader. Dacă sistemul pornește de pe NVMe, nu dezactiva suportul NVMe. Dacă root-ul este pe ext4, btrfs, XFS sau LUKS peste LVM, păstrează acele componente. Dacă folosești module externe, cum ar fi drivere DKMS, verifică separat compatibilitatea lor cu noua versiune de kernel.

Pentru a evita blocarea sistemului, kernelul personalizat trebuie instalat lângă cel existent, nu peste el. Folosește un sufix LOCALVERSION, de exemplu -custom-test, ca să nu suprascrii accidental modulele kernelului stabil. Documentația kernel.org avertizează explicit că păstrarea unui kernel de backup este importantă, mai ales când instalezi o versiune construită manual. În GRUB, systemd-boot sau alt bootloader, trebuie să rămână disponibilă intrarea pentru kernelul vechi.

Pe Ubuntu, Canonical documentează construirea kernelului prin pachetele și dependențele specifice distribuției, inclusiv instalarea pachetelor .deb rezultate. Pe Debian, Kernel Handbook recomandă abordarea „Debian way”, cu surse Debian și ținte de build care generează pachete. Pe Arch, documentația subliniază compilarea într-un director separat, fără root pentru etapa de pregătire, și configurarea explicită a bootloaderului după instalare. Diferențele contează: comenzile finale de instalare nu sunt identice între distribuții.

După instalare, primul boot trebuie tratat ca test, nu ca migrare definitivă. Verifică uname -r, apoi rețeaua, montarea discurilor, sunetul, suspend/resume, perifericele USB, aplicațiile care depind de module speciale și logurile cu journalctl -b. Dacă ceva lipsește, revino la kernelul stabil din meniul de boot și reactivează opțiunea necesară în configurație.

Un kernel personalizat bun nu este cel mai mic posibil, ci cel care elimină ce este clar inutil și păstrează tot ce îți permite să recuperezi sistemul. Pentru utilizatori avansați, câștigul real vine din disciplină: configurație pornită de la un kernel funcțional, modificări mici, nume de versiune separat, kernel vechi păstrat și testare după fiecare build.

Surse

Facebook
X
WhatsApp
Cum compilezi un kernel Linux personalizat fără să elimini drivere esențiale

Te-ar putea interesa si: