WSL2下连接XBOX手柄详细教程 | 您所在的位置:网站首页 › 口罩戴好戴满多久 › WSL2下连接XBOX手柄详细教程 |
WSL2下连接手柄操作
前言连接USB设备重新编译内核参考
前言
最近由于项目需要,要求在linux下连接xbox手柄去控制水下机器人(所以没有办法直接连在机器人上面)所以有了需要在WSL2上连接手柄的需求,下面这篇文章就记录一下笔者在WSL2上连接手柄所遇到了一些坑 笔者采用的手柄是北通的XBOX手柄,若有其他不一样的,可能遇到其他不一样的问题,但一般的XBOX手柄应该都是一样的 连接USB设备关于WSL2如何连接USB设备,请仔细阅读微软的官方文档。连接USB设备 主要就是使用usbipd-win这个项目把USB转IP发送到WSL下面。 插入手柄到电脑上面,管理员模式下打开PowerShell,输入 usbipd wsl list可以查看当前连接的所有USB设备
原来WSL的内核并没有使能手柄驱动,但是WSL都一直走过来了,我实在又不想使用笨重的VMWare,只能见山开山,遇水架桥了 重新编译内核关于如何重新编译wsl的linux内核,网上有许多参考方法,这里介绍一下我参考的两篇 参考1 参考2 首先从微软的官方github上下载wsl内核源码(微软官方内核源码),建议下载比较新的内核(笔者是5.15),其他内核可能没有使能USB/IP,导致usbipd没办法使用,还需要自己打开。 文件比较大,这里怎么在wsl里面使用windows的代理进行科学上网,网上也有其他写的好的博客,笔者在此不过多赘述。 下载好了后,我们进入 WSL2-Linux-Kernel 文件夹内,编译前需要下载一些工具,在参考的博客里面都有提及,如果还缺少其他工具,根据提示自行下载即可。 进入文件夹后,输入 # 注意要指定 KCONFIG_CONFIG 参数 # 内核配置文件的默认位置是源码目录下的 .config,而 WSL 2 的内核配置文件在 Microsoft/config-wsl,如果不手动指定的话会载入默认配置文件 # 当然你也可以手动复制一份内核配置文件出来,或者进 menuconfig 之后再手动加载 sudo make menuconfig KCONFIG_CONFIG=Microsoft/config-wsl进入图形化配置界面 Device Drivers—>Input device support—>Joystick interface Device Drivers—>Input device support—>Joysticks/Gamepads—>X-Box gamepad support&&X-Box gamepad rumble support
然后开始编译内核 # 编译并生成压缩后的内核,我比较懒,就直接把这些驱动全编译进内核了 sudo make -j$(nproc) bzImage KCONFIG_CONFIG=Microsoft/config-wsl # 作为内核模组编译的话,把模组编译出来,然后安装模组 sudo make -j$(nproc) modules KCONFIG_CONFIG=Microsoft/config-wsl sudo make -j$(nproc) modules_install KCONFIG_CONFIG=Microsoft/config-wsl编译好的内核存放在arch/x86/boot/bzImage 这里
然后输入 sudo jstest /dev/input/js0和串口一样,操作dev下设备都是需要root权限,如果不加sudo,可能无法正常读取 |
CopyRight 2018-2019 实验室设备网 版权所有 |