Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
156 changes: 156 additions & 0 deletions INSTALL-openSUSE.md
Original file line number Diff line number Diff line change
@@ -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
```
2 changes: 1 addition & 1 deletion examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
120 changes: 120 additions & 0 deletions install_opensuse.sh
Original file line number Diff line number Diff line change
@@ -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

# GLFW pour OpenGL
echo " - GLFW3"
install_pkg libglfw3 libglfw-devel

# OpenGL (Mesa)
echo " - OpenGL/Mesa"
install_pkg Mesa-devel Mesa-libGL-devel Mesa-libEGL-devel Mesa-libGLU-devel

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)"
2 changes: 1 addition & 1 deletion tools/streamer_recorder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
Expand Down