Parametrul nomodeset

Parametrul nomodeset

Dacă ai întâmpinat vreodată un ecran negru la pornirea unui sistem Linux - fie la instalare, fie după - șansele sunt mari că soluția a implicat cuvântul nomodeset. Acest articol explică ce este, ce face și cum se folosește.

Ce este nomodeset?

nomodeset este un parametru de kernel (kernel parameter sau boot option) care poate fi transmis la pornirea sistemului prin intermediul bootloader-ului GRUB.

În mod normal, kernel-ul Linux preia controlul plăcii grafice încă din primele etape ale boot-ului, activând KMS (Kernel Mode Setting) - mecanismul prin care rezoluția, ratele de refresh și registrele hardware ale plăcii video sunt configurate direct de kernel, fără a depinde de serverul X sau Wayland. Acest lucru permite, printre altele, afișarea corectă a splash screen-ului și tranziții line între boot și ecranul de login.

Când adaugi nomodeset, îi spui kernel-ului să nu încarce driverele video și să folosească în schimb modurile BIOS, până când serverul X este pornit. Pe unele plăci grafice, KMS nu funcționează corect și rezultatul este un ecran negru - nomodeset ocolește această problemă.

Atenție: Multe drivere open-source au eliminat suportul pentru modul fără KMS. În aceste cazuri, cu nomodeset activ, sistemul va folosi driverul VESA de bază - generic, neaccelerat și fără funcții avansate. Prin urmare, nomodeset este o soluție temporară sau de diagnostic, nu una permanentă.

Când este necesar?

  • Ecran negru la instalare - imaginea ISO pornește, dar după splash apare un ecran negru
  • Ecran negru după instalare - sistemul bootează, dar nu ajunge la interfața grafică
  • Probleme cu drivere proprietare NVIDIA - mai ales imediat după instalarea unui driver nou sau după un update de kernel
  • Hardware grafic vechi sau neobișnuit - unde KMS nu este bine implementat
  • Testarea compatibilității GPU - dacă sistemul pornește cu nomodeset, confirmă că problema vine din incompatibilitatea KMS cu placa grafică, nu din altceva; pasul următor este instalarea driverului corespunzător

Cum accesezi meniul GRUB

Indiferent de metodă, primul pas este să ajungi la meniul GRUB:

  • BIOS: Imediat după splash-ul BIOS/UEFI, apasă și ține apăsat tasta Shift
  • UEFI: Apasă tasta Esc de mai multe ori după pornire

Uneori splash-ul producătorului face parte din bootloader-ul Windows, iar sistemul ajunge direct la meniul GRUB - în acest caz nu mai este nevoie de Shift sau Esc.

Adăugare temporară (o singură sesiune)

De pe un USB live Ubuntu

Ubuntu oferă o metodă simplificată direct din meniul de boot al imaginii ISO:

  1. Pornește de pe USB-ul live Ubuntu
  2. La apariția ecranului mov Ubuntu, apasă F6
  3. Din meniul popup, navighează la nomodeset și apasă Enter - va apărea un x în stânga opțiunii
  4. Apasă Esc pentru a închide meniul (selecțiile sunt păstrate)
  5. Selectează „Install Ubuntu„ și apasă Enter

De pe disk (sistem instalat)

  1. La apariția meniului GRUB, apasă e pe intrarea dorită
  2. Găsește linia care începe cu linux sau linuxefi
  3. Navighează la șirul root=UUID=… și înlocuiește ro quiet splash cu nomodeset quiet splash
linux /boot/vmlinuz-... root=UUID=bcf15ef2-... nomodeset quiet splash $vt_handoff
  1. Apasă Ctrl+X sau F10 pentru a porni cu parametrul aplicat
  2. Dacă ai greșit, apasă Esc pentru a reveni la ecranul anterior

Modificarea se aplică doar pentru această pornire. La următorul reboot, GRUB revine la configurația normală.

Safe Graphics Mode (Ubuntu 19.04+)

Începând cu Ubuntu 19.04, meniul GRUB include o opțiune dedicată „Safe Graphics Mode“ care pornește automat cu nomodeset activ. Dacă o vezi în meniu, o poți folosi direct fără a edita manual parametrii de boot.

Adăugare permanentă

Dacă ai nevoie de nomodeset la fiecare pornire, editează configurația GRUB.

0. Fă un backup înainte de orice modificare:

sudo cp /etc/default/grub /etc/default/grub.backup

1. Deschide fișierul de configurare GRUB:

sudo nano /etc/default/grub

2. Găsește linia GRUB_CMDLINE_LINUX_DEFAULT și adaugă nomodeset:

# Înainte:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

# După:
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet splash"

3. Aplică modificările regenerând configurația GRUB:

# Pe Ubuntu, Debian, Linux Mint și derivate:
sudo update-grub
 
# Pe Fedora, openSUSE, Arch și altele:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
 
# Pe sisteme cu UEFI (cale alternativă):
sudo grub2-mkconfig -o /boot/efi/EFI/*/grub.cfg

4. Repornește sistemul.

Eliminarea parametrului

Odată ce ai instalat driverele grafice corespunzătoare și sistemul pornește corect fără nomodeset, este recomandat să îl elimini. KMS activ aduce avantaje reale: tranziție mai fluidă la interfața grafică, rezoluție corectă în terminal, suport mai bun pentru suspend/resume.

Procedura este identică cu adăugarea - editezi /etc/default/grub, scoți nomodeset din linie și rulezi din nou update-grub sau grub2-mkconfig.

De asemenea, uneori problemele de display se rezolvă printr-un simplu update de kernel sau drivere, fără a fi nevoie de nomodeset permanent. Merită verificat înainte de a-l adăuga definitiv în configurație.

Relația cu driverele NVIDIA

Un caz particular și frecvent: instalarea driverelor proprietare NVIDIA. Procesul necesită adesea nomodeset temporar tocmai pentru că driverul nouveau (open-source, activ implicit) intră în conflict cu driverul proprietar în timpul instalării sau imediat după.

Fluxul tipic arată astfel:

  1. Adaugi nomodeset permanent în GRUB
  2. Instalezi driverul NVIDIA proprietar
  3. Reporneşti
  4. Verifici că driverul funcționează (nvidia-smi sau Setări sistem)
  5. Elimini nomodeset din GRUB
  6. Reporneşti din nou

Pe unele distribuții (Pop!_OS, de exemplu) driverele NVIDIA sunt integrate în imaginea ISO și toată această procedură este evitată din start.

Pentru probleme mai complexe legate de NVIDIA pe Linux (suspend/resume, Optimus, Secure Boot, Wayland), vezi Problemele NVIDIA pe Linux și rezolvarea lor.