Ralink USB WIFI Adapter mit MT7601 Chip am Raspberry Pi unter raspbmc betreiben

Damit fing alles an

Vor einiger Zeit habe ich einen günstigen USB WLAN Adapter bei ebay gekauft, den ich am Raspberry Pi betreiben wollte. Nun war es soweit und ich wollte den Wifi Adapter in Betrieb nehmen.

Am Raspberry Model B Revision 2 angeschlossen wurde der Adapter zwar erkannt, die Eingabe von lsusb führte zu folgendem Ergebnis:

pi@raspbmc:~$ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 148f:7601 Ralink Technology, Corp.

Aha, es scheint sich um einen Adapter von Ralink zu handeln.

ifconfig hingegen hat keinen W-Lan Adapter angezeigt.

pi@raspbmc:~$ ifconfig

Nun ging die Suche los und hat mich über einige Webseiten und Foren geführt.

Die Suche nach der Ralink ID „148f:7601“ brachte es schnell ans Licht. Der WLAN Adapter verwendet einen MT7601 Chip von Ralink, der offenbar nicht vom Kernel direkt unterstützt wird.

Nun denn, also erstmal nach dem Rechten sehen. Um welches Linux geht es denn genau?

pi@raspbmc:~$ uname -a
Linux raspbmc 3.12.31 #2 PREEMPT Wed Oct 29 09:24:56 UTC 2014 armv6l GNU/Linux

Also suchte ich danach, wie ich einen Treiber für mein raspbmc Linux 3.12.31 kompiliere und wurde hier bei Dodger Tools  fündig. Eine prima Anleitung, der ich nahezu Stück für Stück gefolgt bin. Doch dazu gleich mehr. Erst noch die richtigen Treibersourcen suchen, die ich bei Mediatek gefunden habe. Für die Konfiguration des Network Interfaces habe ich mich dieser Quelle bedient. 

Nun aber Schritt für Schritt

Als erstes habe ich die Treibersourcen bei Mediatek auf meinen lokalen Rechner heruntergeladen und anschließend per scp (Secure Copy) auf den Pi übertragen. Dieser Schritt war notwendig, da Mediatek für den Download eine E-Mail Adresse wissen wollte. Die Datei DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2 landete in meinem Downloadverzeichnis.

Auf dem Mac wird dann ein Terminal geöffnet. Unter Windows geht sowas prima mit Putty.

#ins Verzeichnis Downloads wechseln
cd Downloads/
#Treiber auf den Raspberry Pi in das Verzeichnis /tmp kopieren
scp DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2 pi@192.168.178.38:/tmp

Anschließend per ssh mit dem PI verbinden und dort geht’s weiter.

ssh pi@192.168.178.25

Die IP Adresse müsst ihr natürlich durch die IP Adresse eures PI ersetzen.

Und weiter gehts auf dem Pi

Die nachfolgenden Zeilen habe ich dann einzeln auf dem Raspberry Pi ausgeführt. Die Kommentare (Zeilen die mit # beginnen) natürlich nicht.

#Werde root
sudo bash

#Die grafische Oberfläche stoppen 
#(verringert die CPU Last und spart RAM)
initctl stop xbmc

#Installiere Notwendige Pakete um die Treiber zu bauen
apt-get -y install build-essential bc gcc make wireless-tools

#Module.symvers aus den Kernel headers herunterladen
cd /tmp
wget http://www.mirrorservice.org/sites/raspbmc.com/downloads/bin/kernel/linux-headers-latest.deb.gz
mkdir x
dpkg-deb -x linux-headers-latest.deb.gz x
mv -v x/usr/src/linux-headers-$(uname -r)/Module.symvers /usr/src

#Kernel source laden und vorbereiten
cd /usr/src
gKernel=$(uname -r | sed 's/[0-9]*$/y/')
#der folgende Schritt dauert eine Weile, da nun die Kernel Quellen geladen werden
wget --no-check-certificate https://github.com/raspberrypi/linux/archive/rpi-$gKernel.tar.gz
#auspacken des Quellarchives
tar xzf rpi-*.tar.gz
mv linux-rpi-*y rpi-linux

Als nächstes habe ich den Treiber aus dem Verzeichnis /tmp nach /usr/src kopiert, dann haben wir alles beieinander. Hier weicht die Anleitung von der Anleitung bei Dodger Tools ab, da wir einen anderen Treiber kompilieren wollen.

cp /tmp/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2 /usr/src/
#Treiber entpacken
tar xvjf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2

Und weiter geht’s wieder mit der Anleitung von Dodger Tools:

#Kernel konfigurieren
cd /usr/src/rpi-linux
make mrproper
zcat /proc/config.gz > .config
sed -i 's/CONFIG_CROSS_COMPILE.*/CONFIG_CROSS_COMPILE=""/' .config
make modules_prepare
cp /usr/src/Module.symvers .

#Symlinks erstellen, damit die Modul Source die Kernel Source finden
rm -r /lib/modules/$(uname -r)/build
rm -r /lib/modules/$(uname -r)/source
rm -r /usr/src/linux
ln -s /usr/src/rpi-linux /lib/modules/$(uname -r)/build
ln -s /usr/src/rpi-linux /lib/modules/$(uname -r)/source
ln -s /usr/src/rpi-linux /usr/src/linux

Hier wieder eine leichte Abweichung wegen des anderen Treibers

#Modul kompilieren und installieren
cd /usr/src/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913
make
make install
#Alte Kernel Module entfernen
rm -r /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00

#Raspberry pi Rebooten
reboot 

#Wieder einloggen, Root werden und dann Prüfen, ob ein WLAN Adapter angezeigt wird
iwconfig

Yippieh, das hat funktioniert

Die Ausgabe zeigt:

root@raspbmc:/usr/src/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913# iwconfig
ra0 Ralink STA ESSID:"MeineSSID" Nickname:"MT7601STA"
 Mode:Managed Frequency=2.437 GHz Access Point: 10:9A:DD:81:CE:6D 
 Bit Rate=58.5 Mb/s 
 RTS thr:off Fragment thr:off
 Encryption key:1234-ABCD-2345-BCDE-3456-CDEF-4567-DEFG Security mode:open
 Link Quality=79/100 Signal level:-62 dBm Noise level:-81 dBm
 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

lo no wireless extensions.

eth0 no wireless extensions.

Jetzt nur noch das Network interface konfigurieren

nano /etc/network/interfaces

Dort dann folgendes einfügen (SSID und PASSWORD müssen durch eure Werte ersetzt werden):

auto ra0
allow-hotplug ra0
iface ra0 inet dhcp
wpa-ssid "ENTER YOUR NETWORK SSID"
wpa-psk "ENTER YOUR NETWORK PASSWORD"

Nach einem Reboot des Pi war dieser über WLAN erreichbar und hat eine schöne eigene IP Adresse erhalten:

ra0 Link encap:Ethernet HWaddr 00:0d:a3:1c:3f:e8 
 inet addr:192.168.178.38 Bcast:192.168.178.255 Mask:255.255.255.0
 inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:126797 errors:0 dropped:5 overruns:0 frame:0
 TX packets:5455 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:29841593 (28.4 MiB) TX bytes:912324 (890.9 KiB)

Viel Spaß!

5 Gedanken zu „Ralink USB WIFI Adapter mit MT7601 Chip am Raspberry Pi unter raspbmc betreiben“

  1. Hi,
    kann ich die Treibersoftware von MediaTek auch an einem bestimmten Ort auf die MSD schieben? Falls ja, an welchen?
    Gruß und Danke

  2. Danke, hat funktioniert. Der Link zur Downloadseite des Treibers ist jedoch veraltet. Ausserdem (warum auch immer) startete der dropbear ssh daemon ploetzlich nach dem compilen des module nicht mehr automatisch. Obwohl das in der raspbmc (kodi) GUI aktiviert war, half nur ein „update-rc.d dropbear defaults“. Auch kann ich zwar per raspbmc GUI nach wifi netzwerken suchen, aber die Einstellungen speichert er nicht. Ich musste genau nach deiner Anleitung vorgehen und die /etc/network/interfaces anlegen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.