[yani@maud rtl8723du]$ sudo dkms install rtl8723du/0.1
[sudo] password for yani:
Sign command: /lib/modules/5.14.0-427.28.1.el9_4.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Building module:
Cleaning build area…(bad exit status: 2)
Failed command:
make -C /lib/modules/5.14.0-427.28.1.el9_4.x86_64/build M=/var/lib/dkms/rtl8723du/0.1/build clean
Building module(s)…(bad exit status: 2)
Failed command:
make -j64 KERNELRELEASE=5.14.0-427.28.1.el9_4.x86_64 -C /lib/modules/5.14.0-427.28.1.el9_4.x86_64/build M=/var/lib/dkms/rtl8723du/0.1/build
Error! Bad return status for module build on kernel: 5.14.0-427.28.1.el9_4.x86_64 (x86_64)
Consult /var/lib/dkms/rtl8723du/0.1/build/make.log for more information.
Using these instructions with apt > dnf
I’m assuming this is Linux 9 compatibility issue.
This is the device I’m trying to install…
Bus 001 Device 002: ID 0bda:d723 Realtek Semiconductor Corp. 802.11n WLAN Adapter
DKMS make.log for rtl8723du-0.1 for kernel 5.14.0-427.28.1.el9_4.x86_64 (x86_64)
Wed 14 Aug 2024 03:37:06 AEST
make: Entering directory ‘/usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64’
echo “WARNING: This driver is obsolete. Use GitHub - lwfinger/rtw88: A backport of the Realtek Wifi 5 drivers from the wireless-next repo. instead”
/var/lib/dkms/rtl8723du/0.1/build/Makefile:68: /usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64/hal/phydm/phydm.mk: No such file or d>
make[1]: *** No rule to make target ‘/usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64/hal/phydm/phydm.mk’. Stop.
make: *** [Makefile:1936: /var/lib/dkms/rtl8723du/0.1/build] Error 2
make: Leaving directory ‘/usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64’
Yes it does… I run into issues with not knowing all differences between this and that Linux. I think the default install directory is wrong for RHEL.
A further issue is I have instruction that pull needed detail lspci but lsusb doesn’t probe deep enough to give the chipset.
This might be the best run down of the issues…
I’ve got as far as this…
[yani@maud rtl8192cu]$ ls
core dkms.conf hal include Makefile os_dep README.md
[yani@maud rtl8192cu]$ sudo make
[sudo] password for yani:
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.14.0-427.28.1.el9_4.x86_64/build M=/home/yani/wifi/rtl8192cu modules
make[1]: Entering directory ‘/usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64’
CC [M] /home/yani/wifi/rtl8192cu/core/rtw_cmd.o
In file included from /home/yani/wifi/rtl8192cu/core/rtw_cmd.c:23:
/home/yani/wifi/rtl8192cu/core/rtw_cmd.c: In function ‘rtw_cmd_thread’:
/home/yani/wifi/rtl8192cu/include/osdep_service.h:857:31: error: implicit declaration of function ‘complete_and_exit’ [-Werror=implicit-function-declaration]
857 | #define thread_exit() complete_and_exit(NULL, 0)
| ^~~~~~~~~~~~~~~~~
/home/yani/wifi/rtl8192cu/core/rtw_cmd.c:570:9: note: in expansion of macro ‘thread_exit’
570 | thread_exit();
| ^~~~~~~~~~~
/home/yani/wifi/rtl8192cu/core/rtw_cmd.c:572:1: error: control reaches end of non-void function [-Werror=return-type]
572 | }
| ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:299: /home/yani/wifi/rtl8192cu/core/rtw_cmd.o] Error 1
make[1]: *** [Makefile:1936: /home/yani/wifi/rtl8192cu] Error 2
make[1]: Leaving directory ‘/usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64’
make: *** [Makefile:569: modules] Error 2
You try to build the module rtl8722du and the message says you should use the module rtw88 instead. It also offers support for the rtl8722du.
Follow the manual for Fedora and Basic Install for all Distros. If you can build it, than you can configure DKMS to rebuild it automatically every time a new kernel drops.
Can you run ‘lsusb’ and find the deviceIDs in the form of [xxxx:yyyy] ? Then you can see if that devide is supported by ELRepo’s kmod-rtw88_usb package. Look in:
The driver I was using was I think correct but I found another here…
make -C /lib/modules/5.14.0-427.28.1.el9_4.x86_64/build M=/home/yani/wifi/rtw88-usb
make[1]: Entering directory '/usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64'
CC [M] /home/yani/wifi/rtw88-usb/main.o
/home/yani/wifi/rtw88-usb/main.c: In function ‘rtw_vif_watch_dog_iter’:
/home/yani/wifi/rtw88-usb/main.c:166:34: error: ‘struct ieee80211_bss_conf’ has no member named ‘assoc’
166 | if (vif->bss_conf.assoc)
| ^
/home/yani/wifi/rtw88-usb/main.c: In function ‘rtw_vif_assoc_changed’:
/home/yani/wifi/rtw88-usb/main.c:507:25: error: ‘struct ieee80211_bss_conf’ has no member named ‘assoc’
507 | if (conf && conf->assoc) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:508:35: error: ‘struct ieee80211_bss_conf’ has no member named ‘aid’
508 | rtwvif->aid = conf->aid;
| ^~
In file included from ./include/linux/byteorder/little_endian.h:5,
from ./arch/x86/include/uapi/asm/byteorder.h:5,
from ./include/asm-generic/qrwlock_types.h:6,
from ./arch/x86/include/asm/spinlock_types.h:7,
from ./include/linux/spinlock_types_raw.h:7,
from ./include/linux/ratelimit_types.h:7,
from ./include/linux/ratelimit.h:5,
from ./include/linux/dev_printk.h:16,
from ./include/linux/device.h:15,
from ./include/linux/devcoredump.h:8,
from /home/yani/wifi/rtw88-usb/main.c:5:
/home/yani/wifi/rtw88-usb/main.c: In function ‘get_vht_ra_mask’:
/home/yani/wifi/rtw88-usb/main.c:852:38: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
852 | u16 mcs_map = le16_to_cpu(sta->vht_cap.vht_mcs.rx_mcs_map);
| ^~
./include/uapi/linux/byteorder/little_endian.h:37:51: note: in definition of macro ‘__le16_to_cpu’
37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
| ^
/home/yani/wifi/rtw88-usb/main.c:852:23: note: in expansion of macro ‘le16_to_cpu’
852 | u16 mcs_map = le16_to_cpu(sta->vht_cap.vht_mcs.rx_mcs_map);
| ^~~~~~~~~~~
/home/yani/wifi/rtw88-usb/main.c: In function ‘rtw_update_sta_info’:
/home/yani/wifi/rtw88-usb/main.c:1055:16: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1055 | if (sta->vht_cap.vht_supported) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1058:24: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1058 | if (sta->vht_cap.cap & IEEE80211_VHT_CAP_RXSTBC_MASK)
| ^~
/home/yani/wifi/rtw88-usb/main.c:1060:24: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1060 | if (sta->vht_cap.cap & IEEE80211_VHT_CAP_RXLDPC)
| ^~
/home/yani/wifi/rtw88-usb/main.c:1062:23: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1062 | } else if (sta->ht_cap.ht_supported) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1063:32: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1063 | ra_mask |= (sta->ht_cap.mcs.rx_mask[1] << 20) |
| ^~
/home/yani/wifi/rtw88-usb/main.c:1064:32: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1064 | (sta->ht_cap.mcs.rx_mask[0] << 12);
| ^~
/home/yani/wifi/rtw88-usb/main.c:1065:24: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1065 | if (sta->ht_cap.cap & IEEE80211_HT_CAP_RX_STBC)
| ^~
/home/yani/wifi/rtw88-usb/main.c:1067:24: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1067 | if (sta->ht_cap.cap & IEEE80211_HT_CAP_LDPC_CODING)
| ^~
/home/yani/wifi/rtw88-usb/main.c:1075:36: error: ‘struct ieee80211_sta’ has no member named ‘supp_rates’
1075 | ra_mask |= (u64)sta->supp_rates[NL80211_BAND_5GHZ] << 4;
| ^~
/home/yani/wifi/rtw88-usb/main.c:1076:24: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1076 | if (sta->vht_cap.vht_supported) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1079:31: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1079 | } else if (sta->ht_cap.ht_supported) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1087:31: error: ‘struct ieee80211_sta’ has no member named ‘supp_rates’
1087 | ra_mask |= sta->supp_rates[NL80211_BAND_2GHZ];
| ^~
/home/yani/wifi/rtw88-usb/main.c:1088:24: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1088 | if (sta->vht_cap.vht_supported) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1093:31: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1093 | } else if (sta->ht_cap.ht_supported) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1098:31: error: ‘struct ieee80211_sta’ has no member named ‘supp_rates’
1098 | } else if (sta->supp_rates[0] <= 0xf) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1109:20: error: ‘struct ieee80211_sta’ has no member named ‘bandwidth’
1109 | switch (sta->bandwidth) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1112:37: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1112 | is_support_sgi = sta->vht_cap.vht_supported &&
| ^~
/home/yani/wifi/rtw88-usb/main.c:1113:38: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1113 | (sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80);
| ^~
/home/yani/wifi/rtw88-usb/main.c:1117:37: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1117 | is_support_sgi = sta->ht_cap.ht_supported &&
| ^~
/home/yani/wifi/rtw88-usb/main.c:1118:38: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1118 | (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40);
| ^~
/home/yani/wifi/rtw88-usb/main.c:1122:37: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1122 | is_support_sgi = sta->ht_cap.ht_supported &&
| ^~
/home/yani/wifi/rtw88-usb/main.c:1123:38: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1123 | (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20);
| ^~
/home/yani/wifi/rtw88-usb/main.c:1127:16: error: ‘struct ieee80211_sta’ has no member named ‘vht_cap’
1127 | if (sta->vht_cap.vht_supported && ra_mask & 0xffc00000) {
| ^~
/home/yani/wifi/rtw88-usb/main.c:1130:23: error: ‘struct ieee80211_sta’ has no member named ‘ht_cap’
1130 | } else if (sta->ht_cap.ht_supported && ra_mask & 0xfff00000) {
| ^~
make[2]: *** [scripts/Makefile.build:299: /home/yani/wifi/rtw88-usb/main.o] Error 1
make[1]: *** [Makefile:1936: /home/yani/wifi/rtw88-usb] Error 2
make[1]: Leaving directory '/usr/src/kernels/5.14.0-427.28.1.el9_4.x86_64'
make: *** [Makefile:114: all] Error 2
[yani@maud rtw88-usb]$ sudo make install
[sudo] password for yani:
WARNING:
==========================================
you are about to install rtw88-usb drivers
Wait 5 sec or CTRL-C
cp: cannot stat '*.ko': No such file or directory
make: *** [Makefile:147: install] Error 1
You don’t have to build the module yourself, @toracat gave you the solution.
The right driver is packaged in elrepo. Execute the following commands to install the module: