Damit kann eine Netzwerkverbindung zwischen PC/Notebook und dem Gnublin Board hergestellt werden. Man kann damit zwischen PC und Gnublin über die üblichen Netzwerk-Programme und Protokolle kommunizieren. Mit einem Zusatz (siehe Punkt 10) kommt man auch mit Gnublin über den PC in das Internet.
Gnublin von der Versorgungsspannung nehmen.
Jumper "USB OTG PWR" und "USB OTG ID" auf "Device" setzen.
Die Jumper und I/O Pins sieht man hier: http://elk.informatik.fh-augsburg.de/pub/gnublin-lpc3131/gnublin-1.3.refcard.jpg
Beide USB Anschlüsse des Gnublin Boards mit dem PC verbinden Konsole (Konsole und USB-OTG) Gnublin sollte nun booten. Danach einloggen.
Modul laden
root@armv5te:~# modprobe g_ether g_ether gadget: using random self ethernet address g_ether gadget: using random host ethernet address usb0: MAC 2e:dd:9a:ed:d2:48 usb0: HOST MAC 56:e5:4d:4b:18:84 g_ether gadget: Ethernet Gadget, version: Memorial Day 2008 g_ether gadget: g_ether ready fsl-usb2-udc: bind to driver g_ether root@armv5te:~# g_ether gadget: high speed config #1: CDC Ethernet (ECM)
IP Adresse vergeben
root@armv5te:~# ifconfig usb0 10.11.12.1 up
Kontrolle
root@armv5te:~# ifconfig lo ... usb0 Link encap:Ethernet HWaddr 2E:DD:9A:ED:D2:48 inet addr:10.11.12.1 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Am PC eingeben (Ubuntu 10.04 LTS)
Hinweis: nicht g_ether laden
hhoegl@aspire1:~$ sudo ifconfig ... usb0 Link encap:Ethernet HWaddr 56:e5:4d:4b:18:84 inet6 addr: fe80::54e5:4dff:fe4b:1884/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:2052 (2.0 KB) ...
IP Nummer vergeben:
sudo ifconfig usb0 10.11.12.2 up
Kontrolle:
hhoegl@aspire1:~$ sudo ifconfig ... usb0 Link encap:Ethernet HWaddr 56:e5:4d:4b:18:84 inet addr:10.11.12.2 Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: fe80::54e5:4dff:fe4b:1884/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:4723 (4.7 KB) ...
Test der Verbindung mit Ping:
hhoegl@aspire1:~$ ping 10.11.12.1 PING 10.11.12.1 (10.11.12.1) 56(84) bytes of data. 64 bytes from 10.11.12.1: icmp_seq=1 ttl=64 time=0.954 ms 64 bytes from 10.11.12.1: icmp_seq=2 ttl=64 time=0.815 ms 64 bytes from 10.11.12.1: icmp_seq=3 ttl=64 time=0.812 ms ...
Auf Gnublin den Web Server starten:
root@armv5te:~# bash lighttpd-init.sh
Die Datei lighttpd-init.sh enthaelt (muss ich noch in das Start Skript /etc/init.d/lighttpd einbauen):
#!/bin/sh if [ ! -d /var/log/lighttpd ] then mkdir /var/log/lighttpd chmod 777 /var/log/lighttpd/ touch /var/log/lighttpd/error.log fi chmod 666 /var/log/lighttpd/error.log /etc/init.d/lighttpd start
Auf dem PC einen Web-Browser starten und den URL waehlen:
Danach sollte man "Hello, world" im Browser sehen.
ssh Verindung vom PC zu Gnublin
hhoegl@aspire1:~$ ssh root@10.11.12.1 The authenticity of host '10.11.12.1 (10.11.12.1)' can't be established. RSA key fingerprint is af:0a:d9:9b:f2:ce:5d:9d:d2:6d:3b:1a:b5:4a:c1:0f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.11.12.1' (RSA) to the list of known hosts. root@10.11.12.1's password: root@armv5te:~#
Auf dem Gnublin Board muss dropbear laufen. Eventuell manuell starten mit "/etc/init.d/dropbear start".
ssh Daemon laufen):
root@armv5te:~# ssh hhoegl@10.11.12.2 Host '10.11.12.2' is not in the trusted hosts file. (fingerprint md5 47:15:5c:61:aa:d6:cb:22:ff:24:3a:ff:84:98:6a:37) Do you want to continue connecting? (y/n) y hhoegl@10.11.12.2's password: Linux aspire1 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:13:04 UTC 2012 i686 GNU/Linux Ubuntu 10.04.3 LTS Welcome to Ubuntu! * Documentation: https://help.ubuntu.com/ Your CPU appears to be lacking expected security protections. Please check your BIOS settings, or for more information, run: /usr/bin/check-bios-nx --verbose Last login: Thu Feb 2 22:01:05 2012 from localhost hhoegl@aspire1:~$
Man kann mit dieser Methode auch von Gnublin aus über den PC in das Internet gehen, wenn man folgende Kommandos auf dem PC ausführt:
echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Auf dem Gnublin Board kann man noch die default route setzen mit
root@gnublin:~# route add default gw 192.168.1.2 usb0 root@gnublin:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 usb0 0.0.0.0 192.168.1.2 0.0.0.0 UG 0 0 0 usb0
Bei dieser Methode verwendet man eine Eigenschaft des Network-Managers. Man lädt wieder wie üblich auf Gnublin das g_ether Modul und konfiguriert eine IP Adresse, z.B.
sudo ifconfig usb0 192.168.1.2 up
Im Network Manager findet man anschliessend eine neue "wired connection" für die USB Pseudo-Netzverbindung, z.B. usb0. Im Network Manager Applet muss man nun genau für diese Verbindung folgende Optionen setzen:
- "shared to other computers" (IPv4 settings)
- "Connect automatically" aktivieren (anklicken)
- IPv6 settings auf "ignore" setzen
Der Network Manager startet nun im Hintergrund auf dem Host für die usb0 Verbindung den dnsmasq Prozess. Mit ps kann man nachsehen, wie genau läuft (hier z.B. auf einem Linux Mint 13):
4 S nobody 9510 658 0 80 0 - 1346 poll_s 10:35 ? 00:00:00 \ /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts \ --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid \ --listen-address=127.0.0.1 --conf-file=/var/run/nm-dns-dnsmasq.conf \ --cache-size=0 --proxy-dnssec 4 S nobody 9541 658 0 80 0 - 1347 poll_s 10:35 ? 00:00:00 \ /usr/sbin/dnsmasq --conf-file --no-hosts --keep-in-foreground \ --bind-interfaces --except-interface=lo --clear-on-reload --strict-order \ --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.100,60m \ --dhcp-option=option:router,10.42.0.1 --dhcp-lease-max=50 \ --pid-file=/var/run/nm-dnsmasq-usb0.pid
Auf Gnublin kann man dann den DNS Client
dhclient
eingeben. Nun wird eine IP Adresse von dnsmasq (= dns + dhcp) geholt, in meinem Fall 10.42.0.46 vom PC. Je nach verwendeter GNU/Linux Distribution auf dem Hostrechner kann es sein, dass über dhclient auch der Nameserver bereits über die Voreinstellungen des dnsmasq läuft. Es kann aber durchaus sein, dass man dnsmasq auf dem Hostrechner erst konfigurieren muss.
XXX TODO dnsmasq Konfiguration nachvollziehen z.B. für Mint 13 Maya
Wer einen öffentlich verwendbaren DNS Server sucht, der kann Google Public DNS mit der IP Nummer 8.8.8.8 verwenden. Die Datei /etc/resolv.conf sollte dann die Zeile
nameserver 8.8.8.8
enthalten.