IoT开发实战:CoAP卷【3.1】

10.4.2 创建Native-Border-Router

完成Slip-Radio的工作之后,我们接着在树莓派中创建Native-Border-Router。

1.树莓派中复制Contiki源代码

在树莓派控制台获取Contiki源代码,可在树莓派控制台中输入以下内容:

# 进入repo目录

cd ~/repo

# 获取Contiki源代码

git clone https://github.com/contiki-os/contiki.git # 获取子模块并更新子模块

git submodule update –init

2.创建Native-Border-Router

编译native-border-router之前需要在树莓派中安装必要的依赖项。native-border-router位于Contiki源代码目录中的examples/ipv6目录下,进入native-border-router文件夹,通过make TARGET=native便可生成可执行文件border-router.native,该可执行文件可在树莓派中直接运行。

# 更新软件源

sudo apt-get update

# 安装必要的依赖项

sudo apt-get install libncurses5-dev

# 进入native-border-router目录cd ~/repo/contiki/examples/ipv6/native-border-router # 生成可执行文件

make TARGET=native

3.border-router.native使用方法

在树莓派控制台中输入“./border-router.native-h”便可查看border-router.native的使用方法,常用的参数如下:

·-B:指定串行通信波特率,默认为115200。

·-s:指定串行通信设备,默认为/dev/ttyUSB0。

·-a:用于指定主机IP地址,该参数只有在cooja仿真才被使用。

·-p:用于指定服务端口号,该参数只有在cooja仿真才被使用。

·ipaddress:用于指定全局网络前缀,一般为fd00::1/64。

# 查看border-router.native使用方法
./border-router.native -h
usage: ./border-router.native [options] ipaddress
example: border-router.native -L -v2 -s ttyUSB1 fd00::1/64
Options are:
-B baudrate 9600,19200,38400,57600,115200,921600 (default 115200)
-H Hardware CTS/RTS flow control (default disabled)
-L Log output format (adds time stamps)
-s siodev Serial device (default /dev/ttyUSB0)
-a host Connect via TCP to server at <host>
-p port Connect via TCP to server at <host>:<port>
-t tundev Name of interface (default tun0)

把Slip-Radio通过USB转串口设备与树莓派相连,连接方法如图10-12所示。一旦Slip-Radio与树莓派正确连接,树莓派中将会出现一个名为ttyUSB0的设备。

图10-12 Slip-Radio与树莓派连接

在树莓派控制台中输入以下命令:

sudo ./border-router.native -s /dev/ttyUSB0 fd00::1/64

由于需要操作/dev目录下的ttyUSB0设备,所以此处需要使用sudo权限,通过-s参数指定使用ttyUSB0设备,在此处的IPv6网络的全局网络前缀为fd00::1/64,64表示网络ID为IPv6地址的前64位。若border-router.native正常运行,那么在树莓派控制台中可获得以下输出内容:

# 控制台输出
RPL-Border router started
********SLIP started on ''/dev/ttyUSB0''
opened tun device ''/dev/tun0''
ifconfig tun0 inet `hostname` up
ifconfig tun0 add fd00::1/64
ifconfig tun0
# 省略部分内容
Setting prefix fd00::1
created a new RPL dag
Server IPv6 addresses:
0x49ba4: =>fd00::212:4b00:5af:8404
0x49bc4: =>fe80::212:4b00:5af:8404

4.加入开机启动项

为了更方便地使用边界路由,可以把border-router.native加入到树莓派开机启动项中,通过编写/etc/rc.local文件便可增加用户开机启动项。

# 修改树莓派开机启动项sudo nano /etc/rc.local

在/etc/rc.local文件中增加Native-Border-Router启动相关操作。先通过cd指令进入border-router.native可执行文件所在目录,然后通过-s参数指定串行设备名称,一般为“/dev/ttyUSB0”,IPv6全局网络前缀为“fd00::1/64”,指令最后的“&”符号表示border-router.native处于后台运行状态。此处还需要注意以下几点内容:

·此处虽然需

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值