sobota, 24 sierpnia 2019

SomLabs - IMx6 ULL - Debian - SSH, IP, C program

W tym poście opiszę kilka podstawowych sposobów konfiguracji dla IMx6.

Znalezione obrazy dla zapytania som labs 6ull
[Źródło: https://somlabs.com/product/visionsom-6ull/]

SSH:


Jednym z przyjemniejszych sposobów na uzyskanie komunikacji z płytką jest połączenie przez SSH zamiast standardowo przez UART.

Na samym początku należy połączyć się przez UART z płytą (baudrate 115200, pozostałe ustawienia standardowe). Po podłączeniu do płyty logowanie do systemu wykonuje się przez użytkownika root. Domyślnie nie jest przypisane żadne hasło.

W celu uruchomienia komunikacji przez SSH należy edytować następujący plik:

  1. nano /etc/ssh/sshd_config

Następnie należy wyszukać sekcję Authentication i zmienić ustawienie dla PermitRootLogin z no na yes:

  1. #Authentication
  2. ...
  3. ...
  4. PermitRootLogin yes
  5. ...
  6. ...

Poniżej opiszę niektóre z pozostałych domyślnie włączonych elementów w systemie. W liniach za komentowanych znajdują się odpowiednie ustawienia wraz z domyślnie przypisanymi do nich wartościami. 

Dodatkowo następujące flagi zostały domyślnie uruchomione w systemie:

  1. X11Forwarding yes
  2. AllowAgentForwarding yes

X11Forwarding oznacza przekazywanie danych dotyczących wyświetlanych okien. Pozwala to na przekazywanie widoku okien aplikacji itp.

AllowAgentForwarding pozwala na przesyłanie danych przez ssh-agent.

Po edycji pliku sshd_config należy ponownie uruchomić usługę SSH:

  1. service sshd restart

W celu sprawdzenia adresu ip można wykorzystać jedną z dwóch komend:

  1. hostname -I
  2. //lub
  3. ip -a

Ustawianie hasła:


W celu konfiguracji zmiany hasła wystarczy wykorzystać standardową komendę dla systemów Debian czyli passwd. Jeśli nie ma skonfigurowanego hasła to dwa razy należy wprowadzić nowe hasło. W przypadku gdy jest już hasło do systemu to najpierw należy podać aktualne hasło a dopiero po nim dwa razy wprowadzić nowe hasło.

Konfiguracja statycznego adresu IP:


W przypadku konieczności podłączenia SomLabs bezpośrednio do komputera za pomocą kabla ethernetowego należy skonfigurować statyczny adres IP na płycie oraz ustawić odpowiednią podsieć na komputerze. Układy SomLabs mają automatycznie skonfigurowaną sieć na obsługę DHCP, co jest bardzo wygodne w przypadku podłączenia np do routera.

Na początku zaczynam od edycji pliku interfaces:

  1. nano /etc/network/interfaces

Plik powinien wyglądać następująco:

  1. auto eth0
  2. iface eth0 inet static
  3. address 192.168.1.60
  4. netmask 255.255.255.0
  5. gateway 192.168.1.1
  6. #allow-hotplug eth0
  7. #iface eth0 inet dhcp

Dwie ostatnie linie zostają za komentowane. Następnie należy ponownie uruchomić usługę:

  1. service networking restart

Po poprawnym uruchomieniu usługi i dokonaniu połączenia powinien wyświetlić się następujący komunikat:


W kolejnym kroku można sprawdzić czy poprawnie wprowadzone zostały ustawienia dla płyty przez sprawdzenie adresu IP za pomocą komendy ip a oraz wykonaniu komendy ping:


Polecenie ping:



Kompilacja programu C na IMx6 oraz z Ubuntu:


Tutaj są dwie drogi jedna polega na przygotowaniu pliku wykonywalnego bezpośrednio na płycie z układem IMX6. Drugi polega na wykorzystaniu do tego celu systemu Ubuntu.

Aby wykonać operację bezpośrednio na płycie IMX6 należy najpierw zainstalować odpowiednie biblioteki:

  1. apt install build-essential

W przypadku błędów przy instalacji należy zainstalować potrzebne pakiety np. przez polecenie update:

  1. apt-get update
  2. apt-get dist-upgrade

Przy wykonaniu powyższych operacji należy mieć na uwadze, że konieczne jest dosyć sporo miejsca na płycie aby automatycznie instalować wszystkie pakiety.

Kolejnym krokiem jest przygotowanie programu testowego. Standardowo wypisywanie tekstu na ekran konsoli.

  1. nano test.c
  2. #include <stdio.h>
  3. int main() {
  4.         printf("test konsola\n");
  5.         return 0;
  6. }

Następnie następuje kompilacja i uruchomienie:

  1. gcc -o test test.c
  2. ./test

Teraz przejdę do opisu sposobu programowania przez Ubuntu. Pierwszym krokiem jest instalacja pakietu qemu:

  1. sudo apt install qemu-user-static

Następnie pobranie obrazu systemu i wejście w środowisko:

  1. wget http://ftp.somlabs.com/somlabs-visionsom-6ull-debian-rootfs-qemu.tar.xz
  2. sudo tar xf somlabs-visionsom-6ull-debian-rootfs-qemu.tar.xz
  3. sudo ./somlabs-debian/chtoolchain

Teraz stworzony zostanie plik wykonawczy, w taki sam sposób jak powyżej na układzie IMX6:

  1. nano test.c
  2. #include <stdio.h>
  3. int main() {
  4.         printf("test konsola\n");
  5.         return 0;
  6. }

  1. gcc -o test test.c

Teraz należy przekopiować stworzony plik na układ IMX:

  1. scp test root@192.168.1.60:/root

Po uruchomieniu komendy nastąpi wyświetlenie zapytania o hasło. Gdy zostanie wpisane plik zostanie automatycznie przesłany. Następnie plik można uruchomić na układzie docelowym (./test).