求助:ubuntu下连接手柄,没有/dev/input/js0

我使用的镜像是VIM3_Ubuntu-server-focal_Linux-4.9_arm64_SD-USB_V0.9-20200530
然后使用bluetoothctl连接北通阿修罗2(BTP-2585N2)手柄,连接成功后在/dev/input/下没有出现jsx。如果使用USB线直接连接北通阿修罗(BTP-2585)手柄,会增加一个鼠标设备/dev/input/mouse1;USB线连接阿修罗2手柄则依旧没有反应。
而同样的方法在树莓派3上面操作,会出现/dev/input/js0,使用jstest测试,结果正常。
因为我打算使用ROS的joy,需要用到jsx,所以想请教一下,在VIM3上应该如何操作?

看了下默认kernel好像没有加JOYSTICK支持,我这边编译了一个新的kernel,你试着安装看看,我这边没有设备测试,所以需要你那边验证看看。

更新内核:

$ wget https://dl.khadas.com/test/linux-image-amlogic-4.9_0.9.5_arm64.deb
$ sudo dpkg -i linux-image-amlogic-4.9_0.9.5_arm64.deb
$ sync
$ sudo reboot
1 Like

非常感谢!
我测试了一下,已经出现了/dev/input/js0
不过使用jstest测试时和树莓派有一些不一样:树莓派在连接阿修罗2后,左右摇杆的值都是0;在连接阿修罗1后,左右摇杆的值都是-32767(边界值),但是在按任意键后,都会全部刷新为正常值(0)。而现在VIM3连接其中一个手柄后,左右摇杆的值都是-32767(边界值),摇动摇杆只能让对应的值显示正常值,其他值并不刷新。


注:
4、5对应trigger,未按下时值为-32767,按到底为32768;
0~3对应左右摇杆的X、Y轴,位于中间时值为0。

我上传了个新的内核,再次更新下kernel试试,方法和之前一样。

我更新了一下,好像和以前的一样,依旧是-32767

这个就不太清楚了,不知道这个是否需要额外的驱动支持?我手里没设备,也没法继续调试。

是的,需要安装joystick和jstest-gtk来进行测试。
sudo apt install jstest-gtk joystick

我现在参照编译文档
已经完成了内核编译,但是不清楚该如何设置添加手柄驱动。
请问接下来我应该如何操作呢?

你可以先看看4.9内核里面是否已经包含这个的驱动了,如果有,那么直接把这个驱动配置上就行了。

如何增加内核配置?都是通用的方法,如下:

$ make ARCH=arm64 kvims_defconfig
$ make ARCH=arm64 menuconfig
### 增加你的配置,保存退出
$ make ARCH=arm64 savedefconfig
$ mv defconfig arch/arm64/configs/kvims_defconfig  

然后进入Fenix目录,重新编译kenrel debian包

$ make kernel-deb

如何4.9内核里面没有,那么你就得自己去移植驱动过来了。

我发现只要增加
CONFIG_INPUT_JOYDEV=m
就可以正常识别我现在用的手柄了,但是仍然有前面所述的问题。
感觉这个问题影响不大,暂时先这样吧,非常感谢!

这个我之前提供给你的测试内核就是加了这个的。