[WIP] Wii U Gamepad mit dem PC (Linux) verbinden

      [WIP] Wii U Gamepad mit dem PC (Linux) verbinden

      Dieses Tutorial richtet sich hauptsächlich an Linux-Kenner! Grundlegende Linux-Kenntnisse sind also vorrausgesetzt!


      Dieses Tutorial und die verwendete Software sind nicht vollkommen Fehlerfrei und Getestet! Es kann also zu Problemen bei der Verbindung kommen!


      Ich kann nicht für eventuell auftretende Schäden haften.


      Dieses Tutorial befindet sich noch in Arbeit! Es kann also noch nicht 1:1 und nur mit Vorsicht befolgt werden!


      1. Vorraussetzungen
      1.1 Hardware
      • Wii U und das damit bereits gekoppelte (!) Gamepad
      • EIn rt2800usb, ath9k oder carl9170 basierter USB-WLAN Stick, der im 5GHz Bereich (meist als Dualband beworben) funkt
        • rt2800usb: funktioniert am besten, benötigt Linux >= 3.12.3
        • ath9k/carl9170: Geht auch, Video kann öfter desynchronisieren
        [spoiler=Getestete Hardware]
        [/spoiler]
      1.2 Software
      Die genauen Befehle, die zum Kompilieren verwendet werden, sind hier und hier beschrieben.
      • Kernel mit gepatchtem mac80211
      • Gepatchtes x264
      • Gepatchter hostapd
        • hostapd wie beschrieben kompilieren, wpa_supplicant mit einer .config, die folgendes enhält

          Quellcode

          1. CONFIG_WPS=y
          2. CONFIG_TENDONIN=y

      • netboot
      • Und natürlich libdrc selbst
      Wer debian bzw. eine debian-basierte Distribution benutzt, findet alle benötigten Pakete in setialphas apt-Repository. wpa-supplicant und hostapd müssen hiebei mit dem Suffix "-drc" benutzt werden.
      2. Erfolderliche Daten für die Verbindung des Gamepads mit dem PC sammeln
      Dazu werden einfach die Daten der bereits vorhandenen Koppelung der Gamepads und der Wii U übernommen. Für diese Schritte sollte das Gamepad am besten außer Reichweite oder vom Akku getrennt sein, um sicherzustellen, dass es nicht dazwischenfunkt.
      "wlan0" beschreibt in diesem Tutorial das Netzwerkinterface, das zur Verbindung mit dem Gamepad, bitte auf dem eigenen Rechner entsprechend anpassen.
      1. Zuerst die Wii U an einen Bildschirm anschließen, starten und mit zweimaligem drücken der "Sync" Taste dazu bringen, sich mit einem Gamepad synchronisieren zu wollen
      2. Folgende Konfiguration für wpa_supplicant als "get_psk.conf" im gleichen Verzeichnis wie den gepatchten wpa_supplicant abspeichern

        Quellcode

        1. ctrl_interface=/var/run/wpa_supplicant_drc
        2. update_config=1
      3. Folgenden Befehl in einem Terminal ausführen:

        Quellcode

        1. sudo ./wpa_supplicant -Dnl80211 -i wlan0 -c get_psk.conf
        Dieses Terminal erst einmal im Hintergrund laufen lassen.
      4. In einem neuen Terminal folgenden Befehl ausführen:

        Quellcode

        1. sudo ./wpa_cli -p /var/run/wpa_supplicant_drc
      5. Im grade geöffneten wpa_cli Interface folgendes eingeben:

        Quellcode

        1. scan
      6. Sobald die Meldung "CTRL-EVENT-SCAN-RESULTS" erschient, folgendes eingeben:

        Quellcode

        1. scan_results
      7. Eine SSID, die WiiUaabbccddeeff_STA1" ähnelt sollte in der Liste vorkommen. Die entsprechende BSSID in der Form "aa:bb:cc:dd:ee:ff" notieren.
      8. Den 8-stelligen WPS-Pin "berechnen":
        • Die Symbole auf dem Bildschirm entsprechen folgenden Zahlen:
          • ♠ = 0
          • ♥ = 1
          • ♦ = 2
          • ♣ = 3
        • Diese entsprechen den ersten 4 Stellen der PIN. Die letzen 4 Stellen sind immer "5678".
      9. Anhand dieser Informationen lässt sich der PC jetzt mit folgendem Befehl mit der Wii U verbinden

        Quellcode

        1. wps_pin <BSSID> <WPS-PIN>
      10. Die Statusmeldung "WPS-SUCCESS" gibt an, dass die Synchronisation erfolgreich war.
      11. Jetzt können wpa_supplicant und wpa_cli durch Ctrl+C beendet werden.
      12. Die Datei "wiiu_ap_normal.conf" (im Verzeichnis drc-hostapd/conf/) anpassen. Die Daten hierfür stehen in der Datei "get_psk.conf", die eben erstellt wurde.
        • "interface" (Zeile 5) entspricht dem für wlan0 eingesetzen Interfacenamen
        • "ssid" (Zeile 65) entsprich "ssid" aus "get_psk.conf"
        • "wpa_psk" (Zeile 78) entspricht "psk" aus "get_psk.conf"
      3. Wii U Gamepad mit dem PC verbinden
      Hierzu muss sich die Wii U außer Reichweite befinden oder vom Strom getrennt sein.
      1. Zuerst muss hostapd in einem Terminal gestartet werden:

        Quellcode

        1. sudo ./hostapd -dd ../conf/wiiu_ap_normal.conf
      2. Jetzt einmal das Gamepad einschalten. Im Fenster, in dem der hostapd gestartet wurde, sollte eine solche Zeile vorkommen:

        Quellcode

        1. wlan0: AP-STA-CONNECTED aa:bb:cc:dd:ee:ff
        Die letzte Zeichenkette ("aa:bb:cc:dd:ee:ff") entspricht der MAC-Adresse des Gamepads. Diese notieren.
      3. Danach müssen in einem neuen Terminal nacheinander folgende Befehle ausgeführt werden. Die MAC-Adresse mit der eben notierten des Gamepads ersetzen.

        Quellcode

        1. sudo ip a a 192.168.1.10/24 dev wlan0
        2. sudo ip l set mtu 1800 dev wlan0
        3. sudo ./netboot 192.168.1.255 192.168.1.10 192.168.1.11 aa-bb-cc-dd-ee-ff
      4. Jetzt kann das Gamepad erneut eingeschaltet werden und sollte mit dem PC verbunden sein. Es kann jedoch sein, dass auf dem Bildschirm des Gamepads zuerst nur eine Fehlermeldung erscheint, dass keine Verbindung zur Wii U hergestellt werden konnte.
        Zum Testen einfach eine der bei libdrc mitgelieferten Demos starten und die aktivieren und wieder deaktivieren der TV-Fernbedienungsmodus sollte auch Video auf dem Gamepad erscheinen.[spoiler='Beispiel der Demo "tsdraw"']IMG_20140104_003645.jpg[/spoiler]Die Demo "simpleaudio" scheint nicht zu funktionieren und "framework" ist keine wirkliche Demo.
      Credits
      Memahaxx, die das ganze hier überhaupt erst möglich gemacht haben!


      Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz

      [TuT] [WIP] Wii U Gamepad mit dem PC (Linux) verbinden

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »feuri« (morgen, 13:37)

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von feuri () aus folgendem Grund: Kernel Version angepasst, Hinweis für -drc suffix hinzugefügt

      hostapd muss auch CONFIG_IEEE80211N=y aktiviert haben. Und oben hast du einmal get_wpa.psk und einmal get_psk.conf stehen, das sollte identisch sein. Sollte wpa_supplicant keine WPS-Verbindung aufbauen können, dann die Wii U näher an PC stellen.


      MarioKart Wii: 1807-8091-0335
      Wii U: Chris (Mii Name) / setialpha (ID)
      3DS: 3754 6370 1034 (Chris)

      setialpha schrieb:

      hostapd muss auch CONFIG_IEEE80211N=y aktiviert haben.

      Das müsste eigentlich in der auf libdrc.org benutzten config schon enthalten sein. Die .config die ich angeben hat gilt nur für wpa_supplicant.

      setialpha schrieb:

      Und oben hast du einmal get_wpa.psk und einmal get_psk.conf stehen, das sollte identisch sein. Sollte wpa_supplicant keine WPS-Verbindung aufbauen können, dann die Wii U näher an PC stellen.

      Ups. WIrd sofort geändert.

      Ich pack auch noch eine Liste mit getesteter Hardware ins Tutorial, wer das ganze erfolgreich zum laufen bekommen hat kann sich hier melden, ich trag das dann ein
      [TuT] [WIP] Wii U Gamepad mit dem PC (Linux) verbinden

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »feuri« (morgen, 13:37)

      Patch-Tutorial für mac80211?

      Hey,

      erstmal danke für das tolle Tutorial, nur leider habe ich Probleme beim patchen von mac80211. Ich hab mich schon gründlich im Internet dazu erkundigt, fand jedoch keine Anleitung dafür. Falls jemand eine gute Parat hat, wäre es nett, die mal hier zu erwähnen.

      Schonmal Danke im Voraus,

      Amibu ;)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von amibu ()

      Einfach wie hier die Daten des mac80211-Moduls ersetzen und den Kernel neu kompilieren. Wenn du nicht weist, wie man den Kernel kompiliert, dazu sollte es mehr als genug Tutorials zu finden geben.
      Ansonsten kannst du, wenn du debian bzw. eine debian-basierte Distribution nutzt auch einfach den Kernel aus setialphas apt-Repo nehmen.
      [TuT] [WIP] Wii U Gamepad mit dem PC (Linux) verbinden

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »feuri« (morgen, 13:37)
      Welche Distribution verwenderst du? Auf meinem Ubuntu 12.04 LTS scheint beides nicht richtig zu funktionieren. Wenn ich z.B versuche, libdrc aus der von dir erwähnten apt-Repo herunterzuladen, wird angezeigt dass "libswscale2" anscheinend nicht die richtige Version hat. Benutze Ubuntu schon länger, da ich Anfangs dachte, dass es am Anfängerfreundlichsten ist.
      Ubuntu 12.04 ist schon etwas älter (April 2012), da kann es gut sein, dass einige Pakete zu alt sind. Du müsstest also auf eine neuere Version updaten, da kann ich dir aber nicht versichern, dass es geht, da ich keine Ubuntu nutze.
      Ich selber nutze Arch mit selbst kompilierten Paketen, kann das aber Anfängern nicht empfehlen.
      [TuT] [WIP] Wii U Gamepad mit dem PC (Linux) verbinden

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »feuri« (morgen, 13:37)
      Habs jetzt gestern nach 6 Stunden rumprobieren endlich hinbekommen! Wenn man erstmal alles vernünftig kompiliert/installiert hat, ist es wirklich nicht mehr schwer. Aber bevor man rausgefunden hat, was einem noch alles für libraries o.ä fehlen nachdem mal Linux frisch installiert hat, vergeht erstmal ein weilchen :D Wenn man wirklich keine Ahnung/erfahrung hat ist das schon ne echt Aufgabe, bin froh dass ich grad die Unix Grundzühe im Studium gelernt habe, so wusste ich wenigstens wonach ich suchen musste wenns nicht klappt :D

      Meine größtes Problem wars drauf zu kommen, dass der kernel nicht aktuell ist. Vielleicht hilft da wem weiter wenn er auch beim mac80211 modul nicht weiter kommt

      Spoiler anzeigen
      Kernel 3.12.3 Installation

      To install kernel 3.12.3 in Ubuntu/Linux Mint, enter these commands:

      cd /tmp
      wget dl.dropboxusercontent.com/u/47950494/upubuntu/kernel-3.12.3 -O kernel-3.12.3
      chmod +x kernel-3.12.3
      sudo sh kernel-3.12.3
      sudo reboot


      Hier hab ich auch noch paar Infos/Tipps aufschnappen können
      rememberdontsearch.wordpress.c…nux-setup-with-rt2800usb/
      Falls bei dem tutorial das unloaden vom aktuellen kernelmodul nicht klappt, in dieser reihenfolge entladen
      Spoiler anzeigen
      sudo rmmod rt73usb
      sudo rmmod rt2800usb
      sudo rmmod rt2800lib
      sudo rmmod rt2x00usb
      sudo rmmod rt2x00lib
      sudo rmmod iwldvm
      sudo rmmod mac80211


      Wenn noch irgendwer gar nicht vorran kommt, könnte ich nochmal aufschreiben, was man alles installieren/machen muss wenn man von einem frischen Ubuntu 13.10 kommt ;)
      Hi, also ich würde mich auch dafür interessieren. Würde mir spaßeshalber mal die empfohlene Hardware kaufen und es ausprobieren. Ich hab nur wenig ahnung von linux kernel kompilieren usw, würde eventuell einige hilfe gebrauchen können. Gibt es leute, die damit noch aktiv was machen oder kommte damit überhaupt mal wer was produktives machen?

      Wie finde ich einen geeigneten stick, bis auf den verlinkten? ansonsten würd ich den eben nehmen, wenn der geht.
      edit: ist das dieser? da der link anders aussieht als das bild bei amazon: amazon.de/dp/B001HN3H2M/ref=as…4&creativeASIN=B001HN3H2M

      Fox12 schrieb:

      Gibt es leute, die damit noch aktiv was machen oder kommte damit überhaupt mal wer was produktives machen?

      Ich habs selber schon länger nicht mehr genutzt, da libdrc zurzeit nicht weiterentwickelt wird. Außer nen Würfle rotieren lassen und aufm Gamepad rummalen und sich dabei an wunderschönen (*hust*) Bildfehlern erfreuen gibts da zurzeit nicht mit zu tun.

      Fox12 schrieb:

      Wie finde ich einen geeigneten stick, bis auf den verlinkten? ansonsten würd ich den eben nehmen, wenn der geht.
      edit: ist das dieser? da der link anders aussieht als das bild bei amazon: amazon.de/dp/B001HN3H2M/ref=a…ASIN=B001HN3H2M

      Gleicher Stick, aber neues Modell. Keine Ahnung ob der noch den gleichen Treiber nutzt.
      Eine (nicht vollständige) Liste welcher WLAN-Adapder welchen Treiber nutzt, gibts hier.
      [TuT] [WIP] Wii U Gamepad mit dem PC (Linux) verbinden

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »feuri« (morgen, 13:37)