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

michal.penka.name v Openmoko prohlížečiBohuž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ář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Řádky a odstavce se zalomí automaticky.

Více informací o možnostech formátování

Creative Commons BY-NC-SA

Některá práva vyhrazena, Michal Pěnka, 2010

Stránky jsou provozovány na redakčním systému Drupal s využitím mnoha dalšího FLOSS