【KW41z】在RaspberryPi上部署KW41z TUN/TAP
先吹吹TUN/TAP
其实是一个虚拟的网络设备
纯软模拟
玩过Linux的筒子应该知道
Linux有个很好玩的梗
USB设备可以虚拟成一个网络设备
KW41z的Thread中
有Framework Serial Connectivity Interface (FSCI)和Thread Host Control Interface (THCI)
字面上大概意思就是整一个串行通信接口(USB、UART、SPI),有点牛掰
可以将IP数据包 封装/解包 成串行数据
如果有一个带u口的路由器,加上软件
一块KW41z板,就能完成边界路由器的功能
早在几年前论坛ATMEL R21 ZigBee活动中
就有论坛大神把Contiki移植到R21
借助Contiki中的Slip协议,搭配OPENWRT路由器和tunslip6软件
完成border router
这次恩叉屁的资料再一次给力
源码中就包含了border router的例程
同时,还公布了Linux OS上位机软件的源码
它们就在 ..\SDK_2.2_FRDM-KW41Z\tools\wireless\host_sdk\hsdk\demo
实在是给力了
试着在树莓派上部署了一版
-----------------KW41z侧的工作------------------
两块板分别烧固件
一个是thread_host_controlled_device,理论上hybrid下类似的工程也行
另一个是thread_router_eligible_device,理论上其他的也行
尤其需要注意
第一个工程中source\config.h文件中
#define THR_SERIAL_TUN_ROUTER ,必须配置为1
烧好
thread_host_controlled_device的板子撸入树莓派
另外一块待命
------------------树莓派侧的工作-------------------
2、安装依赖
[C] 纯文本查看 复制代码
1 2 | apt-get install update apt-get install build-essential libudev-dev libpcap-dev |
3、make几下
在..\host_sdk\hsdk,make一次,接着make install
在..\host_sdk\hsdk\demo,执行make; make spi
这个时候,..\host_sdk\hsdk\demo\bin下会生成
GetKinetisDevices PCAPTest SPITest Thread_KW_Tun
这几个可执行代码流
./GetKinetisDevice可以查看连接上USB口的KW41z板
执行一下就能看到:NXP Kinetis-W device on /dev/ttyACM0.
不同系统,端口号可能不同
./Thread_KW_Tun就是处理IP包的程序
后面再用
接着编辑一个sh文件,添加虚拟网络接口
nano tun.sh
[C] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 | #!/bin/bash # Create a new TUN interface for Thread interaction. ip -6 tuntap add mode tun fslthr0 # Assign it a global IPv6 address. ip -6 addr add FD01::2 dev fslthr0 # Add route to default address of Serial TUN embedded interface. ip -6 route add FD01::1 dev fslthr0 # Add route to Unique Local /64 Prefix via fslthr0. ip -6 route add FD01:0000:0000:3EAD::/64 dev fslthr0 # The interface is ready. ip link set fslthr0 up # Enable IPv6 routing on host. sysctl -w net.ipv6.conf.all.forwarding=1 |
大致意思就是创建一个叫做fslthr0的IPv6虚拟网络接口
./tun.sh
跑起来
ifconfig看一下
会出现这么个东西
[C] 纯文本查看 复制代码
1 2 3 4 5 6 7 | 阅读原文")
最新有关EEWorld 电子工程世界的文章 |