Getting Started with FRC Programming Under Linux

The team programming computers all run debian and our package containing the compiler is for debian which means that it will be easier for anybody who wants to test code on their own computer to use debian too. [Ubuntu should also work since it's built on debian.]

Install debian GNU/Linux

The easiest way to install debian is to use the netinst cd image. The download page is at and the current version as of 12/5/16 is A 64 bit iso for newer systems is available here (valid as of 12/5/2016)

Add packages to debian

After you get debian running, you'll have to install some basic packages in order to compile code. You can install packages from the command line by typing "apt-get install packages" as root, where packages is a space-separated list of packages you want to install. The ones that I can think of are grep, sed, wget, ssh, make, subversion, gawk, gcc, g++, bash, ruby, unzip, patch, ncftp, and vim.

Install the VxWorks cross-compiler

You will also need to download and install the package we have for the VxWorks cross-compiler. It is currently at a temporary location and will eventually be at some other more permanent location. You can install it with "dpkg -i powerpc-wrs-vxworks_4.5.0-1.0_i386.deb" in whatever directory you downloaded it to. You'll need to do that as root.

Get the robot code via Subversion

Please look at the SVN Usage page for tips on using SVN well. The URL for the 2011 code is svn://

EDIT: As of 12/5/2016, the above link to robot code is broken.

Build the robot code

After you check out a new working copy, do a "make" in externals to download WPILib. You'll need an internet connection. After that succeeds, you can just do a "make" in packages to rebuild the robot code. Also see README.html, which is more current than README.txt.

Source Code Control - GIT

The programming team is lead by Brian Silverman.  They use GIT for managing the 971 source code.  This is documented in git-setup.txt in the git repository.  Unfortunately, this requires a team svn username and password to view until Michael figures out how to add an exception for this file.

Gerrit is used for code review

Austin and Brian found a nice code review tool that Brian thinks would be nice for the team to start using. Michael and Brian got an instance running on the team server, which seems to be almost working. You have to log in with your SVN username and password to use it. After logging in the first time, Austin or Brian have to add you to a group before you can access any of the 971 code. If anybody wants to get started, feel free to go to and create an account. Send Brian an email after you've done that so he can add you.

Gerrit has a nice quick intro for learning how to use it, and a bunch more advanced documentation too. For now, there's no good way to actually upload or download code, but we're working on fixing that in the server configuration (Brian believes ssh access works from inside the school if anybody wants to play with it quickly).

Alternate Setup (Linux Virtual Machine) - 2016

We have a semi-automated procedure for getting started with programming. First, install the following pieces of software:

  • VirtualBox - This package allows you to run the debian 64 bit virtual machine on your computer including Windows, Mac, and Debian.
  • Vagrant - This is a wrapper around virtual box that makes downloading and customizing virtual machines easier.
  • SVN client. On Windows, TortoiseSVN is a great option

Then we need to checkout the vagrant files from the robotics SVN folder. They are in the vagrant_dev_vm directory.  Once you have done this, navigate to the vagrant_dev_vm folder in a terminal and run "vagrant up" from the command line. This command will take a while -- up to an hour. The command will download a basic VirtualBox VM from that comes pre-installed with jessie.  Best to be using a 64 Intel OS such as Windows 7, OSX, or Debian. After the download is complete, it will customize the virtual machine so you can start building code and submit new patches. Again, this whole process will take a while.  

When the "vagrant up" command is done, execute "vagrant reload".  This will reboot the VM and start a graphical environment that was installed in the previous step.

Now you can log in to the new machine with the following credentials: username is "user" and the password is also "user". From here you can use gerrit (as described by previous sections on this page) to download the robot code and start building for it.

Talk with Phil if you need help with this.