Plymouth funziona molto bene con i driver che supportano il kernel mode setting (come i driver open source radeon e quelli intel) ma non funziona correttamente con i driver proprietari nvidia e Ati (fglrx) che appunto non supportano il KMS (il kernel mode setting è in pratica la capacità del driver del kernel di riconoscere e cambiare la risoluzione, mentre di norma questo è affidato a Xorg e quindi al driver per Xorg, non a quello nel kernel).
Vediamo come risolvere la situazione.
NOTA: gli utenti di schede Intel e Ati con driver open source NON devono seguire questa guida.
A differenza di altre guide che si trovano in rete questa mantiene il funzionamento delle console testuali accessibili con ctrl+alt+f1 .. f6
1. Accertiamoci della risoluzione supportata
Installiamo: hwinfo da terminale con "sudo apt-get-install hwinfo"
da terminale diamo:
- Codice:
"sudo hwinfo --framebuffer"
Otterremo qualcosa del genere:
- Codice:
"02: None 00.0: 11001 VESA Framebuffer [Created at bios.464] Unique ID: rdCR.9kB58sMWXOB Hardware Class: framebuffer Model: "NVIDIA MCP79 Board - mcp79mvl" Vendor: "NVIDIA Corporation" Device: "MCP79 Board - mcp79mvl" SubVendor: "NVIDIA" SubDevice: Revision: "Chip Rev" Memory Size: 14 MB Memory Range: 0xcf000000-0xcfdfffff (rw) Mode 0x0300: 640x400 (+640), 8 bits Mode 0x0301: 640x480 (+640), 8 bits Mode 0x0303: 800x600 (+800), 8 bits Mode 0x0305: 1024x768 (+1024), 8 bits Mode 0x0307: 1280x1024 (+1280), 8 bits Mode 0x030e: 320x200 (+640), 16 bits Mode 0x030f: 320x200 (+1280), 24 bits Mode 0x0311: 640x480 (+1280), 16 bits Mode 0x0312: 640x480 (+2560), 24 bits Mode 0x0314: 800x600 (+1600), 16 bits Mode 0x0315: 800x600 (+3200), 24 bits Mode 0x0317: 1024x768 (+2048), 16 bits Mode 0x0318: 1024x768 (+4096), 24 bits Mode 0x031a: 1280x1024 (+2560), 16 bits Mode 0x031b: 1280x1024 (+5120), 24 bits Mode 0x0330: 320x200 (+320), 8 bits Mode 0x0331: 320x400 (+320), 8 bits Mode 0x0332: 320x400 (+640), 16 bits Mode 0x0333: 320x400 (+1280), 24 bits Mode 0x0334: 320x240 (+320), 8 bits Mode 0x0335: 320x240 (+640), 16 bits Mode 0x0336: 320x240 (+1280), 24 bits Mode 0x033d: 640x400 (+1280), 16 bits Mode 0x033e: 640x400 (+2560), 24 bits Mode 0x0345: 1600x1200 (+1600), 8 bits Mode 0x0346: 1600x1200 (+3200), 16 bits Mode 0x0347: 1400x1050 (+1400), 8 bits Mode 0x0348: 1400x1050 (+2800), 16 bits Mode 0x0349: 1400x1050 (+5600), 24 bits Mode 0x034a: 1600x1200 (+6400), 24 bits Mode 0x0352: 2048x1536 (+8192), 24 bits Mode 0x0360: 1280x800 (+1280), 8 bits Mode 0x0361: 1280x800 (+5120), 24 bits Mode 0x0362: 768x480 (+768), 8 bits Mode 0x0364: 1440x900 (+1440), 8 bits Mode 0x0365: 1440x900 (+5760), 24 bits Mode 0x0368: 1680x1050 (+1680), 8 bits Mode 0x0369: 1680x1050 (+6720), 24 bits Mode 0x037b: 1280x720 (+5120), 24 bits Mode 0x037c: 1920x1200 (+1920), 8 bits Mode 0x037d: 1920x1200 (+7680), 24 bits Config Status: cfg=new, avail=yes, need=no, active=unknown"
Attenzione: queste sono tutte le risoluzioni supportate dalla scheda video. Noi invece dobbiamo mettere quella del monitor che usiamo e che possiamo vedere da sistema > preferenze > schermo o dal nvidia x server setting nel caso delle schede nvidia oppure dall'ati control center per le schede ati o, ancora, con il comando:
- Codice:
"xrandr"
nel mio caso:
- Codice:
"Screen 0: minimum 320 x 175, current 1280 x 800, maximum 1280 x 800"
Sceglierò quindi la risoluzione
."Mode 0x0361: 1280x800 (+5120), 24 bits"
2. Dobbiamo usare uvesafb al posto di vesafb, in modo che plymouth possa lavorare alla risoluzione giusta. Per far questo installiamo: v86d da terminale con "sudo apt-get-install v86d"
3. configuriamo grub:
- Codice:
"sudo gedit /etc/default/grub"
metto in evidenza solo le linee da modificare:
- Codice:
".... GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x800-24,mtrr=3,scroll=ywrap" ... GRUB_GFXMODE=1280x800"
ovviamente mettere la risoluzione che vi interessa al posto di 1280x800.
Se seguendo altre guide avete aggiunto:
- Codice:
"GRUB_GFXPAYLOAD_LINUX=keep"
allora dovete toglierlo.. Lo stesso vale se avete aggiunto una striga simile al file 00_header come indicato in altre guide.
4. diamo
- Codice:
"sudo gedit /etc/initramfs-tools/modules"
e aggiungiamo la seguente riga
- Codice:
"uvesafb mode_option=1280x800-24 mtrr=3 scroll=ywrap"
ovviamente anche qui sostituite 1280x800 con la risoluzione da voi scelta.
5. diamo:
- Codice:
"echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash"
in modo da dire a plymouth di usare il framebuffer uvesa.
6. Infine aggiorniamo grub e initramfs
- Codice:
"sudo update-grub2 sudo update-initramfs -u"
e riavviate. Se ancora dovesse non funzionare ridate:
"sudo update-initramfs -u"
e controllate con
- Codice:
"dmesg | grep uvesafb"
che esca qualcosa di simile:
- Codice:
"[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.32-22-generic root=UUID=a5645330-a1bc-48f7-9062-3d8c2d1b3816 ro quiet splash nomodeset video=uvesafb:mode_option=1280x800-24,mtrr=3,scroll=ywrap [ 1.910319] uvesafb: NVIDIA Corporation, MCP79 Board - mcp79mvl, Chip Rev , OEM: NVIDIA, VBE v3.0 [ 1.941557] uvesafb: protected mode interface info at c000:c9c0 [ 1.941560] uvesafb: pmi: set display start = c00cca23, set palette = c00cca7e [ 1.941562] uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da [ 2.006046] uvesafb: VBIOS/hardware doesn't support DDC transfers [ 2.006048] uvesafb: no monitor limits have been set, default refresh rate will be used [ 2.006231] uvesafb: scrolling: ywrap using protected mode interface, yres_virtual=1600 [ 2.006828] uvesafb: framebuffer at 0xcf000000, mapped to 0xf8100000, using 8000k, total 14336k"
Saluti da Zalone 93 ;)
Ho variato piccoli punti per adattarlo a come ho effettivamente risolto il problema sul mio pc, la fonte reale è sul blog "LinuxQualityHelp".
Nessun commento:
Posta un commento