LINUX.ORG.RU

Проблема с wifi-драйвером Realtek RTL8822BE

 , , , ,


1

0

Привет всем, нужна помощь: чистая установка Gentoo x86_64 systemd, WiFi-драйвер работает некорректно, при попытке подключиться к сети через wpa_supplicant процесс замирает, но к сети подключается, в wpa_cli ‘status’ выдаёт ‘wpa_state=COMPLETED’, но через некоторе время в dmesg появляются сообщения ‘rtw_8822be: firmware failed to leave lps state’. Гуглил, нашёл топики по этой же проблеме с драйвером rtw_8821ce. Ребята предлагали несколько решений, например, добавить опции для rtw88_core и rtw88_pci в /etc/modprobe.d/rtw88.conf (или любой другой связанный .conf-файл) ‘disable_lps_deep=y; disable_aspm=y, disable_msi=y’. Не срабатывало, пробовал записывать эти же параметры в /etc/modules-load.d/rtw88.conf. Результата также нет. Или же заблэклистить всё связанное с драйвером (включая Bluetooth), но этого не делал. Видел пост на Реддите, юзер говорил, что проблема в новой версии драйвера, предлагал сделать откат. Этого пока не пробовал.

Подскажите, пожалуйста, что можно сделать?



Последнее исправление: Promt_Acorn (всего исправлений: 4)

Ответ на: комментарий от eternal_sorrow

Доброе утро. Сделал первую попытку использовать iwd, но столкнулся с проблемой. С livecd сделал ’emerge –ask –update –deep ’@‘world’, после ‘emerge –depclean’, и емёрж почему-то посчитал, что несколько пакетов (grub dracut wpa_supplicant и ещё несколько) являются лишними и вычистил их, пришлось переустанавливать. wpa_supplicant решил обратно не ставить.

Поставил iwd с USE-флагами client monitor wired. После от рута пишу ‘systemctl start iwd && systemctl enable iwd’. Сервис включается, но стартовать отказывается; ‘systemctl status iwd.service’ и ‘journalctl -xeu iwd.service’ показывают: ‘iwd.service: Failed with result «exit-code»’; systemd перезапускет юнит; ‘iwd.service: Start request repeated too quickly’ и опять выход с ошибкой.

Дополнительно в /etc/conf.d/net в переменную modules занёс iwd вместо уже несуществующего wpa_supplicant. В Хэндбуке говорится о конфиге /etc/iwd/main.conf, но директория пустая.

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

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

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

Убедитесь, что у вас последнее ядро, этот драйвер бажный, в нём часто исправляют проблемы.

Попробуйте вот этот, это репозиторий от разработчика драйвера, в нём самые свежие изменения: https://github.com/lwfinger/rtw88

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

‘iwd: DES, AES support not found.’

и

'''iwd: The following options are missing in the kernel: CONFIG_CRYPTO_USER_API_SKCIPHER CONFIG_CRYPTO_ECB CONFIG_CRYPTO_CBC CONFIG_CRYPTO_DES CONFIG_CRYPTO_AES '''

Да, лажа откровенная. Спасибо, товарищи! Буду вшивать фирьмварю 😊

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

Видел этот репо, там как раз есть багрепорт по теме. Скажите, а как самостоятельно это дело собрать? Можете дать ключевые слова или ссыль на вики, если есть?

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

DES, AES support not found
CONFIG_CRYPTO_USER_API_SKCIPHER CONFIG_CRYPTO_ECB CONFIG_CRYPTO_CBC CONFIG_CRYPTO_DES CONFIG_CRYPTO_AES

Также нужно включить в конфиг компилируемого ядра поддержку технологий шифрования (помимо Linux firmware): USER API SKCIPHER, ECB, CBC, DES и AES, т. к. iwd сообщает об отсутствии в используемом (загруженном) ядре указанных технологий.

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

Если мне не изменяет память, вышеперечисленные технологии шифрования, необходимые для работы iwd, относятся к Crypto API и включаются в menuconfig примерно так:

[*] Cryptographic API  --->
    [*]   Hardware crypto devices  --->

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

Дополнительно в /etc/conf.d/net

Если у тебя systemd, то /etc/conf.d/ ничего не делает. Можешь смело игнорировать то что написано про этот каталог в хендбуке. Как и /etc/init.d. Я лично занёс их в INSTALL_MASK.

eternal_sorrow ★★★★★
()