Я использую Ubuntu 18.0.4.4 LTS с подключенным USB-джойстиком на базе Arduino для домашнего приготовления.
ОС видит устройство как на /dev/input/js0
, так и на /dev/input/event5
и jstest работает с ним:
$ jstest /dev/input/js0
Driver version is 2.1.0.
Joystick (Arduino LLC Arduino Micro) has 6 axes (X, Y, Z, Rx, Ry, Rz)
and 0 buttons ().
Testing ... (interrupt to exit)
Axes: 0: 0 1: 0 2: 0 3: 0 4: 0 5: 0 ^C
evtest также работает, как root:
$ sudo evtest /dev/input/event5
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x2341 product 0x8037 version 0x101
Input device name: "Arduino LLC Arduino Micro"
Supported events:
Event type 0 (EV_SYN)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min -100
Max 100
Flat 12
Event code 1 (ABS_Y)
Value 0
Min -100
Max 100
Flat 12
Event code 2 (ABS_Z)
Value 0
Min -100
Max 100
Flat 12
Event code 3 (ABS_RX)
Value 0
Min -100
Max 100
Flat 12
Event code 4 (ABS_RY)
Value 0
Min -100
Max 100
Flat 12
Event code 5 (ABS_RZ)
Value 0
Min -100
Max 100
Flat 12
Тем не менее, SDL_NumJoysticks()
SDL2 всегда возвращает 0, несмотря на инициализацию SDL2 с поддержкой джойстика и геймпада :
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER | SDL_INIT_TIMER | SDL_INIT_AUDIO );
Почему нельзя SDL2 не использовать рабочее устройство / dev / input / js0 в Ubuntu?