Clone this wiki locally
These instructions are for a Debian based Linux distro. If you are on another OS, you can run Linux in an virtual environment such as VirtualBox.
Install the required tools
To get started with the EV3 source code, you will need the following prerequisites:
git: Version control system required to download code repository from GitHub.
sudo apt-get install git
Code Sourcery Lite for ARM version 2009q1-203: Toolchain used to cross-compile the code for the ARM processor. Again, there are some places the location for this is hard coded, so don't install it anywhere else.
wget https://sourcery.mentor.com/GNUToolchain/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 mkdir -p ~/CodeSourcery/Sourcery_G++_Lite tar -C ~/CodeSourcery/Sourcery_G++_Lite --strip-components=1 -xjf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
mkimage: Required to compile kernel.
sudo apt-get install u-boot-tools
convert: Required to compile lms2012.
sudo apt-get install imagemagick
doxygen: Required to build the documentation (see tips below).
sudo apt-get install doxygen
Get the code
Some of the scripts in the source code expect the source tree to be in
~/projects, so don't put it anywhere else.
git clone git://github.com/mindboards/ev3sources.git ~/projects
Build the code
cd ~/projects/lms2012/open_first make
This will show you a list of what can be built. It should look something like this:
Execute "make TARGET" where TARGET is: lms2012: to build the lms2012 program and its libraries modules: to build lms2012 kernel modules programs: to build bytecode programs and their data files kernel: to build Linux kernel u-boot: to build u-Boot doc: to build documentation clean: to clean everything Add the ARCH=X86 argument to run for X86 platform (some targets are then meaningless).
make doc.viewto build the docs and open them in a web browser. It has lots of useful information about the EV3 - you will definitely want to have a look!
- You can run
make TARGET.cleanto clean an individual target.
- In case you run in any problem that during the build process arm-none-linux-gnueabi-* files can't be found, link them to /usr/bin.