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年的,预料到应该是没法稳定了。更新下载源码编译安装试了下,无线是可以用,但。。。网上说的问题都有(看来还是要另寻方案)。

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第1张图片

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第2张图片

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第3张图片

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第4张图片

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第5张图片

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

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

其次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()二个函数都要修改。。

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第6张图片

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第7张图片

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第8张图片

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第9张图片

执行modprobe r8822be,动态加载模块(如下图所示)。

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

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第10张图片

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

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第11张图片

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

 

注:本文为Toyo Lau原创,未经许可不得在任何平台转载,侵权必究。如需转载,可关注公众号,在后台留言,与作者联系,取得许可才能转载~

 

CentOS7.6操作系统安装Realtek8822be无线网卡驱动_第12张图片

                                                                       微信扫一扫,发现更精彩。

你可能感兴趣的:(CentOS7.6操作系统安装Realtek8822be无线网卡驱动)