新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)

文章目录

  • 目的
  • 基础说明
  • 驱动添加与调整
  • 配置使能相关功能
  • 编译与测试
  • 总结

目的

通过无线访问网络现在来说已经是一种比较常用且重要的功能了,这篇文章将介绍在NUC980中向内核添加USB无线网卡驱动(基于RTL8188EUS)。

这篇文章中内容均在下面的开发板上进行测试:
《新唐NUC980使用记录:自制开发板(基于NUC980DK61YC)》

这篇文章主要是在下面文章基础上进行的:
《新唐NUC980使用记录:访问以太网(LAN8720A) & 启用SSH》

基础说明

本文中涉及的目录与文件结构组织如下:
新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)_第1张图片
把下载到的驱动源码放到内核源码目录中,稍作调整即可使用了。

驱动添加与调整

无线网卡驱动下载

这里使用的USB无线网卡是 COMFASTCF-WU810N(所用芯片方案为 RTL8188EUS ) ,它的Liunx下的驱动程序源码可以从其官网的下面地址下载:
http://www.comfast.com.cn/index.php?m=content&c=index&a=show&catid=30&id=220
新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)_第2张图片
这里也提供下备用下载地址:
链接: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

基本网络功能:
新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)_第3张图片
在这里插入图片描述

无线网络功能:
新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)_第4张图片

RTL8188EUS芯片支持:
新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)_第5张图片

另外因为是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端口,说明驱动加载成功,并成功识别到了网卡:
新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)_第6张图片

可以使用 ifconfig wlan0 up 来启用无线网卡,网卡启动完毕后直接使用 ifconfig 就可以看到wlan0端口了,并且我这里使用的USB无线网卡会有指示灯亮起:
新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)_第7张图片

总结

到目前为止已经实现了在NUC980中向内核添加USB无线网卡驱动(基于RTL8188EUS)功能,并且还测试了启动无线网卡,可以看到无线网卡可以正确工作了。

接下来我们根据使用需求去连接已有的无线接入点访问网络,或是建立无线接入点供其它设备接入。这两块内容会在之后分别写文章进行介绍。

你可能感兴趣的:(嵌入式Linux与设备相关,linux,驱动开发,无线网卡,内核,rtl8188)