即使沒有按下任何按鍵,Linux 也會偵測按下的手柄鍵

即使沒有按下任何按鍵,Linux 也會偵測按下的手柄鍵

我的 Arch Linux 機器上遇到了一個非常奇怪的問題。好吧,我已經使用它好幾年了,但由於我不經常使用遊戲手柄,所以我第一次就忽略了它。這是一個非常奇怪的問題,所以請仔細閱讀。

我前段時間嘗試用我的 Xbox 360 手把在模擬器上玩一些舊的 PSX 遊戲(別擔心,它們是原碟)。當我嘗試配置pad(使用xpad 核心模組)時,模擬器(本地運行的PCSX)不斷告訴我正確的觸發器被按下,因此無法配置其他鍵(因為我嘗試配置的每個鍵都一直處於按下狀態)分配給正確的觸發器)。

我嘗試了另一個模擬器,在 Wine 下運行的 ePSXe(然後是本機 ePSXe),並且遇到了相同的問題。此時我已經非常懷疑了,我使用的是原廠的、工作完美的 Xbox 360 有線控制器和其他人都使用的 xpad,為什麼它不能運作?然而,我並沒有放棄並嘗試了替代解決方案,例如 xboxdrv 用戶空間驅動程式。沒有運氣。然後我放棄了,因為我不想為此失眠。

最近,我購買了一個用於 PS2 控制器的 USB 轉接器。我將其插入,嘗試在鴯鶓上配置它,然後…什麼?他們一直告訴我 R2 按鈕(與 X360 控制器的右側觸發器位於同一位置)被按下!兩個完全工作的控制器在使用不同的驅動程式和不同的軟體時出現相同問題的可能性有多大?至少現在很清楚,它不是X360 pad的軟體,也不是xpad的,也不是模擬器的。

排除了所有這些嫌疑之後,我只能想到一個解釋,那就是核心的 Joypad 模組被搞亂了。但我從未接觸過任何有關遊戲手把的配置文件,而且我的核心是 Arch Linux 儲存庫中的庫存核心。你能幫我解決我的問題嗎?我在這個特定問題上投入了大量時間和金錢。

為什麼它總是檢測到相同的鍵(正確的觸發器/R2),即使這些鍵在技術上是來自使用不同驅動程式的不同遊戲手把的不同鍵(儘管我認為xpad 只是「翻譯」內核遊戲手把模組的輸入)?請記住,其他鍵可以正常工作,我曾經設法手動分配它們,只要我沒有為任何功能分配正確的觸發器/R2,它們中的每一個都可以工作。

如果我沒有使用修改後的內核並且我從未接觸過與遊戲手把相關的配置文件,為什麼這對我不起作用?有其他人遇到這個問題嗎?我什至不知道在搜尋引擎上輸入什麼。非常感謝您的閱讀。

答案1

看起來 xpad 模組可能有問題,但只是它可能無法識別您的控制器,從而使其進入“未知墊”模式。

您可以使用三個參數修改模組的操作:
+dpad_to_buttons:將 D-PAD 映射到按鈕而不是未知墊的軸
+觸發器到按鈕:將觸發器映射到按鈕而不是未知打擊墊的軸
+黏到空:對於未知的打擊墊,根本不要映射棍棒

透過在文件中新增/更改一行/etc/modprobe.d,您可以設定/重置這些參數。

在中創建一個文件/etc/modprobe.d,它必須以 ' 結尾.conf',否則它不會被識別為設定檔。

在此文件中,放置以下行:

options xpad {option} [{option}...]

根據需要新增或刪除選項。我建議註解掉(#) 如果沒有列出選項,則該行,或只是完全刪除該檔案。

你可能需要rmmod鍵盤模組,那麼模組探針使用新選項重新載入它。

如果這些選項似乎無法識別,您可能需要運行depmod-a重建模組依賴關係表。

您可以使用以下命令查看哪些參數對模組有效模組資訊命令。

相關內容