WiFi 模块

  MYS-6ULX-IOT 开发板与 MYS-6ULX-IND 的区别,除了一个是商业级微处理器,一个是工业级微处理器之外,另一个显著的区别就是 MYS-6ULX-IOT 上还搭载了 USB WiFi 模块。

  WiFi 内置芯片型号为 Realtek 公司的 RTL8188ETV,天线座子型号为泰科 1566230-1,默认配备一根天线,开发者也可以根据自己需要选择合适的天线来使用 WiFi 功能。由于 i.MX6ull 的资源限制,USB WiFi 模块连接到的是 Hub 芯片扩展的 USB 端口,具体电路连接情况如下:


构建系统

  前面我们通过 bitbake core-image-minimal 构建了一个 MYS-6ULX-IOT 最小版本的 Linux 发行版。但是这个版本并不包含 RTL8188 WiFi 模块的驱动,因此我们还需要做一些工作,以便能够驱动该模块,实现无线网络通讯。
  进入 Yocto 根目录,如果还没有构建 minimal 的系统,那么执行:

$ DISTRO=myir-imx-fb MACHINE=mys6ull14x14 source fsl-setup-release.sh -b build-myir

  如果已经构建过,则执行:

$ source setup-environment build-myir

  执行完成后自动切换到 build-myir 目录,接下来我们看一下除了 minimal 镜像,MYiR 还为我们提供了什么:

$ tree -L 3 ../sources/meta-myir-imx6ulx/

  可以看到,在 recipes-core/images 目录下有 core-image-base.bbappend 和 core-image-minimal.bbappend 两个配方。其中 core-image-base.bbappend 的内容如下:

IMAGE_INSTALL += "imx-kobs \
    tslib-calibrate \
    tslib-conf \
    tslib-tests \
    bzip2 \
    gzip \
    canutils \
    dosfstools \
    mtd-utils \
    mtd-utils-ubifs \
    ntpdate \
    vlan \
    tar \
    net-tools \
    ethtool \
    evtest \
    i2c-tools \
    iperf3 \
    iproute2 \
    iputils \
    udev-extraconf \
    rpm \
    iperf \
    openssh \
    openssl \
    v4l-utils \
    ${@base_contains("MACHINE", "mys6ull14x14", "rtl8188eu-driver", "", d)} \
    alsa-utils \
    myir-rc-local"

  我们发现其中包含了 rtl8188eu-driver 驱动,那么我们就开始构建 base 系统吧:

$ bitbake core-image-base

  在构建过程中遇到了错误,这里摘取一部分错误提示:

ERROR: rtl8188eu-driver-0.1-r0 do_install: oe_runmake failed
ERROR: rtl8188eu-driver-0.1-r0 do_install: Function failed: do_install (log file is located at /home/rudy/workspace_hd/IoT/MYS-6ULX-IOT/04-Source/fsl-release-yocto/build-myir/tmp/work/mys6ull14x14-poky-linux-gnueabi/rtl8188eu-driver/0.1-r0/temp/log.do_install.29532)Log data follows:
|  DEBUG: Executing shell function do_install
|  NOTE: make -j 4 KERNEL_SRC=/home/rudy/workspace_hd/IoT/04-Source/fsl-release-yocto/build-myir/tmp/work-shared/mys6ull14x14/kernel-source DEPMOD=echo INSTALL_MOD_PATH=/home/rudy/workspace_hd/IoT/04-Source/fsl-release-yocto/build-myir/tmp/work/mys6ull14x14-poky-linux-gnueabi/rtl8188eu-driver/0.1-r0/imageCC=arm-poky-linux-gnueabi-gcc -mno-thumb-interwork -marm -fuse-ld=bfdLD=arm-poky-linux-gnueabi-ld.bfdO=/home/rudy/workspace_hd/IoT/04-Source/fsl-release-yocto/build-myir/tmp/work-shared/mys6ull14x14/kernel-build-artifactsmodules_install
|  #install -p -m 644 8188eu.ko /lib/modules//kernel/drivers/net/wireless
|  make -C /home/rudy/workspace_hd/IoT/04-Source/fsl-release-yocto/build-myir/tmp/work-shared/mys6ull14x14/kernel-source M= modules_install
|  make[1]: Entering directory '/home/rudy/workspace_hd/IoT/04-Source/fsl-release-yocto/build-myir/tmp/work-shared/mys6ull14x14/kernel-source'
|  make[2]: Entering directory '/home/rudy/workspace_hd/IoT/04-Source/fsl-release-yocto/build-myir/tmp/work-shared/mys6ull14x14/kernel-build-artifacts'
|  cp: cannot stat './modules.order': No such file or directory
|  /home/rudy/workspace_hd/IoT/04-Source/fsl-release-yocto/build-myir/tmp/work-shared/mys6ull14x14/kernel-source/Makefile:1123: recipe for target '_modinst_' failed
| 

  经检查、分析,错误出现在构建 rtl8188eu-driver 驱动过程中 modules_install 失败了,其中 M 的值居然是空。于是找到该驱动源码的 Makefile,路径为:tmp/work/mys6ull14x14-poky-linux-gnueabi/rtl8188eu-driver/0.1-r0/git/Makefile。定位到 module_install,内容如下:

modules_install:#install -p -m 644 8188eu.ko $(MODDESTDIR)$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install

  虽然 M=$(SRC),但 SRC 却没有定义(可能是从环境变量或上层 Makefile 传过来吧)。不管怎么样,在构建过程中确实出错了。
  我们看一下 rtl8188eu-driver 软件包的源路径:

$ bitbake -e rtl8188eu-driver | grep ^SRC_URI
SRC_URI="git://github.com/MYiR-Dev/RTL8188eu-driver;protocol=https;branch=master"

  然后找到 GitHub 上,OMG!发现是这样的:


modules_install:#install -p -m 644 8188eu.ko $(MODDESTDIR)$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules_install

  明明是 PWD 而不是 SRC 啊!
  检查配方文件:sources/meta-myir-imx6ulx/recipes-kernel/rtl8188eu-driver/rtl8188eu-driver_0.1.bb,看看 SRCREV 的值对不对,或者直接把本地 Makefile 改过来。
  OK,重新 bitbake core-image-base 一下,这次构建成功了!


WiFi 测试

  更新系统后,上电启动 MYS-6ULX-IOT,登录 Linux Shell。检查驱动:

root@mys6ull14x14:~# lsmod
Module                  Size  Used by
8188eu                758430  0

  执行 ifconfig -a,看到增加了 wlan0 网卡:

wlan0     Link encap:Ethernet  HWaddr a0:2c:36:e7:22:52  BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

  看起来 WiFi 模块已经准备就绪了,接下来可以测试了。实际上 RTL8188 WiFi 模块支持 Client 和 AP 模式,本文只进行 Client 测试。
  首先,使用 wpa_passphrase 生成对应 WiFi 热点 SSID 的密码配置文件,执行以下命令:

# wpa_passphrase "LittleFlowerPig" >> wifi.conf

  然后输入对应的密码。生成的 wifi.conf 文件内容如下:

# reading passphrase from stdin
network={ssid="LittleFlowerPig"#psk="100%100%100%"psk=5d19fc4a6dc4beebe01c9be29cd613227d84609c871aff37c0c82460410c94c4
}

  接着使用 wpa_supplicant 命令,使 MYS-6ULX-IOT 的 WiFi 模块连接到 WiFi 热点:

# wpa_supplicant -D wext -B -i wlan0 -c wifi.conf

  然后,使用 udhcpc 获取 ip 地址,这样就可以使用了

# udhcpc -b -i wlan0 -R

  连接成功,ping 一下我的网站吧:

# ping www.luckydarcy.top
PING www.luckydarcy.top (120.78.197.79) 56(84) bytes of data.
64 bytes from 120.78.197.79: icmp_seq=1 ttl=51 time=7.94 ms
64 bytes from 120.78.197.79: icmp_seq=2 ttl=51 time=15.0 ms
64 bytes from 120.78.197.79: icmp_seq=3 ttl=51 time=10.1 ms
64 bytes from 120.78.197.79: icmp_seq=4 ttl=51 time=10.5 ms--- www.luckydarcy.top ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 16323ms
rtt min/avg/max/mdev = 7.942/10.936/15.082/2.592 ms

  为了实现开机自动连接,可以在 /etc/rc.local 中增加以下命令:

wpa_supplicant -D wext -B -i wlan0 -c /home/root/wifi.conf
udhcpc -b -i wlan0 -R

  这样,我们在 MYS-6ULX-IOT 开发板上成功地驱动了 RTL8188 WiFi 模块,后面我们会在此基础上增加应用层协议实现物联网应用。

MYS-6ULX-IOT 开发板测评——支持 RTL8188 WiFi 模块相关推荐

  1. 【GD32F427开发板试用】USR-C210 WIFI模块进行以太网通信

    本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站.作者:小蜗牛 一.硬件介绍 USR-C210 硬件上集成了 MAC.基频芯片.射频收发单元,尺 ...

  2. 华为认证物联网开发利器:小熊派IoT开发板

    今年8月份我和小伙伴们协同研发的基于NB-IoT的智慧路灯监控系统有幸入选华为开发者大赛IoT赛道决赛,决赛期间留意到70%以上的个人/学生开发者团队都使用到华为认证(匹配HCIP:华为认证ICT高级 ...

  3. 2021物联网开发学习——基于小熊派IoT开发板Bear-Pi-IOT、E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link

    2021物联网开发学习--基于小熊派IoT开发板Bear-Pi-IOT.E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link 目录 作者介绍 目的 用到的 ...

  4. 海图SD3403开发板测评

    今天给大家带来一款高性价比的嵌入式开发板测评--海图HT-SD3403.这是一款基于SD3403芯片设计的嵌入式开发板,最近使用的人很多啊,笔者这里也是买了一块,我们来看一下,他的具体的情况. 首先, ...

  5. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(4)UART通讯

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)学习本文之前要具备的知识: [致敬未来的攻城狮计划]--RA2E1 开发板测评(1)keil环境配置: [致敬未来的攻 ...

  6. 小熊派IoT开发板系列教程正式发布——免费学习

    小熊派介绍 小熊派IoT开发板一款由南京厚德物联网有限公司联合华为技术有限公司基于STM32L431RCT6设计的高性能物联网开发板.开发板充分考虑物联网感知层设备的多样性,具有强大的可扩展性,用于提 ...

  7. 鸿蒙IOT开发板 小熊派上手体验

    鸿蒙IOT开发板 小熊派上手体验 一.简介 二. 上手搭建开发环境 1. 准备开发工具 2. 使用VMWare 创建虚拟机 4. 设置磁盘映射 5. 在ubuntu里获取源码 6. 编译代码 三.连接 ...

  8. MWC2018 机智云发布gokit4.0G全栈IoT开发套件,支持高通MDM9206

    MWC2018 机智云发布gokit4.0G全栈IoT开发套件,支持高通MDM9206 NB-IoT/eMTC 继2月14日Qualcomm高通宣布,推出面向Qualcomm MDM9206LTE I ...

  9. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(2)LED闪烁

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)注意,学习本文之前要学习 瑞萨Renesas RA2L1 开发板测评(1)--keil环境配置: (3)我们拿到开发板 ...

  10. UDI Tegra K1 SOC安卓游戏开发板测评

    UDI Tegra K1 SOC安卓游戏开发板测评 据我所知,优地科技的这款开发板是业内首款基于NVIDIA 的Tegra K1主芯片的安卓嵌入式高性能计算开发板,它的强大之处,可能只有亲自体验才能真 ...

最新文章

  1. 拒绝躺平,Redis选择实现了自己的VM
  2. [YTU]_2640( 编程题:运算符重载---矩阵求和)
  3. 数据量庞大的分页穿梭框实现
  4. 【10.23头条】阿里云存储负责人吴结生:安全可靠是云存储立身之本, 智能技术将激活存储技术新变革...
  5. 一个自动化测试的案例之记事狗微博篇
  6. Helpful links
  7. IntelliJ IDEA安装AngularJS插件
  8. 自己常用的分页SQL
  9. 数据恢复软件分享(第二篇)
  10. UML图箭头和实线虚线到底什么意思
  11. SCC flex布局
  12. upnp+捕捉摄相头客户端程序
  13. Windows环境下用C语言实现CS模型(基于TCP协议)
  14. 真人踩过的坑,告诉你避免自动化测试常犯的10个错误
  15. 腾讯优图实验室招聘计算机视觉研究员和实习生
  16. Docker系列之三:使用Docker镜像和仓库
  17. writev遇到非阻塞IO
  18. 二手车预测:task2:数据分布
  19. Java真的不难(二十五)Stream流
  20. fscanf()php,fscanf()函数fscanf

热门文章

  1. 数据分析实战(二):流浪地球8W多条评论分析
  2. 二进制(通俗简要版,一看就会)
  3. Qt编写输入法V2019终极版
  4. 用js实现在文本框中检测字数和限制字数功能
  5. C#支付宝扫码支付代码完整版(转)
  6. 反映百度引擎权重的身分都有哪些
  7. 【五校联考2015 8.20】宝藏
  8. unpivot行转列 oracle,oracle-行转列点评oracle11g sql新功能pivot/unpivot
  9. 场景设计题 汇总 (一)
  10. 远程桌面连接设置详细步骤