NOTE: Do not plug the Leap into a USB 3.0 port, for some unknown reason, it will be massively slower, than on a standard USB 2.0 port
-
Install repository based SDK and drivers:
$ yaourt -S leap-motion-sdk leap-motion-driver -
Start and enable driver on start-up:
$ sudo systemctl start leapd.service $ sudo systemctl enable leapd.service -
Download the SDK from here
-
Install
swig:$ sudo pacman -Syu swig -
Navigate to the folder where the SDK was downloaded to:
$ cd <path-to-downloads>/LeapDeveloperKit_<version-number>_linux/LeapSDK/include -
Wrap the source file with
swig$ swig -c++ - python -o LeapPython.cpp -interface LeapPython Leap.iIt is very likely, that the generated code has one "slappy" solution, which needs to be fixed, otherwise the compiler will complain about this with the following error:
LeapPython.cpp:14510:30: error: taking the address of a temporary object of type 'std::string' (aka 'basic_string<char>') [-Waddress-of-temporary] result = (std::string *) &Leap_Device_serialNumber_get(arg1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated.This can be fixed by changing the line which throws the error to the following two lines:
std::string serial_number = Leap_Device_serialNumber_get(arg1); result = (std::string *) &serial_number; -
Compile the generated
.cppcode:$ g++ -fPIC -I /usr/include/python3.4m/ LeapPython.cpp /usr/lib/Leap/libLeap.so -shared -o LeapPython.so -
Migrate the Python module from Python 2 to Python 3:
$ 2to3 -w Leap.py -
Rename originally installed components as backups:
$ cd /usr/lib/Leap $ sudo mv Leap.py _Leap.py $ sudo mv LeapPython.so _LeapPython.so $ sudo mv libLeap.so -
Copy new files at installation:
$ sudo cp <path-to-downloads>/LeapDeveloperKit_<version-number>_linux/LeapSDK/include/Leap.py . $ sudo cp <path-to-downloads>/LeapDeveloperKit_<version-number>_linux/LeapSDK/include/LeapPython.so . $ sudo cp <path-to-downloads>/LeapDeveloperKit_<version-number>_linux/LeapSDK/lib/x64/libLeap.so . -
Add library path to the environment:
$ nano ~/.bashrc $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/Leap/ $ source ~/.bashrc -
The following lines should be included into every python file which is using the
Leapmodule:from sys import path as sys_path sys_path.insert(0, '/usr/lib/Leap') import Leap -
Enjoy ;)
Sources: support.leapmotion.com and leap and python3 on ubuntu
-
Download the SDK from here, at this very moment, the latest version available is:
0.5.0.1-beta -
Navigate to the download folder and install the SDK:
$ make $ sudo make install -
Using Oculus SDK 0.4.4: Navigate to
ovr_sdk_linux_0.4.4and type:$ sudo rmmod uvcvideo $ sudo modprobe uvcvideo quirks=0 $ sudo ./oculusd -
Using Oculus SDK 0.5.0.1-beta: Navigate to
ovr_sdk_linux_0.5.0.1and type:$ sudo Service/OVRServer/Bin/Linux/x86_64/ReleaseStatic/ovrd -
Run the app you want...
*Sources: oculus c api 0.5 and forum tips on segfault