我必须使用 TinyOS 来完成我的小项目,所以我在 Ubuntu 14.04 64 位中安装了 TinyOS。基本上,我遵循了 Saeid 在他的 YouTube 视频中的说明,TinyOS 教程 #1 - 如何在 Ubuntu 上安装 TinyOS,但是我遇到了以下问题:
安装 TinyOS 后,我收到以下错误消息:
Errors were encountered while processing: /var/cache/apt/archives/tinyos-tools_1.4.2-tinyprod1_amd64.deb /var/cache/apt/archives/msp430-binutils-tinyos_2.21.1-20110821_amd64.deb /var/cache/apt/archives/msp430-gcc-tinyos_4.5.3-20110821_amd64.deb /var/cache/apt/archives/msp430-libc-tinyos_20110612-20110821_amd64.deb /var/cache/apt/archives/msp430mcu-tinyos_20110613-20110821_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
在 YouTube 视频中,Saeid 表示,如果安装时出现一些错误,请在 sources.list 文件中添加以下内容:
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu kramic main
代替
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu lucid main
我照做了,但是还是不起作用。
我按照 YouTube 上的说明制作了 tinyos.sh 文件。我的 tinyos-release-tinyos-2_1_2 文件夹中有 tinyos.sh,但每当我打开新终端时都会出现以下错误:
bash: /opt/tinyos-release-tinyos-2_1_2/tinyos.sh: No such file or directory
之后
sudo gedit ~/.bashrc
,我source ~/.bashrc
按照指示去做,但source ~/.bashrc
事情却从来没有对我起作用。在 bashrc 文件中,我按照说明添加了 TOSROOT、TOSDIR、CLASSPATH、MAKERULES。然后它似乎不起作用。当我这样做时
cd TOSROOT
,/opt/tinyos-release-tinyos-2_1_2
我收到以下错误:bash: cd: /opt/tinyos-release-tinyos-2_1_2: No such file or directory
因此,我无法继续下一步。此外,我无法重新安装 tinyos-2.1.2。当我这样做时,sudo apt-get remove tinyos-2.1.2
我收到以下错误:
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
deputy-tinyos : Depends: tinyos-tools but it is not going to be installed
msp430-tinyos : Depends: msp430-binutils-tinyos but it is not going to be installed
Depends: msp430-gcc-tinyos but it is not going to be installed
Depends: msp430-libc-tinyos but it is not going to be installed
Depends: msp430mcu-tinyos but it is not going to be installed
tinyos-required-avr : Depends: tinyos-tools but it is not going to be installed
tinyos-required-msp430 : Depends: tinyos-tools but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
答案1
在 Ubuntu 14.04 中安装 TinyOS
访问TinyOS (TinyProd) Debian 开发存储库并按照以下说明操作:
告诉 apt 有关 TinyProd 签名密钥的信息。
wget -O - http://tinyprod.net/repos/debian/tinyprod.key | sudo apt-key add -
添加两行新行到
/etc/apt/sources.list.d/tinyprod-debian.list
: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
安装新的软件包:
sudo apt-get update sudo apt-get install nesc tinyos-tools
在此步骤中,我没有安装 msp430-46 或 avr-tinyos,以便您在测试 TinyOS 安装之后稍后再安装它们。
从 TinyOS 发布存储库获取代码:
wget http://github.com/tinyos/tinyos-release/archive/tinyos-2_1_2.tar.gz tar xf tinyos-2_1_2.tar.gz
这将提取实际的 TinyOS 代码在发出命令的目录中名为 tinyos-release-tinyos-2_1_2 的文件夹中。请随意将此文件夹重命名为 tinyos-main。
您需要向 shell 添加一些环境变量。以下文件包含必要的变量。将占位符替换为您在上一节中选择放置代码的路径(建议使用完整路径)。
# Here we setup the environment # variables needed by the tinyos # make system export TOSROOT="<local-tinyos-path>" export TOSDIR="$TOSROOT/tos" export CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java export MAKERULES="$TOSROOT/support/make/Makerules" export PYTHONPATH=$PYTHONPATH:$TOSROOT/support/sdk/python echo "setting up TinyOS on source path $TOSROOT"
假设您将此文件命名为 tinyos.env。现在至少有两种方法可以在您的 shell 中访问这些变量:
- 将其作为 root 用户放入
/etc/profile.d/
将其放入
<local-tinyos-path>
并将以下行添加到您的 .bashrc 中source <local-tinyos-path>/tinyos.env
- 将其作为 root 用户放入
TinyOS 安装完成后,您可以通过执行以下命令来检查安装是否成功:
tos-bsl tos-ident-flags tos-serial-debug
tos-build-deluge-image tos-install-jni tos-set-symbols
tos-channelgen tos-locate-jre tos-storage-at45db
tos-check-env tos-mote-key tos-storage-pxa27xp30
tos-decode-flid tos-mviz tos-storage-stm25p
tos-deluge tos-ramsize tos-write-buildinfo
tos-dump.py tos-serial-configure tos-write-image
这些说明来自自动安装 - TinyOS Wiki并在 VirtualBox 中运行的 Ubuntu 14.04 上成功执行。我这样做是因为您的问题中的教程中的命令至少有一个错误。
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu kramic main
应该:
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu因果报应主要的
而且你问题中的教程可能已经过时了,因为它太过时了。另一个原因是,我估计输入 YouTube 视频中的所有命令并一次运行它们需要一整天的时间,所以我从 TinyOS wiki 中复制/粘贴了终端中的说明以节省时间。