diff --git a/CMakeLists.txt b/CMakeLists.txt index d8ef04736..f6e6802c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.1) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5) SET(PROJECT_VER_MAJOR 0) SET(PROJECT_VER_MINOR 2) diff --git a/INSTALL-openSUSE.md b/INSTALL-openSUSE.md new file mode 100644 index 000000000..3ff07b2b8 --- /dev/null +++ b/INSTALL-openSUSE.md @@ -0,0 +1,156 @@ +# Installation de libfreenect2 sur openSUSE + +Ce guide explique comment installer libfreenect2 (driver pour Kinect v2) sur openSUSE. + +## Prérequis + +- openSUSE Leap 15.4+ ou Tumbleweed +- Port USB 3.0 (le Kinect v2 ne fonctionne pas avec USB 2.0) +- Contrôleur USB 3.0 compatible (Intel et NEC sont connus pour fonctionner, ASMedia ne fonctionne pas) + +## Installation automatique + +Le moyen le plus simple est d'utiliser le script d'installation fourni : + +```bash +cd /chemin/vers/libfreenect2 +./install_opensuse.sh +``` + +## Installation manuelle + +### 1. Installer les outils de base + +```bash +sudo zypper install git cmake pkg-config gcc-c++ make +``` + +### 2. Installer les dépendances principales + +```bash +# libusb (requis, version >= 1.0.20) +sudo zypper install libusb-1_0-devel + +# TurboJPEG pour le décodage JPEG rapide +sudo zypper install libjpeg-turbo libturbojpeg0 + +# GLFW pour OpenGL +sudo zypper install libglfw3 libglfw-devel + +# OpenGL/Mesa +sudo zypper install Mesa-devel Mesa-libGL-devel Mesa-libEGL-devel +``` + +### 3. Dépendances optionnelles + +#### OpenCL (pour accélération GPU) + +```bash +# Headers OpenCL +sudo zypper install opencl-headers + +# Pour GPU Intel +sudo zypper install intel-compute-runtime + +# Pour GPU AMD, installer les drivers propriétaires AMD +``` + +#### CUDA (pour GPU NVIDIA) + +```bash +# Suivre les instructions NVIDIA pour installer CUDA Toolkit +# Généralement via les dépôts NVIDIA ou les packages téléchargés +``` + +#### VAAPI (décodage JPEG Intel) + +```bash +sudo zypper install libva-devel +``` + +#### OpenNI2 (optionnel) + +```bash +sudo zypper install libopenni2-devel +``` + +### 4. Compiler libfreenect2 + +```bash +mkdir build && cd build +cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 +make -j$(nproc) +make install +``` + +### 5. Configuration des permissions + +```bash +sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/ +sudo udevadm control --reload-rules +# Débrancher et rebrancher le Kinect +``` + +## Test de l'installation + +```bash +cd $HOME/freenect2/bin +./Protonect +``` + +## Différences avec Ubuntu/Debian + +| Ubuntu/Debian | openSUSE | Notes | +|---------------|----------|-------| +| `apt-get install` | `zypper install` | Gestionnaire de paquets | +| `libturbojpeg0-dev` | `libjpeg-turbo` + `libturbojpeg0` | Paquets séparés | +| `libglfw3-dev` | `libglfw3` + `libglfw-devel` | Séparation lib/devel | +| `beignet-dev` | `intel-compute-runtime` | OpenCL Intel | + +## Résolution de problèmes + +### Le Kinect n'est pas détecté + +1. Vérifiez que c'est bien un port USB 3.0 : `lsusb -t` +2. Vérifiez les règles udev : `ls -la /etc/udev/rules.d/*kinect*` +3. Redémarrez le service udev : `sudo systemctl restart systemd-udevd` +4. Vérifiez les logs : `dmesg | grep -i kinect` + +### Erreurs de compilation + +1. Vérifiez que toutes les dépendances sont installées +2. Pour les erreurs OpenCL : `cmake .. -DENABLE_OPENCL=OFF` +3. Pour les erreurs CUDA : `cmake .. -DENABLE_CUDA=OFF` +4. Pour les erreurs OpenGL : `cmake .. -DENABLE_OPENGL=OFF` + +### Performance + +- Utilisez différents pipelines via la variable d'environnement : + ```bash + export LIBFREENECT2_PIPELINE=opengl # (défaut) + export LIBFREENECT2_PIPELINE=cl # OpenCL + export LIBFREENECT2_PIPELINE=cuda # CUDA + export LIBFREENECT2_PIPELINE=cpu # CPU seulement (lent) + export LIBFREENECT2_PIPELINE=vaapi # VAAPI (Intel) + ``` + +## Intégration avec des projets tiers + +Pour utiliser libfreenect2 dans vos propres projets CMake : + +```cmake +find_package(freenect2 REQUIRED + HINTS $ENV{HOME}/freenect2/lib/cmake/freenect2) +target_link_libraries(your_target ${freenect2_LIBRARIES}) +``` + +## Désinstallation + +```bash +# Supprimer l'installation locale +rm -rf $HOME/freenect2 + +# Supprimer les règles udev +sudo rm /etc/udev/rules.d/90-kinect2.rules +sudo udevadm control --reload-rules +``` diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 8741f67fd..bd79025b1 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.1) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5) if(WIN32 AND NOT MINGW) if(NOT DEFINED CMAKE_DEBUG_POSTFIX) diff --git a/install_opensuse.sh b/install_opensuse.sh new file mode 100755 index 000000000..eba4a0e18 --- /dev/null +++ b/install_opensuse.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +# Script d'installation de libfreenect2 pour openSUSE +# Adapté du script d'installation Ubuntu/Debian + +set -e + +echo "=== Installation de libfreenect2 sur openSUSE ===" +echo "" + +# Fonction pour vérifier si une commande existe +command_exists() { + command -v "$1" >/dev/null 2>&1 +} + +# Vérifier si on a les privilèges admin +if ! command_exists sudo && [ "$EUID" -ne 0 ]; then + echo "Erreur: Ce script nécessite les privilèges administrateur." + echo "Utilisez 'sudo' ou exécutez en tant que root." + exit 1 +fi + +# Fonction pour installer avec zypper +install_pkg() { + if command_exists sudo; then + sudo zypper install -y "$@" + else + zypper install -y "$@" + fi +} + +echo "1. Installation des outils de compilation de base..." +install_pkg git cmake pkg-config gcc-c++ make + +echo "" +echo "2. Installation des dépendances libfreenect2..." + +# libusb >= 1.0.20 (requis) +echo " - libusb-1.0 (développement)" +install_pkg libusb-1_0-devel + +# TurboJPEG pour le décodage JPEG +echo " - TurboJPEG" +install_pkg libjpeg-turbo libturbojpeg0-devel + +# GLFW pour OpenGL +echo " - GLFW3" +install_pkg glfw-devel + +# OpenGL (Mesa) +echo " - OpenGL/Mesa" +install_pkg Mesa-devel Mesa-libGL1 Mesa-libEGL1 Mesa-libGLU1 + +echo "" +echo "3. Installation des dépendances optionnelles..." + +# OpenCL (optionnel, pour Intel/AMD) +echo " - OpenCL (optionnel)" +install_pkg opencl-headers || echo " OpenCL headers non trouvés, continuons..." + +# Pour Intel GPU OpenCL +echo " - Intel OpenCL (si GPU Intel présent)" +install_pkg intel-compute-runtime || echo " Intel OpenCL runtime non trouvé, continuons..." + +# VAAPI pour décodage JPEG Intel (optionnel) +echo " - VAAPI (optionnel, Intel seulement)" +install_pkg libva-devel || echo " VAAPI non trouvé, continuons..." + +# OpenNI2 (optionnel) +echo " - OpenNI2 (optionnel)" +install_pkg libopenni2-devel || echo " OpenNI2 non trouvé, continuons..." + +echo "" +echo "4. Configuration des permissions USB..." +# Copier les règles udev +if command_exists sudo; then + sudo cp platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/ + sudo udevadm control --reload-rules +else + cp platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/ + udevadm control --reload-rules +fi + +echo "" +echo "5. Compilation de libfreenect2..." + +# Créer le répertoire de build s'il n'existe pas +mkdir -p build +cd build + +# Configuration avec CMake +echo " Configuration avec CMake..." +cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo + +# Compilation +echo " Compilation..." +make -j$(nproc) + +# Installation +echo " Installation..." +make install + +echo "" +echo "=== Installation terminée avec succès ! ===" +echo "" +echo "Pour tester l'installation :" +echo "1. Branchez votre Kinect v2" +echo "2. Exécutez : cd $HOME/freenect2/bin && ./Protonect" +echo "" +echo "Notes importantes :" +echo "- Vous devez débrancher/rebrancher votre Kinect après l'installation des règles udev" +echo "- Le Kinect v2 nécessite un port USB 3.0" +echo "- Pour les applications tiers utilisant libfreenect2, utilisez :" +echo " cmake -Dfreenect2_DIR=$HOME/freenect2/lib/cmake/freenect2" +echo "" +echo "Pour les fonctionnalités optionnelles :" +echo "- OpenCL : définissez LIBFREENECT2_PIPELINE=cl" +echo "- CUDA : définissez LIBFREENECT2_PIPELINE=cuda (nécessite installation séparée)" +echo "- VAAPI : définissez LIBFREENECT2_PIPELINE=vaapi (Intel seulement)" diff --git a/tools/streamer_recorder/CMakeLists.txt b/tools/streamer_recorder/CMakeLists.txt index 77f203f5e..9986ebced 100644 --- a/tools/streamer_recorder/CMakeLists.txt +++ b/tools/streamer_recorder/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.1) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5) if(WIN32 AND NOT MINGW) if(NOT DEFINED CMAKE_DEBUG_POSTFIX)