Openmoko v QEMU a připojení k Internetu
V minulém článku jsem popisoval, jak zprovoznit Openmoko GNU/Linux v Ubuntu pomocí QEMU a slíbil jsem, že přidám návod, pomocí kterého se připojíte k síti a poté dále do Internetu. Pomůže nám jednoduchý pppd klient a drobné úpravy v konfiguraci jak hostovaného, tak hostitelského systému.
Stejně jako u minulého článku připomínám, že i tento vychází z Openmoko wiki.
Propojení hostitelského a hostovaného systému
V mém případě je hostitelským strojem Ubuntu a hostovaným je samožřejmě Openmoko GNU/Linux.
V prvním kroku je třeba upravit soubor Makefile, který se nachází v domovské složce projektu. Pokud jste postupovali podle mého návodu, budete ho mít umístěný ve vaší domovské složce v adresáři openmoko.
gedit ~openmoko/Makefile
Soubor je dělen do jednotlivých sekcí, které začínají .PHONY. My najdeme tu sekci, která pokračuje run-qemu a mezi závorky přidáme další řádek, který vypadá takto:
-serial vc -serial pty \Celá sekce poté může mít následující záznamy:
.PHONY: run-qemu
run-qemu: stamps/qemu build/qemu/openmoko/openmoko-sd.image
( cd build/qemu && arm-softmmu/qemu-system-arm \
-M gta01 -m 130 -usb -show-cursor \
-usbdevice keyboard \
-serial vc -serial pty \
-mtdblock openmoko/openmoko-flash.image \
-sd openmoko/openmoko-sd.image \
-kernel openmoko/openmoko-kernel.bin )
Spustíme Openmoko běžným způsobem a nabootujeme:
cd ~openmoko
make run-qemu
Openmoko už nabíhá s novým zařízením, které nám dovolí spojení. QEMU vypisuje do terminálu něco jako "char device redirected to /dev/pts/12".
V Openmoko systému spustíme konzoli (ikona připomínající znaménko plus, poté vybereme kategorii aplikace a vybereme Terminal) a zadáme následující příkaz:
pppd nodetach debug /dev/ttySAC1
Vrátíme se zpět do systému (v mém případě Ubuntu) a v terminálu zapíšeme:
sudo pppd nodetach debug 192.168.68.1:192.168.68.2 noauth /dev/pts/12
Zařízení se může lišit, poznáte ho z výpisu při startu v terminálu. Tím přidělíme IP adresu 192.168.68.1 pro hostitelský a 192.168.68.2 pro hostovaný systém.
Důležité je, abyste oba příkazy spustili synchronizovaně ne příliš dlouho za sebou, jinak se počítač nepřipojí. Pokud se vše povedlo, můžete zkusit ověřit spojení pomocí nástroje ping z hostitelského stroje:
ping 192.168.68.2
Měli byste vidět odezvy, pak to pravděpodobně znamená, že vše funguje jak má. Pokud chcete, můžete se pomocí SSH připojit na Openmoko terminál z hostitelského stroje pomocí příkazu:
ssh root@192.168.68.2
Po krátké době budete vyzváni k potvrzení identifikace počítače, po prostudování potvrďte yes a zadejte heslo openmoko. Nyní můžete zadávat příkazy přímo z hostitelského stroje.
Sdílení Internetu
Bohužel nejsme s prací u konce, musíme nasdílet připojení k Internetu, pokud tedy chcete vyzkoušet Openmoko vestavěný prohlížeč, nainstalovat balíčky atd. Celá tato procedura probíhá nějdříve na straně hostovaného systému, pomocí ssh můžete příkazy pohodlně sázet do terminálu:
ifdown usb0
route add default gw 192.168.68.1
Tím shodíme zařízení usb0 a přidáme routu na 192.168.68.1, tedy námi vytvořené virtuální síťové rozhraní hostitelského počítače. Pakety, které půjdou do Internetu, pak půjdou přes hostitelský počítač.
V Openmoko systému ještě musíme poeditovat /etc/resolv.conf soubor tak, aby odkazoval na IP adresu vašeho routeru. Předpokládejme, že jste připojeni k routeru s IP adresou 192.168.1.1, v Openmoko terminálu pak zapíšete:
echo "nameserver 192.168.1.1" > /etc/resolv.conf
Na hostitelském počítačí pak jako superuživatel povolíme dočasně IP forwarding a dynamické adresování, zavedeme potřebné moduly pomocí modprobe a provedeme následující zápis do IPTables, čímž získáme tzv. NAT routování:
sudo su
echo 1 >> /proc/sys/net/ipv4/ip_forward
echo 1 >> /proc/sys/net/ipv4/ip_dynaddr
modprobe ip_tables
modprobe iptable_nat
modprobe ipt_MASQUERADE
iptables -t filter -F
iptables -t nat -F
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.68.0/24 -j MASQUERADE
Na posledním řádku je udáno zařízení eth0, pokud jste do Internetu připojeni pomocí jiného zařízení (např. wifi), musíte zadat toto zařízení. Já mám například wifi zařízení označeno jako eth1, do internetu se ale můžete připojovat i pomocí VPN, běžné označení je pak tapX.
Toť vše, z Openmoko terminálu můžete zkusit ping na počítač v Internetu:
ping seznam.cz
Pokud vše funguje, gratuluji! Právě jste nastavili připojení k Internetu ve virtualizovaném Openmoko GNU/Linux systému.


Komentáře
Poslat nový komentář