编译openkylin2.0内核增加xbox 360手柄支持。

openkylin2.0内核不带手柄驱动,导致无法通过手柄玩游戏。对于通常的xbox 360兼容手柄来说,解决的方法有两个,一个是安装xboxdrv软件包,一个是重新编译内核增加手柄支持。
方法一:
sudo apt install xboxdrv
在需要使用摇杆时,新增终端窗口,运行sudo xboxdrv,保持该窗口处于打开状态,另外运行相应程序,即可正常使用手柄。
此方法下,可以将xboxdrv设置为守护进程模式,实现手柄自动支持,但还没有深入研究。
方法二:
//准备好内核源程序
sudo apt install linux-source
cd /usr/src/linux-source-6.6.0
sudo tar xjvf linux-source-6.6.0.tar.bz2
cd linux-source-6.6.0
sudo cp /boot/config-6.6.0-1-generic .config    //使用系统自带的config,具体版本号可能不同
//安装需要的软件包
sudo apt install libncurses-dev libelf-dev libssl-dev flex bison pahole

//增加手柄支持
sudo make menuconfig
选择device drivers -> Input device support -> Joysticks/Gamepads,进入后,找到Xbox gamepad support,将其选中为<M>,并选中随后两个子项。保存后退出。
//使用cpu最多核心编译内核程序
sudo make -j $(nproc)
//安装modules
sudo make modules_install
//安装内核,现在很智能了,会自动创建initramfs和grub.config
sudo make install
 没有报错的话,重新启动后,就可以愉快地玩耍了。:P
2 个赞

我还以为装了steam就能自动适配了

八位堂的也通用吗?

能兼容xbox 360手柄就可以。我的也是北通手柄,兼容xbox360,能够正常使用。

1 个赞

有需要可以加,我尝试加一下,不过版本还不知道时候更新

我看了一下后续更新的版本,INPUT_JOYDEV 这个是 =m 的,应该已经 Ok 了,只需要 release 组正常发布即可。

joysticks=m,只是以模块方式支持手柄而已,具体的支持情况还是要看驱动,不选择次级菜单里面的xbox支持,接上xbox手柄就没反应。当然,可以安装xboxdrv实现用户空间的驱动支持。