Potential issues under OpenBSD with libusb backend #798

Open
opened 2026-04-25 23:42:16 -05:00 by mcuee · 12 comments
mcuee commented 2026-04-25 23:42:16 -05:00 (Migrated from github.com)

This is a bit strange, maybe specific to OpenBSD pkgconf only. The version number detection seems to be off. But then still 2.4.3 should be greater than 1.0.9, right?

openbsd78vm$ pwd
/home/mcuee/build/hidapi

openbsd78vm$ mkdir build
openbsd78vm$ mkdir install

openbsd78vm$ pkg-config --version libusb-1.0
2.4.3

openbsd78vm$ cmake -GNinja -B build -S . -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=1
-- The C compiler identification is Clang 19.1.7
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- hidapi: v0.16.0
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.4.3")
-- Checking for module 'libusb-1.0>=1.0.9'
--   Package dependency requirement 'libusb-1.0 >= 1.0.9' could not be satisfied.
Package 'libusb-1.0' has version '..', required version is '>= 1.0.9'
CMake Error at /usr/local/share/cmake/Modules/FindPkgConfig.cmake:645 (message):
  The following required packages were not found:

   - libusb-1.0>=1.0.9

Call Stack (most recent call first):
  /usr/local/share/cmake/Modules/FindPkgConfig.cmake:873 (_pkg_check_modules_internal)
  libusb/CMakeLists.txt:15 (pkg_check_modules)


-- Configuring incomplete, errors occurred!
This is a bit strange, maybe specific to OpenBSD pkgconf only. The version number detection seems to be off. But then still `2.4.3` should be greater than `1.0.9`, right? ``` openbsd78vm$ pwd /home/mcuee/build/hidapi openbsd78vm$ mkdir build openbsd78vm$ mkdir install openbsd78vm$ pkg-config --version libusb-1.0 2.4.3 openbsd78vm$ cmake -GNinja -B build -S . -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=1 -- The C compiler identification is Clang 19.1.7 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- hidapi: v0.16.0 -- Found PkgConfig: /usr/bin/pkg-config (found version "2.4.3") -- Checking for module 'libusb-1.0>=1.0.9' -- Package dependency requirement 'libusb-1.0 >= 1.0.9' could not be satisfied. Package 'libusb-1.0' has version '..', required version is '>= 1.0.9' CMake Error at /usr/local/share/cmake/Modules/FindPkgConfig.cmake:645 (message): The following required packages were not found: - libusb-1.0>=1.0.9 Call Stack (most recent call first): /usr/local/share/cmake/Modules/FindPkgConfig.cmake:873 (_pkg_check_modules_internal) libusb/CMakeLists.txt:15 (pkg_check_modules) -- Configuring incomplete, errors occurred! ```
mcuee commented 2026-04-25 23:45:24 -05:00 (Migrated from github.com)

I am using latest libusb git.

openbsd78vm$ ./autogen.sh
autoreconf-2.72: export WARNINGS=
autoreconf-2.72: Entering directory '.'
autoreconf-2.72: configure.ac: not using Gettext
autoreconf-2.72: running: aclocal --force -I m4
autoreconf-2.72: configure.ac: tracing
autoreconf-2.72: running: libtoolize --copy --force
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
autoreconf-2.72: configure.ac: not using Intltool
autoreconf-2.72: configure.ac: not using Gtkdoc
autoreconf-2.72: running: aclocal --force -I m4
autoreconf-2.72: running: /usr/local/bin/autoconf-2.72 --force
autoreconf-2.72: running: /usr/local/bin/autoheader-2.72 --force
autoreconf-2.72: running: automake --add-missing --copy --force-missing
autoreconf-2.72: Leaving directory '.'
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether cc accepts -g... yes
checking for cc option to enable C11 features... none needed
checking whether cc understands -c and -o together... yes
checking for g++... no
checking for c++... c++
checking whether the compiler supports GNU C++... yes
checking whether c++ accepts -g... yes
checking for c++ option to enable C++11 features... none needed
checking for inline... inline
checking for a BSD-compatible install... /usr/bin/install -c
checking whether sleep supports fractional seconds... yes
checking filesystem timestamp resolution... 0.01
checking whether build environment is sane... yes
checking for a race-free mkdir -p... mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking xargs -n works... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... plaintar
checking dependency style of cc... gcc3
checking dependency style of c++... gcc3
checking build system type... x86_64-unknown-openbsd7.8
checking host system type... x86_64-unknown-openbsd7.8
checking how to print strings... print -r
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 393216
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking how to convert x86_64-unknown-openbsd7.8 file names to x86_64-unknown-openbsd7.8 format... func_convert_file_noop
checking how to convert x86_64-unknown-openbsd7.8 file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$
checking for dlltool... no
checking how to associate runtime and link libraries... print -r --
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if cc supports -fno-rtti -fno-exceptions... yes
checking for cc option to produce PIC... -fPIC -DPIC
checking if cc PIC flag -fPIC -DPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.o... (cached) yes
checking whether the cc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... openbsd7.8 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... c++ -E
checking for ld used by c++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes
checking for c++ option to produce PIC... -fPIC -DPIC
checking if c++ PIC flag -fPIC -DPIC works... yes
checking if c++ static flag -static works... yes
checking if c++ supports -c -o file.o... yes
checking if c++ supports -c -o file.o... (cached) yes
checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... openbsd7.8 ld.so
checking how to hardcode library paths into programs... immediate
checking for windres... no
checking if cc supports -std=gnu11... yes
checking operating system... OpenBSD
checking for nfds_t... yes
checking for pipe2... yes
checking if cc recognizes -pthread... yes
checking for library containing pthread_create... -lpthread
checking whether __atomic_load_n is supported... yes
checking for sys/time.h... yes
checking for clock_gettime... yes
checking for cc options needed to detect all undeclared functions... -fno-builtin
checking whether CLOCK_MONOTONIC is declared... yes
checking for pthread_condattr_setclock... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libusb-1.0.pc
config.status: creating Makefile
config.status: creating libusb/Makefile
config.status: creating examples/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating doc/doxygen.cfg
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

openbsd78vm$ make
make  all-recursive
Making all in libusb
  CC       core.lo
  CC       descriptor.lo
  CC       hotplug.lo
  CC       io.lo
  CC       strerror.lo
  CC       sync.lo
  CC       os/events_posix.lo
  CC       os/threads_posix.lo
  CC       os/openbsd_usb.lo
  CCLD     libusb-1.0.la
Making all in examples
  CC       dpfp.o
  CCLD     dpfp
  CC       dpfp_threaded-dpfp.o
  CCLD     dpfp_threaded
  CC       ezusb.o
  CC       fxload.o
  CCLD     fxload
  CC       hotplugtest.o
  CCLD     hotplugtest
  CC       listdevs.o
  CCLD     listdevs
  CC       sam3u_benchmark.o
  CCLD     sam3u_benchmark
  CC       testlibusb.o
  CCLD     testlibusb
  CC       xusb.o
  CCLD     xusb
Making all in tests
  CC       stress.o
  CC       testlib.o
  CCLD     stress
  CC       stress_mt-stress_mt.o
  CCLD     stress_mt
  CC       set_option.o
  CCLD     set_option
  CC       init_context.o
  CCLD     init_context

openbsd78vm$ doas make install
Making install in libusb
 mkdir -p '/usr/local/lib'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c   libusb-1.0.la '/usr/local/lib'
libtool: install: /usr/bin/install -c -m 644 .libs/libusb-1.0.so.5.0 /usr/local/lib/libusb-1.0.so.5.0
libtool: install: /usr/bin/install -c -m 644 .libs/libusb-1.0.lai /usr/local/lib/libusb-1.0.la
libtool: install: /usr/bin/install -c .libs/libusb-1.0.a /usr/local/lib/libusb-1.0.a
libtool: install: chmod 644 /usr/local/lib/libusb-1.0.a
libtool: install: ranlib -t /usr/local/lib/libusb-1.0.a
libtool: finish: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/sbin" ldconfig -m /usr/local/lib
 mkdir -p '/usr/local/include/libusb-1.0'
 /usr/bin/install -c -m 644 libusb.h '/usr/local/include/libusb-1.0'
Making install in examples
Making install in tests
 mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libusb-1.0.pc '/usr/local/lib/pkgconfig'
I am using latest libusb git. ``` openbsd78vm$ ./autogen.sh autoreconf-2.72: export WARNINGS= autoreconf-2.72: Entering directory '.' autoreconf-2.72: configure.ac: not using Gettext autoreconf-2.72: running: aclocal --force -I m4 autoreconf-2.72: configure.ac: tracing autoreconf-2.72: running: libtoolize --copy --force libtoolize: putting auxiliary files in `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' autoreconf-2.72: configure.ac: not using Intltool autoreconf-2.72: configure.ac: not using Gtkdoc autoreconf-2.72: running: aclocal --force -I m4 autoreconf-2.72: running: /usr/local/bin/autoconf-2.72 --force autoreconf-2.72: running: /usr/local/bin/autoheader-2.72 --force autoreconf-2.72: running: automake --add-missing --copy --force-missing autoreconf-2.72: Leaving directory '.' checking for gcc... no checking for cc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether cc accepts -g... yes checking for cc option to enable C11 features... none needed checking whether cc understands -c and -o together... yes checking for g++... no checking for c++... c++ checking whether the compiler supports GNU C++... yes checking whether c++ accepts -g... yes checking for c++ option to enable C++11 features... none needed checking for inline... inline checking for a BSD-compatible install... /usr/bin/install -c checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking whether make supports nested variables... yes checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... plaintar checking dependency style of cc... gcc3 checking dependency style of c++... gcc3 checking build system type... x86_64-unknown-openbsd7.8 checking host system type... x86_64-unknown-openbsd7.8 checking how to print strings... print -r checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by cc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 393216 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... no checking how to convert x86_64-unknown-openbsd7.8 file names to x86_64-unknown-openbsd7.8 format... func_convert_file_noop checking how to convert x86_64-unknown-openbsd7.8 file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$ checking for dlltool... no checking how to associate runtime and link libraries... print -r -- checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from cc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if cc supports -fno-rtti -fno-exceptions... yes checking for cc option to produce PIC... -fPIC -DPIC checking if cc PIC flag -fPIC -DPIC works... yes checking if cc static flag -static works... yes checking if cc supports -c -o file.o... yes checking if cc supports -c -o file.o... (cached) yes checking whether the cc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking dynamic linker characteristics... openbsd7.8 ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... c++ -E checking for ld used by c++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes checking for c++ option to produce PIC... -fPIC -DPIC checking if c++ PIC flag -fPIC -DPIC works... yes checking if c++ static flag -static works... yes checking if c++ supports -c -o file.o... yes checking if c++ supports -c -o file.o... (cached) yes checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... openbsd7.8 ld.so checking how to hardcode library paths into programs... immediate checking for windres... no checking if cc supports -std=gnu11... yes checking operating system... OpenBSD checking for nfds_t... yes checking for pipe2... yes checking if cc recognizes -pthread... yes checking for library containing pthread_create... -lpthread checking whether __atomic_load_n is supported... yes checking for sys/time.h... yes checking for clock_gettime... yes checking for cc options needed to detect all undeclared functions... -fno-builtin checking whether CLOCK_MONOTONIC is declared... yes checking for pthread_condattr_setclock... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libusb-1.0.pc config.status: creating Makefile config.status: creating libusb/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating doc/Makefile config.status: creating doc/doxygen.cfg config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands openbsd78vm$ make make all-recursive Making all in libusb CC core.lo CC descriptor.lo CC hotplug.lo CC io.lo CC strerror.lo CC sync.lo CC os/events_posix.lo CC os/threads_posix.lo CC os/openbsd_usb.lo CCLD libusb-1.0.la Making all in examples CC dpfp.o CCLD dpfp CC dpfp_threaded-dpfp.o CCLD dpfp_threaded CC ezusb.o CC fxload.o CCLD fxload CC hotplugtest.o CCLD hotplugtest CC listdevs.o CCLD listdevs CC sam3u_benchmark.o CCLD sam3u_benchmark CC testlibusb.o CCLD testlibusb CC xusb.o CCLD xusb Making all in tests CC stress.o CC testlib.o CCLD stress CC stress_mt-stress_mt.o CCLD stress_mt CC set_option.o CCLD set_option CC init_context.o CCLD init_context openbsd78vm$ doas make install Making install in libusb mkdir -p '/usr/local/lib' /bin/sh ../libtool --mode=install /usr/bin/install -c libusb-1.0.la '/usr/local/lib' libtool: install: /usr/bin/install -c -m 644 .libs/libusb-1.0.so.5.0 /usr/local/lib/libusb-1.0.so.5.0 libtool: install: /usr/bin/install -c -m 644 .libs/libusb-1.0.lai /usr/local/lib/libusb-1.0.la libtool: install: /usr/bin/install -c .libs/libusb-1.0.a /usr/local/lib/libusb-1.0.a libtool: install: chmod 644 /usr/local/lib/libusb-1.0.a libtool: install: ranlib -t /usr/local/lib/libusb-1.0.a libtool: finish: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/sbin" ldconfig -m /usr/local/lib mkdir -p '/usr/local/include/libusb-1.0' /usr/bin/install -c -m 644 libusb.h '/usr/local/include/libusb-1.0' Making install in examples Making install in tests mkdir -p '/usr/local/lib/pkgconfig' /usr/bin/install -c -m 644 libusb-1.0.pc '/usr/local/lib/pkgconfig' ```
mcuee commented 2026-04-26 00:19:27 -05:00 (Migrated from github.com)

Okay, looks like for libusb git, libusb-1.0 version is not well populated under OpenBSD.

openbsd78vm$ cat /usr/local/lib/pkgconfig/libusb-1.0.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: libusb-1.0
Description: C API for USB device access from Linux, Mac OS X, Windows, OpenBSD/NetBSD and Solaris userspace
Version: ..
Libs: -L${libdir} -lusb-1.0
Libs.private: -lpthread
Cflags: -I${includedir}/libusb-1.0

Let me use libusb-1.0.29 release instead.

Okay, looks like for libusb git, libusb-1.0 version is not well populated under OpenBSD. ``` openbsd78vm$ cat /usr/local/lib/pkgconfig/libusb-1.0.pc prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: libusb-1.0 Description: C API for USB device access from Linux, Mac OS X, Windows, OpenBSD/NetBSD and Solaris userspace Version: .. Libs: -L${libdir} -lusb-1.0 Libs.private: -lpthread Cflags: -I${includedir}/libusb-1.0 ``` Let me use libusb-1.0.29 release instead.
mcuee commented 2026-04-26 00:21:51 -05:00 (Migrated from github.com)

Somehow OpenBSD's pkgconf still does not work well.

openbsd78vm$ cat /usr/local/lib/pkgconfig/libusb-1.0.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: libusb-1.0
Description: C API for USB device access from Linux, Mac OS X, Windows, OpenBSD/NetBSD and Solaris userspace
Version: 1.0.29
Libs: -L${libdir} -lusb-1.0
Libs.private: -lpthread
Cflags: -I${includedir}/libusb-1.0

openbsd78vm$ pkg-config --version libusb-1.0
2.4.3

Oops, wrong command used.

openbsd78vm$ pkg-config --modversion libusb-1.0
1.0.29
<del>Somehow OpenBSD's pkgconf still does not work well.</del> ``` openbsd78vm$ cat /usr/local/lib/pkgconfig/libusb-1.0.pc prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: libusb-1.0 Description: C API for USB device access from Linux, Mac OS X, Windows, OpenBSD/NetBSD and Solaris userspace Version: 1.0.29 Libs: -L${libdir} -lusb-1.0 Libs.private: -lpthread Cflags: -I${includedir}/libusb-1.0 openbsd78vm$ pkg-config --version libusb-1.0 2.4.3 ``` Oops, wrong command used. ``` openbsd78vm$ pkg-config --modversion libusb-1.0 1.0.29 ```
mcuee commented 2026-04-26 00:48:46 -05:00 (Migrated from github.com)

Now it works.

openbsd78vm$ cmake -GNinja -B build -S . -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=1
-- hidapi: v0.16.0
-- Checking for module 'libusb-1.0>=1.0.9'
--   Found libusb-1.0, version 1.0.29
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Check for Iconv
-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Failed
-- Found Iconv: /usr/local/lib/libiconv.so.7.1 (found version "1.17")
-- Performing Test HIDAPI_ICONV_CONST
-- Performing Test HIDAPI_ICONV_CONST - Failed
-- Building hidtest
-- Configuring done (2.6s)
-- Generating done (0.0s)
-- Build files have been written to: /home/mcuee/build/hidapi/build

openbsd78vm$ cd build/

openbsd78vm$ ninja
[5/5] Linking C executable hidtest/hidtest

openbsd78vm$ ninja install
[0/1] Install the project...
-- Install configuration: "Release"
-- Installing: /home/mcuee/build/hidapi/install/lib/libhidapi-libusb.so.0.16.0
-- Installing: /home/mcuee/build/hidapi/install/lib/libhidapi-libusb.so.0
-- Set non-toolchain portion of runtime path of "/home/mcuee/build/hidapi/install/lib/libhidapi-libusb.so.0.16.0" to "/usr/local/lib"
-- Installing: /home/mcuee/build/hidapi/install/include/hidapi/hidapi.h
-- Installing: /home/mcuee/build/hidapi/install/include/hidapi/hidapi_libusb.h
-- Installing: /home/mcuee/build/hidapi/install/lib/pkgconfig/hidapi-libusb.pc
-- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/libhidapi.cmake
-- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/libhidapi-release.cmake
-- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/hidapi-config-version.cmake
-- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/hidapi-config.cmake
-- Installing: /home/mcuee/build/hidapi/install/bin/hidtest
-- Set non-toolchain portion of runtime path of "/home/mcuee/build/hidapi/install/bin/hidtest" to ""

openbsd78vm$ ninja clean
[1/1] Cleaning all built files...
Cleaning... 6 files.
Now it works. ``` openbsd78vm$ cmake -GNinja -B build -S . -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=1 -- hidapi: v0.16.0 -- Checking for module 'libusb-1.0>=1.0.9' -- Found libusb-1.0, version 1.0.29 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Check for Iconv -- Performing Test Iconv_IS_BUILT_IN -- Performing Test Iconv_IS_BUILT_IN - Failed -- Found Iconv: /usr/local/lib/libiconv.so.7.1 (found version "1.17") -- Performing Test HIDAPI_ICONV_CONST -- Performing Test HIDAPI_ICONV_CONST - Failed -- Building hidtest -- Configuring done (2.6s) -- Generating done (0.0s) -- Build files have been written to: /home/mcuee/build/hidapi/build openbsd78vm$ cd build/ openbsd78vm$ ninja [5/5] Linking C executable hidtest/hidtest openbsd78vm$ ninja install [0/1] Install the project... -- Install configuration: "Release" -- Installing: /home/mcuee/build/hidapi/install/lib/libhidapi-libusb.so.0.16.0 -- Installing: /home/mcuee/build/hidapi/install/lib/libhidapi-libusb.so.0 -- Set non-toolchain portion of runtime path of "/home/mcuee/build/hidapi/install/lib/libhidapi-libusb.so.0.16.0" to "/usr/local/lib" -- Installing: /home/mcuee/build/hidapi/install/include/hidapi/hidapi.h -- Installing: /home/mcuee/build/hidapi/install/include/hidapi/hidapi_libusb.h -- Installing: /home/mcuee/build/hidapi/install/lib/pkgconfig/hidapi-libusb.pc -- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/libhidapi.cmake -- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/libhidapi-release.cmake -- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/hidapi-config-version.cmake -- Installing: /home/mcuee/build/hidapi/install/lib/cmake/hidapi/hidapi-config.cmake -- Installing: /home/mcuee/build/hidapi/install/bin/hidtest -- Set non-toolchain portion of runtime path of "/home/mcuee/build/hidapi/install/bin/hidtest" to "" openbsd78vm$ ninja clean [1/1] Cleaning all built files... Cleaning... 6 files. ```
mcuee commented 2026-04-26 00:56:51 -05:00 (Migrated from github.com)

The following is to install to /usr/local.

openbsd78vm$ mkdir build_usr_local

openbsd78vm$ cd build_usr_local/

openbsd78vm$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DHIDAPI_BUILD_HIDTEST=1
-- The C compiler identification is Clang 19.1.7
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- hidapi: v0.16.0
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.4.3")
-- Checking for module 'libusb-1.0>=1.0.9'
--   Found libusb-1.0, version 1.0.29
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Check for Iconv
-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Failed
-- Found Iconv: /usr/local/lib/libiconv.so.7.1 (found version "1.17")
-- Performing Test HIDAPI_ICONV_CONST
-- Performing Test HIDAPI_ICONV_CONST - Failed
-- Building hidtest
-- Configuring done (3.2s)
-- Generating done (0.1s)
-- Build files have been written to: /home/mcuee/build/hidapi/build_usr_local
openbsd78vm$ ls
CMakeCache.txt      Makefile            export_generated    src
CMakeFiles          cmake_install.cmake hidtest
openbsd78vm$ cmake --build .
[ 25%] Building C object src/libusb/CMakeFiles/hidapi_libusb.dir/hid.c.o
[ 50%] Linking C shared library libhidapi-libusb.so
[ 50%] Built target hidapi_libusb
[ 75%] Building C object hidtest/CMakeFiles/hidtest.dir/test.c.o
[100%] Linking C executable hidtest
[100%] Built target hidtest
openbsd78vm$ sudo cmake --build . --target install
[ 50%] Built target hidapi_libusb
[100%] Built target hidtest
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/lib/libhidapi-libusb.so.0.16.0
-- Installing: /usr/local/lib/libhidapi-libusb.so.0
-- Set non-toolchain portion of runtime path of "/usr/local/lib/libhidapi-libusb.so.0.16.0" to "/usr/local/lib"
-- Installing: /usr/local/include/hidapi/hidapi.h
-- Installing: /usr/local/include/hidapi/hidapi_libusb.h
-- Installing: /usr/local/lib/pkgconfig/hidapi-libusb.pc
-- Installing: /usr/local/lib/cmake/hidapi/libhidapi.cmake
-- Installing: /usr/local/lib/cmake/hidapi/libhidapi-release.cmake
-- Installing: /usr/local/lib/cmake/hidapi/hidapi-config-version.cmake
-- Installing: /usr/local/lib/cmake/hidapi/hidapi-config.cmake
-- Installing: /usr/local/bin/hidtest
-- Set non-toolchain portion of runtime path of "/usr/local/bin/hidtest" to ""

openbsd78vm$ sudo /usr/local/bin/hidtest
hidapi test/example tool. Compiled with hidapi version 0.16.0, runtime version 0.16.0.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 0925 1234
  path: 0-1:1.0
  serial_number: (null)
  Manufacturer: CYPRESS
  Product:      EZ-USB FX2 HID USBHIDIO
  Release:      0
  Interface:    0
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (52 bytes)
0x06, 0xa0, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x09, 0x02, 0xa1,
0x00, 0x06, 0xa1, 0xff, 0x09, 0x03, 0x09, 0x04, 0x15, 0x80,
0x25, 0x7f, 0x35, 0x00, 0x45, 0xff, 0x75, 0x08, 0x95, 0x02,
0x81, 0x02, 0x09, 0x05, 0x09, 0x06, 0x15, 0x80, 0x25, 0x7f,
0x35, 0x00, 0x45, 0xff, 0x75, 0x08, 0x95, 0x02, 0x91, 0x02,
0xc0, 0xc0,
unable to open device
The following is to install to /usr/local. ``` openbsd78vm$ mkdir build_usr_local openbsd78vm$ cd build_usr_local/ openbsd78vm$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DHIDAPI_BUILD_HIDTEST=1 -- The C compiler identification is Clang 19.1.7 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- hidapi: v0.16.0 -- Found PkgConfig: /usr/bin/pkg-config (found version "2.4.3") -- Checking for module 'libusb-1.0>=1.0.9' -- Found libusb-1.0, version 1.0.29 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Check for Iconv -- Performing Test Iconv_IS_BUILT_IN -- Performing Test Iconv_IS_BUILT_IN - Failed -- Found Iconv: /usr/local/lib/libiconv.so.7.1 (found version "1.17") -- Performing Test HIDAPI_ICONV_CONST -- Performing Test HIDAPI_ICONV_CONST - Failed -- Building hidtest -- Configuring done (3.2s) -- Generating done (0.1s) -- Build files have been written to: /home/mcuee/build/hidapi/build_usr_local openbsd78vm$ ls CMakeCache.txt Makefile export_generated src CMakeFiles cmake_install.cmake hidtest openbsd78vm$ cmake --build . [ 25%] Building C object src/libusb/CMakeFiles/hidapi_libusb.dir/hid.c.o [ 50%] Linking C shared library libhidapi-libusb.so [ 50%] Built target hidapi_libusb [ 75%] Building C object hidtest/CMakeFiles/hidtest.dir/test.c.o [100%] Linking C executable hidtest [100%] Built target hidtest openbsd78vm$ sudo cmake --build . --target install [ 50%] Built target hidapi_libusb [100%] Built target hidtest Install the project... -- Install configuration: "Release" -- Installing: /usr/local/lib/libhidapi-libusb.so.0.16.0 -- Installing: /usr/local/lib/libhidapi-libusb.so.0 -- Set non-toolchain portion of runtime path of "/usr/local/lib/libhidapi-libusb.so.0.16.0" to "/usr/local/lib" -- Installing: /usr/local/include/hidapi/hidapi.h -- Installing: /usr/local/include/hidapi/hidapi_libusb.h -- Installing: /usr/local/lib/pkgconfig/hidapi-libusb.pc -- Installing: /usr/local/lib/cmake/hidapi/libhidapi.cmake -- Installing: /usr/local/lib/cmake/hidapi/libhidapi-release.cmake -- Installing: /usr/local/lib/cmake/hidapi/hidapi-config-version.cmake -- Installing: /usr/local/lib/cmake/hidapi/hidapi-config.cmake -- Installing: /usr/local/bin/hidtest -- Set non-toolchain portion of runtime path of "/usr/local/bin/hidtest" to "" openbsd78vm$ sudo /usr/local/bin/hidtest hidapi test/example tool. Compiled with hidapi version 0.16.0, runtime version 0.16.0. Compile-time version matches runtime version of hidapi. Device Found type: 0925 1234 path: 0-1:1.0 serial_number: (null) Manufacturer: CYPRESS Product: EZ-USB FX2 HID USBHIDIO Release: 0 Interface: 0 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (52 bytes) 0x06, 0xa0, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x09, 0x02, 0xa1, 0x00, 0x06, 0xa1, 0xff, 0x09, 0x03, 0x09, 0x04, 0x15, 0x80, 0x25, 0x7f, 0x35, 0x00, 0x45, 0xff, 0x75, 0x08, 0x95, 0x02, 0x81, 0x02, 0x09, 0x05, 0x09, 0x06, 0x15, 0x80, 0x25, 0x7f, 0x35, 0x00, 0x45, 0xff, 0x75, 0x08, 0x95, 0x02, 0x91, 0x02, 0xc0, 0xc0, unable to open device ```
mcuee commented 2026-04-26 00:57:44 -05:00 (Migrated from github.com)

I will close this issue as it is not an hidapi issue.

Rather it seems to be a libusb git issue with libusb-1.0.pc generation (not a problem with release).

I will close this issue as it is not an hidapi issue. Rather it seems to be a libusb git issue with libusb-1.0.pc generation (not a problem with release).
mcuee commented 2026-04-26 01:01:11 -05:00 (Migrated from github.com)

No issues building hidapitester using CMake either after the above.

openbsd78vm$ git clone https://github.com/todbot/hidapitester.git
Cloning into 'hidapitester'...
remote: Enumerating objects: 434, done.
remote: Counting objects: 100% (62/62), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 434 (delta 36), reused 44 (delta 26), pack-reused 372 (from 2)
Receiving objects: 100% (434/434), 762.96 KiB | 1.53 MiB/s, done.
Resolving deltas: 100% (226/226), done.
openbsd78vm$ cd hidapitester/
openbsd78vm$ ls
CMakeLists.txt LICENSE        Makefile       README.md      docs           hidapitester.c test_hardware
openbsd78vm$ cmake -B build
-- The C compiler identification is Clang 19.1.7
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- hidapitester version: v0.5
-- Using local HIDAPI from: /home/mcuee/build/hidapitester/../hidapi
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.4.3")
-- Checking for module 'libusb-1.0>=1.0.9'
--   Found libusb-1.0, version 1.0.29
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Check for Iconv
-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Failed
-- Found Iconv: /usr/local/lib/libiconv.so.7.1 (found version "1.17")
-- Performing Test HIDAPI_ICONV_CONST
-- Performing Test HIDAPI_ICONV_CONST - Failed
-- Configuring done (3.4s)
-- Generating done (0.4s)
-- Build files have been written to: /home/mcuee/build/hidapitester/build
openbsd78vm$ cmake --build build
[ 25%] Building C object hidapi/src/libusb/CMakeFiles/hidapi_libusb.dir/hid.c.o
[ 50%] Linking C static library libhidapi-libusb.a
[ 50%] Built target hidapi_libusb
[ 75%] Building C object CMakeFiles/hidapitester.dir/hidapitester.c.o
[100%] Linking C executable hidapitester
[100%] Built target hidapitester
No issues building hidapitester using CMake either after the above. ``` openbsd78vm$ git clone https://github.com/todbot/hidapitester.git Cloning into 'hidapitester'... remote: Enumerating objects: 434, done. remote: Counting objects: 100% (62/62), done. remote: Compressing objects: 100% (31/31), done. remote: Total 434 (delta 36), reused 44 (delta 26), pack-reused 372 (from 2) Receiving objects: 100% (434/434), 762.96 KiB | 1.53 MiB/s, done. Resolving deltas: 100% (226/226), done. openbsd78vm$ cd hidapitester/ openbsd78vm$ ls CMakeLists.txt LICENSE Makefile README.md docs hidapitester.c test_hardware openbsd78vm$ cmake -B build -- The C compiler identification is Clang 19.1.7 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- hidapitester version: v0.5 -- Using local HIDAPI from: /home/mcuee/build/hidapitester/../hidapi -- Found PkgConfig: /usr/bin/pkg-config (found version "2.4.3") -- Checking for module 'libusb-1.0>=1.0.9' -- Found libusb-1.0, version 1.0.29 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Check for Iconv -- Performing Test Iconv_IS_BUILT_IN -- Performing Test Iconv_IS_BUILT_IN - Failed -- Found Iconv: /usr/local/lib/libiconv.so.7.1 (found version "1.17") -- Performing Test HIDAPI_ICONV_CONST -- Performing Test HIDAPI_ICONV_CONST - Failed -- Configuring done (3.4s) -- Generating done (0.4s) -- Build files have been written to: /home/mcuee/build/hidapitester/build openbsd78vm$ cmake --build build [ 25%] Building C object hidapi/src/libusb/CMakeFiles/hidapi_libusb.dir/hid.c.o [ 50%] Linking C static library libhidapi-libusb.a [ 50%] Built target hidapi_libusb [ 75%] Building C object CMakeFiles/hidapitester.dir/hidapitester.c.o [100%] Linking C executable hidapitester [100%] Built target hidapitester ```
mcuee commented 2026-04-26 01:08:34 -05:00 (Migrated from github.com)

But the FX2HID example does not seem to work.

As this is a High Speed USB HID device which may have problems with BSDs, I have forced it to run in full speed mode.

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage modifyvm "netbsd101vm" --usb-ohci on --usb-ehci off --usb-xhci off

But it still does not work.

openbsd78vm$ cd build/hidapitester/build/

openbsd78vm$ ldd ./hidapitester
./hidapitester:
        Start            End              Type  Open Ref GrpRef Name
        0000057b3d0c5000 0000057b3d0d5000 exe   2    0   0      ./hidapitester
        0000057d9eef5000 0000057d9ef0f000 rlib  0    1   0      /usr/local/lib/libusb-1.0.so.5.0
        0000057d4e2fd000 0000057d4e30a000 rlib  0    2   0      /usr/lib/libpthread.so.28.0
        0000057e18267000 0000057e18379000 rlib  0    1   0      /usr/local/lib/libiconv.so.7.1
        0000057d80101000 0000057d80207000 rlib  0    1   0      /usr/lib/libc.so.102.0
        0000057da1dfe000 0000057da1dfe000 ld.so 0    1   0      /usr/libexec/ld.so

openbsd78vm$ sudo ./hidapitester --list
0925/1234: CYPRESS - EZ-USB FX2 HID USBHIDIO

openbsd78vm$ sudo ./hidapitester --vidpid 0925:1234 --list-detail
0925/1234: CYPRESS - EZ-USB FX2 HID USBHIDIO
  vendorId:      0x0925
  productId:     0x1234
  usagePage:     0x0000
  usage:         0x0000
  serial_number: (null)
  interface:     0
  path: 0-1:1.0

openbsd78vm$ sudo ./hidapitester  --vidpid 0925:1234 --open --buflen 64 -l 3 --send-output 0,1,2  --read-input
Password:
Opening device, vid/pid: 0x0925/0x1234
Writing output report of 3-bytes...wrote -1 bytes:
 00 01 02
Reading up to 3-byte input report, 250 msec timeout...read -1 bytes:
Closing device

openbsd78vm$ sudo ./hidapitester  --vidpid 0925:1234 --open --buflen 64 -l 2 --send-output 1,2  --read-input
Opening device, vid/pid: 0x0925/0x1234
Writing output report of 2-bytes...wrote -1 bytes:
 01 02
Reading up to 2-byte input report, 250 msec timeout...read -1 bytes:
Closing device
But the FX2HID example does not seem to work. As this is a High Speed USB HID device which may have problems with BSDs, I have forced it to run in full speed mode. ``` PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage modifyvm "netbsd101vm" --usb-ohci on --usb-ehci off --usb-xhci off ``` But it still does not work. ``` openbsd78vm$ cd build/hidapitester/build/ openbsd78vm$ ldd ./hidapitester ./hidapitester: Start End Type Open Ref GrpRef Name 0000057b3d0c5000 0000057b3d0d5000 exe 2 0 0 ./hidapitester 0000057d9eef5000 0000057d9ef0f000 rlib 0 1 0 /usr/local/lib/libusb-1.0.so.5.0 0000057d4e2fd000 0000057d4e30a000 rlib 0 2 0 /usr/lib/libpthread.so.28.0 0000057e18267000 0000057e18379000 rlib 0 1 0 /usr/local/lib/libiconv.so.7.1 0000057d80101000 0000057d80207000 rlib 0 1 0 /usr/lib/libc.so.102.0 0000057da1dfe000 0000057da1dfe000 ld.so 0 1 0 /usr/libexec/ld.so openbsd78vm$ sudo ./hidapitester --list 0925/1234: CYPRESS - EZ-USB FX2 HID USBHIDIO openbsd78vm$ sudo ./hidapitester --vidpid 0925:1234 --list-detail 0925/1234: CYPRESS - EZ-USB FX2 HID USBHIDIO vendorId: 0x0925 productId: 0x1234 usagePage: 0x0000 usage: 0x0000 serial_number: (null) interface: 0 path: 0-1:1.0 openbsd78vm$ sudo ./hidapitester --vidpid 0925:1234 --open --buflen 64 -l 3 --send-output 0,1,2 --read-input Password: Opening device, vid/pid: 0x0925/0x1234 Writing output report of 3-bytes...wrote -1 bytes: 00 01 02 Reading up to 3-byte input report, 250 msec timeout...read -1 bytes: Closing device openbsd78vm$ sudo ./hidapitester --vidpid 0925:1234 --open --buflen 64 -l 2 --send-output 1,2 --read-input Opening device, vid/pid: 0x0925/0x1234 Writing output report of 2-bytes...wrote -1 bytes: 01 02 Reading up to 2-byte input report, 250 msec timeout...read -1 bytes: Closing device ```
mcuee commented 2026-04-26 01:11:41 -05:00 (Migrated from github.com)

Changed the title and re-open the issue.

I will test with physical machine and another generic USB HID device.

Changed the title and re-open the issue. I will test with physical machine and another generic USB HID device.
mcuee commented 2026-04-27 10:16:24 -05:00 (Migrated from github.com)

Still using VM but changes to another Generic USB HID device mentioned here. The device works fine under FreeBSD 15 VM using PR #730.

Feature Report loopback is working fine but Input/Output loopback does not work under OpenBSD 7.8 VM, just like NetBSD 10.1 VM.

openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6  --read-input 1
Opening device, vid/pid: 0x0925/0x7001
Writing output report of 3-bytes...wrote -1 bytes:
 02 05 06
Reading up to 3-byte input report, 250 msec timeout...read -1 bytes:
Closing device

openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6  --read-input 1
Opening device, vid/pid: 0x0925/0x7001
Writing output report of 3-bytes...wrote -1 bytes:
 02 05 06
Reading up to 3-byte input report, 250 msec timeout...read -1 bytes:
Closing device

openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-feature 3,5,6  --read-feature 4
Opening device, vid/pid: 0x0925/0x7001
Writing 3-byte feature report...wrote 3 bytes:
 03 05 06
Reading 3-byte feature report, report_id 4...read 3 bytes:
 04 05 06
Closing device

openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-feature 3,5,6  --read-feature 4
Opening device, vid/pid: 0x0925/0x7001
Writing 3-byte feature report...wrote 3 bytes:
 03 05 06
Reading 3-byte feature report, report_id 4...read 3 bytes:
 04 05 06
Closing device
Still using VM but changes to another Generic USB HID device mentioned here. The device works fine under FreeBSD 15 VM using PR #730. * https://github.com/libusb/hidapi/pull/730#issuecomment-4327993991 Feature Report loopback is working fine but Input/Output loopback does not work under OpenBSD 7.8 VM, just like NetBSD 10.1 VM. * https://github.com/libusb/hidapi/issues/797#issuecomment-4328110785 ``` openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6 --read-input 1 Opening device, vid/pid: 0x0925/0x7001 Writing output report of 3-bytes...wrote -1 bytes: 02 05 06 Reading up to 3-byte input report, 250 msec timeout...read -1 bytes: Closing device openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6 --read-input 1 Opening device, vid/pid: 0x0925/0x7001 Writing output report of 3-bytes...wrote -1 bytes: 02 05 06 Reading up to 3-byte input report, 250 msec timeout...read -1 bytes: Closing device openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-feature 3,5,6 --read-feature 4 Opening device, vid/pid: 0x0925/0x7001 Writing 3-byte feature report...wrote 3 bytes: 03 05 06 Reading 3-byte feature report, report_id 4...read 3 bytes: 04 05 06 Closing device openbsd78vm$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-feature 3,5,6 --read-feature 4 Opening device, vid/pid: 0x0925/0x7001 Writing 3-byte feature report...wrote 3 bytes: 03 05 06 Reading 3-byte feature report, report_id 4...read 3 bytes: 04 05 06 Closing device ```
mcuee commented 2026-05-01 17:53:49 -05:00 (Migrated from github.com)

Still using VirtualBox VM.

CircuitPython USB HID example from here, using Raspberry Pi Pico 2 (loop back the contents of Output Report 2 to Input Report 1, other than the first byte which is the Report ID).
https://github.com/libusb/hidapi/discussions/590#discussioncomment-6201631

This example does not work under OpenBSD.

openbsd78vm$ sudo hidtest
hidapi test/example tool. Compiled with hidapi version 0.16.0, runtime version 0.16.0.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 0925 7001
  path: 1-1:1.0
  serial_number: (null)
  Manufacturer: Lakeview Research
  Product:      Generic HID
  Release:      1
  Interface:    0
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (45 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x15, 0x00, 0x26,
0xff, 0x00, 0x75, 0x08, 0x95, 0x02, 0x85, 0x01, 0x09, 0x00,
0x82, 0x02, 0x01, 0x85, 0x02, 0x09, 0x00, 0x92, 0x02, 0x01,
0x85, 0x03, 0x09, 0x00, 0xb2, 0x02, 0x01, 0x85, 0x04, 0x09,
0x00, 0xb2, 0x02, 0x01, 0xc0,
Device Found
  type: 2e8a 000b
  path: 1-2:1.3
  serial_number: 14777074C0C7A87F
  Manufacturer: Raspberry Pi
  Product:      Pico 2
  Release:      100
  Interface:    3
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (42 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09,
0x00, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f,
0x82, 0x02, 0x01, 0x85, 0x02, 0x09, 0x00, 0x09, 0x00, 0x15,
0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 0x92, 0x02,
0x01, 0xc0,
unable to open device

openbsd78vm$ sudo ./hidapitester --vidpid 2e8a:000b --list-detail
2E8A/000B: Raspberry Pi - Pico 2
  vendorId:      0x2E8A
  productId:     0x000B
  usagePage:     0x0000
  usage:         0x0000
  serial_number: 14777074C0C7A87F
  interface:     3
  path: 1-2:1.3

openbsd78vm$ sudo ./hidapitester --vidpid 2e8a:000b --open -l 64 --send-output 2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63 --timeout 2000 --read-input 1
Opening device, vid/pid: 0x2E8A/0x000B
Writing output report of 64-bytes...wrote -1 bytes:
 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
Reading up to 64-byte input report, 2000 msec timeout...read -1 bytes:
Closing device
Still using VirtualBox VM. CircuitPython USB HID example from here, using Raspberry Pi Pico 2 (loop back the contents of Output Report 2 to Input Report 1, other than the first byte which is the Report ID). https://github.com/libusb/hidapi/discussions/590#discussioncomment-6201631 This example does not work under OpenBSD. ``` openbsd78vm$ sudo hidtest hidapi test/example tool. Compiled with hidapi version 0.16.0, runtime version 0.16.0. Compile-time version matches runtime version of hidapi. Device Found type: 0925 7001 path: 1-1:1.0 serial_number: (null) Manufacturer: Lakeview Research Product: Generic HID Release: 1 Interface: 0 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (45 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x02, 0x85, 0x01, 0x09, 0x00, 0x82, 0x02, 0x01, 0x85, 0x02, 0x09, 0x00, 0x92, 0x02, 0x01, 0x85, 0x03, 0x09, 0x00, 0xb2, 0x02, 0x01, 0x85, 0x04, 0x09, 0x00, 0xb2, 0x02, 0x01, 0xc0, Device Found type: 2e8a 000b path: 1-2:1.3 serial_number: 14777074C0C7A87F Manufacturer: Raspberry Pi Product: Pico 2 Release: 100 Interface: 3 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (42 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0x00, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 0x82, 0x02, 0x01, 0x85, 0x02, 0x09, 0x00, 0x09, 0x00, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 0x92, 0x02, 0x01, 0xc0, unable to open device openbsd78vm$ sudo ./hidapitester --vidpid 2e8a:000b --list-detail 2E8A/000B: Raspberry Pi - Pico 2 vendorId: 0x2E8A productId: 0x000B usagePage: 0x0000 usage: 0x0000 serial_number: 14777074C0C7A87F interface: 3 path: 1-2:1.3 openbsd78vm$ sudo ./hidapitester --vidpid 2e8a:000b --open -l 64 --send-output 2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63 --timeout 2000 --read-input 1 Opening device, vid/pid: 0x2E8A/0x000B Writing output report of 64-bytes...wrote -1 bytes: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F Reading up to 64-byte input report, 2000 msec timeout...read -1 bytes: Closing device ```
mcuee commented 2026-05-02 04:47:32 -05:00 (Migrated from github.com)

Using Physical Machine, an Intel N4200 CPU based mini PC.

The results are more or less the same as the VirtualBox VM, but a bit worse, since feature report loopback for 0925:7001 does work.

[mcuee@openbsdn4200 build]$ uname -a
OpenBSD openbsdn4200.lan 7.8 GENERIC.MP#54 amd64

[mcuee@openbsdn4200 build]$ cc -v
OpenBSD clang version 19.1.7
Target: amd64-unknown-openbsd7.8
Thread model: posix
InstalledDir: /usr/bin

[mcuee@openbsdn4200 build]$ sudo ./hidapitester --list
25A7/FA61: Compx - 2.4G Receiver
25A7/FA61: Compx - 2.4G Receiver
1EA7/0064: (null) - 2.4G Mouse
0925/7001: Lakeview Research - Generic HID
2E8A/000B: Raspberry Pi - Pico 2

[mcuee@openbsdn4200 build]$ sudo hidtest
hidapi test/example tool. Compiled with hidapi version 0.16.0, runtime version 0.16.0.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 25a7 fa61
  path: 0-1:1.0
  serial_number: (null)
  Manufacturer: Compx
  Product:      2.4G Receiver
  Release:      691
  Interface:    0
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (57 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x08, 0x19, 0x01, 
0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 
0x91, 0x02, 0x95, 0x05, 0x91, 0x01, 0x05, 0x07, 0x19, 0xe0, 
0x29, 0xe7, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 
0x81, 0x01, 0x05, 0x07, 0x19, 0x00, 0x2a, 0xff, 0x00, 0x26, 
0xff, 0x00, 0x95, 0x06, 0x81, 0x00, 0xc0, 
Device Found
  type: 25a7 fa61
  path: 0-1:1.1
  serial_number: (null)
  Manufacturer: Compx
  Product:      2.4G Receiver
  Release:      691
  Interface:    1
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (215 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 
0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 
0x25, 0x01, 0x95, 0x05, 0x75, 0x01, 0x81, 0x02, 0x95, 0x01, 
0x75, 0x03, 0x81, 0x01, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 
0x16, 0x00, 0x80, 0x26, 0xff, 0x7f, 0x75, 0x10, 0x95, 0x02, 
0x81, 0x06, 0xc0, 0xa1, 0x00, 0x05, 0x01, 0x09, 0x38, 0x15, 
0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 
0xa1, 0x00, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x95, 0x01, 0x75, 
0x08, 0x15, 0x81, 0x25, 0x7f, 0x81, 0x06, 0xc0, 0xc0, 0x06, 
0x01, 0xff, 0x09, 0x00, 0xa1, 0x01, 0x85, 0x02, 0x09, 0x00, 
0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x81, 
0x02, 0xc0, 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x05, 
0x15, 0x00, 0x26, 0x3c, 0x02, 0x19, 0x00, 0x2a, 0x3c, 0x02, 
0x75, 0x10, 0x95, 0x01, 0x81, 0x00, 0xc0, 0x05, 0x01, 0x09, 
0x80, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x81, 0x29, 0x83, 0x15, 
0x00, 0x25, 0x01, 0x95, 0x03, 0x75, 0x01, 0x81, 0x02, 0x95, 
0x01, 0x75, 0x05, 0x81, 0x01, 0xc0, 0x06, 0xbc, 0xff, 0x09, 
0x88, 0xa1, 0x01, 0x85, 0x04, 0x95, 0x01, 0x75, 0x08, 0x15, 
0x00, 0x26, 0xff, 0x00, 0x19, 0x00, 0x2a, 0xff, 0x00, 0x81, 
0x00, 0xc0, 0x06, 0x02, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 
0x06, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 
0x95, 0x07, 0xb1, 0x02, 0xc0, 
Device Found
  type: 1ea7 0064
  path: 0-2:1.0
  serial_number: (null)
  Manufacturer: (null)
  Product:      2.4G Mouse
  Release:      200
  Interface:    0
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (105 bytes)
0x06, 0xb5, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0xb5, 0x09, 
0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 
0x81, 0x02, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 
0x08, 0x95, 0x07, 0x91, 0x02, 0xc0, 0x05, 0x01, 0x09, 0x02, 
0xa1, 0x01, 0x85, 0x02, 0x09, 0x01, 0xa1, 0x00, 0x05, 0x09, 
0x19, 0x01, 0x29, 0x08, 0x15, 0x00, 0x25, 0x01, 0x95, 0x08, 
0x75, 0x01, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 
0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 
0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 
0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x95, 
0x01, 0x81, 0x06, 0xc0, 0xc0, 
Device Found
  type: 0925 7001
  path: 0-1:1.0
  serial_number: (null)
  Manufacturer: Lakeview Research
  Product:      Generic HID
  Release:      1
  Interface:    0
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (57 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x08, 0x19, 0x01, 
0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 
0x91, 0x02, 0x95, 0x05, 0x91, 0x01, 0x05, 0x07, 0x19, 0xe0, 
0x29, 0xe7, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 
0x81, 0x01, 0x05, 0x07, 0x19, 0x00, 0x2a, 0xff, 0x00, 0x26, 
0xff, 0x00, 0x95, 0x06, 0x81, 0x00, 0xc0, 
Device Found
  type: 2e8a 000b
  path: 0-2:1.3
  serial_number: 14777074C0C7A87F
  Manufacturer: Raspberry Pi
  Product:      Pico 2
  Release:      100
  Interface:    3
  Usage (page): 0x0 (0x0)
  Bus type: 1 (USB)

  Report Descriptor: (42 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 
0x00, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 
0x82, 0x02, 0x01, 0x85, 0x02, 0x09, 0x00, 0x09, 0x00, 0x15, 
0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 0x92, 0x02, 
0x01, 0xc0, 
unable to open device

[mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 2e8a:000b --list-detail
2E8A/000B: Raspberry Pi - Pico 2
  vendorId:      0x2E8A
  productId:     0x000B
  usagePage:     0x0000
  usage:         0x0000
  serial_number: 14777074C0C7A87F 
  interface:     3 
  path: 0-2:1.3

[mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 2e8a:000b --open -l 64 --send-output 2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63 --timeout 2000 --read-input 1
Opening device, vid/pid: 0x2E8A/0x000B
Writing output report of 64-bytes...wrote -1 bytes:
 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
Reading up to 64-byte input report, 2000 msec timeout...read -1 bytes:
Closing device

[mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 2e8a:000b --open -l 64 --send-output 2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63 --timeout 2000 --read-input 1
Opening device, vid/pid: 0x2E8A/0x000B
Writing output report of 64-bytes...wrote -1 bytes:
 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
Reading up to 64-byte input report, 2000 msec timeout...read -1 bytes:
Closing device

[mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6  --read-input 1
Opening device, vid/pid: 0x0925/0x7001
Writing output report of 3-bytes...wrote -1 bytes:
 02 05 06
Reading up to 3-byte input report, 250 msec timeout...read -1 bytes:
Closing device

[mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6  --read-input 1
Opening device, vid/pid: 0x0925/0x7001
Writing output report of 3-bytes...wrote -1 bytes:
 02 05 06
Reading up to 3-byte input report, 250 msec timeout...read -1 bytes:
Closing device

[mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-feature 3,5,6  --read-feature 4
Opening device, vid/pid: 0x0925/0x7001
Writing 3-byte feature report...wrote -1 bytes:
 03 05 06
Reading 3-byte feature report, report_id 4...read -1 bytes:
 04 00 00
Closing device
Using Physical Machine, an Intel N4200 CPU based mini PC. The results are more or less the same as the VirtualBox VM, but a bit worse, since feature report loopback for 0925:7001 does work. ``` [mcuee@openbsdn4200 build]$ uname -a OpenBSD openbsdn4200.lan 7.8 GENERIC.MP#54 amd64 [mcuee@openbsdn4200 build]$ cc -v OpenBSD clang version 19.1.7 Target: amd64-unknown-openbsd7.8 Thread model: posix InstalledDir: /usr/bin [mcuee@openbsdn4200 build]$ sudo ./hidapitester --list 25A7/FA61: Compx - 2.4G Receiver 25A7/FA61: Compx - 2.4G Receiver 1EA7/0064: (null) - 2.4G Mouse 0925/7001: Lakeview Research - Generic HID 2E8A/000B: Raspberry Pi - Pico 2 [mcuee@openbsdn4200 build]$ sudo hidtest hidapi test/example tool. Compiled with hidapi version 0.16.0, runtime version 0.16.0. Compile-time version matches runtime version of hidapi. Device Found type: 25a7 fa61 path: 0-1:1.0 serial_number: (null) Manufacturer: Compx Product: 2.4G Receiver Release: 691 Interface: 0 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (57 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x95, 0x05, 0x91, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x01, 0x05, 0x07, 0x19, 0x00, 0x2a, 0xff, 0x00, 0x26, 0xff, 0x00, 0x95, 0x06, 0x81, 0x00, 0xc0, Device Found type: 25a7 fa61 path: 0-1:1.1 serial_number: (null) Manufacturer: Compx Product: 2.4G Receiver Release: 691 Interface: 1 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (215 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x95, 0x05, 0x75, 0x01, 0x81, 0x02, 0x95, 0x01, 0x75, 0x03, 0x81, 0x01, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x00, 0x80, 0x26, 0xff, 0x7f, 0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0xc0, 0xa1, 0x00, 0x05, 0x01, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xa1, 0x00, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x95, 0x01, 0x75, 0x08, 0x15, 0x81, 0x25, 0x7f, 0x81, 0x06, 0xc0, 0xc0, 0x06, 0x01, 0xff, 0x09, 0x00, 0xa1, 0x01, 0x85, 0x02, 0x09, 0x00, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0xc0, 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x05, 0x15, 0x00, 0x26, 0x3c, 0x02, 0x19, 0x00, 0x2a, 0x3c, 0x02, 0x75, 0x10, 0x95, 0x01, 0x81, 0x00, 0xc0, 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x81, 0x29, 0x83, 0x15, 0x00, 0x25, 0x01, 0x95, 0x03, 0x75, 0x01, 0x81, 0x02, 0x95, 0x01, 0x75, 0x05, 0x81, 0x01, 0xc0, 0x06, 0xbc, 0xff, 0x09, 0x88, 0xa1, 0x01, 0x85, 0x04, 0x95, 0x01, 0x75, 0x08, 0x15, 0x00, 0x26, 0xff, 0x00, 0x19, 0x00, 0x2a, 0xff, 0x00, 0x81, 0x00, 0xc0, 0x06, 0x02, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x06, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0, Device Found type: 1ea7 0064 path: 0-2:1.0 serial_number: (null) Manufacturer: (null) Product: 2.4G Mouse Release: 200 Interface: 0 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (105 bytes) 0x06, 0xb5, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0xb5, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x91, 0x02, 0xc0, 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x02, 0x09, 0x01, 0xa1, 0x00, 0x05, 0x09, 0x19, 0x01, 0x29, 0x08, 0x15, 0x00, 0x25, 0x01, 0x95, 0x08, 0x75, 0x01, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 0925 7001 path: 0-1:1.0 serial_number: (null) Manufacturer: Lakeview Research Product: Generic HID Release: 1 Interface: 0 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (57 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x95, 0x05, 0x91, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x01, 0x05, 0x07, 0x19, 0x00, 0x2a, 0xff, 0x00, 0x26, 0xff, 0x00, 0x95, 0x06, 0x81, 0x00, 0xc0, Device Found type: 2e8a 000b path: 0-2:1.3 serial_number: 14777074C0C7A87F Manufacturer: Raspberry Pi Product: Pico 2 Release: 100 Interface: 3 Usage (page): 0x0 (0x0) Bus type: 1 (USB) Report Descriptor: (42 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0x00, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 0x82, 0x02, 0x01, 0x85, 0x02, 0x09, 0x00, 0x09, 0x00, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 0x92, 0x02, 0x01, 0xc0, unable to open device [mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 2e8a:000b --list-detail 2E8A/000B: Raspberry Pi - Pico 2 vendorId: 0x2E8A productId: 0x000B usagePage: 0x0000 usage: 0x0000 serial_number: 14777074C0C7A87F interface: 3 path: 0-2:1.3 [mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 2e8a:000b --open -l 64 --send-output 2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63 --timeout 2000 --read-input 1 Opening device, vid/pid: 0x2E8A/0x000B Writing output report of 64-bytes...wrote -1 bytes: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F Reading up to 64-byte input report, 2000 msec timeout...read -1 bytes: Closing device [mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 2e8a:000b --open -l 64 --send-output 2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63 --timeout 2000 --read-input 1 Opening device, vid/pid: 0x2E8A/0x000B Writing output report of 64-bytes...wrote -1 bytes: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F Reading up to 64-byte input report, 2000 msec timeout...read -1 bytes: Closing device [mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6 --read-input 1 Opening device, vid/pid: 0x0925/0x7001 Writing output report of 3-bytes...wrote -1 bytes: 02 05 06 Reading up to 3-byte input report, 250 msec timeout...read -1 bytes: Closing device [mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-output 2,5,6 --read-input 1 Opening device, vid/pid: 0x0925/0x7001 Writing output report of 3-bytes...wrote -1 bytes: 02 05 06 Reading up to 3-byte input report, 250 msec timeout...read -1 bytes: Closing device [mcuee@openbsdn4200 build]$ sudo ./hidapitester --vidpid 0925:7001 --open --buflen 64 -l 3 --send-feature 3,5,6 --read-feature 4 Opening device, vid/pid: 0x0925/0x7001 Writing 3-byte feature report...wrote -1 bytes: 03 05 06 Reading 3-byte feature report, report_id 4...read -1 bytes: 04 00 00 Closing device ```
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-libusb/hidapi#798
No description provided.