PS3 denetleyicisi - SHANWAN


3

Bir ps3 denetleyicim var, ancak aşağıdaki sorun var:

  • USB ile bağlanırsam çalışır ancak kontrolör titremeyi asla durdurmaz
  • Bluetooth ile bağlanmayı başaramıyorum

$ dmesg

[ 3535.328372] input: SHANWAN PS3 GamePad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:054C:0268.0001/input/input16
[ 3535.329083] sony 0003:054C:0268.0001: input,hiddev0,hidraw0: USB HID v1.10 Joystick [SHANWAN PS3 GamePad] on usb-0000:00:14.0-1/input0
  • SHANWAN denetleyicisini Linux üzerinde nasıl düzgün ayarlayabilirim?
  • Veya Hata raporunu nereye göndermeliyim

SHANWAN orijinal denetleyici değil ama:

  • Windows'ta iyi çalışıyorlar
  • onlar orijinal kontrolör değil çoğu SHANWAN

Shanwan nedir? Hızlı bir google’dan bu, retropi için bir tür denetleyici sürücüsü mü?
Mark Kirby

1
Bence kontrolörün yapımcısı shawan. Bu ps3 dualshock uyumlu bir cihazdır
Postadelmaga

Yanıtlar:


2

Sadece USB'ye bağlı Shanwan denetleyicileri için Ubuntu'daki titreşimi nasıl çözeceğimi çözdüm.

Düzeltme burada bulundu: https://forums.gentoo.org/viewtopic-t-1038906-start-0.html

Linux ... / drivers / hid / hid-sony.c dosyası çekirdek kaynaklarında değiştirilmeli ve çekirdek yeniden derlenmelidir.

Biraz değiştirdim (yapımcı "ShanWan" veya "SHANWAN" ile Sony PS3 gamepad kopyalarına uyum sağlamak için - sürümümde büyük adlar var):

struct sony_sc {
    __u8 led_count;
 };

+/*
+ * The ShanWan reports the same id as the Sony SixAxis, therefore
+ * it can't be added to sony_devices[], but we still need to know which one
+ * we're dealing with.
+ */
+static int is_shanwan_gamepad(struct hid_device *hdev)
+{
+   return strstr(hdev->name, "ShanWan") || strstr(hdev->name, "SHANWAN) ;
+}
+
 static __u8 *sixaxis_fixup(struct hid_device *hdev, __u8 *rdesc,
               unsigned int *rsize)
 {

<..........>

static __u8 *sony_report_fixup(struct hi
    struct sony_sc *sc = hid_get_drvdata(hdev);

    /*
+    * The ShanWan  gamepades when used over USB, times out when
+    * initialising reports, but it works just fine without init.
+    */
+   if((sc->quirks & SIXAXIS_CONTROLLER_USB) && is_shanwan_gamepad(hdev))
+      hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
+
+   /*
     * Some Sony RF receivers wrongly declare the mouse pointer as a
     * a constant non-data variable.
     */

<...........>

static int sixaxis_set_operational_usb(s
    /*
     * Some compatible controllers like the Speedlink Strike FX and
     * Gasia need another query plus an USB interrupt to get operational.
+    * The ShanWan gamepads doesn't like these additional steps.
     */
+   if(is_shanwan_gamepad(hdev))
+      goto out;
+
    ret = hid_hw_raw_request(hdev, 0xf5, buf, SIXAXIS_REPORT_0xF5_SIZE,
              HID_FEATURE_REPORT, HID_REQ_GET_REPORT);
    if (ret < 0) { 

Çekirdek indirme ve derleme burada bulunabilir: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel kaynaklar indirildikten sonra, hid-sony.c dosyasını buna göre düzenleyin ve derleyin.


Bu
joypad'i
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.