nvidia-legacy340 su slackware current

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3142
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

nvidia-legacy340 su slackware current

Messaggioda joe » sab gen 11, 2020 14:35

Apro qua un topic ad hoc per riportare l'esito della prova d'installazione dei due pacchetti -kernel e -driver della versione 340.108 del pacchetto in oggetto; si parla di driver proprietari nvidia per schede video non all'ultimo grido e non di particolare spinta.

Come accennato in altro topic sulla current attuale lo slackbuild del repo SBo-14.2 non funziona (in realtà è per la versione 340.107 che se non sbaglio è quella che nvidia dichiara "stabile", la 340.108 dovrebbe essere già nel gruppo "di sviluppo").

Ponce ha gentilmente fornito uno slackbuild di 340.108 kernel/driver da testare sulla current.

nvidia-legacy340-kernel
Ho compilato in chroot da slack stabile, avendo l'accortezza di lanciare specificando la variabile KERNEL impostata alla versione del kernel della current, altrimenti si compila per quello della stabile e ovviamente poi su current non funge.

Codice: Seleziona tutto

KERNEL=5.4.10 ./nvidia-legacy340.108-kernel.SlackBuild


La compilazione non da errori!

Non ho testato il pacchetto però perché non ho ancora riavviato in current.
---

Veniamo al pacchetto nvidia-legacy340-driver

La compilazione va a buon fine.
Ma durante l'installazione viene rilevata l'assenza di /usr/lib64/libGL-1.2.0
Sulla slack stabile troviamo che appartiene al pacchetto mesa:

Codice: Seleziona tutto

slackpkg file-search /usr/lib64/libGL.so.1.2.0


NOTICE: pkglist is older than 24h; you are encouraged to re-run 'slackpkg update'

Looking for usr/lib64/libGL\.so\.1\.2\.0 in package list. Please wait... DONE

The list below shows the packages that contains "usr/lib64/libGL\.so\.1\.2\.0" file.

[ Status           ] [ Repository               ] [ Package                                  ]
   installed               slackware64                  mesa-11.2.2-x86_64-1

Questo file viene di norma coinvolto dall'esecuzione in postinstall (attraverso doinst.sh) dello script nvidia-switch.
Ma...
Ecco cosa contiene in intestazione tale script:

Codice: Seleziona tutto

ROOT="${ROOT:-/}"
CWD=$(pwd)
LIBSUFFIX="64" # This will be replaced in the build script
COMPAT32="no" # This will be replaced in the build script (yes | no)
INC="${ROOT}usr/include/GL"
LIB="${ROOT}usr/lib${LIBSUFFIX}"
LIB32="${ROOT}usr/lib"
XMOD="${LIB}/xorg/modules"
XLIB="$XMOD/extensions"
NV_VERSION='340.108' # This will be replaced in the build script
GL_VERSION="1.2.0"
NV_CONF="/usr/share/X11/xorg.conf.d/10-nvidia.conf"

La GL_VERSION sembrerebbe quindi fissa.
Ma sulla slack current che versione abbiamo?
Io vedo un libGL.so.1.7.0 che però apparterebbe non a mesa ma a libglvnd:

Codice: Seleziona tutto

# slackpkg file-search /usr/lib64/libGL.so.1.7.0

Looking for usr/lib64/libGL\.so\.1\.7\.0 in package list. Please wait... DONE

The list below shows the packages that contains "usr/lib64/libGL\.so\.1\.7\.0" file.

[ Status           ] [ Repository               ] [ Package                                  ]
   installed               slackware64                  libglvnd-1.3.0-x86_64-1


Potrebbe essere da modificare lo script nvidia switch alla voce GL_VERSION?

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2686
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 5.4.10-ck1
Desktop: lxde
Località: Pisa
Contatta:

Re: nvidia-legacy340 su slackware current

Messaggioda ponce » sab gen 11, 2020 17:00

joe ha scritto:Potrebbe essere da modificare lo script nvidia switch alla voce GL_VERSION?

si, credo proprio che sia quello: grazie per il bug report!

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3142
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: nvidia-legacy340 su slackware current

Messaggioda joe » sab gen 11, 2020 20:35

Aggiorno un attimo la situazione.
nonostante nvidia-driver durante l'installazione si sia lasciato indietro il rimaneggiamento di libGL, ho provato a fare il build sempre da chroot di:
- nvidia-kernel
- nvidia-driver
- st
- dmenu
- dwm

E a riavviare il sistema direttamente in con la Current. Fin qui nulla di nuovo, dopo aver sviscerato in altro topic gli indicibili vizietti di grub-makeconfig sapevamo già che il nuovo sistema funzionava e si avviava senza problemi.
Però non ero andato oltre la console TTY. Invece a sto giro con i pacchetti ho lanciato il fatidico startx!

Ok, parte tutto e nvidia-setting riporta la versione 340.108 del driver. Quindi i pacchetti compilati con lo slackbuild rivisto da ponce funzionano, anche se il driver non è perfetto come abbiamo visto nel post precedente.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3142
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: nvidia-legacy340 su slackware current

Messaggioda joe » lun gen 13, 2020 14:13

Stavo riguardando un attimo lo script nvidia-switch.
Ma non mi convince troppo qualche riga di quello script.
Anzitutto è stato messo creato dall'ex-mantainer del pacchetto relativo? ovvero nvidia-*-driver-*_SBo?

Perché ad esempio la riga seguente:

Codice: Seleziona tutto

# grep -n GEL /usr/sbin/nvidia-switch
61:    ln -sf libEGL.so.$NV_VERSION libGEL.so.1.0.0

Mi sa un po' di errore di battitura: "EGL" diventa "GEL" nel nome del link.
Siamo sicuri sicuri che sia corretto?
Questa riga la rilevo anche nella versione di nvidia-legacy340-driver che ho sulla 14.2, quindi non riguarda solo slackware-current.

È forse un errorino banale, che però potrebbe condurre a qualche grattacapo qualora un altro software andasse a cercare libEGL.so.1.0.0 e non lo trovasse perché al suo posto abbiamo creato libGEL.so.1.0.0.
Non vi pare?

Altra osservazione riguardante slackware current:

Codice: Seleziona tutto

# grep libEGL.*1.0.0* /usr/sbin/nvidia-switch
    if [ ! -e libEGL.so.1.0.0-xorg ]; then
       mv libEGL.so.1.0.0 libEGL.so.1.0.0-xorg
    ln -sf libEGL.so.$NV_VERSION libGEL.so.1.0.0
     if [ -e libEGL.so.1.0.0-xorg ]; then
         mv libEGL.so.1.0.0-xorg libEGL.so.1.0.0
         ln -sf libEGL.so.1.0.0 libEGL.so.1
         ln -sf libEGL.so.1.0.0 libEGL.so


Queste righe eseguono procedure ipotizzando che sul sistema sia installata la versione 1.0.0 di libEGL.
Va bene sulla 14.2.
Ma sulla Current invece non va bene!

Codice: Seleziona tutto

# slackpkg file-search libEGL.so.1.0.0

Looking for libEGL\.so\.1\.0\.0 in package list. Please wait... DONE
No packages contains "libEGL\.so\.1\.0\.0" file.


# slackpkg file-search libEGL.so.1.1.0

Looking for libEGL\.so\.1\.1\.0 in package list. Please wait... DONE
The list below shows the packages that contains "libEGL\.so\.1\.1\.0" file.
[ Status           ] [ Repository               ] [ Package                                  ]
   installed               multilib                     libglvnd-compat32-1.3.0-x86_64-1compat32
   installed               slackware64                  libglvnd-1.3.0-x86_64-1


# ls /usr/lib64/libEGL.*
/usr/lib64/libEGL.so  /usr/lib64/libEGL.so.1  /usr/lib64/libEGL.so.1.1.0  /usr/lib64/libEGL.so.340.108-nvidia

Cioè sulla Current abbiamo una libEGL più recente la 1.1.0 mentre lo script fa riferimento a 1.0.0 e infatti all'installazione dà errore.
Aggiungo che a livello di scrittura del codice, converrebbe mettere la versione di libEGL in una variabile, insieme alle altre che sono già definite ad inizio script nvidia-switch. Così se un domani cambia la versione di libEGL basta che modifico solo la variabile in cima...

Vi chiedo conferma su quanto ho scritto.

E a ponce chiedo:
rispetto al contenuto dell'archivio tar che mi avevi mandato cosa dovrei fare?
inviarti una patch da applicare a tutto il pacchetto, oppure solo una patch relativa al singolo file nvidia-switch?
Oppure ci pensi direttamente tu e via? Dimmi te come ti viene più comodo. :)

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2686
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 5.4.10-ck1
Desktop: lxde
Località: Pisa
Contatta:

Re: nvidia-legacy340 su slackware current

Messaggioda ponce » lun gen 13, 2020 14:24

per quel che riguarda la versione di libEGL nello script posso anche fare io (mandami un PM con il tuo nome e l'indirizzo email che vuoi associare al commit su git), ma per quel che riguarda l'errore di battitura, visto che non e' specifico di current, devi scrivere al nuovo maintainer dello script.