最近更新系统,内核从4.15 更新到了 4.16.9发现原来的无线模块编译不通过,找不到头文件stdarg.h
查看无线驱动信息
通过ip l
可以看到只有有线网卡
1 |
|
查看无线网卡驱动,找到相应的驱动去下载就好了
1 | lspci | grep -i 'newwork' |
下载无线驱动源码
1 | git clone https://github.com/endlessm/linux |
由于这个项目特别的大,这里只需要下载drivers/net/wireless/rtl8821ce
编译
修改Makefile
这里需要修改Makefile中TopDIR变量的值为当前路径,否则会提示错误退出
1 | cd drivers/net/wireless/rtl8821ce |
执行make
在最新的内核版本(4.16.9-1-ARCH)下编译失败,提示如下:
1 | graz@graz ~/Source/driver_net_wireless/rtl8821ce % make |
通过locate stdarg.h
找到头文件 “/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include/stdarg.h”
1 | ln -s /usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include/stdarg.h include/ |
软链接创建好后,就可以执行make
编译成功
安装
1 | sudo make install |
最后,没有报错的话,通过ip l
就可以找到这个无线网卡了
1 | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 |