logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Instalacja Ubuntu 18.04 na STM32MP157: przewodnik techniczny

unikeyic 02 Gru 2024 08:23 1119 1
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21328775
    unikeyic
    Poziom 2  
    Posty: 18
    Ocena: 22
    Mając w ręku STM32MP157 Mini, moim celem było przeportowanie dystrybucji Linuksa. Jednak dostarczony podręcznik oferował tylko wersję Debiana dostosowaną przez Linaro. Postanowiłem więc zaadaptować do tego celu Ubuntu. Biorąc pod uwagę niedobór szczegółowych artykułów online, udokumentowałem cały proces w niniejszym dokumencie.

    Wyrusz w zaawansowaną podróż komputerową z STM32MP157 Mini i kompleksowymi rozwiązaniami Unikeyic. Podczas gdy domyślna instrukcja oferuje ograniczone opcje, staramy się zapewnić różnorodne możliwości. Odkryj, jak dostosować Ubuntu na tym urządzeniu dzięki naszemu szczegółowemu przewodnikowi. Aby zaspokoić wszystkie potrzeby związane z elektroniką, zapoznaj się z platformą komponentów Unikeyic ( Link ), dostępną do zakupu online.

    Uzyskanie ubuntu-base
    Po sprawdzeniu oficjalnej strony Linaro odkryłem, że najnowszą dostępną wersją Ubuntu była wciąż 15.12, znana również jako vivid. Zlokalizowanie źródeł Ubuntu-vivid wspieranych przez armhf w Chinach było jednak wyzwaniem. W związku z tym zdecydowałem się użyć ubuntu-base do zbudowania rootfs.

    Najpierw odwiedziłem oficjalną stronę Ubuntu i wybrałem ubuntu-base-18.04. Wybór ten wynikał z faktu, że moje środowisko maszyny wirtualnej na moim komputerze to również ubuntu-18.04. Gdybym próbował zbudować ubuntu-base-20.04 i chrootować używając środowiska maszyny wirtualnej 18.04, pojawiłby się błąd "qemu: Unsupported syscall: 403". Jest to spowodowane starszą wersją qemu zainstalowaną w ubuntu-18.04. W związku z tym konieczna byłaby instalacja qemu5.2.0 poprzez kompilację kodu źródłowego, co jest złożonym procesem. Dlatego zamiast tego wybrałem ubuntu-base-18.04.

    Po zakończeniu pobierania ubuntu-base-18.04.5-base-armhf.tar.gz, skopiowałem go do maszyny wirtualnej. Ważne jest, aby nie rozpakowywać go w systemie Windows lub w środowisku WSL (Windows Subsystem for Linux) dla Ubuntu, ponieważ niektóre nazwy plików są identyczne, z wyjątkiem wielkich liter. W systemie Windows byłyby one traktowane jako ten sam plik i nadpisywałyby się nawzajem, podczas gdy w systemie Linux tak się nie dzieje.

    Skopiowałem je do katalogu ~/Desktop/Image/, utworzyłem nowy folder i rozpakowałem do niego skompresowany pakiet. Należy pamiętać, że zarówno wyodrębnianie, jak i późniejsze operacje wymagają użycia sudo.
    Instrukcje terminalowe do instalacji ubuntu-base-18.04.

    Konfiguracja środowiska
    Po wejściu do wyodrębnionego katalogu, skopiuj qemu-arm-static do głównego systemu plików, który zamierzasz zbudować. Upewnij się, że qemu-user-static jest poprawnie zainstalowany w tym momencie.
    Instrukcje instalacji qemu-user-static i kopiowania qemu-arm-static.

    Jeśli napotkasz błąd typu "chroot: nie udało się uruchomić polecenia '/bin/bash': No such file or directory", oznacza to, że albo proces kopiowania nie powiódł się, albo qemu nie zostało poprawnie zainstalowane. Możesz użyć następującego polecenia, aby wymusić jego ponowną instalację.
    Polecenie reinstalacji qemu-user-static w terminalu.

    Następnym krokiem jest skonfigurowanie DNS w celu ustanowienia prawidłowego połączenia internetowego. Masz dwie opcje: albo bezpośrednio skopiować plik konfiguracyjny z maszyny wirtualnej do głównego systemu plików, albo edytować plik konfiguracyjny głównego systemu plików.
    Polecenie skopiowania pliku konfiguracyjnego DNS w terminalu Linux.

    Zmień źródło oprogramowania na źródło USTC ARM.
    Fragment kodu zmieniającego listę źródeł APT w systemie Linux.

    Usuń całą istniejącą zawartość oryginalnego pliku i dodaj następującą:
    Lista repozytoriów USTC ARM dla Ubuntu.
    dodaj zawartość


    Montowanie głównego systemu plików
    Teraz możesz chrootować do głównego systemu plików. Będziemy używać arch-chroot, zautomatyzowany skrypt chroot dostarczany przez Arch Linux, który pozwala na automatyczne montowanie wirtualnych systemów plików i inne operacje, eliminując potrzebę ręcznego montowania. Poniżej znajdują się polecenia instalacji i wykonania (upewnij się, że jesteś w katalogu ubuntu-base-18.04):
    Zrzut ekranu przedstawiający komendy terminala do instalacji i użycia arch-chroot.

    Po wykonaniu wejdzie do podstawowego systemu plików root.
    Zrzut ekranu pokazujący terminal Linuksa z poleceniem arch-chroot.

    Należy pamiętać, że wiele samouczków zaleca instalację rsyslog. Zaobserwowano jednak, że po instalacji mogą pojawić się liczne problemy. Dlatego zaleca się, aby nie instalować go w tej chwili.
    Zrzut ekranu z poleceniami instalacji pakietów w systemie Linux.
    Pakiety oprogramowania, które należy zainstalować, obejmują systemd. Bez instalacji tego pakietu usługa portu szeregowego nie może zostać poprawnie skonfigurowana, co skutkuje paniką jądra i niemożnością uruchomienia systemu po wypaleniu go na płycie. Dodatkowo, ethtool i ifupdown są również wymagane do konfiguracji sieci.
    Ustaw hasło roota
    Treść dokumentu z poleceniem passwd root wskazującym na konfigurację hasła roota.

    Ustaw nazwę hosta STM32MP157( Link ) i lokalny adres IP.

    Fragment kodu konfiguracyjnego związanego z ustawieniem nazwy hosta i pliku hosts.

    Konfiguracja DHCP
    Zrzut ekranu z terminala z poleceniami konfiguracji sieci dla interfejsu eth0.

    Konfiguracja automatycznego logowania dla portu szeregowego.
    Fragment kodu zmieniający konfigurację usługi dla portu szeregowego w systemie Linux.

    Zmodyfikuj BindsTo: Zmień dev-%i.device na dev-%i;

    Modyfikacja ExecStart: Zmień -/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM na -/sbin/agetty -a root --keep-baud 115200,38400,9600 %I $TERM (Jeśli po -/sbin/agetty występuje parametr -o, usuń go, aby zapewnić spójność po modyfikacji).
    Plik konfiguracyjny systemd dla usługi getty na porcie szeregowym

    Zmodyfikuj proces


    Zamknij główny system plików.

    Tworzenie obrazu systemu plików ext4.

    Najpierw użyj polecenia "du", aby sprawdzić rozmiar głównego systemu plików.
    Zrzut ekranu z terminala Ubuntu pokazujący polecenie do pomiaru rozmiaru katalogu.

    Rozmiar głównego systemu plików wynosi około 400 MB, więc utwórzmy pusty plik ext4 o rozmiarze 500 MB i sformatujmy go.
    Polecenie tworzące pusty plik ext4 o rozmiarze 500 MB.

    Jeśli rozmiar pustego pliku ext4 jest mniejszy niż rozmiar głównego systemu plików, podczas próby jego skopiowania pojawi się komunikat o niewystarczającej ilości miejsca. W takim przypadku po prostu dostosuj rozmiar i zacznij od nowa.

    Następnie zamontuj nowo utworzony pusty plik ext4. Tutaj zamontowałem go do ~/Desktop/Image/fsmp1x_rootfs. Następnie skopiuj całą zawartość z folderu ubuntu-base-18.04 do tymczasowo zamontowanego katalogu.
    Zrzut ekranu poleceń terminala dotyczących kopiowania plików systemu EFS na STM32MP157.
    Odmontuj wcześniej zamontowany plik ext4.
    Zrzut ekranu terminala z poleceniem do odmontowania systemu plików.

    Flashowanie i uruchamianie systemu
    Konkretny proces flashowania można znaleźć w dołączonym dokumencie "STM32MP157 Quick Start Experience V1.5.pdf" Rozdział 2 - Flashowanie systemu. Tutaj pokrótce opiszę kluczowe kroki.

    Ustaw przełącznik rozruchu na płycie rozwojowej na 000 i podłącz kabel USB_OTG (zaleca się podłączenie do portu USB 3.0 w komputerze).

    Zlokalizuj plik flashlayout "atk_emmc-stm32mp157d-atk-qt.tsv" w dołączonym pakiecie i otwórz go za pomocą edytora tekstu. Edytuj ostatnią linię odpowiadającą nazwie systemu plików ext4 dla rootfs i zmodyfikuj ją na "fsmp1x_rootfs.ext4" (skopiuj ten plik do miejsca docelowego).
    Tabela ukazująca układ partycji systemu dla STM32MP157.
    Skopiuj ten plik do miejsca docelowego


    Otwórz STM32CubeProgrammer, otwórz zmodyfikowany plik flashlayout, wybierz ścieżkę pliku binarnego, kliknij pobierz, a po zakończeniu ustaw przełączniki DIP na "010" i włącz zasilanie.

    Monitoruj stan uruchamiania systemu przez port szeregowy. Tutaj należy uchwycić trzy istotne punkty kontrolne: rozruch jądra, rozruch systemu i pomyślne uruchomienie.
    Ekran rozruchowy systemu Linux na STM32MP157 Mini
    startup status


    Konfiguracja systemu

    1.Dostosowanie rozmiaru partycji
    Używając polecenia "df -h" do obserwowania wykorzystania dysków przez systemy plików, odkryto, że rozmiar głównego systemu plików wynosi tylko 477M i jest już zapełniony w 88%. Wynika to z faktu, że utworzony pusty plik ext4 ma rozmiar 500M.
    Zrzut ekranu z wynikami polecenia df -h na STM32MP157.
    użycie dysku systemu plików


    Wykonaj polecenie "fdisk -l", aby wyświetlić wszystkie informacje o partycji. Na koniec okaże się, że partycja "/dev/mmcblk2p3" ma całkowitą pojemność 7,2 GB.

    Terminal pokazujący informacje o partycjach dysku.
    wyświetl wszystkie informacje o partycji


    Dlatego polecenie resize2fs powinno zostać użyte do dostosowania rozmiaru partycji /dev/mmcblk2p3. Po zakończeniu dostosowywania sprawdź ponownie, a przekonasz się, że przestrzeń tej partycji została w pełni wykorzystana.

    Zrzut ekranu terminala z komendami dla systemu plików
    Dostosowanie przestrzeni

    2.Zainstaluj GNOME i VNCServer.

    Zainstaluj środowisko GNOME i jego zależności. Podczas procesu instalacji zostanie wyświetlony monit o wybranie strefy czasowej. Wybierz "Azja-Szanghaj".
    Pasek poleceń dla instalacji pulpitu GNOME w Ubuntu.

    Zainstaluj serwer VNC
    Tekst: apt-get install vnc4server -y w edytorze tekstu.

    Powstrzymaj się od pochopnego uruchamiania serwera VNC, ponieważ połączenie z nim na tym etapie spowoduje jedynie wyświetlenie szarego ekranu i kursora w kształcie litery "x". Najpierw należy przystąpić do instalacji xfonts.
    Fragment dokumentacji instalacji xfonts w systemie Ubuntu.
    Następnie należy usunąć oryginalną zawartość pliku ~/.vnc/xstartup i zastąpić ją następującą:

    Zrzut ekranu skryptu startowego VNC.
    Aby uruchomić, wpisz "vncserver". Przy pierwszym uruchomieniu zostaniesz poproszony o ustawienie hasła. Następnie użyj klienta VNC, aby się połączyć, pamiętając o dodaniu ":1" po adresie IP. Można również użyć opcji "-geometry", aby określić rozdzielczość.

    Zrzut ekranu pokazujący pulpit systemu Linux z widocznym pustym folderem w menedżerze plików. \
    Wpisz "vncserver"


    3.Instalacja pulpitu MATE
    Wspomniany wcześniej pulpit GNOME jest raczej uproszczony. Aby zainstalować pulpit MATE, należy wykonać następujące polecenie. Należy zauważyć, że proces ten będzie wymagał co najmniej 2 GB dostępnego miejsca i może zająć sporo czasu.
    Komenda instalacji Ubuntu Mate z terminala Linux.

    Po zakończeniu instalacji uruchom ponownie komputer i połącz się ponownie za pomocą VNC. Poczekaj około dziesięciu sekund, a będziesz mógł zobaczyć pulpit Mate. Szczerze mówiąc, wygląda świetnie, ale jedną wadą jest to, że gdy płyta jest bezczynna, może w pełni wykorzystać swój 800MHz procesor bez robienia czegokolwiek.
    Capture ekranu monitora systemu w środowisku MATE na STM32MP157 Mini
    MATE Desktop
  • #2 21363949
    jony202b
    Poziom 6  
    Posty: 16
    Ocena: 1
    Interesująca praca. Bardzo dobra.
REKLAMA