Der Raspberry soll sich per Wlan mit dem Router verbinden und die Verbindung auf den LAN-Port durchreichen.
Verwendete Umgebung: Raspberry Pi 2, WLAN-Stick mit Ralink RT5370 Chip, Rasbian mit Debian Jessie
Anwendung
Drucker ohne WLAN, Fernseher o.a. Geräte ohne Netzwerkdose in der Nähe.
Nach mehreren Anläufen ohne Erfolg bis hin zum Aussperren aus dem Raspberry und mühsamem Editieren der Netzwerkeinstellungen direkt auf der SD-Karte, da ich keine USB-Tastatur habe, ist es nun endlich gelungen. Mein alter Netzwerkdrucker HP5N kann in einer Ecke ohne Netzwerkkabel stehen und druckt “kabellos”.
Die entscheidenden Einstellungen habe ich hier gefunden.
Zunächst ist zusätzliche Software zu installieren.
aptitude install parprouted dhcp-helper avahi-daemon
Eine funktionierende WLAN-Verbindung wird vorausgesetzt. Sonst kann hier nachgelesen werden.
In der Datei /etc/network/interfaces sind folgende Einstellungen zu machen:
#/etc/network/interfaces auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet manual auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf post-up /usr/sbin/parprouted eth0 wlan0 post-down /usr/bin/killall /usr/sbin/parprouted # clone the dhcp-allocated IP to eth0 so dhcp-helper will relay for the correct subnet post-up /sbin/ip addr add $(/sbin/ip addr show wlan0 | perl -wne 'm|^\s+inet (.*)/| && print $1')/32 dev eth0 post-down /sbin/ifdown eth0
/etc/sysctl.conf um IP-Forwarding zu aktivieren
net.ipv4.ip_forward=1
/etc/avahi/avahi-daemon.conf um mDNS relaying zu aktivieren
[reflector] enable-reflector=yes
meine /etc/wpa_suppliant.conf
# /etc/wpa_supplicant/wpa_supplicant.conf country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="MEINE_SSID" psk="WLAN_PASSWORT" proto=RSN key_mgmt=WPA-PSK pairwise=CCMP auth_alg=OPEN }
Überwachen der LAN-Verbindung
Der Aufruf von parprouted in /etc/network/interfaces funktioniert nur nach einem Neustart des Raspi. Wird aber das über den LAN-Port angeschlossene Gerät vom Strom getrennt, funktioniert die LAN-Verbindung nicht mehr.
Dazu gibt es folgendes Skript:
#!/bin/sh # /usr/sbin/check_lan_status # pruefe die LAN-Verbindung cable=$(cat /sys/class/net/eth0/carrier) if [ "$cable" = "0" ]; then #kein Kabel dran, Skript beenden exit 0 fi if /bin/ping -c 1 192.168.34.100 >/dev/null #Verbindung funktioniert, Skript beenden then echo "Drucker ok" exit 0 fi # Falls ping nicht funktioniert hat, muss der LAN-Port "neu gestartet werden" /usr/sbin/parprouted eth0 wlan0
Das Skript wird mittels Cronjob eingebunden und bei mir jede Minute geprüft, ob ein Gerät angeschlossen wurde. Das Skript z.B. unter /usr/sbin/check_lan_status ablegen und mit
#chmod 755 /usr/sbin/check_lan_status
ausführbar machen.
Anschließend den Cronjob aktivieren:
#crontab -e
# Check die Verbindung zum Drucker * * * * * /usr/sbin/check_lan_status
Mit der obigen Einstellung wird das Skript jede Minute gestartet und bei aktiver Kabelverbindung und nicht funktionierendem Ping parprouted neu gestartet.
In einem weiteren Beitrag beschreibe ich die Einrichtung des Raspberrry als Printserver, um meinen alten Drucker iOS-druckfähig (AirPrint) zu machen.
Links
Sorry for posting in english, maybe you understand this:
It is not enough for me to run /usr/sbin/parprouted eth0 wlan0 in monitoring script.
I need to run “/sbin/ip addr add $(/sbin/ip addr show wlan0 | perl -wne ‘m|^\s+inet (.*)/| && print $1’)/32 dev eth0” too.
But I am still looking for a better way than the monitoring script:
https://www.raspberrypi.org/forums/viewtopic.php?f=36&t=176508
The scenario: it doesn’t worked me even after restart. I must manually run the two post-up command, after that I get ip address.
I found the problem why /etc/network/interfaced post-up commands not worked: there was a conflict with build in DHCP server.
after you run: sudo apt-get purge dhcpcd5
everything is fine, post-up commands are working properly after restart and I can unplug-plug LAN it works too;)
Guten Morgen
Die Anleitung klappt bei der neusten Raspbian Stretch Lite nicht. Die Netzwerkinterfaces werden nicht mehr über die /etc/network/interfaces gesteuert. Gibt es evtl. eine neue Anleitung? Ich wäre sehr dankbar.
Stefan
You need to edit following:
/etc/default/dhcp-helper
# relay dhcp requests as broadcast to wlan0
DHCPHELPER_OPTS=”-b wlan0″