LINUX.ORG.RU

Fedora Workstation 36 — 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC

 


0

1

Всем привет! Есть вот такой USB-свисток Ugreen:

Bus 001 Device 004: ID 0a5c:5800 Broadcom Corp. BCM5880 Secure Applications Processor
Bus 001 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 006: ID 046d:c077 Logitech, Inc. Mouse
Bus 002 Device 002: ID 0c45:64d2 Microdia Integrated Webcam
**Bus 002 Device 005: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC**
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[dragonserw@fedora ~]$ 

Нашел вот такой тред про него с солюшном: https://forums.linuxmint.com/viewtopic.php?p=1842125#p1842125.

Что делаю:

sudo dnf groupinstall "Development Tools" "Development Libraries"
mkdir -p ~/build
cd ~/build
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
chmod +x dkms-install.sh
sudo ./dkms-install.sh
sudo modprobe 8821cu # вот это пока не сделал -- не перезагружался
[dragonserw@fedora ~]$ sudo ./dkms-install.sh
About to run dkms install steps...
Error! DKMS tree already contains: rtl8821CU-5.4.1
You cannot add the same module/version combo more than once.
Sign command: /lib/modules/5.19.9-200.fc36.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...

Building module:
Cleaning build area...
'make' KVER=5.19.9-200.fc36.x86_64.....................(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.19.9-200.fc36.x86_64 (x86_64)
Consult /var/lib/dkms/rtl8821CU/5.4.1/build/make.log for more information.
Sign command: /lib/modules/5.19.9-200.fc36.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...

Building module:
Cleaning build area...
'make' KVER=5.19.9-200.fc36.x86_64.....................(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.19.9-200.fc36.x86_64 (x86_64)
Consult /var/lib/dkms/rtl8821CU/5.4.1/build/make.log for more information.
Finished running dkms install steps.
[dragonserw@fedora rtl8821CU]$ 

Перезагрузился, решил ввести следующую команду, но она не срабатывает:

[dragonserw@fedora ~]$ sudo modprobe 8821cu
[sudo] пароль для dragonserw: 
modprobe: FATAL: Module 8821cu not found in directory /lib/modules/5.19.9-200.fc36.x86_64
[dragonserw@fedora ~]$ 

SerW
() автор топика

Суть токова: реальтэк бросил нам через забор код драйвера (несколько лет тому назад, когда выпускали чип) в дальнейшем не предоставляя никакую поддержку. Отдельные добрые люди периодически фиксят его для работы с новыми версиями ядра, но усилия несколько распылены, так что надо искать, у кого имеются правки под (в вашем случае) ядро 5.19.

Исправлением для работы драйвера с ядром 5.19 занялся один китаец и второй китаец.

Удалите ту версию драйвера, которая у вас есть: sudo dkms remove rtl8821CU/5.4.1 --all, скачайте одну из вышеуказанных и сообщите об результатах.

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

У рекомендованного вами первого китайца версия ядра выше, хотя и не моя. Я добавил его репозиторий, и выполнил команду. Вот итог: https://pastebin.com/LWJEswd5. Это успех или нет?..

UPD: Наверное, все-таки еще это не успех, так как выполняю заключительную команду, и выскакивает ошибка:

[dragonserw@fedora rtl8821CU]$ sudo modprobe 8821cu 
[sudo] пароль для dragonserw: 
modprobe: ERROR: could not insert '8821cu': Key was rejected by service
[dragonserw@fedora rtl8821CU]$ 
SerW
() автор топика
Последнее исправление: SerW (всего исправлений: 1)
Ответ на: комментарий от SerW

Это сначит, что драйвер успешно собрался, а дальше уже заморочки Secure Boot. Нужно выяснить, почему не создаются ключи и сертификат под /var/lib/dkms/mok.* (или создать их вручную), затем добавить в UEFI в качестве доверяемого сертификата, и попробовать ещё раз.

Вольно вдохновляясь руководством ещё одного китайца:

$ sudo su -
# openssl req -new -x509 \
    -newkey rsa:2048 -keyout /var/lib/dkms/mok.key \
    -outform DER -out /var/lib/dkms/mok.der \
    -nodes -days 3650 -subj "/CN=DKMS MOK"
# mokutil --import /var/lib/dkms/mok.der

Вас попросят придумать пароль и 

Перезагрузитесь. При загрузке покажется MOK Manager. Перейдите к нему нажав на любую клавишу. Затем:

  * "Enroll MOK"
  * "Continue".
  * "Yes".
  * Впишите тот пароль, который вы только что установили.
  * Выберите "OK" - компьютер ещё раз перезагрузится.

Затем снова dkms-install итд.

Ну или можно отключить Secure Boot в настройках UEFI.

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

После этих манипаляций нельзя обновлять ядро? Если да, то как заморозить обновления ядра?

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

Можно обновлять ядро, DKMS для того и создан, чтоб при обновлении посторонний модуль собирался для нового ядра.

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

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

Иное дело, что нет разумных причин прикорчёвывать вайфай к настольному ПК, ни вообще использовать для вайфая юсб-свистки, а везде, где вайфай реально нужен - он и так встроен.

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

А модуль подписался разве ключом?

Мне думается ему нужно заново собрать модуль раз он только что сгенерировал сертификаты для MOK.

Ну либо руками подписать уже собранный модуль.

261dfe0a I------     1 perm 1f010000     0     0 asymmetri DKMS MOK: 25a0ef8825648f740d61644d8667ac521eb5f9b2: X509.rsa 1eb5f9b2 []

Это если его добавленный сертификат.

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

а реалтек не изначально-днищенский?))) лол…

реалтек - редкий геморрой, который нормально не работает. с кривыми вендор-дровами, которые зачастую тоже работают через пень-колоду, через свое велосипедное кривое апи

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

Тебе нужно было всего навсего пересобрать модуль.

Если в DKMS уже есть функционал подписания ключами модуля.

То модуль подписался бы.

Если его там нет - подписать уже существующий модуль в директории модулей ядра твоим ключом.

Я когда-то подписывал модуль, но сейчас команды не найду.

Вот здесь есть пример как подписывать модули virtualbox:

https://gist.github.com/reillysiemens/ac6bea1e6c7684d62f544bd79b2182a4

Подпиши модуль, если ещё не удалил его.

Вот этот модуль: 8821cu

Ну либо отключить secure boot на твоём ПК.

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

Придётся разобраться.

Тебе уже дали ссылки на исходные коды драйвера, который собирается.

Разберись почему у тебя сейчас не собирается модуль и собери его.

Сертификаты у тебя есть.

А ведь я модуль удалил.

Ты в этом уверен, в директории с модулями ядра разве нет нужного модуля? Ты проверял?

Версию ядра можно определить в выводе команды uname -a

Директория с модулями находится в /lib/modules/версия_ядра

Ищи там файл с именем модуля.

Если его нет - собери.

Если он есть и тебе лень разбираться почему он не подписывается и как его подписать - отключи secure boot

Тебе уже не однократно написали, что ты можешь отключить secure boot.

Почему ты этого не сделал?

Учись разбираться самостоятельно.

Тебе я вижу лень это делать.

Мне тоже лень писать что-то большее тебе.

Учись.

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

Ну либо отключить secure boot

Кажется, в последних версиях Федоры неподписанные модули нельзя загружать даже при отключенном SecureBoot.

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

Тут не подскажу, я использую Debian.

На нём, когда мне нужно было собрать драйвер для wifi от realtek я подписывал модуль. Хотя мог и отключить Secure Boot.

Ставить Fedora и проверять - желания у меня нет.

Но честно, сомневаюсь, что в случае отключения Secure Boot модуль не загрузится, даже если он не подписан.

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

сомневаюсь, что в случае отключения Secure Boot модуль не загрузится, даже если он не подписан.

man CONFIG_MODULE_SIG_FORCE

Но да, в Fedora он выключен. Перепутал с какой-то другой сборкой.

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

Ну что могу сказать - всё норм. Этот товарищ тоже пользуется доверием.

Ощущение только, что он лишь собрал в одном месте и подробно описал (что тоже ведь нужно и важно), а сами правки в драйверах принадлежат тем же рандомным китайцам. Но это так, на правах чутья.

token_polyak ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.