• Linux系统中使用Xbox360手柄


      最近一个项目中需要用到Xbox360游戏手柄,硬件平台为周立功A7开发板,EPC-6G2C-L,折腾半天,终于弄好了;

      正常电脑Ubuntu系统是自带手柄驱动的,将手柄插上电脑USB接口,将自动出现设备接口文件,路径为/dev/input/js0;

    只要电脑能找到js0,则手柄可以正常使用,直接读写文件即可获取手柄各个按钮及旋钮的值;

      但是A7板卡上并不是完整的Ubuntu系统,而只是一个Linux内核,所以无论怎么插拔360手柄,都无法找到js0;进而也

    无法操作手柄,究其原因就是内核驱动不支持,Joystick驱动程序并未加载内核中,知道原因了,就好搞了,方法就是重新

    编译内核,将驱动加载其中,然后给板卡重新烧录内核文件,步骤如下:

      1、在周立功官网下载相应板卡的系统源文件,解压tar zxvf linux-src-bsp-4.1.15-09-12.tar.gz;

      2、进入linux-src目录,修改built-zImage.sh文件,增加一行代码menuconfig,如下:

      3、执行命令:./built-zImage.sh,运行一段时间后,会弹出窗口,如下:

      4、仅此进入:Device Drivers--->Input device support,分别选择Joystick interface和Joysticks/Gamepads;

      5、同时进入Joysticks/Gamepads下级目录,选中如下三项:

      6、选完之后,保存退出,内核将继续编译;

      7、大概十几分钟后,编译完成,生成内核编译文件:arch/arm/boot/zImage;

      8、将zImage文件拷贝到板卡中,tftp -gr zImage 192.168.1.100
      9、擦除内核Flash,命令如下:

      10、烧写内核文件,如下:

      11、重启板卡系统后,将手柄插到板卡USB接口上,查看设备接口,如下:

      12、如上图,已经可以看到js0了,说明手柄驱动已装好,可以正常使用了;

      (插播一条:更新完内核文件后,可能还是看不到js0设备,这是可以手动加载驱动命令:sudo modprobe joydev

      13、网上搜一个Joystick的驱动代码(容易搜到),编译后,在板卡中执行,即可实时观察手柄各旋钮及按钮的值了,如下:

      14、完毕!

  • 相关阅读:
    3.31上午英语视频
    3.30上午
    leetcode 38
    leetcode 36
    leetcode 28
    leetcode 27
    leetcode 26
    leetcode 24
    leetcode 21
    leetcode 20
  • 原文地址:https://www.cnblogs.com/beyonne/p/10932152.html
Copyright © 2020-2023  润新知