LINUX.ORG.RU

iGPU amd + dGPU nvidia; wifi MT7922 не пашет; audio 17h/19h no speaker

 


0

2

Взял я тут значицца вот это чудо. Никаких исследований-гуглений на тему совместимости с линуксом не проводил (гыгы), т.к. (1) по цене/фичастости/наличию-в-магазине других вариантов не было; (2) написано ж «без ОС» – значит должен и линукс встать (гыгы2).

Не подскажет ли кто чего по следующим проблемам? (artix, для простоты считаем что арч, ядро 6.1.32)

  1. Иксы на встройке amdgpu завёл: одного xf86-video-amdgpu не хватило, при старте иксов оно срало в dmesg [drm:dm_plane_helper_prepare_fb [amdgpu]] *ERROR* Failed to pin framebuffer with error -12 и давало чёрный экран; поставил рядышком amdgpu-pro – поехало (хотя ошибку в dmesg всё равно срёт).

1.1. При переходе в tty (Ctrl+Alt+F1) – чёрный экран, пока вслепую не залогинишься и не остановишь иксы. :/

[SOLVED] 1.2. С какой стороны подойти к включению nvidia – хз. Помню для intel+nvidia (optimus) был bumblebee, и он у меня даже работал, а для amd+nvidia есть какие-нибудь толковые инструкции?

В биосе есть флажок «при загрузке всегда врубать dGPU / оставлять основным iGPU и пусть ОС разбирается через панель управления nvidia», так вот при выборе «всегда dGPU» загрузка линукса тупо виснет. Лечится через acpi=off: при включённом ACPI ядро срёт в dmesg огромным количеством ошибок-багов ACPI, но загружается при выключенном dGPU или выключенном acpi. Но при acpi=off драйвер nvidia ругается – ему надо acpi. И ЕМНИП в режиме dGPU поди теперь вспомни каким образом, у меня максимум что получалось – курсор на чёрном экране (при этом в слепую можно было открывать консоль, и курсор менял форму в области невидимого окна консоли).

  1. «Network controller: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter» – в dmesg драйвер матерится (по-разному при включении и перезагрузке, но последняя строчка одинаковая: «hardware init failed»), и вот тут в списке железа моего 713PI нет. Видимо без шансов, пока в ядре чего поновее не появится?

  2. «Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller» – уши работают, спикер нет (только в линуксе; когда биос показывает лого – спикер проигрывает музыку). Alsamixer показывает автоматическое переключение уровней громкости при втыкании/вытыкании ушей, и никаких других ошибок/криминала тоже не нашёл. Вообще хз куда смотреть, бред какой-то. В качестве временного решения купил крошечные колонки.



Последнее исправление: shell-script (всего исправлений: 7)

1.2 solved:

# pacman -S nvidia-prime
$ prime-run wine game.exe

Для истории: это не сработало, т.к. в xrandr --listproviders у моей nvidia (или скорее у нынешней версии блоба) отсутствует «Source Offload» cap.

pr849
() автор топика
Последнее исправление: pr849 (всего исправлений: 2)
Ответ на: комментарий от master_0K

При включении ругается так:

[   36.843232] mt7921e 0000:04:00.0: ASIC revision: 79220010
[   40.016925] mt7921e 0000:04:00.0: Message 00000010 (seq 1) timeout
[   40.016929] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   43.216897] mt7921e 0000:04:00.0: Message 00000010 (seq 2) timeout
[   43.216907] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   46.416833] mt7921e 0000:04:00.0: Message 00000010 (seq 3) timeout
[   46.416843] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   49.617095] mt7921e 0000:04:00.0: Message 00000010 (seq 4) timeout
[   49.617101] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   52.817057] mt7921e 0000:04:00.0: Message 00000010 (seq 5) timeout
[   52.817067] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   56.016796] mt7921e 0000:04:00.0: Message 00000010 (seq 6) timeout
[   56.016806] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   59.216925] mt7921e 0000:04:00.0: Message 00000010 (seq 7) timeout
[   59.216931] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   62.416554] mt7921e 0000:04:00.0: Message 00000010 (seq 8) timeout
[   62.416565] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   65.616714] mt7921e 0000:04:00.0: Message 00000010 (seq 9) timeout
[   65.616721] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   68.816448] mt7921e 0000:04:00.0: Message 00000010 (seq 10) timeout
[   68.816458] mt7921e 0000:04:00.0: Failed to get patch semaphore
[   68.894862] mt7921e 0000:04:00.0: hardware init failed

После reboot ругается так:

[   42.857005] mt7921e 0000:04:00.0: driver own failed
[   42.857088] mt7921e: probe of 0000:04:00.0 failed with error -5

(наврал-таки, после reboot другая ошибка, не «hardware init failed»)

pr849
() автор топика
Ответ на: комментарий от master_0K

По твоей ссылке «mt76 driver handles:», а у меня грузится mt7921e (и по моей ссылке на linux-hardware в ТС тоже он). Что довольно странно. Может погуглить, как на арче драйвер выбирать (или хотя бы блэклистить)…

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

Это несколько другой чип и драйвер. Но проблема известная. Некоторые пользователи даже сообщают об успешных фиксах. Посмотри это сообщение – суть понятна (описание не слишком хорошое).

P.S. Изначально я отталкивался от упоминавшегося в стартовом сообщении MT7922

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

Про даунгрейды тоже нагугливал, может даже этот же камент, но ставить систему в непонятную раскоряку не хочу. Отвинтишь пупок – отвалится жопа. Тем более что откатывать придётся вообще на древность. Я бы скорее попробовал вместо linux-lts 6.1 всандалить linux 6.3, но чёт тоже влом. Надёжнее будет какой-нибудь usb wifi dongle взять, сижу вот созреваю, на интеловских чипсетах жаль не вижу ничего.

pr849
() автор топика
Ответ на: комментарий от master_0K

А, сорри, я подумал на другой, который у меня вверху экрана оказался. Надо попробовать.

Хотя я не понял, что именно это udev-правило делает? Подменяет ID устройства, чтобы драйвер думал, что работает с другой моделью? (Удосужился-таки посмотреть, у меня 14c3:0616 – как по моей ссылке.) И зачем conf-файл, если такой alias уже есть?

И у меня этих алиасов аж 4 штуки, на каждое надо по udev-правилу? UPD: А, или только на первую строчку где 0616.

# modinfo mt7921e | grep alias
alias:          pci:v000014C3d00000616sv*sd*bc*sc*i*
alias:          pci:v000014C3d00000608sv*sd*bc*sc*i*
alias:          pci:v000014C3d00007922sv*sd*bc*sc*i*
alias:          pci:v000014C3d00007961sv*sd*bc*sc*i*
pr849
() автор топика
Последнее исправление: pr849 (всего исправлений: 3)
Ответ на: комментарий от master_0K

Да, похоже на то: у него в grep alias другой код. Да и устройство-то у меня он обнаруживает, только вот проинциализировать не могёт.

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

Короче, свежая фирмварь ничего не изменила, хотя коммитов-багфиксов в этот драйвер было несколько. Зря пердолился, её буквально через 2 дня тэгнули и этот тэг 20230625, в отличие от пары предыдущих, попал в репы – попутно поломав мне amdgpu, теперь из-за него ноут виснет при пробуждении (узнал, нарисовав скрипт, который дампает dmesg в файл каждые 0.1 секунды). Откачу, пожалуй.

С железом пердолиться тем более не буду, хоть и разбирается этот asus прям на радость легко (модель на видео чуть другая, разбирается так же).

В общем, купил донгл, сходил за драйвером на AUR, работает. Так и живём. :/ Ну хоть iwd его видит, одна радость, не надо с суппликантом пердолиться и networkmanager осваивать.

pr849
() автор топика
Последнее исправление: pr849 (всего исправлений: 3)
Ответ на: комментарий от bo4ok

Намёк понятен: в той же генту по ощущениям патчат охотнее, чем на арче, не говоря уже про артикс. Но нет, дистр менять пока не хочу: худо-бедно в раскоряку, но уже можно сказать обустроился, а гарантий решения хоть каких-то проблем при переходе на другой дистр – ровно ноль.

pr849
() автор топика
Последнее исправление: pr849 (всего исправлений: 1)
19 августа 2023 г.
Ответ на: комментарий от pr849

Осталась только проблема со встроенными колонками.

У Асусов 2023 года есть проблемы с динамиками (точнее с кривыми DSDT) - https://asus-linux.org/wiki/cirrus-amps/

Свой ноут вылечил так - Laptop win + linux (без бюджета) (комментарий)

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

Ох ё… Буквы похоже те что нужно:

# dmesg | grep _DSD
[   36.879090] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Error: ACPI _DSD Properties are missing for HID CSC3551.
[   36.879154] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Error: ACPI _DSD Properties are missing for HID CSC3551.

но такое не осилю. Разве что если вдруг приспичит на генту вернуться… Спасибо в любом случае, проблема теперь понятна. Может в каком-нить будущем биосе починят.

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

Осталась только проблема со встроенными колонками.

По по моей ссылке выше не отмечено особых проблем со звуком для данного девайса. Но там речь о классическом арче:

Воспроизведение работает почти безупречно "из коробки", единственной проблемой является случайный (нечастый) треск, но эта проблема возникает и в Windows, так что это не специфичная проблема для Linux или ALSA. Устройство было протестировано с помощью PipeWire.

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

Понятно. Но сейчас у меня всё хорошо: nvidia в норме disabled, nvidia prime-run её включает.

$ cat /usr/local/bin/nvidia-check-power.sh 
#!/bin/bash
cat /sys/bus/pci/devices/0000\:01\:00.0/power/control
cat /sys/bus/pci/devices/0000\:01\:00.0/power/runtime_status
cat /sys/bus/pci/devices/0000\:01\:00.0/power_state

$ nvidia-check-power.sh 
auto
suspended
D3cold

Непонятно правда, нахрена они наворотили кучу environment vars вместо одного стандартного DRI_PRIME=1, ну да и хрен с ними, хозяин барин:

$ cat /bin/prime-run 
#!/bin/bash
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia "$@"
pr849
() автор топика
Последнее исправление: pr849 (всего исправлений: 5)