• Autore:   Elia Argentieri
  • Ultima modifica:   23 gen 2021 16:45
  • Redazione:   30 gen 2017 16:48
  • Sorgente di questa pagina
  • Tempo di lettura:   3 minuti

La versione 4.10 di Linux che verrà rilasciata prossimamente è molto interessante per i possessori di alcune schede grafiche, che fino ad oggi, potevano funzionare con il driver radeonsi solo con la frequenza della memoria ridotta, pena il crash del sistema.

Un esempio è la scheda MSI R7 370 Armor 2X, che avevo acquistato un anno e mezzo fa, che finalmente può viaggiare al pieno delle sue capacità. Un problema di basso livello che ha a che vedere con l’interazione tra firmware, bios e driver della scheda grafica. Era stato temporaneamente aggirato, forzando il driver a impostare una frequenza più bassa del normale, in modo da permettere al sistema di avviarsi e rimanere stabile. Per altri dettagli vi rimando al mio vecchio articolo.

Qualche settimana fa mi sono inserito nella lista CC di questo bug correlato, visto che la discussione era piuttosto interessante. Non mi aspettavo di ricevere una bella email come quella che ho ricevuto così presto! Un certo Daniel Exner, afferma che hanno inserito una patch nel kernel che ha permesso alla sua scheda grafica di funzionare correttamente. Proviamolo subito!

Approfitto di questa occasione per scrivere una mini guida per la compilazione del kernel linux. Un rito di passaggio obbligatorio, che eleva l’aspirante hacker ad un rango superiore. Lo spiego con un linguaggio più adatto, specifico, non soggetto ad interpretazione, ovvero bash:

# Scarico i sorgenti di Linux da GitHub
git clone --depth=1 https://github.com/torvalds/linux.git
cd linux
# Tolgo il quirk della scheda grafica che limita il mclk a 1200 MHz reali
sed -i -r 's/	{ PCI_VENDOR_ID_ATI, 0x6811, 0x1462, 0x2015, 0, 120000 },//' drivers/gpu/drm/radeon/si_dpm.c
# Copio la configurazione del kernel corrente
cp /boot/config-$(uname -r) .config
# Opzionale: tolgo automaticamente tutti i moduli che non sono caricati al
# momento per ridurre i tempi di compilazione
make localmodconfig
# Opzionale: smanetto con le opzioni di compilazione del kernel, ma non troppo
make menuconfig
# Avvio la compilazione (prepara il tè)
make deb-pkg -j$(nproc)
cd ..
# Installo il nuovo kernel
sudo dpkg -i linux-image-*.deb
# Scarico ed installo il firmware necessario
cd /lib/firmware/radeon/
sudo wget https://people.freedesktop.org/~agd5f/radeon_ucode/si58_mc.bin
# Fine
sudo reboot

Dopo il riavvio tutto fila liscio. Perfetto!!!

Da notare il fatto che i produttori di memorie si sono inventati una commercialata formidabile che riguarda la frequenza della memoria. In pratica pubblicizzano una memoria da 1400 MHz come una da 5600 MHz, solo per il fatto che può eseguire 4 operazioni per ciclo di clock. Ovviamente, questo può confondere molto al momento dell’acquisto, ma, soprattutto, quando si devono risolvere problemi tecnici di questo tipo. Non si capisce più a quale frequenza ci si riferisce: SDR (quella reale), DDR (×2) o QDR (×4).

Alla prossima!