ubuntu 网卡配置_CentOS7.6操作系统安装Realtek8822be无线网卡驱动

此前提到,Thinkpad E490安装CentOS7.6遇到内核崩溃的问题,解决之后,安装CentOS7.6操作系统成功。

安装时发现,系统能够检测到有线网卡,但无法检测到无线网卡,说明CentOS7.6对此无线网卡的支持不足,缺失对应驱动。

此前安装的Windows10,Kali2019.2等操作系统都可以使用无线网卡。使用Kali过程中,无线还算稳定,去看了下Kali的内核版本为linux kernel 4.19.37,而当前CentOS7.6的内核版本为linux kernel 3.10.957。想想如从Kali对应版本的源码中提取对应网卡驱动源码来编译应该是可以的,但CentOS内核版本较低,又怕有些API无法兼容,或许要改些源码才能支持。

查看ThinkPad E490的硬件配置,无线网卡采用的是Realtek8822be。根据相关信息到搜索引擎查了些材料,大多是讲Ubuntu系统如何解决的,对CentOS的很少。对于Ubuntu,也是提到linux kernel 4.14开始内核直接有支持Realtek8822be无线网卡驱动。至于linux kernel 3.x,在github也有一些源码可以解决,但提到好多不稳定因素(如:系统重启了,又无线连接无线;无线常有断流现象;又有说要先进入Windows系统,再重启进入CentOS,无线网卡才能找扫描到无线连接列表。。。。)。

笔者抱着试一试的心态,先是到github找到rtlwifi-next项目,看到最近更新是17年的,预料到应该是没法稳定了。更新下载源码编译安装试了下,无线是可以用,但。。。网上说的问题都有(看来还是要另寻方案)。

9a1ab75ff485f0627a77097ed19e1188.png

新的方案,首选是对标Kali的内核版本,于是上http://www.kernel.org查看最新的版本,找到linux kernel 4.19.67,下载来分析下。

ba0ec000f6200099cabfca1fa7846f90.png

分析之后,发现rtl8822be是在driversstagingrtlwifi目录下,于是复制rtlwifi目录出来,移植CentOS7.6系统中。

2caec1dee3505e2a0bc3df58d88039ff.png

在CentOS7.6系统中,进行编译之前,先对Makefile补充了一些内容(如下图所示,加到原Makefile顶部)

f3542f25f5fb851c360461fe5a566701.png

加到原Makefile底部(如下图所示)

72246fef9adc1987e30d316e4c772e80.png

编译时,需要root权限,系统要安装有当前内核版本的模块、头文件等。尝试执行make,结果发现有几个小问题,需要修改。

首先在base.h文件中增加一个定义(如下图所示)

e23a2cc8b7a54eefc79cdaaa2f7b715e.png

其次core.c文件中,ktime_get_real_seconds()函数无法识别,改成另外方案替代。

struct timeval ts;

......

do_gettimeofday(&ts);

用ts.tv_sec替代ktime_get_real_seconds()。

rtl_op_suspend()、rtl_op_resume()二个函数都要修改。。

b6abe060ae7452349324ddb26dc85af2.png

改好后,再进行make 编译,已经成功(如下图所示)。

f663dfec85220c8dc8b565f9ef3ecf14.png

4c37cb3e1309b33261a336d351654337.png

接着执行make install安装(如下图所示)。

f34b96741e631b05257184165ed06267.png

执行modprobe r8822be,动态加载模块。

执行lsmod | grep r8822be,查看(如下图所示)。

执行modinfo r8822be,查看模块相关信息(如下图所示)。

e66c128e74f8c549dd46eb5f5ea6f272.png

安装完后,可以使用无线网卡了!接下来几天体验了下,比较稳定了,问题倒也还有,只是不常现。Realtek8822be无线网卡驱动还是有一些未完成的工作,在分析这些代码过程中,看到多多处代码注释有TODO字眼,离稳定版还有一些距离的。这里贴出TODO列表(如下图所示),有兴趣的朋友可加入一起完成噢~~

232ee049d374166dcd2bac97383619cb.png

本文只是描述在CentOS7.6系统中如何解决Realtek8822be无线网卡驱动安装的问题。如您是在其他发行版linux系统中遇到类似问题、或者是其他不同厂家的电脑有类似问题亦可参考此文,如有不懂之处,可互相交流解决。

欢迎您的加入,QQ群号linux零基础交流群:734638086。

注:本文为Toyo Lau原创,未经许可不得在任何平台转载,侵权必究。

代码交流 2021