Using the pre-built TinyOS VM image
First of all, download the image here. You should be able to import it into VirtualBox ("File", "Import Appliance..."). Note that you will need to have the VirtualBox extension pack installed. This will create a new virtual machine, already (mostly) configured correctly. The machine includes the TinyOS development toolchain, as well as Fossil 1.28. Note, however, that the VM does not include the X Windows graphical environment, it's strictly a CLI affair.
(If you prefer a more graphical setup, you can use the Xubuntu VM image on the TinyOS wiki. Bear in mind that this image does not include Fossil, or the ability to use shared folders.)
The default user account on the VM is
tinyos with password
tiny. Sudo has been configured to not request a password, and the system with auto-login on tty1 on boot.
There are a few different ways you can use the VM:
Connecting to the VM: console or SSH
To interact with the VM, you can either simply type at the VirtualBox console directly, or you can use SSH to connect to the VM.
Although typing at the console is easy, you cannot copy or paste from the console to your host machine. In addition, scroll-back is somewhat cumbersome (
Ctrl-PgDn). (But, on the other hand, the only commands you ever need to use in the VM are
make telosb reinstall....) Thus, the preferred method is SSH.
To connect to the VM using SSH, you will need an SSH client. If you're running Windows you can use PuTTY; if you're using Mac OS X or Linux, you've already got an SSH client.
In PuTTY, enter
localhostas the hostname. In OS X/Linux, just run
Login using the username
tinyosand the password
tiny. You can now interact with the VM, using your host machine's console (or PuTTY). Thus, you can copy-paste to/from the terminal, scroll back the display, change the size of the terminal window, etc.
Project source code: shared or local
The preferred method for connecting the VM to the project source code is to save the source tree on your host machine, and use VirtualBox's shared folders support to mount it within the VM. This will require you to have Fossil installed on your host machine, but means that you can edit the sources with whatever editor you like. You will use Fossil on your host machine to commit your changes (you never need to run Fossil on the VM with this method).
To use the shared folder method:
Clone and open the project repository into a directory (we'll call it
$SRCTREE) on your host machine.
In the settings for the VM, under the Shared Folders tab, create a new Machine shared folder. Set the path to
$SRCTREEand set the name to
project-src. Check both the Auto-Mount and Persistent check boxes.
Restart the VM.
The alternate method is to keep your project source tree purely in the VM. You will only be able to edit it using editors within the VM (i.e., Nano or VIM by default). You will have to use Fossil on the VM to commit your changes.
To use the VM-local method:
fossil clonethe repository into
If you want to use
fossil uito look at your local repository, point your (host machine) browser at http://localhost:8080 after starting
Note that with either method, you will always build your projects (via
make telosb) and deploy to motes (via
make telosb reinstall bsl,/dev/ttyUSB0) on the VM, not on your host machine.