4. Podłączenie Eclipse do zdalnego systemu

Emulowane urządzenie i system na nim

Aby można było uruchomić projekt na urządzeniu lub debugować go, należy skonfigurować Eclipse do wykonywania odpowiednich komend, które udostępnią skompilowane plik i uruchomią je na urządzeniu. Konfiguracja zależy od wybranego sposobu udostępniania głównego systemu plików dla urządzenia. Będzie inna w przypadku ramdysku, lokalnego systemu plików, a inna w przypadku udostępniania plików przez NFS.

W przykładzie skorzystam z emulowanego przez QEMU urządzenia ARM Versatile. System bazowy składa się z:

  • domyślnej instalacji Busybox-a;
  • serwera SSH Dropbear;
  • programu gdbserver (konieczny do debugowania).

System bazowy można odtworzyć korzystając z materiałów zawartych w książce.

Gotowy, demonstracyjny system, można pobrać stąd sys-debug-2011.07.13.img.

Działa w nim konto root z hasłem toor.

System uruchomiony na urządzeniu musi być osiągalny ze stacji roboczej. Wykorzystamy możliwość przekazywania portów przez QEMU. Podłączone zostaną trzy porty tcp:

  1. 2221 - dla serwera FTP na porcie 21,
  2. 2222 - dla SSH (nasłuchuje na 22),
  3. 2345 - dla gdbserver-a (będzie nasłuchiwał na porcie o tym samym numerze).

Oddzielny serwer FTP jest niezbędny ponieważ Dropbear nie obsługuje wymaganego przez Eclipse protokołu sftp.

W celu uruchomienia systemu, należy wydać polecenie:

qemu-system-arm \
  -M versatilepb \
  -kernel sys-debug-2011.07.13.img \
  -nographic \
  -append "console=ttyAMA0" \
  -net nic \
  -net user,hostfwd=tcp::2221-:21,hostfwd=tcp::2222-:22,hostfwd=tcp::2345-:2345

Tak uruchomiony system jest gotowy do pracy. Można zalogować się na niego przy pomocy polecenia (na stacji roboczej):

ssh -p 2222 root@localhost

Pliki można przesyłać za pomocą FTP. Należy pamiętać o tym, że przekazywany jest jedynie port połączenia kontrolnego - aby działało przesyłanie jakichkolwiek danych, klient musi pracować w trybie aktywnym.

Protokół FTP wykorzystuje połączenie kontrolne - używane do logowania, zlecania operacji i zarządzania nimi, ogólnie - do wydawania poleceń, oraz połączenia przesyłające dane. Protokół zakłada, że serwer działa w jednym z dwóch trybów: pasywnym - serwer oczekuje na połączenie na losowo wybranym porcie (w naszym przypadku port ten nie jest przekierowany) lub aktywnym - serwer nawiązuje połączenie na wskazany przez klienta adres i port (ten tryb zadziała w naszym przypadku). Ponieważ zazwyczaj, w komunikacji w Internecie, klient znajduje się za routerem ukrywającym jego adres (NAT), to tryb aktywny nie działa. Większość klientów domyślnie korzysta z trybu pasywnego.

Do przetestowania może posłużyć polecenie:

lftp localhost -p 2221
lftp localhost:~> user root toor
lftp root@localhost:~> set ftp:passive-mode off
lftp root@localhost:~> ls
...

Jeżeli połączenie już działa, możemy przystąpić do konfiguracji Eclipse.

Konfiguracja Eclipse

Konfiguracji dokonujemy w perspektywie Remote System Explorer. Należy ją włączyć z menu: Window → Open Perspective → Other ….

W Menu po lewej stronie tworzymy nowe połączenie: New → Connection….

Należy wybrać typ Linux.

W kolejnych oknach (Next >) wybieramy odpowiednio:

  • nazwę hosta i nazwę połączenia:

  • sposób przesyłania plików (FTP, uwaga - tryb pasywny wyłączony):

  • sposób pozyskiwania informacji o procesach:

  • oraz sposób zdalnego uruchamiania poleceń (SSH):

Ponieważ w naszym systemie usługi: FTP i SSH działają na niestandardowych portach, należy jeszcze zmienić konfigurację poszczególnych podsystemów (we właściwościach poszczególnych elementów, klikając odpowiednio prawym przyciskiem i wybierając Properties).

  • Zaczynamy od zdefiniowania właściwego konta użytkownika używanego do łączenia z systemem:

  • Port FTP:

  • Port SSH:

Zdalny system został skonfigurowany. Poprawność działania połączeń, można zweryfikować klikając poszczególne elementy w perspektywie Remote System Explorer:

Podczas pierwszego połączenia SSH wyświetlone zostanie okienko z pytaniem o dodanie klucza SSH do zaufanych - należy wyrazić zgodę.

Upewniamy się, że wszystko działa: Widoczne są pliki na urządzeniu; po uruchomieniu terminala można wykonywać zdalne polecenia.

Jeżeli wszystko działa poprawnie, wracamy do domyślnej perspektywy: Window → Open Perspective → Other …, a następnie C/C++ (default).


ostatnio zmienione: 2011/07/18 12:37