Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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-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)"
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