Cara menjalankan raspberry pi os di mesin virtual dengan qemu dan kvm

Cara menjalankan raspberry pi os di mesin virtual dengan qemu dan kvm

Meskipun banyak sistem operasi tersedia untuk Raspberry Pi, yang resmi adalah Raspberry Pi Os. Sistem operasi dibuat untuk berjalan untuk lengan Arsitektur, dan dapat dengan mudah diinstal pada kartu SD yang akan digunakan sebagai perangkat penyimpanan Raspberry Pi utama. Terkadang kami mungkin ingin melakukan beberapa tes atau mencoba beberapa aplikasi tanpa memiliki mesin Raspberry Pi fisik; Dalam tutorial ini kita akan melihat bagaimana kita dapat membuat mesin virtual dengan sistem raspberry pi os menggunakan Qemu Dan Kvm (Mesin virtual kernel).

Dalam tutorial ini Anda akan belajar:

  • Cara menginstal QEMU dan KVM
  • Cara Mengunduh dan Periksa Integritas Versi Raspberry Pi Os Terbaru (Buster)
  • Cara menjalankan raspberry pi os di mesin virtual
Cara menjalankan raspberry pi os di mesin virtual dengan qemu dan kvm

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi Independen
Perangkat lunak QEMU, QEMU-SYSTEM-Arm, KVM dan GIT
Lainnya Tidak ada
Konvensi # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$-mensyaratkan Linux-Commands untuk dieksekusi sebagai pengguna reguler yang tidak istimewa

Menginstal QEMU

Qemu, sebagaimana didefinisikan di situs web resmi adalah "emulator dan virtualisasi mesin generik dan terbuka". Kita dapat menggunakannya untuk menjalankan sistem operasi untuk semua jenis mesin. Di linux sering digunakan dalam kombinasi dengan kvm, yang merupakan solusi virtualisasi penuh yang termasuk dalam kernel. Untuk dapat virtualisasi raspberry pi os kami, kami perlu menginstalnya pada distribusi favorit kami, bersama dengan QEMU-SYSTEM-Arm paket, yang menyediakan emulator sistem untuk LENGAN sistem. QEMU dan KVM tersedia di repositori perangkat lunak dari distribusi Linux utama. Untuk menginstalnya di fedora, kami dapat menggunakan dnf Manajer Paket:

$ sudo dnf menginstal @virtualization qemu-system-arm 


Di sini kami menginstal Virtualisasi grup paket (perhatikan @ awalan): Ini mencakup semua yang diperlukan untuk virtualisasi di fedora, kecuali untuk QEMU-SYSTEM-Arm paket, yang kami instal secara terpisah.

Pada distribusi yang berbasis di Debian dan Debian, kami dapat meluncurkan perintah berikut untuk menyinkronkan distribusi kami dengan repositori jarak jauh dan mendapatkan paket yang diperlukan diinstal pada sistem kami:

$ sudo apt-get update && sudo apt-get install qemu-system-arm qemu-kvm libvirt-clients libvirt-daemon-system Bridge-utils virtinst libvirt-daemon virt-manager 

Mengunduh dan memverifikasi gambar raspberry pi os terbaru

Kami dapat mengunduh rilis terbaru Raspberry Pi Os dari situs resmi Raspberry Pi. Kami pada dasarnya dapat memilih antara 3 versi sistem: beberapa lebih minim, yang lain dilengkapi dengan satu set paket yang lebih besar dan a
desktop grafis sudah terpasang. Tautan unduhan adalah sebagai berikut:

  • Raspberry pi os lite
  • Raspberry pi os dengan desktop
  • Raspberry pi os dengan desktop dan paket tambahan

Dalam tutorial ini kita akan menggunakan versi Raspberry Pi Os "Lite". Mengunduhnya menggunakan browser web itu hanya masalah mengklik salah satu tautan yang disediakan di atas. Jika kami ingin mengunduhnya dari baris perintah, sebagai gantinya, kami dapat menggunakan alat seperti wget atau keriting:

# Menggunakan wget $ wget https: // unduhan.Raspberrypi.org/raspios_lite_armhf/gambar/raspios_lite_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-lite.zip # menggunakan curl $ curl -o https: // unduhan.Raspberrypi.org/raspios_lite_armhf/gambar/raspios_lite_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-lite.ritsleting 

Dengan mengeksekusi salah satu dari dua perintah di atas, gambar akan diunduh di direktori kerja saat ini. Setelah unduhan selesai, kami dapat memverifikasi integritas gambar dengan membandingkannya sha256sum dengan yang disediakan di situs web.
Dalam kasus kami hashsum seharusnya D49D6FAB1B8E533F7EFC40416E98EC16019B9C034BC89C59B83D0921C2AEFEEF. Untuk memverifikasinya, kita dapat menjalankan perintah berikut:

$ sha256sum 2021-01-11-raspios-buster-armhf-lite.ritsleting 

Perintah di atas, dalam kasus kami mengembalikan hasil berikut:

49D6FAB1B8E533F7EFC40416E98EC16019B9C034BC89C59B83D0921C2AEFEEF 2021-01-11-raspios-buster-armhf-lite.ritsleting 

Anda dapat melihat bahwa dua hashsums pertandingan, jadi kami baik untuk pergi. Apa yang perlu kita lakukan sekarang, adalah mengekstrak gambar, karena ritsleting. Untuk melakukan itu kita dapat menjalankan perintah berikut:

$ unzip 2021-01-11-raspios-buster-armhf-lite.ritsleting 


Karena kernel yang termasuk dalam gambar sistem resmi tidak dapat di -boot langsung dari QEMU, kita harus mengkloning repositori git yang berisi serangkaian kernel yang dibangun untuk tujuan yang tepat ini. Kita akan melihat bagaimana melakukan ini di bagian selanjutnya.

Memperoleh kernel siap-qemu dari github

Repositori yang perlu kita klon dari GitHub DHRUVVYAS90/QEMU-RPI-Kernel. Yang harus kita lakukan adalah menjalankan perintah berikut:

$ git clone https: // github.com/dhruvvyas90/qemu-rpi-kernel 

Proses kloning bisa membutuhkan waktu untuk menyelesaikannya, itu tergantung pada kecepatan koneksi internet Anda. Setelah repositori dikloning, kami baik untuk pergi. Inilah isinya:

$ ls qemu-rpi-kernel kernel-qemu-3.10.25-Whezy Readme.MD Kernel-Qemu-4.14.79-Tools-Alat Kernel-Qemu-4.19.50-Buster Versatile-PB-Buster-5.4.51.DTB Kernel-qemu-4.4.34-Jessie-PB-Buster.DTB Kernel-qemu-5.4.51-Buster Versatile-PB.DTB Native-Emuasi 

Karena kami ingin meniru versi terbaru dari Raspberry Pi Os, file yang kami butuhkan Kernel-qemu-4.19.50-buster Dan Buster-PB yang serba guna.dtb. Yang pertama adalah gambar kernel yang sebenarnya, yang kedua adalah a Gumpalan pohon perangkat. Apa tujuan dari file ini?

Untuk menggambarkan perangkat keras yang tersedia pada sistem di papan Raspberry Pi, Dts File (Sumber Pohon Perangkat) digunakan; Versi yang dikompilasi dari file -file tersebut dipanggil Dtb dan disimpan dalam file dengan .dtb perpanjangan. Dalam kasus kami, kami dapat menggunakan Kernel-qemu-5.4.51-buster, bersama dengan serbaguna-pb-buster-5.4.51.dtb mengajukan.

Meniru raspberry pi os

Dengan semua file yang dibutuhkan, kita akhirnya dapat memvirtualisasikan gambar Raspberry Pi Os. Harap perhatikan bahwa di sini saya menganggap direktori yang berfungsi adalah sama di mana kami mengunduh gambar sistem. Sebelum kita menjalankan perintah yang sebenarnya, hanya pada Debian kita perlu memulai jaringan bridged nated default, yang tidak dimulai secara otomatis; untuk melakukan itu kita harus menjalankan:

$ sudo virsh ---connect = qemu: /// System net-start default 

Untuk membuatnya mulai secara otomatis, kita dapat menjalankan:

$ sudo virsh --connect = qemu: // sistem net-autostart default 

Sekarang, untuk membangun mesin virtual, kita harus menjalankan perintah berikut:

$ sudo virt-install \--name rpios \ --arch armv6l \--meshine versatilepb \ --cpu arm1176 \ --vcpus 1 \ --memory 256 \ --import \--disk 2021-01-11-raspios -Buster-armhf-lite.img, format = mentah, bus = virtio \ --network Bridge, source = virbr0, model = virtio \ --video vga \ --graphics spice \ --boot 'dtb = qemu-rpi-kernel/versatile-pb-buster.DTB, kernel = qemu-rpi-kernel/kernel-qemu-4.19.50-Buster, kernel_args = root =/dev/vda2 panic = 1 '\ --events on_rootboot = hancurkan 

Jendela virt-viewer akan muncul; Di sana kita harus dapat memvisualisasikan booting raspberry pi os:



Mari kita lihat secara singkat opsi yang kami gunakan untuk membangun mesin virtual dengan virt-install memerintah; Beberapa cukup jelas, lainnya sedikit lebih tidak jelas.

Pertama -tama kami menggunakan --nama Opsi: Dengan itu kita dapat mengatur nama instance mesin virtual (itu harus unik). Opsi kedua yang kami gunakan adalah --lengkungan: Diperlukan untuk meminta arsitektur CPU non-pribumi untuk tamu
sistem; Jika kita tidak menggunakannya, arsitektur host diasumsikan.

Dengan --mesin Opsi Kami melewati jenis mesin untuk ditiru ke QEMU: Dalam hal ini kami menggunakan Versatilepb. Dengan --CPU Opsi Kami mengonfigurasi model CPU dan fitur yang terpapar pada tamu; Di sini kami menggunakan ARM1176, sejak
Raspberry Pi didasarkan pada lengan Arsitektur.

Itu --vcpus Opsi diperlukan untuk mengatur jumlah CPU virtual untuk mesin tamu, hanya satu dalam kasus ini. Karena bisa dengan mudah ditebak, sebaliknya, --Penyimpanan Opsi, sebagai gantinya, digunakan untuk mengatur memori untuk dialokasikan untuk tamu.

Itu --impor Opsi sangat penting di sini, karena digunakan untuk menginstruksikan aplikasi untuk melewatkan instalasi OS dan hanya membangun tamu di sekitar gambar yang sudah ada, yang kemudian ditentukan dengan --disk pilihan.

Kita gunakan --jaringan untuk menghubungkan tamu ke jaringan host. Dalam hal ini kami terhubung melalui virbr0 jembatan, yang dibuat secara default oleh libvirt. Dengan --video Opsi Kami menentukan jenis perangkat video yang harus dilampirkan ke tamu, dan dengan --Grafik Kami menentukan bagaimana tampilan grafis tamu dapat diakses: Dalam hal ini kami menggunakan membumbui, untuk menggunakan protokol dengan nama yang sama.

Dengan --boot opsi dimungkinkan untuk menentukan dtb dan inti file untuk digunakan, tetapi juga baris perintah kernel dengan Kernel_args. Akhirnya, dengan --Acara Opsi Kami menentukan nilai acara untuk tamu. Dalam hal ini kami menghancurkan Untuk On_root peristiwa.

Setelah mesin virtual dimulai, kami juga dapat mengelolanya secara grafis melalui virt-manager aplikasi. Kami sekarang dapat menikmati raspberry pi os kami!

Kesimpulan

Dalam tutorial ini kami melihat bagaimana kami dapat menjalankan gambar raspberry pi os mentah menggunakan QEMU dan KVM, tanpa perangkat keras Raspberry Pi yang sebenarnya. Kami melihat cara mengunduh dan memverifikasi gambar sistem, cara mengekstraknya, cara mengkloning repositori git yang berisi file kernel dan dtb yang diperlukan untuk mem -boot gambar dengan qemu, dan perintah aktual yang harus kita jalankan untuk memulai virtualisasi sistem dari sistem.

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Menguasai loop skrip bash
  • Pengantar Mesin Penyimpanan MySQL
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Sistem Linux Hung? Cara melarikan diri ke baris perintah dan…
  • File Konfigurasi Linux: 30 Teratas Paling Penting
  • Cara memeriksa kesehatan hard drive dari baris perintah…
  • Ubuntu 20.04 Panduan