LINUX.ORG.RU

Отваливается wifi при перезагрузке

 ,


0

1

Ubuntu 22.04.1 LTS

Купил wifi-свисток. Скачал драйвер rtl8812au.git

make
sudo insmod 8812au.ko

И всё работает. За исключением того, что при перезагрузке вайфая опять нету и я опять делаю make > insmod

Как это закрепить? Советуют отключить Secure boot, но, похоже, у меня это не отключается. Не вижу я там Disabled. Может чё-то ваще не то делаю.

★★★

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

Зачем каждый раз make делать?

От недостатка знаний. Просто insmod не работает. Куда помещается этот драйвер я не знаю и копать так глубоко нет времени.

Но там есть команда для прикрепления его к dkms

Сделал $ sudo make dkms_remove. Чё-то устанавливалось, дольше обычного, но wifi вообще не запустился.

rechnick ★★★
() автор топика

Классический механизм автозагрузки модулей наверняка работает.

Видимо, для Убунту так:

https://manpages.ubuntu.com/manpages/bionic/man5/modules.5.html

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

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

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

И как это проверить?

И, я, кстати, прогнал. Не dkms_remove, а dkms_install, разумеется.

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

‘Проинсталлирован’, это когда выполнена команда make install. Обычно в инструкциях рекомендуют выполнять make && make install.

А вообще, почитай здесь https://wiki.archlinux.org/title/Kernel_module. Там и ответы, как подгрузить модуль при старте системы.

Скачал драйвер rtl8812au.git

Обычно на гитхабе есть подробный readme.

krasnh ★★★★
()
Ответ на: комментарий от VladMesh
8812au/4.2.3, 5.15.0-58-generic, x86_64: installed (WARNING! Diff between built and installed module!)
rtl8812au/4.3.8.12175.20140902+dfsg, 5.15.0-57-generic, x86_64: installed
rtl8812au/4.3.8.12175.20140902+dfsg, 5.15.0-58-generic, x86_64: installed

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

Даже интересно стало. Ну порассуждаем:

Сорцы видимо отсюда (или какой-то форк, сейчас не принципиально): https://github.com/aircrack-ng/rtl8812au

В readme есть старый, как мир, вариант «$ make && make install». Про него ранее подробно krasnh уже рассказал.

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

$ grep install Makefile
install:
	install -p -m 644 $(MODULE_NAME).ko  $(MODDESTDIR)
uninstall:
dkms_install:
	dkms install -m 8812au -v $(DRIVER_VERSION)
sign-install: all sign install
$ grep MODDESTDIR Makefile
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
#ARCH, CROSS_COMPILE, KSRC,and  MODDESTDIR are provided by external makefile
	install -p -m 644 $(MODULE_NAME).ko  $(MODDESTDIR)
	rm -f $(MODDESTDIR)/$(MODULE_NAME).ko
ifneq (,$(wildcard $(MODDESTDIR)realtek))
	@tar cPf $(MODDESTDIR)backup_rtlwifi_driver.tar $(MODDESTDIR)realtek
	@rm -fr $(MODDESTDIR)realtek
ifneq (,$(wildcard $(MODDESTDIR)rtl*))
	@tar cPf $(MODDESTDIR)../backup_rtlwifi_driver.tar $(wildcard $(MODDESTDIR)rtl*)
	@rm -fr $(wildcard $(MODDESTDIR)rtl*)
ifneq (,$(wildcard $(MODDESTDIR)backup_rtlwifi_driver.tar))
	@tar xPf $(MODDESTDIR)backup_rtlwifi_driver.tar
	@rm $(MODDESTDIR)backup_rtlwifi_driver.tar
ifneq (,$(wildcard $(MODDESTDIR)../backup_rtlwifi_driver.tar))
	@tar xPf $(MODDESTDIR)../backup_rtlwifi_driver.tar
	@rm $(MODDESTDIR)../backup_rtlwifi_driver.tar
$ uname -r
3.10.0-1160.80.1.el7.x86_64
$ ls /lib/modules/$(uname -r)/kernel/drivers/net/wireless/
ath  broadcom  intel  mac80211_hwsim.ko.xz  marvell  ralink  realtek
$ 

Это был пример, на целевой машине будет другой путь, конечно. Но важно, чтобы он был адекватный.

Поэтому первым делом надо собрать, проинсталлировать, и убедиться, что всё по целевой схеме, ещё до перезагрузок. Если взлетит, то уже с автозагрузкой будет просто.

make
sudo make install
ls -lah /lib/modules/$(uname -r)/kernel/drivers/net/wireless/
sudo modprobe --verbose 8812au

Всё не от рута (если не указано sudo), команды и имя модуля - примерные.

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

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

Видно, что через dkms установлено 2 драйвера 8812au. rtl8812au/4.3.8.12175.20140902+dfsg затирает нужный 8812au/4.2.3

Для исправления надо:

sudo dkms remove rtl8812au/4.3.8.12175.20140902+dfsg --all
sudo dkms uninstall 8812au/4.2.3 --all
sudo dkms install 8812au/4.2.3 --all

Из какого репозитория (полный URL) все-таки rtl8812au.git??? Чего здесь все гадают-то?

Судя по всему отсюда - https://github.com/gnab/rtl8812au.

В репо https://github.com/aircrack-ng/rtl8812au нет версии 4.2.3 как у клиента

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

Сорян. После удаления выводит следущее:

dkms status
8812au/4.2.3, 5.15.0-58-generic, x86_64: installed (WARNING! Diff between built and installed module!)


ll /lib/modules/$(uname -r)/updates/dkms
ls: cannot access '/lib/modules/5.15.0-58-generic/updates/dkms': No such file or directory

lsmod | grep -i 88XXau ничего не выдал.

rechnick ★★★
() автор топика