Translation(s): English - Español - Français - Italiano - Русский


Driver per AMD/ATI (amdgpu, radeon, r128, mach64)

Questa pagina descrive il processo di installazione e configurazione dei driver per il display per schede grafiche ATI/AMD in sistemi Debian.

Identificazione

Il nome in codice o la serie della GPU (Graphics Processing Unit, processore grafico) AMD/ATI di una scheda video installata possono solitamente essere identificati usando il comando lspci. Per esempio:

Per maggiori informazioni vedere Come identificare un dispositivo PCI.

Driver

Il supporto per il nuovo hardware grafico AMD è fornito dal pacchetto xserver-xorg-video-amdgpu. Questo copre ufficialmente qualsiasi scheda che fa parte di GCN 1.2 ("GCN 3a generazione") o successive. Questa generazione comprende la maggior parte dei chip rilasciati dopo il giugno 2015. Le schede GCN 1.0 e GCN 1.1 (prodotte da gennaio 2012 a giugno 2015) sono supportate sperimentalmente e richiedono l'impostazione di parametri aggiuntivi per il kernel, come documentato nella sezione sperimentale.

Il supporto per GCN 1.1 e chip più vecchi è fornito anche dal pacchetto wrapper per i driver xserver-xorg-video-ati, che dipende da tre pacchetti per driver hardware-specifici:

Il pacchetto del driver ATI rileva automaticamente se l'hardware ha un chip Radeon, Rage 128 o Mach64 e precedenti e carica il driver video radeon, r128 o mach64 appropriato.

Dato che il driver AMDGPU si sovrappone al più vecchio driver Radeon per il supporto di GPU GCN 1.0/1.1, può essere usato uno dei due. Il driver Radeon più vecchio non supporta Vulkan o il compilatore ACO ed è spesso più lento, ma è molto più stabile ed è usato in modo predefinito.

Firmware

Il firmware proprietario, solo binario, (noto anche come microcodice) non è permesso nel repository Debian principale in accordo con le Linee Guida Debian per il Software Libero. Il firmware può essere ottenuto installando il pacchetto firmware-amd-graphics, se la componente non-free-firmware è abilitata nel file SourcesList. Le instruzioni di installazione in seguito in questa sezione documentano l'aggiunta di questa componente e l'installazione del firmware necessario.

Senza l'installazione di questo pacchetto normalmente si hanno cattive prestazioni 2D/3D. Alcune GPU possono proprio richiedere firmware per funzionare.

Installazione

La procedura descritta qui di seguito installa i pacchetti del driver open source per il display, i moduli DRI (per l'accelerazione 3D) e il firmware/microcodice del driver. Installa il metapacchetto per il driver video Xorg che include tutti i driver. Il sistema selezionerà automaticamente quale usare all'avvio. Se la scheda è supportata sia da AMDGPU sia da Radeon (come la serie GCN 1.0/1.1), viene usato in modo predefinito radeon. Si possono vedere le istruzioni su come usare il driver più nuovo qui.

Nelle istruzioni seguenti, # indica che il comando deve essere eseguito come utente root. Nei sistemi dove sudo è configurato, lo si può sostituire con sudo. Altrimenti, se si è fatto il login come root, può essere omesso del tutto.

  1. Se è stato in precedenza usato il driver NVIDIA proprietario non libero, allora è necessario disinstallarlo se si desidera ora usare il driver AMD accelerato. Il modo più facile per farlo è utilizzare il comando:

     # apt purge '*nvidia*'

    Non dimenticare di digitare gli asterischi intorno a nvidia per eliminare ogni pacchetto con "nvidia" nel nome.

  2. Aggiungere le componenti "contrib" e "non-free-firmware" a /etc/apt/sources.list, per esempio:

    # Debian 12 "Bookworm"
    deb http://deb.debian.org/debian bookworm main contrib non-free-firmware
     1. Aggiornare l'elenco dei pacchetti disponibili: {{{
    # apt update
  3. Installare i pacchetti firmware-amd-graphics, libgl1-mesa-dri, libglx-mesa0, mesa-vulkan-drivers e xserver-xorg-video-all:

    # apt-get install firmware-amd-graphics libgl1-mesa-dri libglx-mesa0 mesa-vulkan-drivers xserver-xorg-video-all
  4. Riavviare il sistema per caricare il driver appena installato.

Eviare il tearing dello schermo

Lo "screen tearing" può verificarsi quando si usa il modulo per driver/kernel amdgpu con AMD Renoir e altre.

Abilitare TearFree o un monitor esterno (fino al riavvio) con:

xrandr --verbose|grep TearFree
xrandr --output HDMI-A-0 --set TearFree on          

Rendere le modifiche persistenti creando il file seguente e poi riavviando X:

echo > /etc/X11/xorg.conf.d/20-amdgpu.conf <<EOF
Section "Device"
   Identifier  "AMD Graphics"
   Driver      "amdgpu"
   Option      "TearFree"  "true"
EndSection
EOF

Supporto per 32-bit

I giochi installati da Steam o eseguiti in Wine, o entrambe le cose con l'avvento di Proton di Valve, possono richiedere librerie per grafica a 32 bit ad un certo momento quando cercano di eseguire giochi a 32 bit. Ciò può essere fatto abilitando il multiarch e installando le librerie appropriate. Notare che la guida seguente presume che l'utente sia configurato per usare sudo che alcune installazioni non hanno in modo predefinito; se è così fare le necessarie modifiche.

Come prima cosa, abilitare il supporto per 32-bit e aggiornare i propri repository come necessario:

sudo dpkg --add-architecture i386 && sudo apt update

Poi installare le librerie necessarie:

sudo apt install libglx-mesa0:i386 mesa-vulkan-drivers:i386 libgl1-mesa-dri:i386

Poi potrebbe essere necessario riavviare le applicazioni interessate affinché ricarichino le nuove librerie. Dopo di ciò non dovrebbero esserci problemi.

Opzioni sperimentali

AMDGPU/Vulkan su schede più vecchie

Se la propria scheda grafica è stata basata su GCN 1.0 o GCN 1.1 (dette anche famiglie di schede "Southern Islands" o "Sea Islands"), può essere abilitato il supporto AMDGPU sperimentale per avere prestazioni potenzialmente migliori e il supporto per Vulkan.

Seguire prima le normali istruzioni per l'installazione e poi aprire il file /etc/default/grub nell'editor preferito. Notare che sono necessari i permessi di amministrazione per modificarlo, perciò è necessario aprire l'editor di testo con sudo o usarne uno come Kate che supporta i permessi PolKit.

All'interno delle virgolette, nella riga che inizia con GRUB_CMDLINE_LINUX_DEFAULT, aggiungere le opzioni radeon.si_support=0 amdgpu.si_support=1 per schede Southern Islands (GCN 1.0) oppure radeon.cik_support=0 amdgpu.cik_support=1 per schede Sea Islands (GCN 1.1).

Per esempio, se si usa una scheda GCN 1.1, la riga finale potrebbe essere simile a:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.cik_support=0 amdgpu.cik_support=1"

Inoltre, se si usa una APU AMD A10 APU con una scheda integrata Sea Island (GCN 1.1), può essere necessario disabilitare la gestione dell'energia Radeon Dynamic Power Management per ottenere un avvio corretto. Questa è una funzionalità che re-imposta dinamicamente il clock del core grafico per mantenere la APU più fredda e più silenziosa, tuttavia per le versioni 4.x.x e 5.x.x del kernel, questa funzionalità può creare un cicio di riavvii infiniti. Per disabilitarla, seguire le istruzioni sopra e aggiungere radeon.dpm=0 alle opzioni di avvio.

Dopo avere fatto ed applicato le modifiche, eseguire sudo update-grub2 e riavviare il sistema. Se tutto va per il verso giusto, dovrebbe usare il nuovo driver.

Strumenti

radeontop

radeontop è uno strumento per monitorare l'uso di schede AMD, è utile per vedere se l'hardware viene usato con le sue piene potenzialità e per diagnosticare colli di bottiglia.

Installazione:

sudo apt install radeontop

Controllo delle ventole

Notare: Il BIOS della GPU solitamente controlla esso stesso le ventole, perciò questo potrebbe solo essere una regolazione e non strettamente necessario.

fancontrol

fancontrol può controllare le ventole su GPU AMD, dato che almeno sulle schede moderne il kernel espone la temperatura e i controlli di gestione di energia.

sudo apt install lm-sensors fancontrol 

Dopo l'installazione controllare se sensors mostra già i sensori della GPU, può essere necessario eseguire  sensors-detect  per fare il rilevamento e caricare i moduli del kernel.

Questo è un esempio di output di sensors (accorciando le informazioni sulla GPU), usando una RX 6x00 XT, ed essendo non attivo:

amdgpu-pci-2d00
Adapter: PCI adapter
vddgfx:      775.00 mV 
fan1:         0 RPM  (min =    0 RPM, max = 3300 RPM)
edge:         +41.0°C  (crit = +100.0°C, hyst = -273.1°C)
                       (emerg = +105.0°C)
junction:     +45.0°C  (crit = +110.0°C, hyst = -273.1°C)
                       (emerg = +115.0°C)
mem:          +46.0°C  (crit = +100.0°C, hyst = -273.1°C)
                       (emerg = +105.0°C)
PPT:          35.00 W  (cap = 281.00 W)

Per creare una configurazione per fancontrol, si può usare la procedura guidata di pwmconfig.

Notare: attualmente esiste il bug #664141, per cui fancontrol smette di funzionare dopo una ripresa dalla sospensione, solitamente con le ventole a piena velocità. Riavviare fancontrol o dire a systemd di riavviarlo in caso di fallimento risolve questo problema.

amdgpu-fan

È possibile che il driver e il firmware gestiscano le ventole in maniera pessima. amdgpu-fan è uno strumento che permette di gestire le ventole sulle schede grafiche per controllare meglio la temperatura. Sfortunatamente questo strumento open source non è disponibile nei repository Debian; deve essere installato da python-pip3:

sudo pip3 install amdgpu-fan

Modificare il file di configurazione con queste impostazioni: sudo nano /etc/amdgpu-fan.yml

speed_matrix:  # -[temp(*C), speed(0-100%)]
- [0, 0]
- [30, 15]
- [50, 30]
- [70, 70]
- [90, 100]

Creare un servizio in systemd per rendere lo strumento un demone: sudo nano /etc/systemd/system/amdgpu-fan.service Riempire il file con:

[Unit]
Description=Service for controling amdgpu fan.
After=syslog.service

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/amdgpu-fan
Restart=always

[Install]
WantedBy=multi-user.target

Ricaricare systemd, abilitare e avviare il nuovo servizio e controllare il suo stato:

sudo systemctl daemon-reload
sudo systemctl enable amdgpu-fan.service
sudo systemctl start amdgpu-fan.service
sudo systemctl status amdgpu-fan.service

Notare che le ventole reagiscono meglio quando si usa la scheda grafica (codifica, videogiochi, ecc.).

Risoluzione dei problemi

Grafica ibrida

AMD fornisce grafica ibrida che può avere una scheda grafica AMD combinata con una di tipo diverso. Senza il supporto corretto, le schede possono funzionare in modo non efficiente, usando solo una o l'altra o anche attivandole contemporaneamente il che causa un consumo eccessivo di energia.

Debian Stretch e successive viene fornita con una versione di Mesa con supporto per Offloading di DRI. Assicurarsi che siano installati tutti i driver necessari. Necessita anche dell'installazione del pacchetto firmware-amd-graphics.

Controllare se vengono elencate entrambe le schede:

xrandr --listproviders

L'elenco dovrebbe fornire entrambi i nomi delle schede ed i driver associati. Presumendo ad esempio che si stia usando un chip dedicato che usa radeon e una scheda Intel integrata che usa il driver intel, si può impostare:

xrandr --setprovideroffloadsink radeon Intel

Si possono testare le impostazioni con il comando:

DRI_PRIME=1 glxinfo | grep "OpenGL renderer"

il cui output dovrebbe mostrare AMD.

Vedere anche

Collegamenti esterni


CategoryHardware CategoryVideo