Jak uruchomić Raspberry Pi OS w wirtualnej maszynie z QEMU i KVM
- 1888
- 71
- Igor Madej
Chociaż wiele systemów operacyjnych jest dostępnych dla Raspberry Pi, oficjalny jest Raspberry Pi OS. System operacyjny ma działać dla ramię Architektura i można ją łatwo zainstalować na karcie SD, która będzie używana jako główne urządzenie do przechowywania Raspberry Pi. Czasami możemy chcieć wykonać niektóre testy lub wypróbować niektóre aplikacje bez fizycznego maszyny Raspberry Pi; W tym samouczku zobaczymy, w jaki sposób możemy utworzyć maszynę wirtualną z systemem Raspberry Pi OS za pomocą Qemu I Kvm (Maszyna wirtualna jądra).
W tym samouczku się nauczysz:
- Jak zainstalować QEMU i KVM
- Jak pobrać i sprawdzić integralność najnowszej wersji Raspberry Pi OS (Buster)
- Jak uruchomić system Raspberry Pi w wirtualnej maszynie
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny dystrybucja |
Oprogramowanie | Qemu, Qemu-System-Arm, KVM i git |
Inny | Nic |
Konwencje | # - Wymaga, aby podane Linux -commands były wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$-wymaga wykonania Linux-commands jako zwykłego niewidzianego użytkownika |
Instalowanie Qemu
Qemu, zgodnie z definicją na oficjalnej stronie internetowej, jest „emulator maszyny i open source i wirtualizator”. Możemy go użyć do uruchamiania systemu operacyjnego dla każdego rodzaju maszyny. W Linux jest często używany w połączeniu z kvm, który jest pełnym rozwiązaniem wirtualizacji zawartym w jądrze. Aby móc wirtualizować nasz system Raspberry Pi, musimy zainstalować go na naszej ulubionej dystrybucji wraz z Qemu-System-Arm
pakiet, który zapewnia emulator systemu dla RAMIĘ systemy. QEMU i KVM są dostępne w repozytoriach oprogramowania głównych dystrybucji Linux. Aby zainstalować je na Fedora, możemy użyć DNF Menedżer pakietów:
$ sudo dnf instalacja @virtualizacja Qemu-System-Arm
Tutaj zainstalowaliśmy wirtualizacja grupa pakietów (zauważ @
Prefiks): obejmuje wszystko, co potrzebne do wirtualizacji na Fedorze, z wyjątkiem Qemu-System-Arm
pakiet, który zainstalowaliśmy osobno.
W dystrybucjach Debian i Debian możemy uruchomić następujące polecenia w celu synchronizacji naszej dystrybucji ze zdalnymi repozytoriami i zainstalować potrzebne pakiety w naszym systemie:
$ sudo apt-get aktualizacja && sudo apt-get instaluj qemu-system-arm qemu-kvm libvirt-clients libvirt-daemon-system mosta-UTILS virtinst libvirt-daemon wirtuer
Pobieranie i weryfikacja najnowszego obrazu Raspberry Pi OS
Możemy pobrać najnowszą wersję Raspberry Pi OS z oficjalnej witryny Raspberry Pi. Możemy zasadniczo wybierać między 3 wersjami systemu: niektóre są bardziej minimalne, inne są wyposażone w większy zestaw pakietów i
Graficzny pulpit już zainstalowany. Linki do pobrania są następujące:
- Raspberry Pi OS Lite
- Raspberry Pi OS z komputerami stacjonarnymi
- Raspberry Pi OS z komputerami stacjonarnymi i dodatkowymi pakietami
W tym samouczku użyjemy wersji Raspberry Pi OS „Lite”. Pobieranie go za pomocą przeglądarki internetowej to tylko kwestia klikania jednego z linków podanych powyżej. Jeśli chcemy go pobrać z wiersza poleceń, możemy użyć narzędzi takich jak wget Lub kędzior:
# Korzystanie z wget $ wget https: // pobieranie.Raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-01-12/2021-01-11-raspios-buster-buster-armhf-lite.Zip # za pomocą curl $ curl -o https: // pobieranie.Raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-01-12/2021-01-11-raspios-buster-buster-armhf-lite.zamek błyskawiczny
Wykonując jedno z dwóch powyższych poleceń, obraz zostanie pobrany w bieżącym katalogu roboczym. Po zakończeniu pobierania możemy zweryfikować integralność obrazu, porównując jego SHA256Sum z tym podanym na stronie internetowej.
W naszym przypadku Hashsum powinien być D49D6FAB1B8E533F7EFC40416E98EC16019B9C034BC89C59B83D0921C2AEFEEF
. Aby to zweryfikować, możemy uruchomić następujące polecenie:
$ SHA256Sum 2021-01-11-Raspios-Buster-Armhf-Lite.zamek błyskawiczny
Polecenie powyżej, w naszym przypadku zwraca następujący wynik:
49D6FAB1B8E533F7EFC40416E98EC16019B9C034BC89C59B83D0921C2AEFEEF 2021-01-11-RASPIOS-BUSTER-BUSTER-ARMHF-Lite.zamek błyskawiczny
Widać, że dwa hashsums pasują, więc jesteśmy gotowi iść. To, co musimy teraz zrobić, to wyodrębnienie obrazu, ponieważ jest on zamykany. Aby to zrobić, możemy uruchomić następujące polecenie:
$ UNZIP 2021-01-11-RASPIOS-BUSTER-BUSTER-ARMHF-Lite.zamek błyskawiczny
Ponieważ jądro zawarte w oficjalnym obrazie systemowym nie można uruchomić bezpośrednio z QEMU, musimy sklonować repozytorium GIT, które zawiera serię jądra zbudowanego w tym celu. Zobaczymy, jak to zrobić w następnej sekcji.
Uzyskanie jądrów gotowych do qemu z Github
Repozytorium, które musimy sklonować z GitHub, jest dhruvvyas90/qemu-rpi-kernel
. Wszystko, co musimy zrobić, to uruchomić następujące polecenie:
$ git clone https: // github.com/dhruvvyas90/qemu-rpi-kernel
Proces klonowania może zająć trochę czasu, co zależy od szybkości połączenia internetowego. Gdy repozytorium zostanie sklonowane, jesteśmy gotowi iść. Oto jego treść:
$ ls qemu-rpi-kernel jądro.10.25-wyważnie Readme.MD Kernel-Qemu-4.14.79 narzędzi STRETKTU KERNEL-QEMU-4.19.50-bramkowy wszechstronny-buster-5.4.51.DTB Kernel-Qemu-4.4.34-Jessie Versatile-Pb-Buster.DTB Kernel-Qemu-5.4.51-bramkowy wszechstronny PB.DTB Native Ememuation
Ponieważ chcemy naśladować najnowszą wersję systemu operacyjnego Raspberry Pi, potrzebujemy plików Kernel-Qemu-4.19.50-buster
I wszechstronny-buster.DTB
. Pierwszy to rzeczywisty obraz jądra, drugi to Blob drzewa urządzenia. Jaki jest cel tego pliku?
Aby opisać sprzęt dostępny w systemie na płycie Raspberry Pi, DTS (Źródło drzewa urządzenia) używane są pliki; Wywołana jest skompilowana wersja tych plików DTB i przechowywane w plikach z .DTB
rozszerzenie. W naszym przypadku moglibyśmy alternatywnie użyć Kernel-Qemu-5.4.51-buster
, razem z Wszechstronny-buster-5.4.51.DTB
plik.
Naśladowanie Raspberry Pi OS
Ze wszystkich potrzebnych plików możemy wreszcie wirtualizować obraz Raspberry Pi OS. Zauważ, że tutaj zakładam, że katalog roboczy jest taki sam, jak pobraliśmy obraz systemu. Przed uruchomieniem faktycznego polecenia, tylko w Debian musimy uruchomić domyślną sieć pomostową, która nie jest uruchamiana automatycznie; Aby to zrobić, musimy uruchomić:
$ sudo virsh--connect = qemu: /// System Net-Start Default
Aby to zacząć automatycznie, możemy uruchomić:
$ sudo virsh--connect = qemu: // system System-Autostart
Teraz, aby zbudować maszynę wirtualną, musimy uruchomić następujące polecenie:
$ sudo vir-install \ --name rpios \-armv6l \--machine versatilepb \--cpu arm1176 \ --vcpus 1 \--memory 256 \ --import \--disk 2021-01-11-raspios -Buster-Armhf-Lite.IMG, format = RAW, BUS = Virtio \ --Network Bridge, Source = virbr0, model = virtio \ --video vga \ --Graphics Spice \ --boot 'dtb = qemu-rpi-kernel/versatile-pb-buster-buster.DTB, jądro = qemu-rpi-kernel/jądro-qemu-4.19.50-buster, kernel_args = root =/dev/vda2 Panic = 1 '\ --vents on_reboot = zniszcz
Powinno pojawić się okno virviewera; Tam powinniśmy być w stanie wizualizować rozruch Raspberry Pi OS:
Spójrzmy krótko na opcje, których użyliśmy do budowy maszyny wirtualnej za pomocą Virt-install
Komenda; niektóre są dość oczywiste, inne trochę bardziej niejasne.
Przede wszystkim użyliśmy --nazwa
Opcja: Dzięki niej możemy ustawić nazwę instancji maszyny wirtualnej (powinna być unikalna). Druga opcja, której używaliśmy, jest --łuk
: konieczne jest żądanie dla gościa nierodzinnej architektury procesora
system; Jeśli go nie użyjemy, zakłada się architekturę hosta.
Z --maszyna
Opcja przekazujemy rodzaj maszyny do naśladowania do Qemu: W tym przypadku użyliśmy VersatilePB
. Z --procesor
Opcja konfigurujemy model procesora i funkcje narażone na gościa; Tutaj użyliśmy Arm1176
, od
Raspberry Pi opiera się na ramię architektura.
--VCPU
Potrzebna jest opcja, aby ustawić liczbę wirtualnych procesorów dla maszyny gościa, tylko jeden w tym przypadku. Jak można go łatwo odgadnąć, zamiast tego --pamięć
Zamiast tego jest używana do ustawienia pamięci do alokacji dla gościa.
--import
Opcja jest tutaj naprawdę ważna, ponieważ służy do instruowania aplikacji do pominięcia instalacji systemu operacyjnego i po prostu zbudowanie gościa wokół już istniejącego obrazu, który później jest określony za pomocą --dysk
opcja.
Używamy --sieć
Aby połączyć gościa z siecią hosta. W takim przypadku łączymy się przez Virbr0
most, który jest domyślnie tworzony przez Libvirt. Z --wideo
Opcja określamy, które rodzaj urządzenia wideo powinno być dołączone do gościa i z --grafika
Określamy, w jaki sposób można uzyskać dostęp do graficznego wyświetlacza gościa: w tym przypadku użyliśmy przyprawa
, Aby użyć protokołu o tej samej nazwie.
Z --uruchomić
opcja możliwe jest określenie DTB i jądro plik do użycia, ale także wiersz polecenia jądra Kernel_args
. Wreszcie z --wydarzenia
Opcja określamy wartości zdarzeń dla gościa. W tym przypadku my zniszczyć dla on_reboot
wydarzenie.
Po uruchomieniu maszyny wirtualnej możemy również zarządzać nim graficznie za pośrednictwem Virt-manager aplikacja. Możemy teraz cieszyć się naszym wirtualizowanym Raspberry Pi OS!
Wniosek
W tym samouczku widzieliśmy, jak możemy uruchomić surowy obraz Raspberry Pi OS za pomocą QEMU i KVM, bez rzeczywistego sprzętu Raspberry Pi. Widzieliśmy, jak pobrać i weryfikować obraz systemowy, jak go wyodrębnić, jak sklonować repozytorium git zawierające pliki jądra i DTB potrzebne do uruchomienia obrazu z QEMU, oraz rzeczywiste polecenie, które powinniśmy uruchomić, aby uruchomić wirtualizację systemu.
Powiązane samouczki Linux:
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Rzeczy do zainstalowania na Ubuntu 20.04
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Mastering Bash Script Loops
- Wprowadzenie do silników magazynowych MySQL
- Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
- Hung Linux System? Jak uciec do wiersza poleceń i…
- Linux Pliki konfiguracyjne: Top 30 Najważniejsze
- Jak sprawdzić zdrowie dysku twardego z wiersza poleceń…
- Ubuntu 20.04 Przewodnik