Cara Menjalankan Raspberry Pi OS dalam Mesin Maya dengan Qemu dan KVM

Cara Menjalankan Raspberry Pi OS dalam Mesin Maya dengan Qemu dan KVM

Walaupun banyak sistem operasi tersedia untuk Raspberry Pi, yang rasmi adalah Raspberry Pi OS. Sistem operasi dibuat untuk dijalankan untuk lengan seni bina, dan boleh dipasang dengan mudah pada kad SD yang akan digunakan sebagai peranti penyimpanan Raspberry Pi utama. Kadang -kadang kita mungkin mahu melakukan beberapa ujian atau mencuba beberapa aplikasi tanpa mesin Raspberry Pi fizikal; Dalam tutorial ini kita akan melihat bagaimana kita dapat membuat mesin maya dengan sistem Raspberry Pi OS menggunakan Qemu dan Kvm (Mesin Maya Kernel).

Dalam tutorial ini anda akan belajar:

  • Cara memasang qemu dan kvm
  • Cara Muat turun dan Periksa Integriti Versi Raspberry Pi OS Terkini (Buster)
  • Cara menjalankan raspberry pi os dalam mesin maya
Cara Menjalankan Raspberry Pi OS dalam Mesin Maya dengan Qemu dan KVM

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran bebas
Perisian Qemu, QEMU-Sistem-Arm, KVM dan Git
Yang lain Tiada
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Memasang qemu

Qemu, seperti yang ditakrifkan di laman web rasmi adalah "Emulator Mesin Generik dan Terbuka dan Virtualizer". Kita boleh menggunakannya untuk menjalankan sistem operasi untuk sebarang jenis mesin. Di linux ia sering digunakan dalam kombinasi dengan kvm, yang merupakan penyelesaian virtualisasi penuh termasuk dalam kernel. Untuk dapat virtualisasi Raspberry Pi OS kami, kami perlu memasangnya pada pengedaran kegemaran kami, bersama -sama dengan QEMU-SYSTEM-ARM pakej, yang menyediakan emulator sistem untuk Lengan sistem. Qemu dan KVM boleh didapati di repositori perisian pengagihan utama Linux. Untuk memasangnya di Fedora, kita boleh menggunakan DNF Pengurus Pakej:

$ sudo dnf install @virtualization qemu-system-arm 


Di sini kami memasang virtualisasi Kumpulan Pakej (perhatikan @ awalan): Ia merangkumi semua yang diperlukan untuk virtualisasi di fedora, kecuali untuk QEMU-SYSTEM-ARM pakej, yang kami pasang secara berasingan.

Mengenai pengagihan berasaskan Debian dan Debian, kami dapat melancarkan perintah berikut untuk menyegerakkan pengedaran kami dengan repositori jauh dan mendapatkan pakej yang diperlukan pada sistem kami:

$ sudo apt-get update & & sudo apt-get pemasangan qemu-system-arm qemu-kvm libvirt-clients libvirt-daemon-sistem jambatan-utils virtinst libvirt-daemon virt-manager 

Memuat turun dan mengesahkan gambar Raspberry Pi OS terkini

Kami boleh memuat turun pelepasan terkini Raspberry Pi OS dari laman Raspberry Pi rasmi. Pada dasarnya kita boleh memilih antara 3 versi sistem: ada yang lebih minimum, yang lain dilengkapi dengan satu set pakej yang lebih besar dan a
Desktop grafik sudah dipasang. Pautan muat turun adalah seperti berikut:

  • Raspberry pi os lite
  • Raspberry Pi OS dengan desktop
  • Raspberry Pi OS dengan desktop dan pakej tambahan

Dalam tutorial ini, kami akan menggunakan versi Raspberry Pi OS "Lite". Memuat turunnya menggunakan penyemak imbas web itu hanya masalah mengklik pada salah satu pautan yang disediakan di atas. Sekiranya kita mahu memuat turunnya dari baris arahan, sebaliknya, kita boleh menggunakan alat seperti wget atau curl:

# Menggunakan wget $ wget https: // muat turun.pai raspberi.org/raspios_lite_armhf/imej/raspios_lite_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-lite.zip # menggunakan curl $ curl -o https: // muat turun.pai raspberi.org/raspios_lite_armhf/imej/raspios_lite_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-lite.zip 

Dengan melaksanakan salah satu daripada dua arahan di atas, imej akan dimuat turun dalam direktori kerja semasa. Setelah muat turun selesai, kami dapat mengesahkan integriti imej dengan membandingkannya SHA256SUM dengan yang disediakan di laman web.
Dalam kes kita hashsum sepatutnya D49D6FAB1B8E533F7EFC40416E98EC16019B9C034BC89C59B83D0921C2AEFEEF. Untuk mengesahkannya, kita boleh menjalankan arahan berikut:

$ SHA256SUM 2021-01-11-RASPIOS-BUSTER-ARMHF-LITE.zip 

Perintah di atas, dalam kes kami mengembalikan hasil berikut:

49D6FAB1B8E533F7EFC40416E98EC16019B9C034BC89C59B83D0921C2AEFEEF 2021-01-11-RASPIOS-BUSTER-ARMHF-LITE.zip 

Anda dapat melihat bahawa kedua -dua hashsums perlawanan, jadi kami baik untuk pergi. Apa yang perlu kita lakukan sekarang, adalah untuk mengekstrak imej, kerana ia dilepaskan. Untuk melakukan itu kita boleh menjalankan arahan berikut:

$ UNZIP 2021-01-11-Raspios-Buster-Armhf-lite.zip 


Oleh kerana kernel yang dimasukkan ke dalam imej sistem rasmi tidak dapat dipasang terus dari QEMU, kita mesti mengklon repositori git yang mengandungi satu siri kernel yang dibina untuk tujuan yang tepat ini. Kami akan melihat bagaimana untuk melakukan ini di bahagian seterusnya.

Mendapatkan kernel qemu-siap dari github

Repositori yang kita perlukan untuk mengklon dari github adalah dhruvvyas90/qemu-rpi-kernel. Yang harus kita lakukan ialah menjalankan arahan berikut:

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

Proses pengklonan boleh mengambil sedikit masa untuk diselesaikan, yang bergantung pada kelajuan sambungan internet anda. Sebaik sahaja repositori diklonkan, kami senang pergi. Inilah kandungannya:

$ ls qemu-rpi-kernel kernel-qemu-3.10.25-wheezy Readme.MD kernel-qemu-4.14.79-Stretch Tools Kernel-QEMU-4.19.50-buster serba boleh-pb-buster-5.4.51.DTB kernel-qemu-4.4.34-Jessie Versatile-PB-Buster.DTB kernel-qemu-5.4.51-baster serba boleh-pb.DTB Native-emuation 

Oleh kerana kami ingin mencontohi versi terkini Raspberry Pi OS, fail yang kami perlukan Kernel-qemu-4.19.50-Buster dan serba boleh-pb-buster.DTB. Yang pertama adalah imej kernel sebenar, yang kedua adalah gumpalan pokok peranti. Apakah tujuan fail ini?

Untuk menerangkan perkakasan yang tersedia pada sistem di papan Raspberry Pi, DTS (Sumber Pokok Peranti) Fail digunakan; Versi yang disusun fail tersebut dipanggil DTB dan disimpan dalam fail dengan .DTB sambungan. Dalam kes kita, kita boleh menggunakan alternatifnya Kernel-qemu-5.4.51-baster, Bersama -sama dengan serba boleh-pb-buster-5.4.51.DTB fail.

Meniru raspberry pi os

Dengan semua fail yang diperlukan, kita akhirnya dapat memiringkan gambar Raspberry Pi OS. Sila ambil perhatian bahawa di sini saya menganggap direktori kerja adalah sama di mana kita memuat turun gambar sistem. Sebelum kita menjalankan perintah sebenar, hanya pada Debian kita perlu memulakan Rangkaian Bridged Nated Default, yang tidak dimulakan secara automatik; untuk melakukan itu kita mesti lari:

$ sudo virsh --connect = qemu: /// Sistem net-start lalai 

Untuk membuatnya bermula secara automatik, kita boleh menjalankan:

$ sudo virsh --connect = qemu: // System Net-Autostart Default 

Sekarang, untuk membina mesin maya, kita mesti menjalankan arahan berikut:

$ sudo virt-install \ --name rpios \ --arch armv6l \--machine versatilepb \ --cpu arm1176 \ --vcpus 1 \--Mory 256 \ --import \--disk 2021-01-Raspios -Buster-armhf-lite.img, format = mentah, bus = virtio \ --network Bridge, source = virbr0, model = virtio \ --video vga \ --graphics spice \ --boot 'dtb = qemu-rpi-kernel/serba boleh-buster-buster.DTB, kernel = qemu-rpi-kernel/kernel-qemu-4.19.50-buster, kernel_args = root =/dev/vda2 panik = 1 '\ --events on_reboot = hancur 

Tetingkap Virt-Viewer harus muncul; Di sana kita harus dapat memvisualisasikan boot Raspberry Pi OS:



Mari kita lihat dengan ringkas pilihan yang kami gunakan untuk membina mesin maya dengan Virt-dipasang perintah; ada yang cukup jelas, yang lain sedikit lebih jelas.

Pertama sekali kita menggunakan --nama Pilihan: Dengan itu kita dapat menetapkan nama contoh mesin maya (harus unik). Pilihan kedua yang kami gunakan adalah --lengkungan: diperlukan untuk meminta seni bina CPU bukan asli untuk tetamu
sistem; Sekiranya kita tidak menggunakannya, seni bina tuan rumah diandaikan.

Dengan --mesin pilihan kami lulus jenis mesin untuk dicontohi ke QEMU: Dalam kes ini kami gunakan Versatilepb. Dengan --CPU pilihan kami mengkonfigurasi model CPU dan ciri yang terdedah kepada tetamu; Di sini kami menggunakan ARM1176, sejak
Raspberry Pi didasarkan pada lengan seni bina.

The --vcpus Pilihan diperlukan untuk menetapkan bilangan CPU maya untuk mesin tetamu, hanya satu dalam kes ini. Kerana ia dapat dengan mudah ditebak, sebaliknya, --ingatan Pilihan, sebaliknya, digunakan untuk menetapkan memori untuk memperuntukkan tetamu.

The --import Pilihan sangat penting di sini, kerana ia digunakan untuk mengarahkan permohonan untuk melangkau pemasangan OS dan hanya membina tetamu di sekitar imej yang sudah ada, yang kemudiannya ditentukan dengan --cakera pilihan.

Kami guna --rangkaian Untuk menyambungkan tetamu ke rangkaian tuan rumah. Dalam kes ini kita berhubung melalui Virbr0 jambatan, yang dibuat secara lalai oleh libvirt. Dengan --video pilihan kami menentukan jenis peranti video mana yang harus dilampirkan pada tetamu, dan dengan --grafik Kami menentukan bagaimana paparan grafik tetamu dapat diakses: dalam hal ini kami gunakan rempah, untuk menggunakan protokol dengan nama yang sama.

Dengan --boot pilihan adalah mungkin untuk menentukan DTB dan juga kernel fail untuk digunakan, tetapi juga baris arahan kernel dengan kernel_args. Akhirnya, dengan --peristiwa pilihan kami menentukan nilai peristiwa untuk tetamu. Dalam kes ini kita memusnahkan untuk on_reboot peristiwa.

Setelah mesin maya dimulakan, kita juga dapat menguruskannya secara grafik melalui Virt-Manager permohonan. Sekarang kita dapat menikmati Raspberry Pi OS kami yang maya!

Kesimpulan

Dalam tutorial ini kita melihat bagaimana kita dapat menjalankan imej Raspberry Pi OS mentah menggunakan Qemu dan KVM, tanpa perkakasan Raspberry Pi yang sebenarnya. Kami melihat cara memuat turun dan mengesahkan imej sistem, bagaimana untuk mengekstraknya, bagaimana untuk mengklonkan repositori git yang mengandungi fail kernel dan dtb yang diperlukan untuk boot imej dengan qemu, dan perintah sebenar yang kita harus lari untuk memulakan virtualisasi sistem.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Menguasai Gelung Skrip Bash
  • Pengenalan kepada enjin penyimpanan MySQL
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
  • Fail Konfigurasi Linux: 30 teratas yang paling penting
  • Cara memeriksa kesihatan cakera keras dari baris arahan ..
  • Ubuntu 20.04 Panduan