通过无线访问网络现在来说已经是一种比较常用且重要的功能了,这篇文章将介绍在NUC980中向内核添加USB无线网卡驱动(基于RTL8188EUS)。
这篇文章中内容均在下面的开发板上进行测试:
《新唐NUC980使用记录:自制开发板(基于NUC980DK61YC)》
这篇文章主要是在下面文章基础上进行的:
《新唐NUC980使用记录:访问以太网(LAN8720A) & 启用SSH》
本文中涉及的目录与文件结构组织如下:
把下载到的驱动源码放到内核源码目录中,稍作调整即可使用了。
无线网卡驱动下载
这里使用的USB无线网卡是 COMFAST 的 CF-WU810N(所用芯片方案为 RTL8188EUS ) ,它的Liunx下的驱动程序源码可以从其官网的下面地址下载:
http://www.comfast.com.cn/index.php?m=content&c=index&a=show&catid=30&id=220
这里也提供下备用下载地址:
链接:https://pan.baidu.com/s/1McTm5iYCZzHqDlJ74oGQ5A
提取码:p17d
解压驱动源码
cd ~/nuc980-sdk/
# 移动下载的驱动包到当前文件夹
mv ~/Downloads/RTL8188EUS_linux_v5.3.9_28540.20180806.zip ./
# 解压驱动包
unzip RTL8188EUS_linux_v5.3.9_28540.20180806.zip
# 解压驱动源码到当前目录
tar xzf RTL8188EUS_linux_v5.3.9_28540.20180806/driver/rtl8188EUS_linux_v5.3.9_28540.20180627.tar.gz
# 驱动源码文件夹名称比较长,改短些
mv rtl8188EUS_linux_v5.3.9_28540.20180627/ rtl8188EUS
移动驱动源码到内核中
mv rtl8188EUS/ NUC980-linux-4.4.y/drivers/net/wireless/realtek/
内核配置与编译中添加RTL8188EUS
进入内核源码目录:
cd NUC980-linux-4.4.y/
编辑内核中的Kconfig文件:
gedit drivers/net/wireless/Kconfig
在其中添加下面一行,用来引用 rtl8188eus
目录下的 Kconfig
文件,这样就可以在 menuconfig
界面中配置该芯片驱动了:
source "drivers/net/wireless/realtek/rtl8188eus/Kconfig"
编辑内核中的Makefile文件:
gedit drivers/net/wireless/realtek/Makefile
在其中添加下面一行,这样编译时会进入 rtl8188eus
目录下:
obj-$(CONFIG_RTL8EU) += rtl8188eus/
# 需要注意的是rtl8188eus目录下Kconfig文件里定义的变量为RTL8188EU,没有S
调整RTL8188EUS驱动调试信息输出
RTL8188EUS驱动默认在运行时会打印调试信息,可以根据需求保留或调整:
gedit drivers/net/wireless/realtek/rtl8188eus/Makefile
默认的调试信息比较多,这里先关闭调试信息:
########################## Debug ###########################
CONFIG_RTW_DEBUG = y
# default log level is _DRV_INFO_ = 4,
# please refer to "How_to_set_driver_debug_log_level.doc" to set the available level.
CONFIG_RTW_LOG_LEVEL = 0
# 文档中介绍可以使 CONFIG_RTW_DEBUG=n 或 CONFIG_RTW_LOG_LEVEL=0 来关闭调试信息
# 但我使用前者时编译会报错,所以使用后面的方式来关闭调试信息
进行功能配置:
make menuconfig
另外因为是USB网卡,所以还需要启动USB功能,默认情况下这部分已经是开启了的,可以参考《NUC980 Linux 4.4 BSP User Manual》文档,主要需要配置的是下面几项:
Device Drivers --->
[*] USB support --->
<*> Support for Host-side USB
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD (USB 1.1) support
上面配置中选择将驱动编译到内核中,下面进行内核编译,编译结束后将内核拷贝到开发板boot分区:
export PATH=$PATH:/home/nx/nuc980-sdk/arm_linux_4.8/bin
make uImage
# 在开发板中挂载启动分区
# mount /dev/mmcblk0p1 /mnt/
# 在虚拟机中拷贝编译生成的内核到开发板
# scp ../image/980uimage [email protected]:/mnt/
将无线网卡插入开发板USB1,然后重启开发板,可以使用 ifconfig -a
看到wlan0端口,说明驱动加载成功,并成功识别到了网卡:
可以使用 ifconfig wlan0 up
来启用无线网卡,网卡启动完毕后直接使用 ifconfig
就可以看到wlan0端口了,并且我这里使用的USB无线网卡会有指示灯亮起:
到目前为止已经实现了在NUC980中向内核添加USB无线网卡驱动(基于RTL8188EUS)功能,并且还测试了启动无线网卡,可以看到无线网卡可以正确工作了。
接下来我们根据使用需求去连接已有的无线接入点访问网络,或是建立无线接入点供其它设备接入。这两块内容会在之后分别写文章进行介绍。