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


    目的

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

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

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

    基础说明

    本文中涉及的目录与文件结构组织如下:
    在这里插入图片描述
    把下载到的驱动源码放到内核源码目录中,稍作调整即可使用了。

    驱动添加与调整

    无线网卡驱动下载

    这里使用的USB无线网卡是 COMFASTCF-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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    移动驱动源码到内核中

    mv rtl8188EUS/ NUC980-linux-4.4.y/drivers/net/wireless/realtek/
    
    • 1

    内核配置与编译中添加RTL8188EUS
    进入内核源码目录:

    cd NUC980-linux-4.4.y/
    
    • 1

    编辑内核中的Kconfig文件:

    gedit drivers/net/wireless/Kconfig
    
    • 1

    在其中添加下面一行,用来引用 rtl8188eus 目录下的 Kconfig 文件,这样就可以在 menuconfig 界面中配置该芯片驱动了:

    source "drivers/net/wireless/realtek/rtl8188eus/Kconfig"
    
    • 1

    编辑内核中的Makefile文件:

    gedit drivers/net/wireless/realtek/Makefile
    
    • 1

    在其中添加下面一行,这样编译时会进入 rtl8188eus 目录下:

    obj-$(CONFIG_RTL8EU)		+= rtl8188eus/
    # 需要注意的是rtl8188eus目录下Kconfig文件里定义的变量为RTL8188EU,没有S
    
    • 1
    • 2

    调整RTL8188EUS驱动调试信息输出
    RTL8188EUS驱动默认在运行时会打印调试信息,可以根据需求保留或调整:

    gedit drivers/net/wireless/realtek/rtl8188eus/Makefile
    
    • 1

    默认的调试信息比较多,这里先关闭调试信息:

    ########################## 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 来关闭调试信息
    # 但我使用前者时编译会报错,所以使用后面的方式来关闭调试信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    配置使能相关功能

    进行功能配置:

    make menuconfig
    
    • 1

    基本网络功能:
    在这里插入图片描述
    在这里插入图片描述

    无线网络功能:
    在这里插入图片描述

    RTL8188EUS芯片支持:
    在这里插入图片描述

    另外因为是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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    编译与测试

    上面配置中选择将驱动编译到内核中,下面进行内核编译,编译结束后将内核拷贝到开发板boot分区:

    export PATH=$PATH:/home/nx/nuc980-sdk/arm_linux_4.8/bin
    make uImage
    
    # 在开发板中挂载启动分区
    # mount /dev/mmcblk0p1 /mnt/
    
    # 在虚拟机中拷贝编译生成的内核到开发板
    # scp ../image/980uimage root@192.168.31.142:/mnt/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    将无线网卡插入开发板USB1,然后重启开发板,可以使用 ifconfig -a 看到wlan0端口,说明驱动加载成功,并成功识别到了网卡:
    在这里插入图片描述

    可以使用 ifconfig wlan0 up 来启用无线网卡,网卡启动完毕后直接使用 ifconfig 就可以看到wlan0端口了,并且我这里使用的USB无线网卡会有指示灯亮起:
    在这里插入图片描述

    总结

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

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

  • 相关阅读:
    104. SAP UI5 表格控件的支持复选(Multi-Select)以及如何用代码一次选中多个表格行项目
    SpringMVC学习(六)SpringMVC实现文件上传、SpringMVC的异常处理
    提升工作效率,打造精细思维——OmniOutliner 5 Pro for Mac
    计算机网络【CN】TCP报文段格式【20B】
    3种方案扩展RestTemplate让其具备负载均衡(超级详细)「扩展点实战系列」- 第442篇
    hidl hwbinder和binder混合使用相关的joinThreadPool问题解答
    【无标题】
    YOLOv5论文作图教程(2)— 软件界面布局和基础功能介绍
    笔记-python reduce 函数
    3.3 Python 元组类型常用操作及内置方法
  • 原文地址:https://blog.csdn.net/Naisu_kun/article/details/126507417