Erreur ACPI avec une radeon sur un PC Intel
Bonjour à tous,
PC SOUS DEBIAN TESTING
Je possède un ordinateur portable HP Pavilion 17-e050sf sous Debian
testing :
https://support.hp.com/fr-fr/document/c03817695
C'est un système à cartes graphiques hybrides Intel / AMD,
avec pilote "i915" pour la carte intégrée, et pilote "radeon" pour la
carte additionnelle AMD (alternativement le pilote "amdgpu" peut-être
utilisé pour la carte AMD)
$ lspci
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM
Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core
processor PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core
processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset
Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C216
Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family
USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family
High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI
Express Root Port 1 (rev c4)
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset
Family PCI Express Root Port 2 (rev c4)
00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset
Family PCI Express Root Port 3 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family
USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC
Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family
6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus
Controller (rev 04)
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun
XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / Radeon 520 Mobile]
07:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188EE
Wireless Network Adapter (rev 01)
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE
PCI Express Fast Ethernet controller (rev 07)
LE PROBLEME
Le problème c'est que lorsque je démarre l'ordinateur, tout ce passe
normalement jusqu'à l'invite GDM.
Mais lorsque je me connecte (via GDM) avec mon nom d'utilisateur et mon
mot de passe, il y a presque une minute de latence avant que GNOME se
lance. C'est cela le problème.(J'ai aussi testé xfce, enlightment, GNOME
sous Xorg...sans plus de succès)
(Notez bien que le problème ne se produit qu'après un reboot ou
démarrage à froid, mais pas après une fermeture de session)
Après de nombreux test j'ai constaté que blacklister le module "radeon"
résolvait le problème ... au prix de la désactivation de la radeon.
(Alternativement booter avec le parametre kernel "radeon.modeset=0"
résoud aussi le problème de la même manière)
Après lecture des logs il semble qu'il y ait des erreurs ACPI lors de du
chargement ou du déchargement du driver de la carte graphique
additionnelle AMD :
$ modprobe -r radeon
...
[ 134.810044] ACPI Error: Aborting method \AMD3._ON due to previous
error (AE_AML_LOOP_TIMEOUT) (20191018/psparse-529)
...
[ 134.811473] acpi device:02: Failed to change power state to D0
...
$ modprobe radeon
...
[ 382.899240] acpi device:02: Failed to change power state to D0
...
[ 389.158051] acpi device:02: Cannot transition from (unknown) to D3hot
...
On pourrait penser que le problème est dû au driver radeon,
mais en fait j'ai exactement les mêmes messages d'erreur avec les
drivers "amdgpu" (avec le support activé pour les cartes "si" et "cik" )
Tentative d'analyse
D'après :
$ ls -al /sys/bus/acpi/devices/device\:02/physical_node
lrwxrwxrwx 1 root root 0 avril 16 12:57
/sys/bus/acpi/devices/device:02/physical_node ->
../../../../pci0000:00/0000:00:01.0
et
$ lspci -s 0000:00:01.0
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core
processor PCI Express Root Port (rev 09) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 24
Bus: primary=00, secondary=01, subordinate=06, sec-latency=0
I/O behind bridge: 00005000-00005fff [size=4K]
Memory behind bridge: c2000000-c2ffffff [size=16M]
Prefetchable memory behind bridge:
00000000a0000000-00000000afffffff [size=256M]
Capabilities: [88] Subsystem: Hewlett-Packard Company Xeon E3-1200
v2/3rd Gen Core processor PCI Express Root Port
Capabilities: [80] Power Management version 3
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [a0] Express Root Port (Slot+), MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [140] Root Complex Link
Capabilities: [d94] Secondary PCI Express
Kernel driver in use: pcieport
Donc l'acpi device:02 c'est un port PCI express.
Et la radeon est branchée sur ce port PCI express :
$ ls /sys/bus/acpi/devices/device\:02/physical_node
0000:00:01.0:pcie010
0000:01:00.0
...
$ lspci -vs 0000:01:00.0
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun
XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / Radeon 520 Mobile]
DeviceName: Radeon HD 8670M
Subsystem: Hewlett-Packard Company Sun XT [Radeon HD
8670A/8670M/8690M / R5 M330 / M430 / Radeon 520 Mobile]
Flags: bus master, fast devsel, latency 0, IRQ 35
Memory at a0000000 (64-bit, prefetchable) [size=256M]
Memory at c2000000 (64-bit, non-prefetchable) [size=256K]
I/O ports at 5000 [size=256]
Expansion ROM at c2040000 [disabled] [size=128K]
Capabilities: [48] Vendor Specific Information: Len=08 <?>
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Legacy Endpoint, MSI 00
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1
Len=010 <?>
Capabilities: [150] Advanced Error Reporting
Capabilities: [270] Secondary PCI Express
Kernel driver in use: radeon
Kernel modules: radeon, amdgpu
Il semble en effet qu'il ait un problème avec le "power state" sur ce
port PCI Express :
$ cat /sys/bus/acpi/devices/device\:02/power_state
(unknown)
alors que
$ cat /sys/bus/acpi/devices/device\:02/real_power_state
D0
CONTOURNEMENTS DU PROBLEME
J'ai bien trouvé quelques contournements pour faire fonctionner le
système malgré tout :
- Soit écrire une règle udev pour régler le power/control de la radeon à
"on"
$ cat /etc/udev/rules.d/01-pci_pm.rules
DRIVER=="radeon", SUBSYSTEM=="pci", ATTR{power/control}="on"
Ça marche, le temps de latence disparait ainsi que les erreurs ACPI,
mais les températures données par la commande sensors ont augmenté et le
ventilateur reste toujours allumé
- Soit passer le paramètre de boot "pcie_port_pm=off" dans GRUB:
$ cat /etc/default/grub
...
GRUB_CMDLINE_LINUX="pcie_port_pm=off"
...
Ça marche aussi, mais je me demande ce qu’il en est de la consommation
des autres cartes PCi express (les 2 cartes Realtek Wifi et ethernet) ?
(Notez qu'avec cette solution : on a:
$ cat /sys/bus/acpi/devices/device\:02/power_state
D0
)
DEMANDE D'AIDE
J'ai aussi essayé des kernel vanilla (5.5 & 5.6), sans succès.
Quant à une Debian stable, j'ai le même problème avec et on peut même
dire que ça fonctionne moins bien car le paquet switcheroo-control est
bugué dans sa version buster.
Je ne sais pas quoi tenter d'autre, si quelqu'un a une idée.
Reply to: