Basics – USB


USB-Geräte: WLAN, UMTS, Bluetooth und Sound

Diese Seite enthält:
WLAN-USB-Stick (TP-Link)
Bluetooth-Sticks (Hama + Inatek)
3G-(UMTS-)Stick (Vodafone)
USB-Soundkarte (Creative)
USB-Soundkarte (HifiMeDiy)
USB-Soundkarte async (HifiMeDiy)

Der WLAN-USB-Stick

Sollte der Raspberry laufen, so fährt man ihn sauber herunter:

$sudo shutdown -h now

Jetzt steckt man den WLAN-USB-Stick hinein. Ich habe mir dazu den “TL-WN725N” von TP-Link gekauft, aber andere Sticks sind möglich. Es gibt im Internet Kompatibilitätslisten, aber man findet auch sonst genügend Modelle, die mit dem Raspberry laufen.

ifconfig

Nach dem erneuten Starten des Raspberry gibt man den folgenden Befehl ein:

$ifconfig

Wenn es einen Abschnitt “wlan0” gibt, hat man gewonnen und kann weitermachen. Support für nicht funktionierende WLAN-Sticks kann ich mangels Linuxwissens nicht geben.

wifi1   wifi2

Da ich mit diesem Nichtwissen leben muss, kann ich am Besten den WLAN-Stick über die X-Server-Oberfläche konfigurieren. (Es sooll auch über wpa_cli funktionieren.) Dazu gibt man den folgenden Befehl ein:

$startx

Mangels eines USB-Hubs muss sich Tastatur und Maus einen USB-Anschluss teilen, was häufiges Umstöpseln zur Folge hat! smile

Nachdem man sich an der grafischen Oberfläche erfreut hat, klickt man doppelt auf “WiFi Config” und erhält das linke Bild. Beim Wechsel auf den Reiter “Manage Networks”, “Scan” und “Scan” erhält man das rechte Bild. Durch einen Doppelklick auf den Eintrag im weißen Fenster werden die Werte übertragen:

wifi3   wifi4

In meinem Fall brauche ich nur meine PSK-Zeichenfolge einzutragen. Abschließend sollte es so aussehen, wie im rechten Bild.

wifi5

Als “Endkotrolle” sieht man sich jetzt die IP-Adresse des WLAN-Sticks an:

$ifconfig

Wie man sieht, hat der WLAN-Stick die IP-Adresse 192.168.167.22 bekommen. Damit ist der Fall abgeschlossen! Man kann jetzt das Netzwerkkabel ziehen und neu starten. Dann ist nur noch die IP-Adresse des WLAN-Sticks aktiv!

Aber STOP! Sobald ich den Namen des WLAN unterdrücke, funktioniert WLAN nicht mehr! Also doch ran an die Datei!

Achtung! Der beschriebene Vorgang ist auf meinen WLAN-Stick zugeschnitten! Andere Sticks müssen eventuell anders bearbeitet werden!

Mit dem Editor öffnet man die Datei und schreibt die rote Zeile hinzu:

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid=”Name meines WLAN”
psk=”Hier steht meine geheime ID im Klartext!”
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
scan_ssid=1
<— Nur bei versteckter Netzwerk-ID! Besser funktioniert es, wenn man das Netzwerk nicht versteckt!
}

Nach ändern der Zeile “ssid” und “psk” bitte abspeichern und nach einem reboot sollte es auch mit der versteckten ID funktionieren!

Tipp für eine verschlüsselte ID:

$ sudo cp /etc/wpa_supplicant/wpa_supplicant.conf ./
$ sudo chmod 755 wpa_supplicant.conf
$ wpa_passphrase Name_meines_WLAN Meine_geheime_ID >> wpa_supplicant.conf

Das bedeutet, die Conf-Datei kopiert man in den Ordner /Home/pi. Dort lockert man die Berechtigungen und führt den Befehl aus, der aus dem Netzwerknamen und der ID einen geheimen Schlüssel erzeugt und diesen wiederum an die Conf-Datei anhängt. Diese kopiert man sich mit Filezilla auf seinen Windows-PC, kopiert die Zeile mit “psk” am Anfang und ersetzt im oberen Bereich die bisherige Zeile mit “psk”. Danach löscht man den gesamten neu erstellten Abschnitt so, dass die Datei wieder so aussieht, wie gerade dargestellt. Nur hinter “psk=” sieht es jetzt anders aus! Nach dem Abspeichern kopiert man mit Filezilla die Datei wieder nach /Home/pi und macht den ganzen Weg wieder rückwärts:

$ sudo chmod 600 wpa_supplicant.conf
$ sudo cp wpa_supplicant.conf /etc/wpa_supplicant

Dann kann ein reboot erfolgen und der WLAN-Stick sollte funktionieren. Für die ewig langen Zeilen beim Eintippen kann ich nichts! smile

Der Vollständigkeit halber noch eine andere wichtige Datei /etc/network/interfaces:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
#auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Möglicherweise sollte diese auch editiert werden, wenn etwas nicht funktioniert.

Nachtrag vom 05.07.2013:
Überraschung des Tages: Sowohl ein “Edimax EW-7811Un”, wie auch ein “LogiLink WL0085” bekommen ohne eine Änderung in der Konfiguration eine IP-Adresse!

Nachtrag vom 15.11.2013 und 18.12.2013 und 16.08.2014:
Ich habe noch eine andere Art der Konfiguration gefunden, die schneller, reproduzierbarer und stabiler funktioniert. Dazu editiert man mit dem Editor “nano” die Datei /etc/network/interfaces:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet dhcp
wireless-power off
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid “MEIN WLAN-NAME”
wpa-psk “MEIN GEHEIMER WLAN-SCHLÜSSEL”

Allerdings sollte dann in der Autostart-Datei noch folgendes stehen:

$ sudo ifdown wlan0
$ sudo ifup wlan0

Es funktioniert auch mit dem Verschlüsselungstool wpa_passphrase! Für mich positiv: Hier spart man sich die etwas wackelige WPA_Supplicant-Geschichte!


Bluetooth-Sticks

Genutzt wird sowohl ein alter “Hama Nano” mit Bluetoothversion 2.1, sowie ein moderner Inateck BTA-CSR4B2 mit Bluetoothversion 4. Ich hatte zuerst den Hama konfiguriert, aber der Inatek hat mit den gleichen Einstellungen auch funktioniert. Es gibt leider viel zu Bluetooth zu schreiben, also los!

Die Installation geschieht mit dem folgenden Befehl:

$apt-get install bluez-tools bluetooth bluez-utils

Zuerst muss man die MAC-Adresse des Bluetooth-Lautsprechers in Erfahrung bringen:

$hcitool scan

und gleichzeitig den Verbindungsaufbau durch drücken der Bluetoothtaste am Lautsprecher starten. Nach wenigen Sekunden erscheint ein Ergebis in folgender Form:

XX:XX:XX:XX:XX:XX

Wenn also in den folgenden Beispielen xx:xx:xx:xx:xx:xx steht, so ist die soeben gescante MAC-Adresse einzusetzen.

Bevor man die Verbindung herstellen und Sound über die Verbindung schicken kann, sind noch diverse Einstellungen nötig. Möglicherweise ist nicht alles sinnvoll, aber ich bin froh, dass es funktioniert hat! smiley

$nano /etc/bluetooth/audio.conf

Unter [General] schreibt man eine neue Zeile:

Enable=Source,Sink,Media,Socket

$nano /usr/bin/bluez-simple-agent

Die Zeile “capability=KeyboardDisplay” wird geändert:

capability=DisplayYesNo

$nano ~/.asoundrc

pcm.bluetooth {
type Bluetooth
device “XX:XX:XX:XX:XX:XX”
profile “auto”
}

$cd ~/.config
$mkdir vlc
$cd vlc
$nano vlcrc

#Alsa Device Name (string)
alsa-audio-device=bluetooth

Befehle, die zum Starten des Bluetooth nötig sind, stehen bei mir in /etc/autostart.sh. Hier die Bluetooth-Befehle:

$sudo bluez-simple-agent hci0 xx:xx:xx:xx:xx:xx
$sudo bluez-test-device trusted xx:xx:xx:xx:xx:xx yes
$sudo bluez-test-audio connect xx:xx:xx:xx:xx:xx

Hier noch einmal der Hinweis, dass ich Bluetooth aus Stabilitätsgründen nicht nutze!


Der 3G-USB-Stick

Ich habe einen UMTS-Stick von Vodafone plus 1,5m Verlängerung mit einer Congstar-SIM-Karte, die ich hier nutzen möchte. Dazu nutze ich als Software “wvdial”. Diese wird jetzt installiert und vorkonfiguriert:

$sudo apt-get install wvdial
$sudo wvdialconf

In dieser Vorkonfiguration wird die Datei wvdial.conf bereits angepasst, was das richtige Device betrifft. Mein USB-Stick besteht nämlich aus mehreren USB-Devices und wenn man das falsche anspricht, geschieht nichts! Wer es wissen will kann den folgenden Befehl eingeben:

$lsusb

Die Zeile mit “…ZTE…K3565-Z HSDPA” enthält das Device 003, welches sich aber nach erneutem Anschließen auch mal ändern kann! Mit diesem Wissen editiert man nun die Datei:

$sudo nano /etc/wvdial.conf

Ohne jetzt näher darauf einzugehen, weil mir da einiges an Wissen fehlt, folgt hier meine funktionierende Datei:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
Baud = 9600
New PPPD = yes
Modem = /dev/ttyUSB3
ISDN = 0
; Phone = <Target Phone Number>
; Password = <Your Password>
; Username = <Your Login Name>[Dialer congstar]
Carrier Check = no
Auto DNS = on
Init3 = AT+CGDCONT=1,”IP”,”internet.t-mobile
Stupid Mode = 1
Dialer Command = ATD
Dialer Attemps = 2
ISDN = 0
Idle Seconds = 0
Phone = *99***1#
Modem = /dev/ttyUSB3
Username = tm
Password = tm

Die gelb markierten Bereiche sind zwingend zu überprüfen, bzw., zu ändern. Passende Informationen zu den Providerdaten findet man im Internet. Das Device (dev) hatte ich bereits erwähnt.

Und weil es so schön ist und weil ich es im Internet gefunden habe, kommt noch eine weitere Änderung:

$sudo nano /etc/network/interfaces

Und der Inhalt meiner Datei:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

auto ppp0
iface ppp0 inet wvdial
provider congstar
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

 

Die gelb markierten Teile habe ich selber neu eingetippt, während die anderen schon vorhanden waren.

Nachdem ich meine “Autostart.sh” (Seite 7 dieser Anleitung) etwas angepasst hatte (in der Anleitung bereits entsprechend geändert), lief der Stick ohne Murren. Natürlich habe ich gut eine Stunde gebraucht, um mir die nötigen Informationen für die wvdial.conf zu beschaffen! Aber dann funktionierte der Stick! Nur meine Musik über “mpd” hat dermaßen “geruckelt” und gebrummt, dass es keine Freude war! Verantwortlich für das “Ruckeln” war der schlechte GPRS-Empfang und für den Brumm natürlich der Sender im Stick, der in den Billig-Verstärker “einschlug”! Aus beiden Gründen heraus ist für mich der direkte Einsatz eines 3G/UMTS-Sticks beim Raspberry nicht mehr interessant. Das WLAN funktioniert deutlich besser. Um UMTS im Notfall zu nutzen, ziehe ich meinen 3G-Wireless-Router vor. Dann kann ich den UMTS-Stick recht problemlos am optimalen Platz positionieren und irgendwo entfernt davon mittels des Raspberry über WLAN Musik hören!


Die einfache Soundkarte

Meine einfache Soundkarte ist ein USB-Stick von Creative mit dem Namen “Sound Blaster Play!“, die recht ordentliche Kritiken für diesen Preis bekommen hatte. Sie verfügt lediglich über einen Mikrofoneingang und einen Kopfhörerausgang, was der einfachen Bedienbarkeit sehr entgegen kommt! Und ich hatte mich vorher schlau gemacht, ob sie beim Raspberry funktioniert.

Ich kann die Nutzung aktuell nur für das Programm “MPD” schreiben, aber findige Tüftler werden auch anderweitig diesen Stick in Betrieb nehmen können.

In der /etc/MPD.conf gibt es einen Bereich, der so beginnt:
audio_output {

Dort gibt es vermutlich folgende Zeile:
device “hw:0,0” # optional

Diese wird mit nur einem Zeichen verändert:
device “hw:1,0” # optional

Nach Abspeichern der Datei und Neustart des MPD oder des Raspberry ist dieser Eintrag aktiv. Die interne Soundkarte ist dann abgeschaltet und die USB-Soundkarte funktioniert!


Die preiswerte DAC-Soundkarte

SABRE-DACDiese Soundkarte wurde in Hongkong bestellt und läuft ohne Treiber problemlos. Es handelt sich dabei um eine “Sabre USB DAC” von HifiMeDiy mit außerordentlich guten Kritiken und einem PCM2706 und einem SA9023. Bei einem Preis von 30 Euro ist sie gerade gut genug für mich! smile


Die Preis-/Leistungs-DAC-Soundkarte

Sabre-Dac-U2Diese Soundkarte wurde in China bestellt und inzwischen wiederum ohne Treiber in Betrieb genommen. Es handelt sich dabei um eine immer noch recht preiswerte “Sabre U2 USB DAC” von HifiMeDiy mit einem ES9023 und einem SA9023 als asynchrone Ausführung. Damit bin ich für 50 Euro am Ende meines Gehörs!