| 7.9.2011 | ||
Buffalo Router WHR-G erweitert mit SD-Card und Console | ||
Inhalt:Motivation:Ein Kollege hat mir bei seinem Umzug einen japanischen Buffalo WLAN-Router kostenlos überlassen, der mir zu schade zum Wegwerfen schien. Und zwar ein Buffalo AirStation WHR-G, das japanische Modell, das baugleich mit dem WHR-G125 ist. Eine ganze Photoserie zum Router gibt es hier.
Ich habe mich gefragt, ob man den Router mit Linux nicht etwas aufwerten kann, und nach kurzer Suche im Netz bin ich bei dd-wrt und OpenWrt.org fündig geworden. Die ersten hilfreichen Hardware-Infos zum WHR-G125 finden sich bei wiki.openwrt.org oder auf en.wikipedia.org. Auf dem WHR-G ist ein BCM5354 Broadcom Chip verbaut, sowie 16MB DDR-SDRAM und 4MB Flash.
Das Wichtigste war mir erstmal, Zugriff auf den Serial-Port vom Router zu haben, damit ich überhaupt etwas vom Boot-Vorgang, also Bootloader-Messages etc. mitbekomme. Bei der Installation der openwrt-Firmware mit tftp wollte ich auch nicht "blind" dasitzen, ohne zu wissen, was der Router gerade macht. Beim Boot-Prozess und dem tftp-Download kann man zwar rudimentär über die Diag-LED sehen, ob sich etwas tut, aber das ist nicht befriedigend. Außerdem hilft ein Consolen-Port ungemein beim Testen der neuen Firmware, falls z.B. der LAN-Zugang und damit Web-Interface noch nicht funktioniert. Der "Serial port pinout" vom Buffalo WHR-G ist auf www.dd-wrt.com für den WHR-G125 beschrieben. Beim WHR-G ist es Connector JP1. Der Connector hat im Originalzustand keine Stiftleise (Pin header) aufgelötet, daher habe ich das als erstes nachgerüstet (den 14-poligen JTAG-Connector JP2 habe ich bei der Gelegenheit auch gleich mit bestückt).
Das Pinout von JP1 (Pin 1 ausgehend vom JP1 Label):
Da der Router mit 3.3V (Vcc) versorgt wird, und keine 5V auf dem Board direkt verfügbar sind, habe ich auf einer kleinen Platine den ADM3202 als TTL/ RS-232 Pegelwandler verbaut, der mit 3.3V läft. Zu RS-232 gibt es reichlich Links, siehe dazu z.B. de.Wikipedia.org. Hier die Adapterplatine (Rückseite mit Freiverdrahtung):
Für den D-Sub-Stecker (DB9, korrekt: DE-9) auf RS-232 Seite (der am Router-Gehäuse noch plaziert wird) habe ich einen Male DB-9 Stecker mit folgendem Pinout (DCE) gewählt: DB-9 Pinout:
Später wurde noch ein kleiner Schlitz an der breiten Platinenseite gesägt, und die Platine an eine schmale Plastikkante im Router-Gehäuse geklemmt. So war keine Verschraubung bzw. kein Heißkleber notwendig und ich kann die Platine jederzeit wieder leicht entfernen:
Hier der Router mit RS-232 Adapter-Platine und dem DB-9 Stecker. Der AOSS-Button wurde entfernt (da ich dessen GPIO-Port für die SD-Karte verwendet habe):
Die Aussparung vom AOSS-Button habe ich dann mit der Feile vergrößert und den DB-9 Consolen-Stecker darin mit Heißkleber fixiert:
bash# OpenWrt Firmware:Ich habe die Firmware mit tftp und Linux auf den Router geladen, wie unter wiki.openwrt.org/doc/howto/generic.flashing.tftp beschrieben. Die openwrt-Images gibt es unter downloads.openwrt.org. Empfohlen wird das Image mit 2.4'er Kernel:
Download-Directory:
Allerdings habe ich mich später für das Image mit Kernel 2.6 entschieden, da das
Download-Directory:
Mit
USB-Host:Leider findet sich im Web kein Hinweis, daß jemand den eigentlich auf dem Chip verbauten USB-Host beim WHR-G bzw. WHR-G125 in Betrieb nehmen konnte. Wahrscheinlich sind die Pins an dem BGA-Gehäuse nicht auf der Platine geroutet.Nur einen üblen Hardware-Mod auf einer chinesischen Seite habe ich gefunden. Die haben dort eine Ecke vom Chip-Gehäuse freigelegt (weggebrochen) und auf der dünnen Chip-Platine selbst 2 feine Drähte aufgelötet. Das Risiko, damit den ganzen Router unbrauchbar zu machen, ist aber vergleichsweise hoch... Aber auf jeden Fall ein Hingucker. Glückwunsch an die Leute! Links:
|