WSL子系统下配置TinyOS编译环境过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/XGL1569348/article/details/79445814

Windows Subsystem for Linux 在去年去掉了Beta标识,成为了正式版,社区活跃度、官方更新速度都表现得很好。
虽然仍然有部分内核功能没有实现、IO速度一般的问题外,已经和原生体验相差无几。相对虚拟机来说,也有着强得多的性能表现。
本文在这里给出笔者在1709版本上的WSL Ubuntun 16.04上成功配置TinyOS编译环境的流程。


WSL架构示意图


  • 控制面板> 应用和功能 > 启用或关闭 Windows 功能,找到“适用于 Linux 的 Windows 子系统(beta)”,启动之。
    设置开启位置截图
    在应用市场上搜索Ubuntu,下载对应的应用。
    这里写图片描述

  • 安装好后打开该应用,会进行一段时间的初始化,然后设置root用户名和密码。

  • 连接 tinyprod 服务器之前进行必要的认证:

sudo wget -O - http://tinyprod.net/repos/debian/tinyprod.key | sudo apt-key add -
  • 添加源:
sudo -s
cd /etc/apt/sources.list.d
echo "deb http://tinyprod.net/repos/debian wheezy main" >> tinyprod-debian.list
echo "deb http://tinyprod.net/repos/debian msp430-46 main" >> tinyprod-debian.list
cd /etc/apt
echo "deb http://hinrg.cs.jhu.edu/tinyos lucid main" >> sources.list
  • 更新一次(嫌慢可以在sources.list中添加阿里云的数据源:见附1
apt-get update
  • 在这个百度网盘链接中下载绝大部分依赖包 下载链接
    解压后,将文件夹中所有文件复制到路径
    C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\var\cache\apt\archives

官方文档中其实是不推荐对rootfs下的文件进行手动更改的,以防Linux中文件权限出现错乱。But it works.

  • 安装 nesc、tinyos-tools和 msp430-46(期间自动安装配置OpenJDK):
apt-get install nesc tinyos-tools msp430-46
  • 安装依赖
sudo apt-get install avr-tinyos avr-tinyos-base avr-gcc-tinyos avr-binutils-tinyos avrdude-tinyos avr-libc-tinyos tinyos-base
  • 在用户目录下安装TinyOS-2.1.2
cd /home/你的用户名
wget http://github.com/tinyos/tinyos-release/archive/tinyos-2_1_2.tar.gz 
tar xf tinyos-2_1_2.tar.gz 
mv tinyos-release-tinyos-2_1_2 tinyos-main
  • 配置环境变量
echo "export TOSROOT="$HOME/tinyos-main"" >> ~/.bashrc
echo "export TOSDIR="$TOSROOT/tos"" >> ~/.bashrc
echo "export CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java/tinyos.jar:." >> ~/.bashrc
echo "export MAKERULES="$TOSROOT/support/make/Makerules"" >> ~/.bashrc
echo "export PYTHONPATH=$PYTHONPATH:$TOSROOT/support/sdk/python" >> ~/.bashrc
  • 重开一次终端,以加载新的环境变量

  • 安装pip2

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
  • 卸载pyserial3.0+,安装2.7版本
pip2 install "pyserial>2.0,<2.9"
  • 拿访问串口的权限
sudo gpasswd -a 你的用户名 dialout

至此,交叉编译环境已配置完成。但需要注意的是,疑似由于内核功能问题,WSL暂时并不支持motelist dmesg命令(见附2)。端口等信息需要手动进行查看,并在烧节点时手动指定端口。


  • 编译并安装跑马灯程序尝试(2为该设备的USB端口,可以在Windows的设备管理器中查看你的设备真正的端口号)
sudo -s
cd $TOSROOT/apps/Blink 
make telosb install /dev/ttyUSB0 bsl,2

附1:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

附2:
Telosb motelist “No device Found ” Problem

附3:
WSL自带的Bash终端可以使用Cmder等来代替,WSL同样也可以配置GUI。


参考资料:
纯ubuntu16.04下安装tinyos2.1.2教程-CSDN
《TinyOS实验入门指导》 石柯
Windows Subsystem for Linux

猜你喜欢

转载自blog.csdn.net/XGL1569348/article/details/79445814
今日推荐