Spisu treści:
Wideo: Budowanie dystrybucji GNU/Linux dla Raspberry Pi przy użyciu projektu Yocto: 6 kroków
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Raspberry Pi jest prawdopodobnie najpopularniejszym tanim komputerem jednopłytkowym na rynku. Jest często używany w projektach Internetu Rzeczy i innych wbudowanych projektach. Kilka dystrybucji GNU/Linux ma doskonałe wsparcie dla Raspberry Pi i jest nawet Microsoft Windows dla Raspberry Pi 2.
Jeśli chcesz stworzyć Internet rzeczy (IoT) w oparciu o Raspberry Pi i chcesz robić to profesjonalnie, zaleca się zbudowanie wbudowanej dystrybucji Linuksa, która dokładnie odpowiada potrzebom Twojego urządzenia. Aby uruchomić dystrybucję Linuksa na Raspberry Pi, potrzebujesz bootloadera, jądra Linuksa i różnych aplikacji w przestrzeni użytkownika.
Jednym z najpopularniejszych sposobów budowania niestandardowej wbudowanej dystrybucji Linuksa jest użycie projektu Yocto. Yocto to wspólny projekt fundacji Linux, który wykorzystuje framework Openembedded i silnik kompilacji Bitbake. Poky to system referencyjny projektu Yocto z sześciomiesięcznym cyklem wydawniczym. Udostępnia metadane podzielone na warstwy i receptury do budowania różnych pakietów i obrazów.
Ten samouczek zawiera dokładne kroki tworzenia obrazu z minimalną dystrybucją GNU/Linux dla Raspberry Pi, która obejmuje systemd i connman.
Krok 1: Przygotowanie
Do tego samouczka będziesz potrzebować:
- Komputer osobisty z dystrybucją GNU/Linux, np. Ubuntu, na którym zbudujesz dystrybucję GNU/Linux dla Raspberry Pi.
- Malina Pi
- karta microSD lub SD w zależności od wersji Raspberry Pi
- kabel HDMI i monitor
- Klawiatura USB
- Zasilacz
Zainstaluj wymagane pakiety na swoim komputerze osobistym w zależności od twojej dystrybucji GNU/Linux: https://www.yoctoproject.org/docs/2.0/yocto-projec…Notatki (by Yunus EmreI):
- Nie możesz upiec obrazu, jeśli twój katalog domowy jest zaszyfrowany, ponieważ nie pozwala na długie nazwy plików
- Wstępna kompilacja trwa bardzo długo, jeśli masz wolne połączenie
- Podczas flashowania obrazu na kartę SD upewnij się, że wybrałeś główny /dev/sdX, a nie /dev/sdXp1 lub inną odmianę części wewnętrznej
Krok 2: Uzyskaj kod źródłowy
Wykonaj poniższe czynności na swoim komputerze osobistym:
-
Clone Poky za pomocą Gita (w tym przypadku pobieram wersję Jethro (2.0) projektu Yocto):
git clone -b jethro git://git.yoctoproject.org/poky
-
Przejdź do katalogu poky:
cd poky
-
Klon meta-raspberrypi:
git clone -b jethro git://git.yoctoproject.org/meta-raspberrypi
Krok 3: Skonfiguruj
-
Zainicjuj środowisko kompilacji
źródło oe-init-build-env
-
Dodaj meta-raspberrypi do BBLAYERS w conf/bblayers.conf, potem powinno być podobne (ale w twoim przypadku z różnymi ścieżkami) do:
BBLAYERS ?=
/home/leon/poky/meta / /home/leon/poky/meta-yocto / /home/leon/poky/meta-yocto-bsp / /home/leon/poky/meta-raspberrypi \"
-
Otwórz conf/local.conf i zmień MASZYNĘ na raspberrypi, raspberrypi0, raspberrypi2 lub raspberrypi3 w zależności od modelu Raspberry Pi, na przykład:
MASZYNA ??= "raspberrypi2"
-
Dołącz następujący wiersz do conf/local.conf, aby ustawić pamięć GPU w megabajtach:
GPU_MEM = "16"
-
Opcjonalnie dołącz następujący wiersz do conf/local.conf, aby zastąpić System V słowem systemd:
DISTRO_FEATURES_append = "system"
VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" VIRTUAL-RUNTIME_initscripts = ""
-
Opcjonalnie dołącz następujący wiersz do pliku conf/local.conf, aby do obrazu dołączyć menedżera sieci wiersza poleceń connman:
IMAGE_INSTALL_append = " connman connman-client"
Krok 4: Zbuduj obraz
-
Wykonaj następujące polecenie, aby zbudować minimalny obraz dystrybucji GNU/Linux dla twojego Raspberry Pi:
bitbake rpi-basic-image
Należy pamiętać, że kompilacja może potrwać do kilku godzin w zależności od sprzętu komputera osobistego i szybkości połączenia internetowego.
Krok 5: Karta Flash SD
Po zakończeniu kompilacji obraz zostanie umieszczony w następującej ścieżce w katalogu kompilacji: tmp/deploy/images/raspberrypi2/rpi-basic-image-raspberrypi2.rpi-sdimg.
Podłącz kartę microSD do komputera, zastąp X odpowiednim identyfikatorem (który można znaleźć za pomocą poleceń takich jak lsblk lub fdisk -l) i wykonaj następujące polecenia, aby sflashować na niej obraz:
sudo umount /dev/sdX
sudo dd if=tmp/deploy/images/raspberrypi2/core-image-weston-raspberrypi2.rpi-sdimg of=/dev/sdX sync sudo umount /dev/sdX
Alternatywnie, jeśli wolisz, możesz użyć bmaptool zamiast dd.
Bądź bardzo ostrożny podczas flashowania karty SD i upewnij się, że używasz właściwej litery dla ścieżki do urządzenia. Zrób to na własne ryzyko i pamiętaj, że pomyłka może uszkodzić dysk na Twoim komputerze osobistym!
Krok 6: Uruchom i przetestuj
Uruchom Raspberry Pi i wykonaj następujące kroki, aby sprawdzić, czy obraz działa poprawnie:
- Zaloguj się jako root bez hasła
-
Jeśli connman jest zainstalowany, sprawdź, czy jego usługi systemd zostały załadowane:
systemctl status -l connman