买了款EDUP(深圳翼联)无线网卡在Linux系统不没有驱动适配用不起来,后来电话到翼联,翼联技术人员
给了无线驱动包并且告诉我无线网卡芯片型号RTL881BU,
00008446-RTL88x2BU_WiFi_linux_v5.2.4.1 解压后
看到型号是:
########################## WIFI IC ############################
CONFIG_MULTIDRV = n
CONFIG_RTL8188E = n
CONFIG_RTL8812A = n
CONFIG_RTL8821A = n
CONFIG_RTL8192E = n
CONFIG_RTL8723B = n
CONFIG_RTL8814A = n
CONFIG_RTL8723C = n
CONFIG_RTL8188F = n
CONFIG_RTL8822B = y
CONFIG_RTL8723D = n
CONFIG_RTL8821C = n
######################### Interface ###########################
默认选择CONFIG_RTL8822B = y 没有RTL8812BU,猜测驱动共用
选了海思平台,修改了下编译选项
ifeq (KaTeX parse error: Expected 'EOF', got '#' at position 33: …HISILICON), y) #̲EXTRA_CFLAGS +=…(SUPPORT_CONCURRENT),y)
#EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
#endif
#EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
#ARCH := arm
#ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE = arm-hisiv200-linux-
CROSS_COMPILE =
#endif
#MODULE_NAME := rtl8192eu
#ifeq ($(KSRC),)
//KSRC := …/…/…/…/…/…/kernel/linux-3.4.y
#endif
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_HISILICON
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH ?= arm64
CROSS_COMPILE ?=
KVER ?=
(
s
h
e
l
l
u
n
a
m
e
−
r
)
K
S
R
C
:
=
/
l
i
b
/
m
o
d
u
l
e
s
/
(shell uname -r) KSRC := /lib/modules/
(shelluname−r)KSRC:=/lib/modules/(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif
==>make -j8
编译fail
wireless/RTL8812BU/include/osdep_service_linux.h:282:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
ptimer->data = (unsigned long)cntx;
^~
wireless/RTL8812BU/include/osdep_service_linux.h:283:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
init_timer(ptimer);
^~~~~~~~~~
_init_timer
In file included from /home/uos/wireless/RTL8812BU/include/osdep_service.h:42,
from /home/uos/wireless/RTL8812BU/include/drv_types.h:27,
from /home/uos/wireless/RTL8812BU/core/rtw_ioctl_query.c:17:
wireless/RTL8812BU/include/osdep_service_linux.h: In function ‘_init_timer’:
wireless/RTL8812BU/include/osdep_service_linux.h:282:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
发现不好解决,去github 搜索了一下"RTL8812BU "找了个新的驱动
https://github.com/morrownr/88xbu
下载下来,解压缩,选择
###################### Platform Related #######################
CONFIG_PLATFORM_ARM_NV_NANO = n
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RPI = y
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ARM_RPI ==》选择
稍微修改
ifeq ($(CONFIG_PLATFORM_ARM_RPI), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
#ARCH := arm
ARCH := arm64
KVER :=
(
s
h
e
l
l
u
n
a
m
e
−
r
)
K
S
R
C
:
=
/
l
i
b
/
m
o
d
u
l
e
s
/
(shell uname -r) KSRC := /lib/modules/
(shelluname−r)KSRC:=/lib/modules/(KVER)/build
MODDESTDIR := /lib/modules/
(
K
V
E
R
)
/
k
e
r
n
e
l
/
d
r
i
v
e
r
s
/
n
e
t
/
w
i
r
e
l
e
s
s
/
I
N
S
T
A
L
L
P
R
E
F
I
X
:
=
S
T
A
G
I
N
G
M
O
D
D
I
R
:
=
/
l
i
b
/
m
o
d
u
l
e
s
/
(KVER)/kernel/drivers/net/wireless/ INSTALL_PREFIX := STAGINGMODDIR := /lib/modules/
(KVER)/kernel/drivers/net/wireless/INSTALLPREFIX:=STAGINGMODDIR:=/lib/modules/(KVER)/kernel/drivers/staging
endif
==》make -j8编译OK
总用量 9756
-rw-r----- 1 uos uos 4916512 8月 28 19:11 88x2bu.ko
-rw-r----- 1 uos uos 8043 8月 28 19:11 88x2bu.mod.c
-rw-r----- 1 uos uos 98296 8月 28 19:11 88x2bu.mod.o
-rw-r----- 1 uos uos 4819072 8月 28 19:11 88x2bu.o
-rwxrwxrwx 1 root root 64 7月 5 13:18 clean
drwxrwxrwx+ 4 root root 4096 8月 28 19:11 core
-rwxrwxrwx 1 root root 237 7月 5 13:18 dkms.conf
drwxrwxrwx+ 9 root root 4096 8月 28 19:10 hal
-rwxrwxrwx 1 root root 1902 7月 5 13:18 halmac.mk
-rwxrwxrwx 1 root root 51 7月 5 13:18 ifcfg-wlan0
drwxrwxrwx+ 5 root root 12288 7月 5 13:18 include
-rwxrwxrwx 1 root root 110 7月 5 13:18 Kconfig
-rwxrwxrwx 1 root root 70462 8月 28 19:10 Makefile
-rw-r----- 1 uos uos 66 8月 28 19:10 modules.order
-rw-r----- 1 uos uos 0 8月 28 19:11 Module.symvers
drwxrwxrwx+ 3 root root 4096 8月 28 19:10 os_dep
drwxrwxrwx+ 2 root root 4096 8月 28 19:11 platform
-rwxrwxrwx 1 root root 2013 7月 5 13:18 README.md
-rwxrwxrwx 1 root root 1920 7月 5 13:18 rtl8822b.mk
-rwxrwxrwx 1 root root 423 7月 5 13:18 runwpa
-rwxrwxrwx 1 root root 294 7月 5 13:18 wlan0dhcp
PC:~/wireless/RTL8812BU001/RTL8812BU-master$
sudo insmod 88x2bu.ko 无线网络可用,完美解决
ifconfig
wlxe84e0686728a: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.2.6.229 netmask 255.255.255.0 broadcast 10.2.6.255
inet6 fe80::611f:cd3e:e5c1:f8c8 prefixlen 64 scopeid 0x20
ether e8:4e:06:86:72:8a txqueuelen 1000 (Ethernet)
RX packets 1047 bytes 227591 (222.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 232 bytes 31882 (31.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0