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、完畢!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM