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.
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.
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ę.
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.
Zmień źródło oprogramowania na źródło USTC ARM.
Usuń całą istniejącą zawartość oryginalnego pliku i dodaj następującą:
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):
Po wykonaniu wejdzie do podstawowego systemu plików root.
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.
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
Ustaw nazwę hosta STM32MP157( Link ) i lokalny adres IP.
Konfiguracja DHCP
Konfiguracja automatycznego logowania dla portu szeregowego.
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).
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.
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.
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.
Odmontuj wcześniej zamontowany plik ext4.
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).
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.
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.
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.
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.
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".
Zainstaluj serwer VNC
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.
Następnie należy usunąć oryginalną zawartość pliku ~/.vnc/xstartup i zastąpić ją następującą:
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ść.
\
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.
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.
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.
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.
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ę.
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.
Zmień źródło oprogramowania na źródło USTC ARM.
Usuń całą istniejącą zawartość oryginalnego pliku i dodaj następującą:
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):
Po wykonaniu wejdzie do podstawowego systemu plików root.
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.
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
Ustaw nazwę hosta STM32MP157( Link ) i lokalny adres IP.
Konfiguracja DHCP
Konfiguracja automatycznego logowania dla portu szeregowego.
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).
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.
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.
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.
Odmontuj wcześniej zamontowany plik ext4.
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).
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.
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.
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.
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.
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".
Zainstaluj serwer VNC
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.
Następnie należy usunąć oryginalną zawartość pliku ~/.vnc/xstartup i zastąpić ją następującą:
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ść.
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.
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.
MATE Desktop