прошу помощи с отключением матрицы ноутбука (amdgpu)

доброго времени, ув. форумчане. Прошу помощи. Ситуация следующая - купил ноут б/у с нерабочей матрицей. Бывший владелец сказал что подключает ноут к внешнему монитору и проблем нет при таком подключении. Продавец не соврал - так и было. Действительно некоторое время ноут работал без каких либо проблем, матрица не светилась, её как будто небыло вообще в системе (не виделась ни драйверами, нигде вообще). Теперь ситуация такая - драйвер в Виндовс я поставить не могу, он ставится но ноут с установленным драйвером AMD не загружается, идёт циклически на перезагрузку (процессор Ryzen 2500U со встроенным видео Vega 8). На данный момент Виндовс работает только со стандартным драйвером VGA. Решил попробовать ArchLinux, тут сиутация получше, ноут начинает загружаться, после первых строк загрузки ядра идёт смена видеорежима, в этот момент внешний монитор тухнет и пауза секунд 40, после неё ноут загружается дальше. При самой первой загрузке графической оболочки разрешение 640*480, так потому что матрица ноута распознаётся только с таким разрешением (её настоящее разрешение 1920*1080), соответственно внешний монитор тоже включается с таким же разрешением (дублирование). Отключаю в настройках матрицу ноута, выставляю на внешнем мониторе 1920*1080 и с ноутом можно нормально работать. В чём проблема? в том что использую оболочку XFCE и она теперь запускается с моими настройками - матрица ноута отключена а внешний монитор с разрешением FullHD. Но при попытке сменить пользователя или банально переключиться в tty включается gdm который пытается вывести изображение на матрицу ноута. При этом возникает снова пауза в 40 секунд. Такая же пауза возникает когда ноуту даёшь команду перезагрузки. В логах ядра по dmesg видно что видеоадаптер не может считать EDID из матрицы ноута и потому такая задержка, но какая причина этого - матрица ноута или поломка самого видеоадаптера (отслоение из за перегрева, бывший владелец очень много играл на этом ноуте) - неизвестна. Стоит задача полностью отключить матрицу, чтобы система её вообще не видела. Поскольку система загружается через grub в /etc/default/grub.cfg дописал в "GRUB_CMDLINE_LINUX_DEFAULT=" параметр video=eDP:d и выполнил переконфигурацию grub. Итог - это не помогает. ничего не меняется, во время загрузки сообщения ядра всё равно не выводятся на внешний монитор и матрица не отключается, опять пауза в 40 сек и тормоза при переключении на консоль, также пауза при попытке вызвать gdm
что делаю не так? возможно это связано с тем что адаптер AMD а не Nvidia или Intel и нужно указывать какой то другой параметр ядру. Либо нужно создать файл описания внешнего монитора в настройках xorg чтобы небыло автодетекта, но ведь по идее video=eDP:d должно бы полностью отключать вывод на матрицу а это не так. Если уже на загруженном ноуте выполнить в терминале команду xrandr, она пишет -
eDP connected (normal left inverted right x axis y axis)
640x480 59.94
HDMI-A-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 476mm x 268mm
1920x1080 60.00*+

это при том, что в настройках дисплея матрица ноута выключена и основным дисплеем назначен внешний монитор
Ядро продолжает видеть матрицу?
Гляньте вывод на предмет ее наличия, если есть то в параметры ядра запрет на нее надо, возможно неправильно указали название.
ls  /sys/class/drm
 sudo  dmesg | grep -E "VGA|HDMI"
# и в выводе  xrandr она  есть? полный вывод
 xrandr --listmonitors
# и проверить
cat /proc/cmdline
правильное название берите из вывода ls /sys/class/drm а не из xrandr
для запрета d на матрицу, e на экран
примерно в параметры ядра
video=eDP-1:d video=HDMI-A-1:e
А физически, шлейф матрицы, просто отключить не легче?
RusWolf
А физически, шлейф матрицы, просто отключить не легче?
да была такая мысль... Дело в том, что проблема эта гуляющая. Боюсь всё таки причина в перегреве GPU, бывший владелец признался что на этом ноуте прошёл GTA V, а сколько ещё он играл - неизвестно. После того как в Виндовс вообще перестал ставиться драйвер AMD я некоторое время использовал ноут на стандартном драйвере VGA, время от времени пробуя поставить драйвер. И действительно бывали периоды когда он ставился и внешний монитор нормально работал, можно было и в игры поиграть. А было и такое что сама матрица включалась и работала (конечно и внешний монитор при этом работал). поскольку проблема вот такая гуляющая не хочется лезть отсоединять шлейф, иногда есть потребность этот ноут поносить с собой, и если случайно матрица заработает то она так сможет проработать долгое время если не нагружать играми (последний раз когда матрица включилась ноут работал почти месяц без проблем, потом один раз поиграл и матрица снова потухла).
vs220
Ядро продолжает видеть матрицу?
Гляньте вывод на предмет ее наличия, если есть то в параметры ядра запрет на нее надо, возможно неправильно указали название.
ls /sys/class/drm
[lenovo a1]# ls /sys/class/drm
card0 card0-DP-2 card0-HDMI-A-1 ttm
card0-DP-1 card0-eDP-1 renderD128 version
vs220
правильное название берите из вывода ls /sys/class/drm а не из xrandr
это и было моей ошибкой. Спасибо большое, помогло. Теперь ноут загружается моментально без всяких пауз и не видит матрицу. Удивлён что в xrandr одно а в drm другое.
раз уж есть такая проблема у меня, спрошу ещё.. На данный момент по симптомам сложно понять в чём всё таки причина - либо матрица ноута некорректно сообщает ядру данные EDID (в логе dmesg есть запись о том что драйвер адаптера не может вычитать edid из eDP), либо всё таки перегретый процессор имеет где то отслоение кристалла (или отходит где то от материнки) и возникает такая проблема, поэтому хотелось бы уточнить - можно ли попытаться вручную запустить матрицу?
что я уже попробовал. Вычитал на каком то форуме параметры матрицы ноута Леново которая имеет разрешение FullHD, далее выполнил следующие команды -
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode eDP 1920x1080_60.00
xrandr --output eDP --mode 1920x1080_60.00

выдаёт следующее - xrandr: Configure crtc 1 failed
возможно причина в том, что я ошибочно указываю вывод? ведь ядру нужно было передать video=eDP-1:d а я передавал video=eDP:d ориентируясь на xrandr

и второй вопрос. Такого указания разрешения через добавление режима достаточно чтобы протестировать работу матрицы?
или же нужно принудительно создать файл настроек монитора в /etc/X11/xorg.conf ?
c.o.d.e.m.a.s.t.e.r
в логе dmesg есть запись о том что драйвер адаптера не может вычитать edid из eDP
Что конкретно в логах?
И посмотри какие имеются edid
ls -1 /sys/class/drm/*/edid
/sys/class/drm/card0-DP-1/edid
/sys/class/drm/card0-HDMI-A-1/edid
/sys/class/drm/card0-LVDS-1/edid
/sys/class/drm/card0-VGA-1/edid
Ошибки не исчезают с опытом - они просто умнеют
vasek
Что конкретно в логах?
вот, отсортировал по amdgpu

[lenovo a1]# dmesg | grep amdgpu
[ 3.985726] [drm] amdgpu kernel modesetting enabled.
[ 3.985864] amdgpu: Topology: Add APU node [0x0:0x0]
[ 3.985926] fb0: switching to amdgpudrmfb from VESA VGA
[ 3.986070] amdgpu 0000:04:00.0: vgaarb: deactivate vga console
[ 3.986259] amdgpu 0000:04:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[ 4.025412] amdgpu 0000:04:00.0: amdgpu: Fetched VBIOS from ROM BAR
[ 4.025415] amdgpu: ATOM BIOS: 113-RAVEN-107
[ 4.025779] amdgpu 0000:04:00.0: amdgpu: VRAM: 1024M 0x000000F400000000 - 0x000000F43FFFFFFF (1024M used)
[ 4.025780] amdgpu 0000:04:00.0: amdgpu: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
[ 4.025782] amdgpu 0000:04:00.0: amdgpu: AGP: 267419648M 0x000000F800000000 - 0x0000FFFFFFFFFFFF
[ 4.025951] [drm] amdgpu: 1024M of VRAM memory ready
[ 4.025954] [drm] amdgpu: 3072M of GTT memory ready.
[ 4.032388] amdgpu: hwmgr_sw_init smu backed is smu10_smu
[ 4.279436] amdgpu 0000:04:00.0: amdgpu: RAS: optional ras ta ucode is not available
[ 4.302737] amdgpu 0000:04:00.0: amdgpu: RAP: optional rap ta ucode is not available
[ 4.310282] snd_hda_intel 0000:04:00.1: bound 0000:04:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[ 4.901842] [drm:retrieve_link_cap [amdgpu]] *ERROR* retrieve_link_cap: Read dpcd data failed.
[ 5.337730] [drm:dc_link_detect_helper [amdgpu]] *ERROR* No EDID read.
[ 5.502289] amdgpu: Topology: Add APU node [0x15dd:0x1002]
[ 5.502294] amdgpu 0000:04:00.0: amdgpu: SE 1, SH per SE 1, CU per SH 11, active_cu_number 8
[ 5.503505] fbcon: amdgpudrmfb (fb0) is primary device
[ 5.653345] amdgpu 0000:04:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[ 5.682919] amdgpu 0000:04:00.0: amdgpu: ring gfx uses VM inv eng 0 on hub 0
[ 5.682923] amdgpu 0000:04:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[ 5.682926] amdgpu 0000:04:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[ 5.682928] amdgpu 0000:04:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
[ 5.682930] amdgpu 0000:04:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
[ 5.682932] amdgpu 0000:04:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
[ 5.682934] amdgpu 0000:04:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
[ 5.682936] amdgpu 0000:04:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
[ 5.682938] amdgpu 0000:04:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
[ 5.682941] amdgpu 0000:04:00.0: amdgpu: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
[ 5.682943] amdgpu 0000:04:00.0: amdgpu: ring sdma0 uses VM inv eng 0 on hub 1
[ 5.682946] amdgpu 0000:04:00.0: amdgpu: ring vcn_dec uses VM inv eng 1 on hub 1
[ 5.682948] amdgpu 0000:04:00.0: amdgpu: ring vcn_enc0 uses VM inv eng 4 on hub 1
[ 5.682950] amdgpu 0000:04:00.0: amdgpu: ring vcn_enc1 uses VM inv eng 5 on hub 1
[ 5.682952] amdgpu 0000:04:00.0: amdgpu: ring jpeg_dec uses VM inv eng 6 on hub 1
[ 5.705375] [drm] Initialized amdgpu 3.40.0 20150101 for 0000:04:00.0 on minor 0
[ 5.731850] audit: type=1130 audit(1628004050.512:56): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='unit=systemd-backlight@backlight:amdgpu_bl0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'

тут присутствует запись:
5.337730] [drm:dc_link_detect_helper [amdgpu]] *ERROR* No EDID read.

соответственно драйвер не знает какие параметры у матрицы ноута, и видит матрицу только с разрешением 640*480, при этом если в настройках XFCE включить матрицу, то светится подсветка но нет самого изображения. Варианта три - либо неправильно задаётся это разрешение или сама матрица неправильно обрабатывает изображение или сбоит GPU и причина в нём. Если к примеру загрузить с флешки чистый линукс без настроек, то внешний монитор будет с разрешением 640*480, матрица ноута светится и видимо она тоже должна была бы вывести изображение в таком разрешении но изображения нет, только подсветка. При этом для eDP (матрицы ноута) в настройках можно выбрать только 640*480, а вот для внешнего монитора (HDMI-A-0) можно выбрать все возможные разрешения которые есть у монитора. Поскольку увидел запись в логах *ERROR* No EDID read. сделал вывод что драйвер не может вычитать из матрицы параметры потому и не может её включить.

vasek
И посмотри какие имеются edid
[lenovo a1]# ls -1 /sys/class/drm/*/edid
/sys/class/drm/card0-DP-1/edid
/sys/class/drm/card0-DP-2/edid
/sys/class/drm/card0-eDP-1/edid
/sys/class/drm/card0-HDMI-A-1/edid
лог dmesg из предыдущего сообщения - это при настройке ядра video=eDP-1:d

убрал из настроек ядра отключение матрицы eDP и вот как выглядит лог теперь:

[lenovo a1]# dmesg | grep amdgpu
[ 4.000911] [drm] amdgpu kernel modesetting enabled.
[ 4.001029] amdgpu: Topology: Add APU node [0x0:0x0]
[ 4.001077] fb0: switching to amdgpudrmfb from VESA VGA
[ 4.001190] amdgpu 0000:04:00.0: vgaarb: deactivate vga console
[ 4.001307] amdgpu 0000:04:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[ 4.036446] amdgpu 0000:04:00.0: amdgpu: Fetched VBIOS from ROM BAR
[ 4.036448] amdgpu: ATOM BIOS: 113-RAVEN-107
[ 4.036865] amdgpu 0000:04:00.0: amdgpu: VRAM: 1024M 0x000000F400000000 - 0x000000F43FFFFFFF (1024M used)
[ 4.036866] amdgpu 0000:04:00.0: amdgpu: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
[ 4.036868] amdgpu 0000:04:00.0: amdgpu: AGP: 267419648M 0x000000F800000000 - 0x0000FFFFFFFFFFFF
[ 4.037083] [drm] amdgpu: 1024M of VRAM memory ready
[ 4.037089] [drm] amdgpu: 3072M of GTT memory ready.
[ 4.045869] amdgpu: hwmgr_sw_init smu backed is smu10_smu
[ 4.302485] amdgpu 0000:04:00.0: amdgpu: RAS: optional ras ta ucode is not available
[ 4.336047] amdgpu 0000:04:00.0: amdgpu: RAP: optional rap ta ucode is not available
[ 4.342950] snd_hda_intel 0000:04:00.1: bound 0000:04:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[ 4.951045] [drm:retrieve_link_cap [amdgpu]] *ERROR* retrieve_link_cap: Read dpcd data failed.
[ 5.394796] [drm:dc_link_detect_helper [amdgpu]] *ERROR* No EDID read.
[ 5.559139] amdgpu: Topology: Add APU node [0x15dd:0x1002]
[ 5.559144] amdgpu 0000:04:00.0: amdgpu: SE 1, SH per SE 1, CU per SH 11, active_cu_number 8
[ 5.560367] fbcon: amdgpudrmfb (fb0) is primary device
[ 25.672507] [drm:atom_op_jump [amdgpu]] *ERROR* atombios stuck in loop for more than 20secs aborting
[ 25.672573] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C848 (len 907, WS 0, PS 0) @ 0xC9A9
[ 25.672637] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C702 (len 326, WS 0, PS 0) @ 0xC78D
[ 25.672720] [drm:dcn10_link_encoder_enable_dp_output [amdgpu]] *ERROR* dcn10_link_encoder_enable_dp_output: Failed to execute VBIOS command table!
[ 46.319178] [drm:atom_op_jump [amdgpu]] *ERROR* atombios stuck in loop for more than 20secs aborting
[ 46.319243] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C848 (len 907, WS 0, PS 0) @ 0xC99C
[ 46.319307] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C702 (len 326, WS 0, PS 0) @ 0xC78D
[ 46.319391] [drm:dcn10_link_encoder_enable_dp_output [amdgpu]] *ERROR* dcn10_link_encoder_enable_dp_output: Failed to execute VBIOS command table!
[ 66.985833] [drm:atom_op_jump [amdgpu]] *ERROR* atombios stuck in loop for more than 20secs aborting
[ 66.985898] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C848 (len 907, WS 0, PS 0) @ 0xC99C
[ 66.985962] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C702 (len 326, WS 0, PS 0) @ 0xC78D
[ 66.986046] [drm:dcn10_link_encoder_enable_dp_output [amdgpu]] *ERROR* dcn10_link_encoder_enable_dp_output: Failed to execute VBIOS command table!
[ 87.652505] [drm:atom_op_jump [amdgpu]] *ERROR* atombios stuck in loop for more than 20secs aborting
[ 87.652570] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C848 (len 907, WS 0, PS 0) @ 0xC99C
[ 87.652634] [drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing C702 (len 326, WS 0, PS 0) @ 0xC78D
[ 87.652717] [drm:dcn10_link_encoder_enable_dp_output [amdgpu]] *ERROR* dcn10_link_encoder_enable_dp_output: Failed to execute VBIOS command table!
[ 87.775360] amdgpu 0000:04:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[ 87.789292] amdgpu 0000:04:00.0: amdgpu: ring gfx uses VM inv eng 0 on hub 0
[ 87.789296] amdgpu 0000:04:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[ 87.789299] amdgpu 0000:04:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[ 87.789301] amdgpu 0000:04:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
[ 87.789303] amdgpu 0000:04:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
[ 87.789305] amdgpu 0000:04:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
[ 87.789307] amdgpu 0000:04:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
[ 87.789309] amdgpu 0000:04:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
[ 87.789311] amdgpu 0000:04:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
[ 87.789313] amdgpu 0000:04:00.0: amdgpu: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
[ 87.789316] amdgpu 0000:04:00.0: amdgpu: ring sdma0 uses VM inv eng 0 on hub 1
[ 87.789318] amdgpu 0000:04:00.0: amdgpu: ring vcn_dec uses VM inv eng 1 on hub 1
[ 87.789320] amdgpu 0000:04:00.0: amdgpu: ring vcn_enc0 uses VM inv eng 4 on hub 1
[ 87.789322] amdgpu 0000:04:00.0: amdgpu: ring vcn_enc1 uses VM inv eng 5 on hub 1
[ 87.789324] amdgpu 0000:04:00.0: amdgpu: ring jpeg_dec uses VM inv eng 6 on hub 1
[ 87.804520] [drm] Initialized amdgpu 3.40.0 20150101 for 0000:04:00.0 on minor 0
[ 87.834367] audit: type=1130 audit(1628005616.599:59): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='unit=systemd-backlight@backlight:amdgpu_bl0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
 
Зарегистрироваться или войдите чтобы оставить сообщение.