LINUX.ORG.RU

Отключить дискретную видеокарту на AMD APU (A10-4600M)

 , , ,


0

2

Добрый день. Есть ноутбук, судя по всему с дохлой дискретной графикой. При запуске виснет намертво с

radeon: ring 0 test failed (scratch(0xC040)=0xCAFEDEAD)

С

radeon.modeset=0
грузится, но, понятное дело, интегрированная графика тоже не работает. Хотелось бы получить хотя бы аппаратное ускорение для видео. Тк декодить на процессоре совсем не очень (1080p на YT грузит на 80% камень.

glxinfo | grep -i opengl с radeon.modeset=0:

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

В BIOS отключить графику нельзя - только UMA размер менять (выделенки из RAM)

Посмотри этиссылки:
https://unix.stackexchange.com/questions/413601/temporary-disable-pci-device-amd

https://superuser.com/questions/541854/disable-specific-pci-device-at-boot

http://www.iram.fr/~blanchet/ethercat/unbind_manually_pci_device.html

https://unix.stackexchange.com/questions/305079/how-to-disable-a-device-hardw...

https://unix.stackexchange.com/questions/12005/how-to-use-linux-kernel-driver...

https://stackoverflow.com/questions/3946813/how-can-i-bind-a-driver-with-a-us...

https://stackoverflow.com/questions/20111112/unload-kernel-module-for-only-a-...

https://lwn.net/Articles/143397/

В низ показано как отключить драйвер с определённого устройства, но проблема в том, что в начале драйвер должен проиницализировать это устройство. А потом можно сделать unbind.

Если у тебя после инициализации проблемной видео карты система зависает, то тебе это, скорее всего, не поможет.

Но попробуй, вдруг получится.

Если модуль radeon у тебя грузится из initramfs, то тебе придётся, скорее всего, пробовать добавить в него скрипт, который будет отключать драйвер от проблемного pci устройства и возможно после этого загрузка продолжится.

Если это не поможет, то тебе придётся пересобрать ядро, удалив из исходников драйвера radeon упоминание об идентификаторе твоей проблемной видео карты.

anonymous ()

Я на одном ноуте отвалившуюся энвидию починил так - между корпусом и площадкой охлаждения вставил стёрку внатяг. Отдал дочке, она его мучает майнтестами и пр. Три дня полёт нормальный :)

ChekPuk ()

поискать схему бука, и варианта без встройки. там по идее одна или несколько перемычек перкидываются (снимается питание с видяхи + скорее всего еще strap по которому биос определяет конфиг - есть ли внешняя видяха или нет).

NiTr0 ★★★★★ ()
Ответ на: комментарий от crarkie

lspci -k:

00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7660G]
	Subsystem: Samsung Electronics Co Ltd Trinity [Radeon HD 7660G]
	Kernel modules: radeon
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Thames [Radeon HD 7500M/7600M Series]
	Subsystem: Samsung Electronics Co Ltd Radeon HD 7670M
	Kernel modules: radeon
crarkie ()
Ответ на: комментарий от NiTr0

Получилось завести так - поставил acpi_call. Через скрипт turn_gpu_off.sh отключить дополнительную видеокарту. И уже потом insmod radeon. Xorg вылетел и после все работает отлично. Теперь вопрос. Как автоматизировать отключение видеокарты еще до загрузки ядра? В initramfs скрипт свой? Но выходит тогда он и acpi_call должен подгружать?

crarkie ()
Ответ на: комментарий от crarkie

поидее ты можешь выкинуть из ядра\системы фирмвари для дискретки, но оставить для интеграшки.. но потом придётся следить чтоб они не подтягивались с обновой..

Thero ★★★★★ ()
Ответ на: комментарий от anonymous

В низ показано как отключить драйвер с определённого устройства, но проблема в том, что в начале драйвер должен проиницализировать это устройство. А потом можно сделать unbind.

Есть ещё как минимум один способ: Загрузка без видеокарты. (комментарий)

mironov_ivan ★★★★★ ()
Ответ на: комментарий от crarkie

у тебя lдискретка Thames интеграшка Trinity названия файлов с их фирмварями будут содержать эти слова.. лежат фирмвари где-то в lib/firmware/radeon

https://wiki.gentoo.org/wiki/Radeon в гентушной книге есть немного устаревший список( твоих чипсетов нет, но общий принцип оттуда понять можно) с перечислением файлов по моделям в разделе где рассказывают про вкомпиливание фирмвари в ядро(Built-in kernel).. твоя задача сделать так что-бы фирмварей на дискретку система не находила -_- поидее этого должно быть достаточно( увы это не точно).

ну и скорее всего вариант с отключением инициализации устройства через конфиг ядра предложенный выше элегантнее и лучше -_-

Thero ★★★★★ ()
Последнее исправление: Thero (всего исправлений: 1)
Ответ на: комментарий от crarkie

Можно ли как-то достоверно проверить, что оно мертвое?

Конечно можно, отключив его)) 3000-е чипы мрут как мухи, тут можно особо не гадать. А то что оно видится это нормально, там графика с хаба растёт, а не из видеочипа. В винде тоже будет видится, но с ошибкой 43.

K12 ()
Ответ на: комментарий от crarkie

Я, так понимаю, тут вариант только с перепайкой?

Да. Во-первых, ноут тебе так и так разбирать, если амдшный видак сдох, то там валенок в радиаторе. Во-вторых, дохлое видео будет греть тебе проц, а встройка там тоже не очень живучая. В-третьих, когда он додохнет окончательно, будет тупо на заставке висеть.

K12 ()
Ответ на: комментарий от K12

Два страпа двинуть как на фото. 30 секунд в яндексе, даже схему открывать не надо.

«Ошибка. Для того, чтобы это сделать, нужно сначала войти на форум»

Dimez ★★★★★ ()
Ответ на: комментарий от Dimez

И вообще не вижу проблемы зарегистрироваться, там всё просто. Я не на vlab послал, где тест входной простенький, но 15 сообщений набивать надо. И не на remont.aud-net, где я сам тест не с первого раза прошёл.

K12 ()
Ответ на: комментарий от Dimez

Вообще IMHO идиотский пункт. Я считаю, что его нужно как минимум дополнить исключением для случаев, когда содержимое ссылки каким-либо образом уникально (например, больше нигде не доступно, а перепост запрещён).

intelfx ★★★★★ ()
Ответ на: комментарий от Thero

у тебя дискретка Thames

названия файлов с их фирмварями будут содержать эти слова

Самое интересное, что такого вообще нету. Вот

ls /lib/firmware/radeon
:
ARUBA_me.bin        hainan_smc.bin      mullins_mec.bin     RV620_me.bin      
ARUBA_pfp.bin       HAINAN_smc.bin      MULLINS_mec.bin     RV620_pfp.bin     
ARUBA_rlc.bin       hawaii_ce.bin       mullins_pfp.bin     RV630_me.bin      
banks_k_2_smc.bin   HAWAII_ce.bin       MULLINS_pfp.bin     RV630_pfp.bin     
BARTS_mc.bin        hawaii_k_smc.bin    mullins_rlc.bin     RV635_me.bin      
BARTS_me.bin        HAWAII_mc2.bin      MULLINS_rlc.bin     RV635_pfp.bin     
BARTS_pfp.bin       hawaii_mc.bin       mullins_sdma1.bin   RV670_me.bin      
BARTS_smc.bin       HAWAII_mc.bin       mullins_sdma.bin    RV670_pfp.bin     
bonaire_ce.bin      hawaii_me.bin       MULLINS_sdma.bin    RV710_me.bin      
BONAIRE_ce.bin      HAWAII_me.bin       mullins_uvd.bin     RV710_pfp.bin     
bonaire_k_smc.bin   hawaii_mec.bin      mullins_vce.bin     RV710_smc.bin     
BONAIRE_mc2.bin     HAWAII_mec.bin      oland_ce.bin        RV710_uvd.bin     
bonaire_mc.bin      hawaii_pfp.bin      OLAND_ce.bin        RV730_me.bin      
BONAIRE_mc.bin      HAWAII_pfp.bin      oland_k_smc.bin     RV730_pfp.bin     
bonaire_me.bin      hawaii_rlc.bin      OLAND_mc2.bin       RV730_smc.bin     
BONAIRE_me.bin      HAWAII_rlc.bin      oland_mc.bin        RV740_smc.bin     
bonaire_mec.bin     hawaii_sdma1.bin    OLAND_mc.bin        RV770_me.bin      
BONAIRE_mec.bin     hawaii_sdma.bin     oland_me.bin        RV770_pfp.bin     
bonaire_pfp.bin     HAWAII_sdma.bin     OLAND_me.bin        RV770_smc.bin     
BONAIRE_pfp.bin     hawaii_smc.bin      oland_pfp.bin       RV770_uvd.bin     
bonaire_rlc.bin     HAWAII_smc.bin      OLAND_pfp.bin       si58_mc.bin       
BONAIRE_rlc.bin     hawaii_uvd.bin      oland_rlc.bin       SUMO2_me.bin      
bonaire_sdma1.bin   hawaii_vce.bin      OLAND_rlc.bin       SUMO2_pfp.bin     
bonaire_sdma.bin    JUNIPER_me.bin      oland_smc.bin       SUMO_me.bin       
BONAIRE_sdma.bin    JUNIPER_pfp.bin     OLAND_smc.bin       SUMO_pfp.bin      
bonaire_smc.bin     JUNIPER_rlc.bin     PALM_me.bin         SUMO_rlc.bin      
BONAIRE_smc.bin     JUNIPER_smc.bin     PALM_pfp.bin        SUMO_uvd.bin      
bonaire_uvd.bin     kabini_ce.bin       pitcairn_ce.bin     tahiti_ce.bin     
BONAIRE_uvd.bin     KABINI_ce.bin       PITCAIRN_ce.bin     TAHITI_ce.bin     
bonaire_vce.bin     kabini_me.bin       pitcairn_k_smc.bin  tahiti_k_smc.bin  
BONAIRE_vce.bin     KABINI_me.bin       PITCAIRN_mc2.bin    TAHITI_mc2.bin    
BTC_rlc.bin         kabini_mec.bin      pitcairn_mc.bin     tahiti_mc.bin     
CAICOS_mc.bin       KABINI_mec.bin      PITCAIRN_mc.bin     TAHITI_mc.bin     
CAICOS_me.bin       kabini_pfp.bin      pitcairn_me.bin     tahiti_me.bin     
CAICOS_pfp.bin      KABINI_pfp.bin      PITCAIRN_me.bin     TAHITI_me.bin     
CAICOS_smc.bin      kabini_rlc.bin      pitcairn_pfp.bin    tahiti_pfp.bin    
CAYMAN_mc.bin       KABINI_rlc.bin      PITCAIRN_pfp.bin    TAHITI_pfp.bin    
CAYMAN_me.bin       kabini_sdma1.bin    pitcairn_rlc.bin    tahiti_rlc.bin    
CAYMAN_pfp.bin      kabini_sdma.bin     PITCAIRN_rlc.bin    TAHITI_rlc.bin    
CAYMAN_rlc.bin      KABINI_sdma.bin     pitcairn_smc.bin    tahiti_smc.bin    
CAYMAN_smc.bin      kabini_uvd.bin      PITCAIRN_smc.bin    TAHITI_smc.bin    
CEDAR_me.bin        kabini_vce.bin      R100_cp.bin         TAHITI_uvd.bin    
CEDAR_pfp.bin       kaveri_ce.bin       R200_cp.bin         TAHITI_vce.bin    
CEDAR_rlc.bin       KAVERI_ce.bin       R300_cp.bin         TURKS_mc.bin      
CEDAR_smc.bin       kaveri_me.bin       R420_cp.bin         TURKS_me.bin      
CYPRESS_me.bin      KAVERI_me.bin       R520_cp.bin         TURKS_pfp.bin     
CYPRESS_pfp.bin     kaveri_mec2.bin     R600_me.bin         TURKS_smc.bin     
CYPRESS_rlc.bin     kaveri_mec.bin      R600_pfp.bin        verde_ce.bin      
CYPRESS_smc.bin     KAVERI_mec.bin      R600_rlc.bin        VERDE_ce.bin      
CYPRESS_uvd.bin     kaveri_pfp.bin      R600_uvd.bin        verde_k_smc.bin   
hainan_ce.bin       KAVERI_pfp.bin      R700_rlc.bin        VERDE_mc2.bin     
HAINAN_ce.bin       kaveri_rlc.bin      REDWOOD_me.bin      verde_mc.bin      
hainan_k_smc.bin    KAVERI_rlc.bin      REDWOOD_pfp.bin     VERDE_mc.bin      
HAINAN_mc2.bin      kaveri_sdma1.bin    REDWOOD_rlc.bin     verde_me.bin      
hainan_mc.bin       kaveri_sdma.bin     REDWOOD_smc.bin     VERDE_me.bin      
HAINAN_mc.bin       KAVERI_sdma.bin     RS600_cp.bin        verde_pfp.bin     
hainan_me.bin       kaveri_uvd.bin      RS690_cp.bin        VERDE_pfp.bin     
HAINAN_me.bin       kaveri_vce.bin      RS780_me.bin        verde_rlc.bin     
hainan_pfp.bin      mullins_ce.bin      RS780_pfp.bin       VERDE_rlc.bin     
HAINAN_pfp.bin      MULLINS_ce.bin      RS780_uvd.bin       verde_smc.bin     
hainan_rlc.bin      mullins_me.bin      RV610_me.bin        VERDE_smc.bin     
HAINAN_rlc.bin      MULLINS_me.bin      RV610_pfp.bin
Систему я заново не ставил. Просто на ноутбук перенес SSD с установленной системой. Могут ли эти ошибки (ring 0 test failed) быть из-за того, что система не может найти фирмварь для видюхи? Потому что встроенная тут ARUBA - и фирмварь для нее есть.

crarkie ()
Ответ на: комментарий от crarkie

ааа етить этож не те имена..( убери все кроме арубы -_- не знаю какая фирмварь у тэмзы, но вроде еслиб её не было он на неё ругался бы а не на ринг0 но кто знает) поидее можно в dmesg спалить какие фирмвари драйвер грузить пытается..

впрочем если ринг0 делается до загрузки фирмвари, то надо копать в этот трэд Загрузка без видеокарты. (комментарий)

Thero ★★★★★ ()
Ответ на: комментарий от Thero

Да. Я сделал так (c pci-stub). Пришлось перекомпилить ядро, правда. Но зато теперь даже в сон уходит и спокойно выходит из него. Раньше, если отключить через ACPI Call видюху и загрузить встроенную, то после ухода в сон он не пробуждался нормально - сыпались ошибки.

crarkie ()