- Warning
- These instructions are no longer recommended because they involve disabling security measures for the target system. Please try the instructions using CMake.
RF24 library supports cross-compilation. Advantages of cross-compilation:
- development tools don't have to be installed on target machine
- resources of target machine don't have to be sufficient for compilation
- compilation time can be reduced for large projects
Following prerequisites need to be assured:
- ssh passwordless access to target machine Here is a hint
- sudo of a remote user without password Here is a hint
- cross-compilation toolchain for your target machine; for RPi
git clone https://github.com/raspberrypi/tools rpi_tools
and cross-compilation tools must be in PATH, for example export PATH=$PATH:/your/dir/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Cross compilation steps
- clone RF24 to a machine for cross-compilation
git clone https://github.com/nRF24/RF24
cd RF24
- configure for cross compilation
./configure --remote=pi@target_linux_host
eventually ./configure --remote=pi@target_linux_host --driver=<driver>
- build
- (optional) install library to cross-compilation machine into cross-exvironment - important for compilation of examples
- upload library to target machine
- (optional) compile examples
- (optional) upload examples to target machine
Cross comilation steps for python wrapper
Prerequisites
- Python setuptools must be installed on both target and cross-compilation machines
sudo pip install setuptools
or sudo apt-get install python-setuptools
Installation steps
- Assure having libboost-python-dev library in your cross-compilation environment. Alternatively, you can install it into your target machine and copy /usr and /lib directories to the cross-compilation machine. For example
mkdir -p rpi_root && rsync -a pi@target_linux_host:/usr :/lib rpi_root
export CFLAGS="--sysroot=/your/dir/rpi_root -I/your/dir/rpi_root/usr/include/python2.7/"
- Build the python wrapper
cd pyRF24
./setup.py build --compiler=crossunix
- Make the egg package
./setup.py bdist_egg --plat-name=cross
dist/RF24-<version>-cross.egg
should be created.
- Upload it to the target machine and install there:
scp dist/RF24-*-cross.egg pi@target_linux_host:
ssh pi@target_linux_host 'sudo easy_install RF24-*-cross.egg'