http://openmoko.org/api.php?action=feedcontributions&user=Wesselch&feedformat=atomOpenmoko - User contributions [en]2024-03-28T18:32:52ZUser contributionsMediaWiki 1.19.24http://openmoko.org/wiki/USB_Networking/deUSB Networking/de2008-09-18T15:44:54Z<p>Wesselch: /* SSH Extras */</p>
<hr />
<div>= Neo1973 - Seite =<br />
<br />
== Namensauflösung ==<br />
<br />
Standardmäßig hat das Neo1973 eine Netzwerkschnittstelle usb0, die mit einem im Kernel einkompilierten (g_ether) Ethernet Dadget arbeitet.<br />
<br />
Wenn Sie auf dem Neo voll qualifizierte Hostnamen im Internet erreichen wollen, müssen sie einen DNS-Server definieren. Dazu erstellen Sie die Datei /etc/resolv.conf, die mindestens diese Zeile enthält:<br />
<br />
nameserver xxx.xxx.xxx.xxx<br />
<br />
z.B. nameserver 192.168.1.1<br />
<br />
Danach können Sie auf dem Neo Ihre Openmoko 2007.2 Pakete mit "ipkg update && ipkg upgrade" aktualisieren.<br />
<br />
Ein besserer Ansatz ist ein symbolischer Link<br />
<br />
ln -s /var/run/resolv.conf /etc/resolv.conf<br />
<br />
<br />
Danach erstellen Sie die datei /etc/network/if-up.d/08setupdns, die folgende Zeilen enthält:<br />
<br />
#!/bin/sh -e<br />
echo nameserver 192.168.0.200 > /var/run/resolv.conf<br />
<br />
Auf diese Weise wird diese Datei vom PPP-Paket korrekt behandelt, wenn eine Einwahl per GPRS stattfindet.<br />
<br />
<br />
== Routing ==<br />
<br />
Sie benötigen eine zusätzliche Route für die Verbindung ins Internet. Diese verbindung kann von Ihrem PC geroutet werden (siehe unten), wenn der PC das Standardrouting-Ziel ist. Sie erreichen dies durch das Hinzufügen von<br />
<br />
gateway 192.168.0.200<br />
<br />
zu Ihrer /etc/network/interfaces im Abschnitt usb0.<br />
<br />
= Desktop-Seite =<br />
<br />
== Manuelle Methode ==<br />
<br />
Nach dem Verbinden mit dem Gerät laden Sie das Modul usbnet und konfigurieren Sie die Schnittstelle usb0 (als root):<br />
<pre><br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
</pre><br />
Wenn Ihre eth0 Schnittstelle sich im selben 'Bereich' (z.B. 192.168.0.105) befinet, dann können Sie folgendes tun:<br />
1. Neo anpingen:<br />
# ping -I usb0 192.168.0.202<br />
2. Route zum Neo hinzufügen:<br />
# /sbin/route add -host 192.168.0.202/32 dev usb0<br />
3. Einloggen auf dem Neo:<br />
# ssh root@192.168.0.202<br />
<br />
<br />
Wenn Sie keine notwendigen Module zum Erzeugen von usb0 haben, stellen Sie sicher, dass folgende Kernel Optionen aktiviert sind:<br />
* CONFIG_USB_USBNET<br />
* CONFIG_USB_NET_CDCETHER<br />
Beide Optionen sind unter Device Drivers -> USB support -> USB Network Adapters zu finden. Für weitere Informationen siehe [http://www.linux-usb.org/usbnet/ usbnet driver homepage].<br />
<br />
== Automatische Methode ==<br />
<br />
Die Information entnehmen sie dem [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet], geschickt von Marcin 'Hrw' Juszkiewicz.<br />
<br />
<br />
=== Debian oder ähnliche ===<br />
Editieren Sie /etc/network/interfaces wie folgt:<br />
<pre><br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
post-up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
post-up echo 1 > /proc/sys/net/ipv4/ip_forward<br />
post-up iptables -P FORWARD ACCEPT<br />
</pre><br />
<br />
=== Ubuntu (getestet mit Feisty und Gutsy) ===<br />
Editieren Sie /etc/network/interfaces:<br />
<pre><br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward &<br />
up iptables -P FORWARD ACCEPT &<br />
down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
</pre><br />
<br />
Wenn Sie das Kommando "echo 1 > /proc/..." manuell ausführen, könnte sudo nicht ausreichen, denn das Kommando sudo muss unter der Shell bash ausgeführt werden.<br />
<br />
Ubuntu Fiesty und Gusty haben offenbahr einen Fehler, dass ifdown nicht ausgeführt wird, solange die Schnittstelle "unplugged" ist. Das bedeutet, dass es nur dann funktioniert, wenn das System neu gebootet wird.<br />
<br />
Man kann die Datei /etc/udev/rules.d/85-ifupdown.rules patchen, indem man zwei Zeilen am Ende der Datei editiert:<br />
<pre><br />
SUBSYSTEM=="net", DRIVERS=="?*", GOTO="net_start"<br />
GOTO="net_end"<br />
<br />
LABEL="net_start"<br />
<br />
# Bring devices up and down only if they're marked auto.<br />
# Use start-stop-daemon so we don't wait on dhcp<br />
ACTION=="add", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus \<br />
--startas /sbin/ifup -- --allow auto $env{INTERFACE}"<br />
<br />
LABEL="net_end"<br />
<br />
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus \ <br />
--startas /sbin/ifdown -- --allow auto $env{INTERFACE}"<br />
</pre><br />
<br />
Der Fehler besteht darin, dass LABEL="net_end" an falscher Position steht.<br />
<br />
=== openSuSE ===<br />
/etc/sysconfig/network/ifcfg-usb0<br />
# USB configuration for PDAs (openmoko)<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
STARTMODE=onboot<br />
<br />
=== Fedora (getestet unter FC8) ===<br />
/etc/sysconfig/network-scripts/ifcfg-usb0<br />
<pre><br />
# USB configuration for PDAs (openmoko)<br />
# from http://www.handhelds.org/moin/moin.cgi/UsbNet<br />
DEVICE=usb0<br />
BOOTPROTO=none<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
ONBOOT=yes<br />
</pre><br />
<br />
=== Red Hat oder ähnliche ===<br />
Editieren Sie /etc/sysconfig/network-scripts/net.hotplug:<br />
<br />
Nach diesem Kommando<br />
<pre><br />
case $INTERFACE in<br />
# interfaces that are registered after being "up" (?)<br />
</pre><br />
fügen Sie hinzu<br />
<pre><br />
usb0)<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
route add 192.168.0.202 usb0<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
exit 0<br />
;;<br />
</pre><br />
<br />
=== Gentoo ===<br />
* Öffnen Sie /etc/conf.d/net und fügen Sie hinzu:<br />
# Neo1973<br />
config_usb0=( "192.168.0.200 netmask 255.255.255.0" )<br />
routes_usb0=( "192.168.0.202/32 via 192.168.0.200" )<br />
* Erzeugen Sie einen neuen init Script:<br />
cd /etc/init.d<br />
ln -s net.lo net.usb0<br />
* Erzeugen Sie iptables Einträge:<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
* Speichern Sie das<br />
/etc/init.d/iptables save<br />
* Wenn Sie möchten, dass Routing standardmäßig aktiviert wird:<br />
rc-update add iptables default<br />
<br />
=== MacOS X ===<br />
Sehen Sie [[MacOS_X#USB_Networking|USB Netzwerk Abschnitt im MacOS X Artikel]].<br />
<br />
= Mobile Entwicklung =<br />
<br />
== Weiterleiten der DNS Anfragen ==<br />
<br />
Wenn Sie Ihren Standort oft wechseln und somit Verbindung zu mehreren Netzwerken haten und Ihre IP Adresse über DHCP beziehen, ist es ziemlich aufwendig, jedes mal die Datei /etc/resolv.conf zu aktualisieren.<br />
<br />
Um dies als Teil eines Setup-Scriptes zu tun, kann man einen Proxy DNS einrichten, der auf die IP Adresse des Neo zeigt. Dies bedeutet, dass die Datei /etc/resolv.conf auf dem Neo nur folgendes enthält:<br />
<br />
nameserver 192.168.0.200 <br />
<br />
und z.B. der Notebook funktioniert als DNS Proxy und leitet alle Anfragen basierend auf seiner /etc/resolv.conf weiter.<br />
<br />
'''Starten Sie den DNS Proxy nur auf der Schnittstelle usb0, um andere Netzwerkverbindungen nicht zu unterbrechen.'''<br />
<br />
=== Weiterleiten mit dnrd ===<br />
<br />
Das Script wurde für die Nutzung von [http://dnrd.sourceforge.net/ dnrd] als DNS Proxy entwickelt. Das [http://buildhost.automated.it/gta01 Script] und eine Kopie von [http://buildhost.automated.it/dnrd-2.20.3.tar.gz dnrd] sind auf meiner Seite verfügbar. Das Script führt auch die Ersteinrichtung für die Verbindung wie mit [[USB_Networking/de#Manuelle_Methode]] durch (siehe oben).<br />
<br />
=== Weiterleiten mit einem UDP-Forwarder ===<br />
<br />
Eine weitere einfache Installation ist mit einem UDP-Forwarder von http://www.tapor.com/udpf/ mit dem folgenden Kommando möglich:<br />
<br />
udpf-elf\<br />
-p=53\<br />
-f=`cat /etc/resolv.conf|awk '$1 == "nameserver"{print $2; exit(0);}'`:53<br />
<br />
=== Weiterleitung mit Iptables ===<br />
Es ist möglich DNS Anfragen mit Iptables und DNAT weiterzuleiten:<br />
<br />
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
<br />
Dabei ist <tt>192.168.0.1</tt> die IP Adresse des Heimatgateways (Routers). Dies ist die einfachste Methode, aber sie ist nicht empfehlenswert, wenn Sie eine direkte Verbindung zum Internet haben und die DNS Server ihres ISP ändern können. Außerdem hat diese Methode keine Lastverteilung.<br />
<br />
= Verbindung mit dem Telefon =<br />
<br />
Zum Anmelden am Neo <tt>ssh root@192.168.0.202</tt> mit dem leeren root Passwort<br />
<br />
Notiz: Der SSH Daeomon (dropbear 0.49) im Openmoko scheint einen Bug beim Zurückgeben des Verbindungsstatus an den Client zu haben. Ab und zu bekommen sie einen Rückgabewert 255.<br />
<br />
===SSH Extras===<br />
<br />
Wenn Sie nicht mehr root@192.168.0.202 auf dem PC eintippen möchten, können sie einen Eintrag in der /etc/hosts machen:<br />
<br />
192.168.0.202 neo<br />
<br />
dann editieren Sie ~/.ssh/config (oder erzeugen sie) und fügen hinzu<br />
<br />
host neo<br />
user root<br />
<br />
dann brauchen Sie nur einzutippen:<br />
<br />
# ssh neo<br />
<br />
Um zu vermeiden, dass SSH für jeden Host eine Zeile mit dem Host-Key in der Datei known_hosts einfügt, können Sie folgende Zeile in der ~/.ssh/config einfügen<br />
<br />
UserKnownHostsFile /dev/null<br />
<br />
Vielleicht möchten Sie einen Schlüssel zur Umgehung der Anzeige des Anmeldebildschirms nutzen.<br />
<br />
===SSH Schlüssel===<br />
====Vom Host zum Neo====<br />
<br />
Zur Erzeugung des SSH Schlüssels für die Verwendung des Login Mechanismus geben sie folgendes ein:<br />
<br />
ssh-keygen -t rsa<br />
<br />
Wenn Sie nach einem Passwort gefragt werden, drücken Sie Enter für leeren Passwort (''wirklich keine gute Idee'') oder geben Sie das Passwort für diesen Schlüssel ein. Loggen Sie sich am Neo mit ssh ein und erzeugen Sie das Verzeichnis ~/.ssh wie folgt:<br />
<br />
# mkdir ~/.ssh<br />
<br />
Danach kopieren Sie die Datei '''.pub''' vom PC auf den Neo:<br />
<br />
# scp ~/.ssh/id_rsa.pub phone:.ssh/authorized_keys<br />
<br />
Jetzt sollten Sie in der Lage sein, sich auf dem Neo direkt per ssh anzumelden.<br />
<br />
Zum Deaktivieren des Passwort Logins ('''nach dem Einrichten des Schlüssel Zuganges''') editieren Sie die Datei /etc/init.d/dropbear und ändern Sie folgende Zeile:<br />
<br />
DROPBEAR_EXTRA_ARGS=<br />
<br />
zu<br />
<br />
DROPBEAR_EXTRA_ARGS="-s"<br />
<br />
Jetzt müssen Sie den dropbear neu starten um die Änderung zu aktivieren.<br />
<br />
<br />
====Vom Neo zum Host====<br />
Erzeugen Sie den Schlüssel<br />
<br />
dropbearkey -t rsa -f id_rsa<br />
<br />
Die Ausgabe wird in etwa wie folgt aussehen:<br />
<br />
Will output 1024 bit rsa secret key to 'id_rsa'<br />
Generating key, this may take a while...<br />
Public key portion is:<br />
ssh-rsa AAAAB3Nza[...]<br />
Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8<br />
<br />
Kopieren Sie eine Zeile (in diesem Beispiel beginnend mit 'ssh-rsa') am Ende der Datei authorized_keys auf dem Host System (oft in ~/.ssh/).<br />
<br />
Loggen Sie sich vom Neo aus mit ssh -i:<br />
<br />
ssh -i id_rsa user@host<br />
<br />
Die Anweisungen wurden entnommen aus: [[http://forum.openwrt.org/viewtopic.php?pid=53705]]<br />
<br />
===GUI auf dem Desktop über SSH===<br />
<br />
Wenn Sie die GUI des Neo auf dem Desktop benutzen möchten, können Sie den X Server wie folgt über SSH tunneln:<br />
<br />
ssh -l root -X -v 192.168.0.202<br />
<br />
Melden Sie sich an und starten Sie z.B. das Programm openmoko-finger-demo, welches auf ihrem Desktop geöffnet wird. Um die Seitenverhältnise zu verändern, verändern Sie einfach die Größe des Fensters auf dem Desktop.<br />
<br />
===Remote Anwendungen auf dem Neo===<br />
<br />
Um die Desktop Anwendungen auf Ihrem Neo anzuzeigen melden Sie sich zuerst auf dem Neo an:<br />
<br />
ssh -l root 192.168.0.202<br />
<br />
Danach darauf folgendes eingeben:<br />
<br />
DISPLAY=:0 xhost +192.168.0.200<br />
<br />
Danach können Sie die SSH Sitzung schließen. Gehen Sie zurück auf den Desktop und führen Sie aus:<br />
<br />
DISPLAY=moko:0 xclock<br />
<br />
Beachten Sie, dass der Befehl xhost entfernten Anwendungen auf 192.168.0.200 den Zugriff auf den X-Server erlaubt. Dies erlaubt also jedem Programm auf dem Desktop auf den X-Server zu zugreifen, einschließlich allen Kommandos, die Sie eingeben. Um die Fernbedienung auszuschalten, geben Sie folgendes ein:<br />
<br />
DISPLAY=:0 xhost -192.168.0.200<br />
<br />
<br />
<span id="bottom"></span> <br />
{{Languages|USB Networking}}<br />
<br />
[[Category:Hardware/de]]<br />
[[Category:Implemented/de]]</div>Wesselchhttp://openmoko.org/wiki/USB_Networking/deUSB Networking/de2008-09-18T15:40:33Z<p>Wesselch: /* Weiterleiten mit dnrd */ Übersetzung ergänzt und korrigiert</p>
<hr />
<div>= Neo1973 - Seite =<br />
<br />
== Namensauflösung ==<br />
<br />
Standardmäßig hat das Neo1973 eine Netzwerkschnittstelle usb0, die mit einem im Kernel einkompilierten (g_ether) Ethernet Dadget arbeitet.<br />
<br />
Wenn Sie auf dem Neo voll qualifizierte Hostnamen im Internet erreichen wollen, müssen sie einen DNS-Server definieren. Dazu erstellen Sie die Datei /etc/resolv.conf, die mindestens diese Zeile enthält:<br />
<br />
nameserver xxx.xxx.xxx.xxx<br />
<br />
z.B. nameserver 192.168.1.1<br />
<br />
Danach können Sie auf dem Neo Ihre Openmoko 2007.2 Pakete mit "ipkg update && ipkg upgrade" aktualisieren.<br />
<br />
Ein besserer Ansatz ist ein symbolischer Link<br />
<br />
ln -s /var/run/resolv.conf /etc/resolv.conf<br />
<br />
<br />
Danach erstellen Sie die datei /etc/network/if-up.d/08setupdns, die folgende Zeilen enthält:<br />
<br />
#!/bin/sh -e<br />
echo nameserver 192.168.0.200 > /var/run/resolv.conf<br />
<br />
Auf diese Weise wird diese Datei vom PPP-Paket korrekt behandelt, wenn eine Einwahl per GPRS stattfindet.<br />
<br />
<br />
== Routing ==<br />
<br />
Sie benötigen eine zusätzliche Route für die Verbindung ins Internet. Diese verbindung kann von Ihrem PC geroutet werden (siehe unten), wenn der PC das Standardrouting-Ziel ist. Sie erreichen dies durch das Hinzufügen von<br />
<br />
gateway 192.168.0.200<br />
<br />
zu Ihrer /etc/network/interfaces im Abschnitt usb0.<br />
<br />
= Desktop-Seite =<br />
<br />
== Manuelle Methode ==<br />
<br />
Nach dem Verbinden mit dem Gerät laden Sie das Modul usbnet und konfigurieren Sie die Schnittstelle usb0 (als root):<br />
<pre><br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
</pre><br />
Wenn Ihre eth0 Schnittstelle sich im selben 'Bereich' (z.B. 192.168.0.105) befinet, dann können Sie folgendes tun:<br />
1. Neo anpingen:<br />
# ping -I usb0 192.168.0.202<br />
2. Route zum Neo hinzufügen:<br />
# /sbin/route add -host 192.168.0.202/32 dev usb0<br />
3. Einloggen auf dem Neo:<br />
# ssh root@192.168.0.202<br />
<br />
<br />
Wenn Sie keine notwendigen Module zum Erzeugen von usb0 haben, stellen Sie sicher, dass folgende Kernel Optionen aktiviert sind:<br />
* CONFIG_USB_USBNET<br />
* CONFIG_USB_NET_CDCETHER<br />
Beide Optionen sind unter Device Drivers -> USB support -> USB Network Adapters zu finden. Für weitere Informationen siehe [http://www.linux-usb.org/usbnet/ usbnet driver homepage].<br />
<br />
== Automatische Methode ==<br />
<br />
Die Information entnehmen sie dem [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet], geschickt von Marcin 'Hrw' Juszkiewicz.<br />
<br />
<br />
=== Debian oder ähnliche ===<br />
Editieren Sie /etc/network/interfaces wie folgt:<br />
<pre><br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
post-up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
post-up echo 1 > /proc/sys/net/ipv4/ip_forward<br />
post-up iptables -P FORWARD ACCEPT<br />
</pre><br />
<br />
=== Ubuntu (getestet mit Feisty und Gutsy) ===<br />
Editieren Sie /etc/network/interfaces:<br />
<pre><br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward &<br />
up iptables -P FORWARD ACCEPT &<br />
down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
</pre><br />
<br />
Wenn Sie das Kommando "echo 1 > /proc/..." manuell ausführen, könnte sudo nicht ausreichen, denn das Kommando sudo muss unter der Shell bash ausgeführt werden.<br />
<br />
Ubuntu Fiesty und Gusty haben offenbahr einen Fehler, dass ifdown nicht ausgeführt wird, solange die Schnittstelle "unplugged" ist. Das bedeutet, dass es nur dann funktioniert, wenn das System neu gebootet wird.<br />
<br />
Man kann die Datei /etc/udev/rules.d/85-ifupdown.rules patchen, indem man zwei Zeilen am Ende der Datei editiert:<br />
<pre><br />
SUBSYSTEM=="net", DRIVERS=="?*", GOTO="net_start"<br />
GOTO="net_end"<br />
<br />
LABEL="net_start"<br />
<br />
# Bring devices up and down only if they're marked auto.<br />
# Use start-stop-daemon so we don't wait on dhcp<br />
ACTION=="add", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus \<br />
--startas /sbin/ifup -- --allow auto $env{INTERFACE}"<br />
<br />
LABEL="net_end"<br />
<br />
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus \ <br />
--startas /sbin/ifdown -- --allow auto $env{INTERFACE}"<br />
</pre><br />
<br />
Der Fehler besteht darin, dass LABEL="net_end" an falscher Position steht.<br />
<br />
=== openSuSE ===<br />
/etc/sysconfig/network/ifcfg-usb0<br />
# USB configuration for PDAs (openmoko)<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
STARTMODE=onboot<br />
<br />
=== Fedora (getestet unter FC8) ===<br />
/etc/sysconfig/network-scripts/ifcfg-usb0<br />
<pre><br />
# USB configuration for PDAs (openmoko)<br />
# from http://www.handhelds.org/moin/moin.cgi/UsbNet<br />
DEVICE=usb0<br />
BOOTPROTO=none<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
ONBOOT=yes<br />
</pre><br />
<br />
=== Red Hat oder ähnliche ===<br />
Editieren Sie /etc/sysconfig/network-scripts/net.hotplug:<br />
<br />
Nach diesem Kommando<br />
<pre><br />
case $INTERFACE in<br />
# interfaces that are registered after being "up" (?)<br />
</pre><br />
fügen Sie hinzu<br />
<pre><br />
usb0)<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
route add 192.168.0.202 usb0<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
exit 0<br />
;;<br />
</pre><br />
<br />
=== Gentoo ===<br />
* Öffnen Sie /etc/conf.d/net und fügen Sie hinzu:<br />
# Neo1973<br />
config_usb0=( "192.168.0.200 netmask 255.255.255.0" )<br />
routes_usb0=( "192.168.0.202/32 via 192.168.0.200" )<br />
* Erzeugen Sie einen neuen init Script:<br />
cd /etc/init.d<br />
ln -s net.lo net.usb0<br />
* Erzeugen Sie iptables Einträge:<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
* Speichern Sie das<br />
/etc/init.d/iptables save<br />
* Wenn Sie möchten, dass Routing standardmäßig aktiviert wird:<br />
rc-update add iptables default<br />
<br />
=== MacOS X ===<br />
Sehen Sie [[MacOS_X#USB_Networking|USB Netzwerk Abschnitt im MacOS X Artikel]].<br />
<br />
= Mobile Entwicklung =<br />
<br />
== Weiterleiten der DNS Anfragen ==<br />
<br />
Wenn Sie Ihren Standort oft wechseln und somit Verbindung zu mehreren Netzwerken haten und Ihre IP Adresse über DHCP beziehen, ist es ziemlich aufwendig, jedes mal die Datei /etc/resolv.conf zu aktualisieren.<br />
<br />
Um dies als Teil eines Setup-Scriptes zu tun, kann man einen Proxy DNS einrichten, der auf die IP Adresse des Neo zeigt. Dies bedeutet, dass die Datei /etc/resolv.conf auf dem Neo nur folgendes enthält:<br />
<br />
nameserver 192.168.0.200 <br />
<br />
und z.B. der Notebook funktioniert als DNS Proxy und leitet alle Anfragen basierend auf seiner /etc/resolv.conf weiter.<br />
<br />
'''Starten Sie den DNS Proxy nur auf der Schnittstelle usb0, um andere Netzwerkverbindungen nicht zu unterbrechen.'''<br />
<br />
=== Weiterleiten mit dnrd ===<br />
<br />
Das Script wurde für die Nutzung von [http://dnrd.sourceforge.net/ dnrd] als DNS Proxy entwickelt. Das [http://buildhost.automated.it/gta01 Script] und eine Kopie von [http://buildhost.automated.it/dnrd-2.20.3.tar.gz dnrd] sind auf meiner Seite verfügbar. Das Script führt auch die Ersteinrichtung für die Verbindung wie mit [[USB_Networking/de#Manuelle_Methode]] durch (siehe oben).<br />
<br />
=== Weiterleiten mit einem UDP-Forwarder ===<br />
<br />
Eine weitere einfache Installation ist mit einem UDP-Forwarder von http://www.tapor.com/udpf/ mit dem folgenden Kommando möglich:<br />
<br />
udpf-elf\<br />
-p=53\<br />
-f=`cat /etc/resolv.conf|awk '$1 == "nameserver"{print $2; exit(0);}'`:53<br />
<br />
=== Weiterleitung mit Iptables ===<br />
Es ist möglich DNS Anfragen mit Iptables und DNAT weiterzuleiten:<br />
<br />
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
<br />
Dabei ist <tt>192.168.0.1</tt> die IP Adresse des Heimatgateways (Routers). Dies ist die einfachste Methode, aber sie ist nicht empfehlenswert, wenn Sie eine direkte Verbindung zum Internet haben und die DNS Server ihres ISP ändern können. Außerdem hat diese Methode keine Lastverteilung.<br />
<br />
= Verbindung mit dem Telefon =<br />
<br />
Zum Anmelden am Neo <tt>ssh root@192.168.0.202</tt> mit dem leeren root Passwort<br />
<br />
Notiz: Der SSH Daeomon (dropbear 0.49) im Openmoko scheint einen Bug beim Zurückgeben des Verbindungsstatus an den Client zu haben. Ab und zu bekommen sie einen Rückgabewert 255.<br />
<br />
===SSH Extras===<br />
<br />
Wenn Sie nicht mehr root@192.168.0.202 auf dem PC eintippen möchten, können sie einen Eintrag in der /etc/hosts machen:<br />
<br />
192.168.0.202 neo<br />
<br />
dann editieren Sie ~/.ssh/config (oder erzeugen sie) und fügen hinzu<br />
<br />
host neo<br />
user root<br />
<br />
dann brauchen Sie nur einzutippen:<br />
<br />
# ssh neo<br />
<br />
Um zu vermeiden, dass SSH für jeden Host eine Zeile mit dem Host-Key in der Datei known_hosts einfügr, können Sie folgende Zeile in der ~/.ssh/config einfügen<br />
<br />
UserKnownHostsFile /dev/null<br />
<br />
Vielleicht möchten Sie einen Schlüssel zur Umgehung der Anzeige des Anmeldebildschirms nutzen.<br />
<br />
===SSH Schlüssel===<br />
====Vom Host zum Neo====<br />
<br />
Zur Erzeugung des SSH Schlüssels für die Verwendung des Login Mechanismus geben sie folgendes ein:<br />
<br />
ssh-keygen -t rsa<br />
<br />
Wenn Sie nach einem Passwort gefragt werden, drücken Sie Enter für leeren Passwort (''wirklich keine gute Idee'') oder geben Sie das Passwort für diesen Schlüssel ein. Loggen Sie sich am Neo mit ssh ein und erzeugen Sie das Verzeichnis ~/.ssh wie folgt:<br />
<br />
# mkdir ~/.ssh<br />
<br />
Danach kopieren Sie die Datei '''.pub''' vom PC auf den Neo:<br />
<br />
# scp ~/.ssh/id_rsa.pub phone:.ssh/authorized_keys<br />
<br />
Jetzt sollten Sie in der Lage sein, sich auf dem Neo direkt per ssh anzumelden.<br />
<br />
Zum Deaktivieren des Passwort Logins ('''nach dem Einrichten des Schlüssel Zuganges''') editieren Sie die Datei /etc/init.d/dropbear und ändern Sie folgende Zeile:<br />
<br />
DROPBEAR_EXTRA_ARGS=<br />
<br />
zu<br />
<br />
DROPBEAR_EXTRA_ARGS="-s"<br />
<br />
Jetzt müssen Sie den dropbear neu starten um die Änderung zu aktivieren.<br />
<br />
<br />
====Vom Neo zum Host====<br />
Erzeugen Sie den Schlüssel<br />
<br />
dropbearkey -t rsa -f id_rsa<br />
<br />
Die Ausgabe wird in etwa wie folgt aussehen:<br />
<br />
Will output 1024 bit rsa secret key to 'id_rsa'<br />
Generating key, this may take a while...<br />
Public key portion is:<br />
ssh-rsa AAAAB3Nza[...]<br />
Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8<br />
<br />
Kopieren Sie eine Zeile (in diesem Beispiel beginnend mit 'ssh-rsa') am Ende der Datei authorized_keys auf dem Host System (oft in ~/.ssh/).<br />
<br />
Loggen Sie sich vom Neo aus mit ssh -i:<br />
<br />
ssh -i id_rsa user@host<br />
<br />
Die Anweisungen wurden entnommen aus: [[http://forum.openwrt.org/viewtopic.php?pid=53705]]<br />
<br />
===GUI auf dem Desktop über SSH===<br />
<br />
Wenn Sie die GUI des Neo auf dem Desktop benutzen möchten, können Sie den X Server wie folgt über SSH tunneln:<br />
<br />
ssh -l root -X -v 192.168.0.202<br />
<br />
Melden Sie sich an und starten Sie z.B. das Programm openmoko-finger-demo, welches auf ihrem Desktop geöffnet wird. Um die Seitenverhältnise zu verändern, verändern Sie einfach die Größe des Fensters auf dem Desktop.<br />
<br />
===Remote Anwendungen auf dem Neo===<br />
<br />
Um die Desktop Anwendungen auf Ihrem Neo anzuzeigen melden Sie sich zuerst auf dem Neo an:<br />
<br />
ssh -l root 192.168.0.202<br />
<br />
Danach darauf folgendes eingeben:<br />
<br />
DISPLAY=:0 xhost +192.168.0.200<br />
<br />
Danach können Sie die SSH Sitzung schließen. Gehen Sie zurück auf den Desktop und führen Sie aus:<br />
<br />
DISPLAY=moko:0 xclock<br />
<br />
Beachten Sie, dass der Befehl xhost entfernten Anwendungen auf 192.168.0.200 den Zugriff auf den X-Server erlaubt. Dies erlaubt also jedem Programm auf dem Desktop auf den X-Server zu zugreifen, einschließlich allen Kommandos, die Sie eingeben. Um die Fernbedienung auszuschalten, geben Sie folgendes ein:<br />
<br />
DISPLAY=:0 xhost -192.168.0.200<br />
<br />
<br />
<span id="bottom"></span> <br />
{{Languages|USB Networking}}<br />
<br />
[[Category:Hardware/de]]<br />
[[Category:Implemented/de]]</div>Wesselchhttp://openmoko.org/wiki/Flashing_the_Neo_FreeRunnerFlashing the Neo FreeRunner2008-09-01T14:07:23Z<p>Wesselch: /* Download the DFU-util program */</p>
<hr />
<div>Openmoko regularly releases updated versions of the Openmoko root filesystem, the [[kernel]], and the [[Bootloader| U-Boot]] as binary images. These may be programmed into the Flash memory (NAND) of Neo FreeRunner. For that, you can use the USB cable and another computer which will run an Openmoko provided tool to flash the Neo FreeRunner "through" USB.<br />
<br />
== Overview ==<br />
All the components of the software in the FreeRunner are bundled together into binary images.<br />
<br />
On a desktop computer when you want to replace the operating system (OS), you would boot it from a CD-ROM drive, then copy OS files from the CD to the internal hard drive. The FreeRunner does not have a CD-ROM drive and files must typically be re-written/flashed directly into internal storage (NAND flash). It is also possible to load all the OS files to and boot from a microSD.<br />
<br />
The FreeRunner has two kinds of internal program storage: NOR flash and NAND flash. The NOR flash is small and stores only a special boot program used when you need to re-write the contents of the NAND flash. NAND flash acts more like a hard drive.<br />
<br />
The NAND Flash is divided into 3 partitions for the bootloader, kernel, and root filesystem - so each of these components can be flashed separately. For example if you are trying to install a modified kernel, you only have to follow the steps to flash the kernel image.<br />
<br />
* '''bootloader''': a small program that runs first and starts everything else when the FreeRunner is powered on or reset (depending on [[Booting the Neo FreeRunner|how you reset it]], the version from NOR or NAND is booted).<br />
* '''kernel''': the central component in the Linux operating system.<br />
* '''root filesystem''': contains all the files that make up the commands and applications that you can run.<br />
<br />
'''Before you start: Erasing the root filesystem or flashing the uboot are radical measures. Take the time to ponder the necessity. Sometimes problems can be fixed by updating only the kernel.'''<br />
<br />
== Alternative : running from microSD card ==<br />
<br />
You may install this distribution on the microSD card, in order to [[Booting from SD | boot from microSD card]]. That allows you to keep another distribution installed in NAND (for instance to test 2008.08 while still having 2007.2 for default boot).<br />
<br />
== Collect the things you need ==<br />
<br />
=== Download the DFU-util program ===<br />
<br />
You will download that program on your desktop computer. It will allow you to connect to the FreeRunner through the USB cable and control its bootloader. That connection uses a special protocol which addresses the bootloader's interface, and differs from USB networking. There is a separate page to describe it in more detail: [[dfu-util]].<br />
<br />
<br />
'''MacOS X:''' [[MacOS_X#Graphical_Flashing_with_Openmoko_Flasher]]<br />
<br />
'''Linux:''' http://buildhost.openmoko.org/releases/FreeRunner/dfu-util (Link is broken)<br />
<br />
Make sure it is executable by setting the permissions with this command: chmod a+x dfu-util<br />
<br />
'''Note:''' dfu-util seems to consistently fail with a "-62" error on 64-bit Linux. If you have access to a 32-bit machine, use it instead!<br />
There are some ubuntu64 interpid packages which work just fine for me in hardy too. So you might try at your own risk: [http://packages.ubuntu.com/de/intrepid/dfu-util]<br />
<br />
'''Windows:''' http://projects.openmoko.org/frs/?group_id=166&release_id=162 <br />
<br />
See additional driver installation instructions for Windows at [[Dfu-util-windows]]<br />
<br />
=== Download the image files that you will need ===<br />
<br />
Exactly what files you need depends on what you are trying to install. In most cases you will need to install a Kernel (uImage) and a Root Filesystem (rootfs). In rare cases, when there is a bug you need fixed, you will also install a new bootloader.<br />
<br />
Please read [[Distributions]] for choosing the distribution which fits your needs, and then see [[Download]] for downloading.<br />
<br />
== Boot the FreeRunner from NOR Flash ==<br />
<br />
[[Image:menu15.jpg|thumb|Booting from NOR Flash]]<br />
<br />
# Read the other sections of this page first, because you will have 30 seconds to enter the flashing commands, come back here when ready.<br />
# Do not connect the USB cable from the PC to your Neo FreeRunner yet (disconnect it).<br />
# Boot your Neo FreeRunner into the NOR uBoot menu for flashing.<br />
## Press and hold AUX button<br />
## Press the Power button until the boot menu comes up<br />
## This menu is labelled '''*** BOOT MENU (NOR) ***'''<br />
## See also [[Booting the Neo FreeRunner]]<br />
# Stay in NOR uBoot menu, do not to select or enter any item in menu. Now you will be able to flash, make backups of your FreeRunner or query the FreeRunner with dfu-util.<br />
# The FreeRunner only stays at the NOR boot prompt for about 30 seconds and then shuts off unless you do something.<br />
# Connect your Neo to the GNU/Linux or Windows host via a USB cable. <br />
# Now you can enter the dfu-util commands on your PC as described below.<br />
# If the Neo FreeRunner turns off before you press start flashing ('''screen goes black'''), go back to step 2. If you start flashing in time, the phone will not turn off meanwhile.<br />
<br />
<!-- The following, upto dfu-util -l is taken from the thread "Re: FreeRunner (GTK2007.2) has suddenly become unbootable" on the Support list. --><br />
<br />
Note that the dfu-util connection does '''not''' use Ethernet over USB - that is, you should not attempt to set up a usb0 network interface on your GNU/Linux host desktop (on Windows, you need a DFU class driver, or you can use the LibUSB-Win32 driver described on the [[Dfu-util-windows]] page). The dfu-util utility sets up its own connection to the FreeRunner. In fact, you will not be able to make an Ethernet-over-USB connection to the FreeRunner when it is at the uBoot menu; this type of connection is only available when the FreeRunner has booted fully.<br />
<br />
After connecting the FreeRunner to your host via USB cable, you can test whether dfu-util "sees" the FreeRunner by executing:<br />
<br />
dfu-util -l<br />
If you get error messages from the dfu-util command then try again. Often it works on the second try.<br />
<br />
== Do a backup ==<br />
<br />
If you have a working image that you're happy with but want to try something different, you should probably do a [[Pre-Flash Backup]].<br />
<br />
== Using dfu-util ==<br />
<br />
dfu-util can be used to read flash memory, write memory, and get information from the device.<br />
<br />
This is the general command format to write an image file to a (predefined) "partition name" (referred to as ''altsetting'' in dfu-util help/manual) :<br />
<br />
dfu-util -a ''altsetting'' -R -D ''file_name''<br />
<br />
where:<br><br />
-a ''altsetting'' : Specify the altsetting of the DFU interface by name or by number<br><br />
-R : Issue USB Reset signalling once we're finished<br><br />
-D ''file_name'' : Write firmware from ''file_name'' into device<br />
<br />
On Linux, you run dfu-util from a command shell prompt. If you have not put it somewhere on your command path you probably need to prefix it with a "./" like this '''./dfu-util'''.<br />
On some systems you need to be root before this will work and on Ubuntu you must preface the command with "sudo" or you will get the following error: "Cannot claim interface: could not claim interface 2: Operation not permitted"<br />
<br />
On Windows, you need to open a command window and run from a command line. Use Start-Run Program and type "cmd" to open a Window.<br />
<br />
More detailed manual for gfu-util is available here : [[Dfu-util]]<br />
<br />
== Flashing the Kernel ==<br />
<br />
Note: The phone needs to be in the U-boot bootup menu for this to work. Get there by holding down the aux button while powering up the device.<br />
<br />
The command format is <br />
<br />
dfu-util -a kernel -R -D ''/path/to/uImage''<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br />
Done!<br />
<br />
Flashing may fail with an error -110. This indicates that the kernel is too big for the default kernel partition. uboot can be used to change the size of the default partitions on the device. It may also mean that you are trying to put the wrong thing in the kernel space.<br />
<br />
== Flashing the Root Filesystem ==<br />
<br />
The root filesystem has to be an image in jffs2 format. If the file you downloaded is zipped or compressed (has a .gz, bz2, .zip, tar, tar.gz or .tgz extension) you have to uncompress it first.<br />
<br />
The command format is<br />
<br />
dfu-util -a rootfs -R -D ''rootfs_filename.jffs2''<br />
<br />
where ''rootfs_filename.jffs2'' is the name of the file containing the root filesystem.<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br />
Done!<br />
<br />
== Flashing the boot loader to the NAND==<br />
<br />
The boot loader (U-boot) file should have a .bin extension. As with the root filesystem, if the file you downloaded is zipped or compressed (has a .gz or .zip extension) you have to uncompress it first.<br />
<br />
The command format is <br />
<br />
dfu-util -a u-boot -R -D ''uboot.bin''<br />
<br />
where ''uboot.bin'' is the name of the boot loader binary image file.<br />
<br />
''Reminder'': You should have [[Flashing_the_Neo_FreeRunner#Boot_the_FreeRunner_from_NOR_Flash|boot from NOR first]], in order to flash the boot-loader in NAND. After flashing succesfully, make sure you reboot from NAND's newly flashed boot loader, to benefit from the updates.<br />
<br />
<!-- Taken from posts by Mikael Berthe <mikael.berthe@lilotux.net> and Torfinn Ingolfsen <tingox@gmail.com> to Support list, subject: Re: Upgrading u-boot needed ? --><br />
(Optional) After an upgrade, you may wish to check that the u-boot version matches the one you have just flashed. You can use 'grep Bootloader /dev/mtdblock1' from a shell on the FreeRunner (and possibly the 1973 as well) to get the '''NAND''' u-boot version, like this:<br />
root@om-gta02:~# grep Bootloader /dev/mtdblock1<br />
Neo1973 Bootloader U-Boot 1.3.2+gitr18+64eb10cab8055084ae25ea4e73b66dd03cc1a0cb<br />
<br />
You can grep for the same string in /dev/mtdblock0 to retrieve the '''NOR''' u-boot version:<br />
root@om-gta02:~# grep Bootloader /dev/mtdblock0<br />
Neo1973 Bootloader U-Boot 1.3.2-moko12<br />
<br />
<!-- ENDS ... subject: Re: Upgrading u-boot needed ? --><br />
<br />
== Reboot the FreeRunner from NAND ==<br />
<br />
You should now be able to boot into the new images.<br />
<br />
Pay attention '''to booting from the NAND flash this time''', in particular if you upgraded the boot-loader (in short: 1. press and hold ''power button'' down, and then 2. press ''aux button'')<br />
<br />
The boot menu should be labelled '''*** BOOT MENU (NAND) ***''' this time (see [[Booting#Log_into_U-Boot_in_the_NAND_Flash|booting from NAND]] for more detailed instructions).<br />
<br />
[[Category:Flashing Openmoko| ]]</div>Wesselchhttp://openmoko.org/wiki/Openmoko_Local_Groups:_HamburgOpenmoko Local Groups: Hamburg2008-08-08T10:26:45Z<p>Wesselch: /* Interessenten der Gruppe */</p>
<hr />
<div>====Interessenten der Gruppe====<br />
{|border=1<br />
!Name<br />
!Skills<br />
!Level of Interest<br />
!Location<br />
!Other<br />
!Has Device<br />
!Has Debug Board<br />
|-<br />
|[[User:MaxMustermann|Max Mustermann]]<br />
|Beispiel spielen<br />
|OM Nutzen, Monkey island zocken<br />
|Hamburg<br />
|<br />
|[[Image:Moko.jpg|center]] gta02v5<br />
|[[Image:MokoBox.jpg|center]]<br />
|-<br />
|[[User:jsb|jsb]]<br />
|Linux, Nachrichtentechnik, Netzwerke<br />
|mal gucken, was OM/freerunner kann; evtl. ein bischen coden<br />
|Hamburg<br />
|<br />
|no<br />
|no<br />
|-<br />
|[[User:wesselch|wesselch]]<br />
|Linux, Fedora, SELinux<br />
|Aus dem FR ein alltagstaugliches Mobile Phone machen<br />
|Schneverdingen<br />
|<br />
|Ich warte noch (immer)<br />
|no<br />
|}<br />
[[Category:Openmoko Local Groups]]</div>Wesselch