=====Présentation===== [[https://libusb.info/|Site web]] [[https://github.com/libusb/libusb|Code source]] =====Compilation===== ====Windows==== [[https://github.com/libusb/libusb/blob/master/INSTALL_WIN.txt|Documentation 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==== [[https://github.com/libusb/libusb/tree/master/android|Documentation Android]] Tout le système de build est dans le dossier ''android/jni''. Avant de compiler, mettre à jour : * ''APP_ABI'' et ''APP_PLATFORM'' dans ''android/jni/Application.mk''. * ''include $(BUILD_SHARED_LIBRARY)'' / ''include $(BUILD_STATIC_LIBRARY)'' dans ''android/jni/libusb.mk'' et ''android/jni/examples.mk'' * ''ENABLE_DEBUG_LOGGING'' dans ''android/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. [[https://lecrabeinfo.net/demarrer-windows-11-en-mode-sans-echec.html|Démarrer Windows 11 en mode sans échec]] {{ :lib:libusb:demarrer_windows_11_en_mode_sans_echec_le_crabe_info_13_10_2022_09_40_45_.html |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''. [[https://learn.microsoft.com/fr-fr/windows-hardware/drivers/usbcon/winusb-installation|Installation de WinUSB (Winusb.sys) pour les développeurs]] {{ :lib:libusb:installation_de_winusb_winusb.sys_pour_les_developpeurs_-_windows_drivers_microsoft_learn_13_10_2022_09_59_04_.html |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 section ''Dev_AddReg'' en bas du fichier. Ne pas toucher à la partie en haut du fichier. Pour générer aléatoirement un ''GUID'', il est possible d'utiliser l'outil ''guidgen.exe'' (fournit avec Visual Studio Installer). * le ''VID'' et ''PID'' dans la section ''Standard.NTamd64''. Pour obtenir les valeurs, aller dans le ''Gestionnaire de périphérique'', faire un clique-droit sur le composant USB, ''Propriétés''. Aller dans l'onglet ''Détails'' et sélectionner la 2ème ligne ''Chemin d'accès à l'instance du périphérique''. La valeur ''USB\VID_0408&PID_5441\200901010001'' contient le VID et le PID. * le ''DeviceName'' dans le champ ''Strings'' pour donner le nom d'apparition dans le ''Gestionnaire 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''. {{:lib:libusb:winusb1.png?781|}} {{:lib:libusb:winusb2.png?400|}} {{:lib:libusb:winusb3.png?377|}} {{:lib:libusb:winusb4.png?400|}} {{:lib:libusb:winusb5.png?400|}} 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''. {{:lib:libusb:winusb6.png?511|}} {{:lib:libusb:winusb7.png?614|}} {{:lib:libusb:winusb8.png?614|}} {{:lib:libusb:winusb9.png?614|}} {{:lib:libusb:winusb10.png?425|}} {{:lib:libusb:winusb11.png?614|}} {{:lib:libusb:winusb12.png?502|}} {{:lib:libusb:winusb13.png?614|}} {{:lib:libusb:winusb14.png?614|}} Ensuite vérifier que le driver est bien passé dans la rubrique ''Périphérique Universal Serial Bus''. {{:lib:libusb:winusb15.png?529|}} {{:lib:libusb:winusb16.png?377|}}