LINUX.ORG.RU

Modprobe не может загрузить модуль «modprobe: ERROR: could not insert 'rtw88_8821cu': Invalid argument»

 , ,


0

2

Опять решил попробовать починить wi-fi на ядре 6.2.0-39 (hwe).Пробую загрузить rtw88_8821cu через modprobe, пишет «modprobe: ERROR: could not insert ‘rtw88_8821cu’: Invalid argument» модуль предустановленный в ядро. Устройство то пк видит, но не может загрузить драйвер. Если скачать драйвер (например rtw88) то тоже не заработает. Вот логи:

vladislav@Kubuntu:~$ uname -r
6.2.0-39-generic
vladislav@Kubuntu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
vladislav@Kubuntu:~$ modprobe -c |grep v0BDApC811
alias usb:v0BDApC811d*dc*dsc*dp*icFFiscFFipFFin* rtw88_8821cu
vladislav@Kubuntu:~$ lsmod | grep rtw_8821cu
vladislav@Kubuntu:~$ sudo modprobe rtw88_8821cu
modprobe: ERROR: could not insert 'rtw88_8821cu': Invalid argument
vladislav@Kubuntu:~$ dmesg | tail -n 30
dmesg: чтение буфера ядра завершилось неудачно: Операция не позволена
vladislav@Kubuntu:~$ sudo dmesg | tail -n 30
[ 1250.589666]  nl80211_init+0x17/0xc50 [cfg80211]
[ 1250.589730]  __init_backport+0x7e/0x100 [cfg80211]
[ 1250.589797]  ? __pfx_init_module+0x10/0x10 [cfg80211]
[ 1250.589852]  do_one_initcall+0x49/0x240
[ 1250.589856]  ? kmalloc_trace+0x2a/0xb0
[ 1250.589860]  do_init_module+0x52/0x240
[ 1250.589864]  load_module+0xb96/0xd60
[ 1250.589869]  __do_sys_finit_module+0xcc/0x150
[ 1250.589871]  ? __do_sys_finit_module+0xcc/0x150
[ 1250.589875]  __x64_sys_finit_module+0x18/0x30
[ 1250.589878]  do_syscall_64+0x5c/0x90
[ 1250.589881]  ? exit_to_user_mode_prepare+0x3b/0xd0
[ 1250.589883]  ? syscall_exit_to_user_mode+0x38/0x60
[ 1250.589886]  ? do_syscall_64+0x69/0x90
[ 1250.589889]  ? do_user_addr_fault+0x1d0/0x640
[ 1250.589892]  ? exit_to_user_mode_prepare+0x3b/0xd0
[ 1250.589893]  ? irqentry_exit_to_user_mode+0x17/0x20
[ 1250.589896]  ? irqentry_exit+0x43/0x50
[ 1250.589898]  ? exc_page_fault+0x92/0x1b0
[ 1250.589901]  entry_SYSCALL_64_after_hwframe+0x73/0xdd
[ 1250.589903] RIP: 0033:0x7ff2c671e88d
[ 1250.589906] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 73 b5 0f 00 f7 d8 64 89 01 48
[ 1250.589907] RSP: 002b:00007fffbaa07248 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 1250.589910] RAX: ffffffffffffffda RBX: 00005644c9bc38b0 RCX: 00007ff2c671e88d
[ 1250.589911] RDX: 0000000000000000 RSI: 00005644c9715cd2 RDI: 0000000000000003
[ 1250.589913] RBP: 0000000000040000 R08: 0000000000000000 R09: 0000000000000002
[ 1250.589914] R10: 0000000000000003 R11: 0000000000000246 R12: 00005644c9715cd2
[ 1250.589915] R13: 00005644c9bc3860 R14: 00005644c9bc2550 R15: 00005644c9bccc50
[ 1250.589918]  </TASK>
[ 1250.589919] ---[ end trace 0000000000000000 ]---
vladislav@Kubuntu:~$ ^C
vladislav@Kubuntu:~$

Пробовал гуглить ничего не помогло, ос kubuntu 22.04 lts , возможно проблема дистрибутива.

Перемещено hobbit из general



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

попробовать починить

Могу поделиться своим опытом починки модуля ядра. Был модуль для некой вебки, который работал на древних ядрах 2.6.x. На современных ядрах он собирался, но работал точно так же, как и у тебя - сыпал трейсами в лог ядра. В итоге мне пришлось строчка за строчкой переписать весь модуль, чтоб он заработал без ошибок. Так что можешь начать с изучения языка си и чтения книги Linux Device Drivers.

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

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

u5er ★★★
()

Никому кроме тебя, похоже, этот драйвер уже не нужен. Даже dkms пакет в AUR-е последний раз обновлялся в 2022-м году. Следовательно, на ядрах, актуальных в 22-м году, всё должно работать. А чем тебя имеющийся в дистрибутиве драйвер не угодил?

pacman -Fx 8821
core/linux 6.15.8.arch1-1 [установлен]
    usr/lib/modules/6.15.8-arch1-1/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rtl8821ae.ko.zst
    usr/lib/modules/6.15.8-arch1-1/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821a.ko.zst
    usr/lib/modules/6.15.8-arch1-1/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821au.ko.zst
    usr/lib/modules/6.15.8-arch1-1/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko.zst
    usr/lib/modules/6.15.8-arch1-1/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821ce.ko.zst
    usr/lib/modules/6.15.8-arch1-1/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821cs.ko.zst
    usr/lib/modules/6.15.8-arch1-1/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821cu.ko.zst
    usr/lib/modules/6.15.8-arch1-1/kernel/sound/soc/codecs/snd-soc-nau8821.ko.zst
core/linux-firmware-realtek 20250708-1
    usr/lib/firmware/rtl_bt/rtl8821a_config.bin.zst
    usr/lib/firmware/rtl_bt/rtl8821a_fw.bin.zst
    usr/lib/firmware/rtl_bt/rtl8821c_config.bin.zst
    usr/lib/firmware/rtl_bt/rtl8821c_fw.bin.zst
    usr/lib/firmware/rtl_bt/rtl8821cs_config.bin.zst
    usr/lib/firmware/rtl_bt/rtl8821cs_fw.bin.zst
    usr/lib/firmware/rtlwifi/rtl8821aefw.bin.zst
    usr/lib/firmware/rtlwifi/rtl8821aefw_29.bin.zst
    usr/lib/firmware/rtlwifi/rtl8821aefw_wowlan.bin.zst
    usr/lib/firmware/rtw88/rtw8821a_fw.bin.zst
    usr/lib/firmware/rtw88/rtw8821c_fw.bin.zst
core/linux-headers 6.15.8.arch1-1 [установлен]
    usr/lib/modules/6.15.8-arch1-1/build/include/config/RTL8821AE
    usr/lib/modules/6.15.8-arch1-1/build/include/config/RTW88_8821A
    usr/lib/modules/6.15.8-arch1-1/build/include/config/RTW88_8821AU
    usr/lib/modules/6.15.8-arch1-1/build/include/config/RTW88_8821C
    usr/lib/modules/6.15.8-arch1-1/build/include/config/RTW88_8821CE
    usr/lib/modules/6.15.8-arch1-1/build/include/config/RTW88_8821CS
    usr/lib/modules/6.15.8-arch1-1/build/include/config/RTW88_8821CU
    usr/lib/modules/6.15.8-arch1-1/build/include/config/SND_SOC_NAU8821

У тебя, кажется, просто не установлен нужный пакет.

yars068 ★★★★★
()

Здравствуйте, я новенький, не знаю как правильно задать вопрос, извините, заключил Линукс. При загрузке запрашивает логин, пароль и это-ThinkPad-L460: ~S Что я должен ввести? ThinkPad -L460 _ это мой ноут.

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

Судя по этому:

ThinkPad-L460: ~S

Ты авторизовался в консоли. Система работает.

Рассказывай, что делал, какие команды вводил, какие сообщения были после их ввода, вопросы, что ты отвечал, какой дистрибутив Linux.

Создай отдельную тему по твоему вопросу и укажи в ней запрошенную информацию.

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

Так я и пытаюсь загрузить встроенный модуль в ядро 6.2.0-39. Проблема в том что я не могу загрузить модуль. А автоматически он не загружается, вроде всё нужное для ядра установил, ядро hwe, ну и ещё есть два каких-то ядра 6.8 если что-то сделает.

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

во-первых, что такое «встроенный модуль»? (по отношению к драйверам устройств в линуксе, обычно «встроенными» (built-in) называют те, которые вкомпилированы в ядро, а не лежат в виде модулей.)

во-вторых, «автоматически он не загружается» означает, что ID устройства этому модулю не известен, и попытка форсировать загрузку вручную не поможет. может быть, оно поддерживается более новой версией драйвера, может, нет - нужно пробовать более свежее ядро. или патчить текущее, но это может оказаться непросто для нуба.

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

Ну про встроенный, я иммел ввиду что я его не скачивал, а был из коробки. Да и странно что драйвер не работает на этом ядре, хотя поддержка обещается для rtl8821/11cu

cool4kqq
() автор топика
Последнее исправление: cool4kqq (всего исправлений: 1)
Ответ на: комментарий от anonymous
vladislav@Kubuntu:~$ lsusb
Bus 002 Device 003: ID 058f:6364 Alcor Micro Corp. AU6477 Card Reader Controller
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 1ea7:0066 SHARKOON Technologies GmbH [Mediatrack Edge Mini Keyboard]
Bus 001 Device 004: ID 1a2c:4c5e China Resource Semico Co., Ltd USB Keyboard
Bus 001 Device 003: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
vladislav@Kubuntu:~$ modprobe -c |grep v0BDApC811
alias usb:v0BDApC811d*dc*dsc*dp*icFFiscFFipFFin* rtw88_8821cu
vladislav@Kubuntu:~$
cool4kqq
() автор топика

Была такая проблема. Просто сторонний драйвер заносит внутренний в блеклист. В /etc/modules.conf или в его директорию. Убрал его оттуда и все взлетело

usermod
()

У тебя в dmesg ядро написало стектрейс на загрузке модуля. Но ты стектрейс обрезал своим tail -n 30. Ты стектрейс не обрезай, посмотри полный, и сюда принеси. Может что кому в голову придёт.

iliyap ★★★★★
()