# Amdgpu-pro

## saverik

Ciao a tutti,

sto cercando di installare il driver AMDGPU-pro per la mia scheda AMD RADEON RX 580  sul mio pc fisso ma sto avendo difficolta notevoli nel reperire informazioni attendibili...

Ho scaricato il driver da AMD ma una volta installato non riesco a far partire il desktop...

Ho provato a rifare la configurazione dello XORG-Server ma nulla...

In giro non ho trovato nulla di definitivo...

Qualcuno mi  da una mano????

----------

## fedeliallalinea

Premetto che non ho mai avuto una scheda amd.

Il primo passo sarebbe di controllare i log: /var/log/Xorg.0.log e dmseg che errori riportano?

Hai gia' dato un'occhiata a [urlhttps://warwick.ac.uk/fac/cross_fac/complexity/people/staff/delgenio/amdgpuprogentoo]questa[/url] guida?

----------

## saverik

Ciao,

sto seguendo proprio quella guida...

Appena mi finisce l'aggiornamento di tutto il sistema (era una image ferma a sett2017)procedo e ti tengo aggiornato... 

chissa che possa servira a qualcuno di noi.

 :Laughing: 

----------

## xdarma

A me interessa.

A dire il vero sono riuscito a far funzionare una vecchia HD7990 che non sarebbe neanche supportata.

Ho usato i driver 17.50 con amdgpu-pro-opencl.

Per la configurazione del kernel non ho seguito i consigli di paraw ma ho usato un setup minimale.

Adesso ho dovuto "sbaraccare" tutto, la prossima settimana spero di riuscire a riprodurre il percorso.

Ma probabilmente non hai così tanto tempo a disposizione... :-(

----------

## saverik

ho visto che qui https://packages.gentoo.org/packages/dev-libs/amdgpu-pro-opencl e' in testing questo driver...

come faccio a provarlo????

in make .conf  ho abilitato ~amd64 che pero mi ha installato il driver precedende..

----------

## xdarma

 *saverik wrote:*   

> ho visto che qui https://packages.gentoo.org/packages/dev-libs/amdgpu-pro-opencl e' in testing questo driver...
> 
> come faccio a provarlo????
> 
> in make .conf  ho abilitato ~amd64 che pero mi ha installato il driver precedende..

 

Sì, è quello che ho installato anch'io. Se non lo vedi, forse devi aggiornare portage.

Secondo me è pericoloso abilitare la branca instabile a livello globale, abilita solo il pacchetto che ti serve attraverso package.keywords.

Nel make.conf avevo messo:

```
VIDEO_CARDS="vesa amdgpu"
```

----------

## xdarma

In qualche maniera ho ripristinato la versione di gentoo con amdgpu-pro funzionante.

Ho dovuto disinstallare ati-drivers e quindi non ho più a disposizione aticonfig, ma forse non è una cosa così negativa.

La mia configurazione del kernel 4.9.72 relativa al driver amdgpu:

```

[*] Enable loadable module support

Processor type and features  --->

    [*] MTRR (Memory Type Range Register) support

Bus options (PCI etc.)  --->

    [*] PCI Express Port Bus support

    [*] Message Signaled Interrupts (MSI and MSI-X)

    [*] Mark VGA/VBE/EFI FB as generic system framebuffer

Device Drivers  --->

    Generic Driver Options  --->

        [ ]   Include in-kernel firmware blobs in kernel binary

    Graphics support  --->

        <M> /dev/agpgart (AGP Support)  --->

            Choose your AGP driver, e.g.:

            <M> AMD Opteron/Athlon64 on-CPU GART support

        <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->

            [*]   Enable legacy fbdev support for your modesetting driver

        <M> AMD GPU

            [*]   Enable amdgpu support for SI parts

            [*]   Enable amdgpu support for CIK parts

            [*]   Always enable userptr write support

            [ ]   Allow GART access through debugfs

            ACP (Audio CoProcessor) Configuration  --->

                [*] Enable AMD Audio CoProcessor IP support

        <M> HSA kernel driver for AMD GPU devices

        Frame buffer Devices  --->

            {*} Support for frame buffer devices  --->

                [*]   Enable firmware EDID

            -*- Enable Video Mode Handling Helpers

            [*] Enable Tile Blitting Support

            <*> Userspace VESA VGA graphics support

            [*] VESA VGA graphics support

            [*] EFI-based Framebuffer Support

            [*] Simple framebuffer support

        Console display driver support  --->

            -*- VGA text console

            [*]   Enable Scrollback Buffer in System RAM

            (128)   Scrollback Buffer Size (in KB)

            (240) Initial number of console screen columns

            (68) Initial number of console screen rows

            {*} Framebuffer Console support

            -*-   Map the console to the primary display device

            [ ]   Framebuffer Console Rotation

    [*] IOMMU Hardware Support  --->

        [*]   AMD IOMMU support

            <M>     AMD IOMMU Version 2 driver

            [*]   Support for Intel IOMMU using DMA Remapping Devices

            [ ]     Support for Shared Virtual Memory with Intel IOMMU

            [ ]     Enable Intel DMA Remapping Devices by default

            [*]   Support for Interrupt Remapping

```

L'idea era di renderlo più modulare possibile per poterlo utilizzare con schede diverse, anche non radeon.

Non ho indicato dei firmware specifici per il chipset della scheda video da caricare e questo mi ha fatto perdere la possibilità di vedere i pinguini al boot (che tristezza...) e (soprattutto) mi impediva di vedere qualcosa sullo schermo alla fine del processo di boot.

Per questo ti ho indicato la configurazione del framebuffer. Con la speranza che funzioni anche a te.

Non avendo più a disposizione aticonfig ho riadattato un vecchio xorg.conf:

```

Section "ServerLayout"

        Identifier     "aticonfig Layout"

        Screen      0  "aticonfig-Screen[0]-0" 0 0

EndSection

Section "Module"

EndSection

Section "Monitor"

        Identifier   "aticonfig-Monitor[0]-0"

        Option      "VendorName" "ATI Proprietary Driver"

        Option      "ModelName" "Generic Autodetecting Monitor"

        Option      "DPMS" "true"

EndSection

Section "Device"

        Identifier  "aticonfig-Device[0]-0"

        Driver      "amdgpu"

#       Driver      "vesa"

        BusID       "PCI:9:0:0"

EndSection

Section "Screen"

        Identifier "aticonfig-Screen[0]-0"

        Device     "aticonfig-Device[0]-0"

        Monitor    "aticonfig-Monitor[0]-0"

        DefaultDepth     24

        SubSection "Display"

                Viewport   0 0

                Depth     24

                Modes    "1920x1080"

        EndSubSection

EndSection

```

Devi modificare il BusID utilizzando quello che ti indica

```
lspci | grep VGA
```

E il Modes con la risoluzione del tuo monitor.

Ci sto ancora lavorando, per esempio non riesco a capire se il 3D funzioni oppure no.

Purtroppo non ho molto tempo da dedicare. :-(

----------

## xdarma

Aggiorno il post.

Ho aggiunto il firmware e il supporto al modulo radeon per le schede della prima generazione GCN. Grossomodo funziona anche OpenCL "proprietario" ma non sulle GCN-1.

Versione pacchetti principali:

sys-kernel/gentoo-sources-4.17.12

sys-kernel/linux-firmware-20180103-r2

dev-libs/amdgpu-pro-opencl-18.20.606296

dev-libs/ocl-icd-2.2.11

x11-drivers/xf86-video-amdgpu-18.0.1-r1

```
VIDEO_CARDS="vesa amdgpu radeon radeonsi"
```

```

[*] Enable loadable module support

Processor type and features  --->

    [*] MTRR (Memory Type Range Register) support

    [ ] AMD Secure Memory Encryption (SME) support

Bus options (PCI etc.)  --->

    [*] PCI Express Port Bus support

    [*] Message Signaled Interrupts (MSI and MSI-X)

    [*] Mark VGA/VBE/EFI FB as generic system framebuffer

Device Drivers  --->

    Generic Driver Options  --->

        [*]   Userspace firmware loading support

    Graphics support  --->

        <M> /dev/agpgart (AGP Support)  --->

            Choose your AGP driver, e.g.:

            <M> AMD Opteron/Athlon64 on-CPU GART support

        <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->

            [*]   DRM DP AUX Interface

            [*]   Enable legacy fbdev support for your modesetting driver

            (100)   Overallocation of the fbdev buffer

            [*]   Allow to specify an EDID data set instead of probing for it

        <M> ATI Radeon

           [*]   Always enable userptr support

        <M> AMD GPU

            [*]   Enable amdgpu support for SI parts

            [*]   Enable amdgpu support for CIK parts

            [*]   Always enable userptr write support

            [ ]   Allow GART access through debugfs

            ACP (Audio CoProcessor) Configuration  --->

                [*] Enable AMD Audio CoProcessor IP support

            Display Engine Configuration  --->

                [ ] AMD DC - Enable new display engine

                [ ] DC support for Polaris and older ASICs

        <M> HSA kernel driver for AMD GPU devices

        Frame buffer Devices  --->

            {*} Support for frame buffer devices  --->

                [*]   Enable firmware EDID

            -*- Enable Video Mode Handling Helpers

            [*] Enable Tile Blitting Support

            <*> Userspace VESA VGA graphics support

            [ ] VESA VGA graphics support

            [*] EFI-based Framebuffer Support

            [*] Simple framebuffer support

        Console display driver support  --->

            -*- VGA text console

            [*]   Enable Scrollback Buffer in System RAM

            (128)   Scrollback Buffer Size (in KB)

            [*]     Persistent Scrollback History for each console by default

            (240) Initial number of console screen columns

            (68) Initial number of console screen rows

            {*} Framebuffer Console support

            -*-   Map the console to the primary display device

            [*]   Framebuffer Console Rotation

    [*] IOMMU Hardware Support  --->

        [*]   AMD IOMMU support

            <*>     AMD IOMMU Version 2 driver

            [ ]   Support for Intel IOMMU using DMA Remapping Devices

            [ ]     Support for Shared Virtual Memory with Intel IOMMU

            [ ]     Enable Intel DMA Remapping Devices by default

            [*]   Support for Interrupt Remapping

```

Per scegliere se usare il modulo amdgpu o il radeon ho creato due stringhe per il boot dello stesso kernel, in modo da poter scegliere il modulo in base all'hardware installato, in sostanza i parametri di boot sono:

GCN-1: modulo radeon -> radeon.si_support=1 modprobe.blacklist=amdgpu

GCN-2 e successive: modulo amdgpu -> amdgpu.cik_support=1 modprobe.blacklist=radeon

OpenCL sulle schede video GCN-1 è disponibile solo attraverso mesa. Quindi:

```
eselect opencl set mesa
```

OpenCL sulleschede video GCN-2 e successive è disponibile attraverso il pacchetto ocl-icd. Quindi:

```
eselecet opencl set ocl-icd
```

Ho fatto delle prove con schede GCN-1, 2 e 3 e grossomodo funziona.

Con schede recenti, tipo GCN-3, ci sono delle funzioni in più per la gestione della scheda. Per esempio:

```
# sensors amdgpu-*

amdgpu-pci-2300

Adapter: PCI adapter

vddgfx:       +0.90 V  

fan1:        1542 RPM

temp1:        +39.0°C  (crit = +104.0°C, hyst = -273.1°C)

power1:       18.00 W  (cap = 150.00 W)

```

EDIT:

corretti comandi eselect

----------

## sabayonino

 *Quote:*   

> eselect opencl set {ocl-icd,mesa}

 

 :Rolling Eyes: 

----------

## xdarma

Corretto, grazie.  ;-)

----------

