社区导航

 
查看: 2439|回复: 24

[原创] 【KW41z】在RaspberryPi上部署KW41z TUN/TAP

[复制链接]

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-5-8 18:17:40 | 显示全部楼层 |阅读模式

先吹吹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
实在是给力了

试着在树莓派上部署了一版
IMG_20170508_173613_HHT.jpg

-------------------------------------------------KW41z侧的工作---------------------------------------------------
两块板分别烧固件
一个是thread_host_controlled_device,理论上hybrid下类似的工程也行
另一个是thread_router_eligible_device,理论上其他的也行
尤其需要注意
第一个工程中source\config.h文件中
#define THR_SERIAL_TUN_ROUTER ,必须配置为1
烧好
thread_host_controlled_device的板子撸入树莓派
另外一块待命
-------------------------------------------------树莓派侧的工作----------------------------------------------------
1、拷上源码(略)
2、安装依赖
[C] 纯文本查看 复制代码
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] 纯文本查看 复制代码
#!/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] 纯文本查看 复制代码
fslthr0   Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: fd01::2/128 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:832 (832.0 B)  TX bytes:832 (832.0 B)

到这里
运行 ./hsdk/demo/bin/Thread_KW_Tun /dev/ttyACM0 fslthr0
[C] 纯文本查看 复制代码
[THR] Set 802.15.4 channel          OK!
[THR] Create Network                OK!
[MESHCOP] Start Commissioner        OK!
[MESHCOP] Add Expected Joiner       OK!
[MESHCOP] Sync Steering Data        OK!

渐入佳境
------------------------------------------------------------------over segment-------------------------------------------------------
另外一块板子在串口join一个thread网络
ok后,ifconfig看一下
会出现
[C] 纯文本查看 复制代码
Interface 0: 6LoWPAN
	Link local address (LL64): fe80::2995:f51:69ce:4087
	Mesh local address (ML64): fd1d:b758:634f:5834:d8ca:d682:6645:c052
	Mesh local address (ML16): fd1d:b758:634f:5834::ff:fe00:1
	Unique local address: fd01::3ead:2187:d4fe:ff70:f7db
	Link local all Thread Nodes(MCast):  ff32:40:fd1d:b758:634f:5834::1
	Realm local all Thread Nodes(MCast): ff33:40:fd1d:b758:634f:5834::1


看到Unique local address: fd01::3ead:2187:d4fe:ff70:f7db了么
和树莓派上虚拟的地址是一样的
接下来,大家都懂的......

QQ图片20170508181426.png
QQ图片20170508181431.png
从树莓派ping了一下
能通
看样子,Border Router离我们不远了
这个demo
楼主在Desktop Ubuntu和树莓派上都试过
能行
so,搭载OpenWrt的路由器应该也不在话下
可惜手头上没有,不能进一步玩耍了
这块板的资源,拿来点灯真是浪费了
不过,楼主还是要点
先到这



此内容由EEWORLD论坛网友ljj3166原创,如需转载或用于商业用途需征得作者同意并注明出处

So what......

回复

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-8 18:18:02 | 显示全部楼层
宇宙惯例
沙发不留
So what......

回复 支持 反对

使用道具 举报

507

TA的帖子

5

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-5-8 18:20:49 | 显示全部楼层
你这样有意思吗,就问你

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-8 18:21:53 | 显示全部楼层
RCSN 发表于 2017-5-8 18:20
你这样有意思吗,就问你

点评

今天刚好出了树莓派,你就给我玩起树莓派了  详情 回复 发表于 2017-5-8 18:26
So what......

回复 支持 反对

使用道具 举报

507

TA的帖子

5

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-5-8 18:26:05 | 显示全部楼层

今天刚好出了树莓派,你就给我玩起树莓派了

点评

500蚊,出给你  详情 回复 发表于 2017-5-10 09:24

回复 支持 反对

使用道具 举报

528

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-5-8 18:27:55 | 显示全部楼层

点评

表情帝  详情 回复 发表于 2017-5-10 09:24

回复 支持 反对

使用道具 举报

749

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-5-8 18:41:43 | 显示全部楼层
楼主说的好像很简单的样子,

点评

确实很简单,撸上就能用  详情 回复 发表于 2017-5-10 09:25
没时间解释辣么多了,快上车!!!

回复 支持 反对

使用道具 举报

1241

TA的帖子

1

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2017-5-8 20:48:15 | 显示全部楼层
RCSN 发表于 2017-5-8 18:26
今天刚好出了树莓派,你就给我玩起树莓派了

打鸡打鸡
HELLO_WATER

回复 支持 反对

使用道具 举报

6576

TA的帖子

175

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-5-8 20:53:53 | 显示全部楼层
大神

点评

业余玩家一枚  详情 回复 发表于 2017-5-10 09:25

回复 支持 反对

使用道具 举报

2283

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-5-9 14:23:40 | 显示全部楼层
好,正准备玩一下这个呢。

点评

来来来,一起嘛  详情 回复 发表于 2017-5-10 09:25

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-10 09:24:27 | 显示全部楼层
RCSN 发表于 2017-5-8 18:26
今天刚好出了树莓派,你就给我玩起树莓派了

500蚊,出给你
So what......

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-10 09:24:43 | 显示全部楼层
So what......

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-10 09:25:01 | 显示全部楼层
54chenjq 发表于 2017-5-8 18:41
楼主说的好像很简单的样子,

确实很简单,撸上就能用
So what......

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-10 09:25:12 | 显示全部楼层
So what......

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-10 09:25:33 | 显示全部楼层


业余玩家一枚
So what......

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-5-10 09:25:46 | 显示全部楼层
damiaa 发表于 2017-5-9 14:23
好,正准备玩一下这个呢。

来来来,一起嘛
So what......

回复 支持 反对

使用道具 举报

715

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2017-5-15 22:51:50 | 显示全部楼层
不过,楼主还是要点

回复 支持 反对

使用道具 举报

33

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-5-16 14:12:46 | 显示全部楼层
不错,空了试一下。

回复 支持 反对

使用道具 举报

2283

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-6-17 19:38:10 | 显示全部楼层
本帖最后由 damiaa 于 2017-6-17 19:48 编辑

今天在玩这个,卡住了。 捕获1.PNG 帮我看看 。后面的 命令 就执行不下去了。

捕获2.PNG

点评

源代码目录下有make_tap的脚本执行文件 直接试试  详情 回复 发表于 2017-6-18 21:39

回复 支持 反对

使用道具 举报

2920

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

 楼主| 发表于 2017-6-18 21:39:12 | 显示全部楼层
damiaa 发表于 2017-6-17 19:38
今天在玩这个,卡住了。帮我看看 。后面的 命令 就执行不下去了。

源代码目录下有make_tap的脚本执行文件
直接试试

点评

这个 试了没用。一样的结果。好像是 fslthr0 这个找不到  详情 回复 发表于 2017-6-20 22:16
So what......

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-8-23 00:43 , Processed in 0.629939 second(s), 16 queries , Redis On.

快速回复 返回顶部 返回列表