Note: Due to the USB 3.0 translation layer between native hardware and virtual machine, the librealsense team does not recommend or support installation in a VM.
Installation of cameras on Linux is lengthy compared to other supported platforms. Several upstream fixes to the uvcvideo driver have been merged in recent kernel versions, greatly enhancing stability. Once an updated kernel has been installed, one more patch must be applied to the uvcvideo driver with support for several non-standard pixel formats provided by RealSense™ cameras.
Note: Several scripts below invoke wget, git, add-apt-repository
which may be blocked by router settings or a firewall. Infrequently, apt-get mirrors or repositories may also timeout. For librealsense users behind an enterprise firewall, configuring the systemwide Ubuntu proxy generally resolves most timeout issues.
- Ensure apt-get is up to date
sudo apt-get update && sudo apt-get upgrade
- Note: Use
sudo apt-get dist-upgrade
, instead ofsudo apt-get upgrade
, in case you have an older Ubuntu 14.04 version (with deprecatednvidia-331*
packages installed), as this prevents the linux 4.4* kernel to compile properly.
- Install libusb-1.0 via apt-get
sudo apt-get install libusb-1.0-0-dev
- glfw3 is not available in apt-get on Ubuntu 14.04. Use included installer script:
scripts/install_glfw3.sh
- Follow the installation instructions for your desired backend (see below)
- We use QtCreator as an IDE for Linux development on Ubuntu
- Note: QtCreator is presently configured to use the V4L2 backend by default
sudo apt-get install qtcreator
sudo scripts/install_qt.sh
(we also need qmake from the full qt5 distribution)all.pro
contains librealsense and all example applications- From the QtCreator top menu: Clean => Run QMake => Build
- Built QtCreator projects will be placed into
./bin/debug
or./bin/release
- We also provide a makefile if you'd prefer to use your own favorite text editor
make && sudo make install
- The example executables will build into
./bin
- Ensure no cameras are presently plugged into the system.
- Install udev rules
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
- Reboot or run
sudo udevadm control --reload-rules && udevadm trigger
to enforce the new udev rules
- Next, choose one of the following subheadings based on desired machine configuration / kernel version (and remember to complete step 4 after). **Note: ** Multi-camera support is currently NOT supported on 3.19.xx kernels. Please update to 4.4 stable.
- Updated 4.4 Stable Kernel
- Run the following script to install necessary dependencies (GCC 4.9 compiler and openssl) and update kernel to v4.4-wily
./scripts/install_dependencies-4.4.sh
- Run the following script to patch uvcvideo.ko
./scripts/patch-uvcvideo-4.4.sh v4.4-wily
(note the argument provided to this version of the script)- This script involves shallow cloning the Linux source repository (~100mb), and may take a while
- Run the following script to install necessary dependencies (GCC 4.9 compiler and openssl) and update kernel to v4.4-wily
- (OR) Kernel in 14.04.xx
- Run the following script to patch uvcvideo.ko
./scripts/patch-uvcvideo-ubuntu-mainline.sh
- (R200 Only with 3.19.xx Kernel) Install connectivity workaround
./scripts/install-r200-udev-fix.sh
- This udev fix is not necessary for kernels >= 4.2
- Use of 3.19.xx Kernel is not recommended.
- Run the following script to patch uvcvideo.ko
- (OR) Kernel in 16.04.xx
- No action required. Ubuntu 16.04 beta2 and newer already contains the patch
- Reload the uvcvideo driver
sudo modprobe uvcvideo
- Check installation by examining the last 50 lines of the dmesg log:
sudo dmesg | tail -n 50
- The log should indicate that a new uvcvideo driver has been registered. If any errors have been noted, first attempt the patching process again, and then file an issue if not successful on the second attempt (and make sure to copy the specific error in dmesg).
Note: This backend has been deprecated on Linux.
The libuvc backend requires that the default linux uvcvideo.ko driver be unloaded before libusb can touch the device. This is because uvcvideo will 'own' a UVC device the moment is is plugged in (user-space applications do not have permission to access the devuce handle). Follow the instructions below to install the udev permissions script.
The libuvc backend has known incompatibilities with some versions of SR300 and R200 firmware (1.0.71.xx series of firmwares are problematic).
- Grant appropriate permissions to detach the kernel UVC driver when a device is plugged in:
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo cp config/uvc.conf /etc/modprobe.d/
- Either reboot or run
sudo udevadm control --reload-rules && udevadm trigger
to enforce the new udev rules
- Use the makefile to build the LibUVC backend
make BACKEND=LIBUVC
sudo make install
- Install XCode 6.0+ via the AppStore
- Install the Homebrew package manager via terminal - link
- Install pkg-config and libusb via brew:
brew install libusb pkg-config
- Install glfw3 via brew:
brew install homebrew/versions/glfw3
librealsense should compile out of the box with Visual Studio 2013 Release 5, both Professional and Community editions. Particular C++11 features are known to be incompatible with earlier VS2013 releases due to internal compiler errors.