PDA

Visualizza versione completa : Chakra - Switchare tra driver nvidia e driver free - non sale X



Andy86
13-09-14, 13: 27
:bai

In seguito a questo problema (http://www.collectiontricks.it/forum/gnu-linux/Ct5879-limitare-fps-wine-per-retrogame/index2.html), a cui ho trovato come soluzione quella di passare ai driver nouveau, ora se ne aggiunge un altro: non sale X (e risale se rimetto nvidia da tty).

Stando a quello che ho letto (http://chakra.sourceforge.net/wiki/index.php/Switching_Between_Free_and_Non-free_Video-Drivers/it) basta una piccola modifica allo xorg.conf per passare tra un driver e l'altro, ho comunque provato a disinstallare nvidia durante l'installazione di nouveau, ma non cambia nulla.

Il log di xorg allo startx dice che non trova nessuno schermo. :boh

Lo so che per passare tra gli uni e gli altri devo riavviare, ma magari dopo se non mi danno ulteriori problemi decido di tenere i nouveau come driver di default.

pierino_89
13-09-14, 14: 32
Eh no, i nouveau funzionano in kms, quelli ufficiali nvidia no. Credo ci siano dei parametri del kernel da cambiare o da aggiungere. Non c'è una qualche guida per Arch?

Andy86
13-09-14, 14: 46
C'è quella proprio di chakra che ho postato prima:

Switching Between Free and Non-free Video-Drivers/it - The Chakra Project (http://chakra.sourceforge.net/wiki/index.php/Switching_Between_Free_and_Non-free_Video-Drivers/it)

Ma l'unico parametro del kernel sembra solo quel modprobe nouveau.

Per arch c'è questa: https://wiki.archlinux.org/index.php/NVIDIA_(Italiano)#Passare_tra_i_driver_nvidia_e_no uveau, ma dicono pure che la linea di sed (che contiene modprobe) è obsoleta.

Ora provo quel "mkinitcpio -p linux" in fondo allo script.

pierino_89
13-09-14, 15: 00
Ma l'unico parametro del kernel sembra solo quel modprobe nouveau.

E ti sembra un parametro del kernel? :tong2



Ora provo quel "mkinitcpio -p linux" in fondo allo script.
Quello dovrebbe creare l'initramfs, ma sono piuttosto sicuro che sia inutile in questo contesto.

Andy86
13-09-14, 15: 09
Ma quindi cosa dovrei fare secondo te?

Il log continua a dire che KSM non è abitato anche dopo quei comandi.

Nessuna delle due guide parla di parametri del kernel, e la mia unica esperienza risale alla configurazione del grub.

pierino_89
13-09-14, 15: 52
Prova a guardare qui:
https://wiki.archlinux.org/index.php/kernel_mode_setting

Andy86
13-09-14, 15: 58
:bai

Nella versione italiana della pagina nouveau leggevo che nel kernel non ci dev'essere "vga=" e qualcos'altro, ma non bisogna aggiungere nulla.

Però sempre seguendo la wiki mi sono accorto che in modprobe.d c'erano due file probabilmente creati dal setup nvidia quando installai i driver dallo script prelevato dal sito nvidia che si chiamavano tipo blacklist-nouveau e ho provveduto a toglierli... dici che erano quelli o prima di riavviare cerco lo stesso qualcosa da passare al kernel?

pierino_89
13-09-14, 16: 01
Beh, guarda che non ci siano i vari video, ecc. nella commandline :ghgh

Andy86
13-09-14, 16: 03
Sarebbe questa la commandline?


Only registered members can view code.

"vga=" e "nomodeset" non ci sono.

Edit: adesso è salito con i nouveau, ma non funziona più nessuna apps con wine, o da errore directx o da errore vertexshader insufficente. :boh

pierino_89
13-09-14, 16: 21
Hai controllato che funzioni ancora il direct rendering?

Andy86
13-09-14, 16: 26
Eh, ci ho pensato giusto mezzo secondo fa...


Only registered members can view code.

Mi sembra che le librerie di gl api siano tutte installate.

pierino_89
13-09-14, 16: 35
Allora sicuramente lo swich dei driver ti avrà rotto qualche collegamento alle librerie... Su gentoo si aggiusta con
Only registered members can view code.
su arch non ne ho idea

Andy86
13-09-14, 16: 57
Forse che ti riferisci a "sudo ldconfig", ma l'ho già dato e non funziona. :m:

pierino_89
13-09-14, 17: 10
No, quello non c'entra una fava, serve solo ad aggiornare il path delle librerie. E comunque dovrebbe farlo da solo il gestore pacchetti.
Parlo proprio di dove punta /usr/lib64/libGL.so (ed eventuali sottoversioni), perché cambia in base al driver che stai usando.

Only registered members can view code.

Che tanto per capirci, serve a discriminare questo:

Only registered members can view code.

Andy86
13-09-14, 17: 14
:bai

Mi sembra che non ci siano riferimenti a nvidia:


Only registered members can view code.


Only registered members can view code.

Il secondo comando che mi hai dato mi dice file inesistente.

edit:


Only registered members can view code.

pierino_89
13-09-14, 17: 30
:bai

Mi sembra che non ci siano riferimenti a nvidia:


Only registered members can view code.

Che cani, tutto buttato nella stessa cartella. Però guarda bene:


/usr/lib64/libGL.so.337.25
/usr/lib64/opengl/nvidia/lib/libGL.so.343.13
Noti niente? :ghgh
Hint: io ho i drivers Nvidia alla versione 343-13


ldd /usr/bin/glxinfo
Nei binari troverai sempre e solo riferimenti a libGL.so, perché se qualcuno linka direttamente la libreria del driver lo mettono alla gogna :tong2



Il secondo comando che mi hai dato mi dice file inesistente.
In Gentoo /lib contiene un sacco di cartelle per avere una vaga idea di quale libreria serve a cosa. Ma è piuttosto normale buttare tutti i .so a casaccio, quindi non c'è nulla di male.

Andy86
13-09-14, 17: 43
Ahhhh.... quindi quel file è di nvdia.
Che faccio, lo cancello?
Ma poi per farlo puntare a quello giusto?

Tra l'altro in lib32, come vedi dal locate che ho messo sopra, le cartelle ci sono.

Edit: forse questo fa al caso mio "NVIDIA-Linux-x86-310.19.run --uninstall", ma mi tocca riscaricarmi il driver.

pierino_89
13-09-14, 18: 29
No, devi sovrascrivere libGL.so(.1) facendolo puntare alla libreria dei nouveau, che non so come si chiami. Prova a fare un ls /lib/libGL.so* e vedi cosa esce.

Andy86
13-09-14, 18: 45
Troppo tardi. Comunque pare che il setup di nvidia abbia fatto davvero pulizia.
Ora tutti i comandi ls precedenti danno "file inesistente".
"locate libgl" restituisce zero risultati.
Ho reinstallato tutti i pacchetti nouveau, ma nessuno ha ricreato i file di libgl. :ohoh

-----------------------------------------------------------------------------------------

No, un momento, locate dice che i file ci sono, avevo sbagliato le maiuscole:


Only registered members can view code.

Ah, però devo averli reinseriti, adesso ho l'output del tuo comando:


Only registered members can view code.

Adesso riadattando il tuo comando di prima sembra ok:


Only registered members can view code.

Però continua a dare "file inesistente" in lib64 e glxinfo continua a dare errore.

pierino_89
13-09-14, 19: 26
/usr/lib dovrebbe puntare a /usr/lib64. Se non è così è un problema :tong2

Andy86
13-09-14, 19: 39
No, pare proprio che sono due cartelle separate...


Only registered members can view code.

Ma poi insomma, sto libgl.so.1 dove lo cerca?

pierino_89
13-09-14, 19: 52
No, pare proprio che sono due cartelle separate...
Ma porc... Fa sempre piacere che ognuno aderisca agli standard a modo suo.



Ma poi insomma, sto libgl.so.1 dove lo cerca?
Eh, tu lo sai? :ghgh In teoria in /usr/lib, ma potrebbe benissimo cercarlo in /usr/lib64. Anche se non dovrebbe, dato che prima funzionava.
Io comunque sposterei tutto da lib64 a lib e ci farei un bel link. In giro leggo che "Arch non supporta il multiarch quindi lib64 non deve esistere", quindi non hanno le idee molto chiare in merito.

Andy86
13-09-14, 19: 58
Beh, magari chakra non è proprio arch.
Le lib32 le ho sempre usate, poi non so cosa intende per multiarch.

Quindi sostituisco lib64 con un collegamento che punta a lib?

pierino_89
13-09-14, 20: 18
Beh, magari chakra non è proprio arch.
Le lib32 le ho sempre usate, poi non so cosa intende per multiarch.
Sì, ma se modificasse questo tipo di comportamento non sarebbe più compatibile con i pacchetti di arch. Multiarch significa supportare più architetture (in questo caso x86 e amd64) - quindi se hai lib32 ricadi per forza nel multiarch.



Quindi sostituisco lib64 con un collegamento che punta a lib?Io lo farei, male non fa. Però prima trasloca il contenuto e verifica che non sovrascriva cose :eye

Andy86
13-09-14, 20: 25
Ho sovrascritto quelle più aggiornate, ho fatto male?

Comunque non ha dato risultati. Glxinfo da sempre errore. :cry3

pierino_89
13-09-14, 20: 47
Gli hai dato una riavviata, nel dubbio?

Andy86
13-09-14, 20: 53
Adesso provo. "X -configure" può centrare qualcosa?

Edit: niente, riavviato e il problema persiste.

pierino_89
13-09-14, 21: 02
Prova, male non fa.

Andy86
13-09-14, 21: 19
:bai

Allora, quel comando si blocca con un errore relativo a nvidia e modprobe, non sono riuscito a mandare l'output in un file di testo e a server grafico spento non posso fare copia-incolla; comunque mi dice di guardare dmesg, ma non mi sembra di vederci nulla.

edit: ho trovato un problema simile al mio: https://bbs.archlinux.org/viewtopic.php?id=175722, però quei pacchetti che a lui mancano io li ho... sto provando comunque a reinstallarli. Intanto allego anche il mio log di xorg.

ri-edit: ho guardato meglio xorg, mi sa che l'errore è questo:


Only registered members can view code.
--------------------------------------------------

FUNZIOONAAAAAAAA!!!!!
Ho reinstallato xorg-server ed ha ripreso a funzionare normalmente.

Andy86
16-11-14, 17: 06
:bai


Che cani, tutto buttato nella stessa cartella.
[...]In Gentoo /lib contiene un sacco di cartelle per avere una vaga idea di quale libreria serve a cosa. Ma è piuttosto normale buttare tutti i .so a casaccio, quindi non c'è nulla di male.
[...]/usr/lib dovrebbe puntare a /usr/lib64. Se non è così è un problema
[...]Ma porc... Fa sempre piacere che ognuno aderisca agli standard a modo suo.

update: dopo il mega aggiornamento di chakra dell'altro giorno adesso sembra tutto standardizzato come dici tu.


Only registered members can view code.

--------------------------------------------------------------------------------------------------------------------------------------

Comunque volendo ritornare ancora una volta con i nouveau ho notato che la cosa è più immediata da quando installo tutto da pacman senza tirare in mezzo in .run di nvidia che sporca... ma bisogna comunque farlo... farò uno script, ma mi stavo chiedendo... non c'è possibilità di inserire due voci nel grub per scegliere con quale driver salire, come nella live?

pierino_89
16-11-14, 17: 29
Non è affatto necessario riavviare, devi solo farti uno script da lanciare a sessione chiusa (se X è attivo il modulo è sicuramente in uso) per buttare giù un modulo e tirare su l'altro (e cambiare eventualmente i file di conf) :ghgh

Andy86
16-11-14, 17: 41
Si, solo che se tiro su startx da terminale mi appaiono tre belle finestre di terminale che poi non se ne vanno e se le chiudo, chiudo startx, percui preferisco farlo tirare su a lui in default. Tanto il mio pc è veloce.

pierino_89
16-11-14, 18: 05
Ma tu mica devi lanciare startx, devi stoppare il servizio del login manager e poi farlo ripartire. Startx ti lancia tutt'altro.

Andy86
16-11-14, 18: 13
E ci pensa lui a far risalire X?
Comunque non mi ricordo come si chiama...
Naturalmente se lancio direttamente startkde senza prima startx, non trova x.

ps: mi sono incasinato ancora con il directrendering... che palle!! sta volta non ci sono errori in nessunissimo log. :boh
sembra tutto a posto e invece non va nulla.

pierino_89
16-11-14, 18: 39
E ci pensa lui a far risalire X?
È espressamente suo compito, anche perché se non fa partire X è molto difficile che ti mostri la schermata di login :tong2



Comunque non mi ricordo come si chiama...
KDM per KDE, GDM per gnome, LightDM, Slim e xdm per tutti gli altri. O almeno, questa è la norma.



Naturalmente se lancio direttamente startkde senza prima startx, non trova x.

Sì, ma se lanci prima startx di default avvia twm. Devi configurare diversamente .xinitrc se vuoi che startx ti avvi direttamente kde.



ps: mi sono incasinato ancora con il directrendering... che palle!! sta volta non ci sono errori in nessunissimo log. :boh
sembra tutto a posto e invece non va nulla.
Avrai mancato qualche collegamento sulle librerie. Poi "non va nulla" non è molto preciso :ghgh

Andy86
16-11-14, 18: 48
:bai

Kdm, vero. Avevo rimosso.
Ok, tengo presente per quando mi viene voglia di fare lo script.

A proposito di script, c'è un modo veloce per modificare xorg.conf da bash?
Non so, tipo diff e patch? :ghgh
O devo processarmi tutto il file?


Avrai mancato qualche collegamento sulle librerie. Poi "non va nulla" non è molto preciso :ghgh

No, avevo disabilitato il modulo GLX in xorg.conf per tentare di risolvere il problema con i driver proprietari, e poi me ne sono dimenticato. :ghgh
Il "non va nulla" voleva dire semplicemente "non va", il "nulla" non so da dove mi è uscito, anche perché mi riferivo a glxinfo.

pierino_89
16-11-14, 19: 58
A proposito di script, c'è un modo veloce per modificare xorg.conf da bash?
Non so, tipo diff e patch? :ghgh
O devo processarmi tutto il file?

Sicuramente sed, ma io non starei a farla tanto lunga e terrei due copie (una per driver) con cui sovrascrivere lo xorg.conf alla bisogna.

Poi se proprio vuoi fare la cosa lunga puoi fare un servizio da cui dipenda kdm che legga se passi qualche opzione strana al kernel (/proc/cmdline) e caricare un modulo o l'altro alla bisogna.

Andy86
16-11-14, 22: 53
Grazie, direi che le due copie di .xorg è proprio l'idea che cercavo.
L'unica cosa è che riavviare kdm non basta, perché non carica i moduli del kernel, devo per forza riavviare il kernel, ma no-problem.
Da quanto dici mi sa che gestire l'opzione del kernel è un filo troppo complicato (anche perché poi dovrei ficcare lo script che istruisce pacman all'avvio, ma prima che si avvii la grafica... :shock).

pierino_89
16-11-14, 23: 00
L'unica cosa è che riavviare kdm non basta, perché non carica i moduli del kernel, devo per forza riavviare il kernel, ma no-problem.

E chi ha mai detto che kdm ti avrebbe caricato i moduli, quello è compito tuo :ghgh

Only registered members can view code.
O una cosa del genere.



Da quanto dici mi sa che gestire l'opzione del kernel è un filo troppo complicato (anche perché poi dovrei ficcare lo script che istruisce pacman all'avvio, ma prima che si avvii la grafica... :shock).
Beh, significa scrivere un initscript. Ma io continuo a credere che il riavvio sia una perdita di tempo, quindi penso la stessa cosa dell'initscript :tong2

Andy86
16-11-14, 23: 03
E chi ha mai detto che kdm ti avrebbe caricato i moduli, quello è compito tuo :ghgh

Non ho detto quello, intendevo che modprobe non li carica, cioè non li vede (dice "module not found") finché non riavvio.

pierino_89
16-11-14, 23: 16
Allora non si chiamano così ma in un altro modo :ghgh controlla con lsmod cosa c'è caricato.

Andy86
16-11-14, 23: 34
Il modulo di nvidia si chiama proprio "nvidia", e non lo vedeva. Quelli di nouveau guardo la prossima volta.