每次启动后必须为 rtl8812au 运行 insmod

每次启动后必须为 rtl8812au 运行 insmod

我使用rtl8812au我的 WiFi 适配器的驱动程序。我有 dkms 设置,以便在每次内核升级后,它都会被编译。以下是我运行的设置命令:

DRV_NAME=rtl8812AU
DRV_VERSION=4.3.14
mkdir /usr/src/${DRV_NAME}-${DRV_VERSION}
git archive driver-${DRV_VERSION} | tar -x -C /usr/src/${DRV_NAME}-${DRV_VERSION}
dkms add -m ${DRV_NAME} -v ${DRV_VERSION}
dkms build -m ${DRV_NAME} -v ${DRV_VERSION}
dkms install -m ${DRV_NAME} -v ${DRV_VERSION}

现在,每次重新启动后,我的 wifi 适配器都会被禁用,为了让它再次工作,我必须返回到 rtl8812au 驱动程序的源目录(我转到原始目录,而不是 dkms 制作的目录),确保 make 已已为此内核运行,并运行insmod 8812au.ko.此时,我的适配器启动并工作,直到下次启动。

如何修复该驱动程序的 dkms?

答案1

cat /usr/src/8812au-4.3.14/dkms.conf 
PACKAGE_NAME="rtl8812AU"
PACKAGE_VERSION="#MODULE_VERSION#"
BUILT_MODULE_NAME[0]="8812au"
MAKE="'make'"
CLEAN="'make' clean"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="YES"

但我用的是git克隆。我将 /usr/src/rtl8812AU 重命名为 /usr/src/8812au-4.3.14/

sudo dkms add -m 8812au -v 4.3.14
sudo dkms install -m 8812au -v 4.3.14
sudo depmod -a
sudo update-initramfs -u -k $(uname -r)

驱动程序名称是 8812au 而不是 rtl8812AU。你需要 depmod -a 因为 modinfo 8812au | grep dep depends: cfg80211

该模块需要另一个模块作为依赖项。

答案2

这个 GitHub 页面:戈德博伊具有 Realtek 8812AU 驱动程序的三个存储库。

目前,最新的是8812au-5.9

克隆 git 存储库,cd 到其文件夹中并输入:

make
sudo make install

一切都是自动编译和安装的(谢谢戈德博伊!)

相关内容