Table des matières
Présentation
Compilation
Windows
Avant de compiler, mettre à jour ENABLE_DEBUG_LOGGING
dans msvc\config.h
.
Pour compiler, exécuter en ligne de commande :
CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" msbuild -p:PlatformToolset=v143,Platform=x64,Configuration=Release msvc\libusb.sln
Android
Tout le système de build est dans le dossier android/jni
. Avant de compiler, mettre à jour :
APP_ABI
etAPP_PLATFORM
dansandroid/jni/Application.mk
.include $(BUILD_SHARED_LIBRARY)
/include $(BUILD_STATIC_LIBRARY)
dansandroid/jni/libusb.mk
etandroid/jni/examples.mk
ENABLE_DEBUG_LOGGING
dansandroid/config.h
Pour lancer la compilation depuis Windows, exécuter en ligne de commande :
cd ...\android\jni
..\Android\Sdk\ndk\25.1.8937393\ndk-build.cmd
Drivers
Windows / WinUsb
- Prérequis
Pour utiliser libusb
, il faut que Windows utilise WinUsb
et non le driver générique (USB Generic Parent Driver
/ Usbccgp.sys
) ou un autre driver propriétaire.
Attention, forcer l'utilisation de WinUsb
nécessite d'autoriser l'installation de driver non signé. Pour cela, suivre la procédure pour démarrer en mode Désactiver le contrôle obligatoire des signatures de pilotes
. C'est comme pour démarrer en mode sans échec mais en sélectionnant l'option 7 à la place de 4. Démarrer Windows 11 en mode sans échec Archive du 20/10/2021 le 13/10/2022
- Génération d'un inf
Il faut aussi créer le fichier .inf
qui permettra d'installer le driver WinUsb
. Installation de WinUSB (Winusb.sys) pour les développeurs Archive du 21/09/2022 le 13/10/2022
Prendre le premier exemple dans la documentation et l'enregistrer avec l'extension .inf
.
Il faut changer :
- le
GUID
dans la sectionDev_AddReg
en bas du fichier. Ne pas toucher à la partie en haut du fichier. Pour générer aléatoirement unGUID
, il est possible d'utiliser l'outilguidgen.exe
(fournit avec Visual Studio Installer). - le
VID
etPID
dans la sectionStandard.NTamd64
. Pour obtenir les valeurs, aller dans leGestionnaire de périphérique
, faire un clique-droit sur le composant USB,Propriétés
. Aller dans l'ongletDétails
et sélectionner la 2ème ligneChemin d'accès à l'instance du périphérique
. La valeurUSB\VID_0408&PID_5441\200901010001
contient le VID et le PID. - le
DeviceName
dans le champStrings
pour donner le nom d'apparition dans leGestionnaire de périphériques
.
Vérifier le fichier .inf
avec l'outils InfVerif.exe
(fournit avec Visual Studio Installer, option Windows driver kit).
- Installer le driver WinUsb avec l'inf
Commencer par ouvrir le gestionnaire de périphérique et vérifier quel est le driver en cours d'utilisation.
Attention, le driver est déclaré 2 fois. Une première fois par FTDI FT601 USB 3.0 Bridge Device
et une seconde fois en Périphérique USB composite
.
Ici, c'est bien le Périphérique USB composite
qui faut mettre à jour. Bien vérifier le VID
/PID
afin de modifier le driver au bon périphérique.
Faire clique droit et Mettre à jour le pilote
et suivre la procédure. Bien utiliser l'option Choisir parmi une liste de pilotes disponibles sur mon ordinateur
. Si vous choisissez l'autre option (Rechercher les pilotes à cet emplacement
), Windows risque de vous répondre que le driver est à jour et refusera d'installer WinUSB
.
Ensuite vérifier que le driver est bien passé dans la rubrique Périphérique Universal Serial Bus
.