Bagaimana saya bisa menghubungkan kartu SD yang berisi Raspberry Pi OS ke PC Linux saya, dan boot OS di emulator?
Mengapa VMWare tidak berfungsi?
Apa keterbatasan metode ini?
Terkait: Emulasi pada PC Windows
Bagaimana saya bisa menghubungkan kartu SD yang berisi Raspberry Pi OS ke PC Linux saya, dan boot OS di emulator?
Mengapa VMWare tidak berfungsi?
Apa keterbatasan metode ini?
Terkait: Emulasi pada PC Windows
Jawaban:
Ya ini sepenuhnya mungkin. Namun, pada kenyataannya itu sedikit berbeda dengan cara Anda berpikir.
Pembukaan
Kartu SD berisi gambar sistem operasi. Dan berfungsi dengan menggembungkan gambar ini saat perangkat dihidupkan.
Seperti yang saya harapkan Anda sudah tahu, Anda mem-flash gambar ini ke kartu SD untuk membuat sistem kerja. Namun, apa yang dapat Anda lakukan sebelum mem-flash gambar adalah bermain-main dengannya menggunakan QEMU , yang merupakan emulator prosesor , dan memungkinkan kami untuk meniru set instruksi ARM.
Dengan cara ini, setiap perubahan yang Anda lakukan pada gambar (menginstal, mengkompilasi dll) akan tetap ada setelah Anda mem-flash-nya ke kartu SD.
Sekarang saya akan membicarakan cara menggunakan QEMU untuk memuat gambar. Saya akan menunjukkan dengan gambar Arch Linux, tetapi prosesnya harus tetap sama.
Menggunakan QEMU
Prasyarat
Anda perlu memperoleh QEMU untuk sistem Anda. QEMU seharusnya hanya memiliki satu persyaratan, agar perangkat input berfungsi, Anda perlu menginstal paket pengembangan SDL, yang harus tersedia dari manajer paket Anda.
Saya sarankan mengunduh paket menggunakan manajer paket reguler Anda:
Lengkungan :
Ubuntu :
Versi yang lebih baru (sejak 14.04) memiliki paket untuk itu:
Untuk versi yang lebih lama:
Bangun QEMU sendiri
Atau, Anda dapat membangun QEMU sendiri. Ini bagus jika Anda ingin mencoba versi baru, tetapi bisa lambat dan bersiaplah untuk banyak kesalahan selama kompilasi! Perhatikan bahwa jika membangun QEMU dari situs web mereka, itu harus dikompilasi untuk dukungan ARM. Jadi, periksa repositori distro Anda terlebih dahulu. Ini bisa dilakukan seperti itu;
Pastikan Anda memiliki dukungan ARM dengan:
Memperoleh Gambar
Kami sedang bekerja dengan Arch Linux, jadi akan menggunakan gambar Arch Arm. Tetapi gantilah ini dengan apa pun yang ingin Anda kerjakan, atau mungkin Anda sudah memiliki gambar. Dalam hal ini, lewati langkah ini.
Agar QEMU berfungsi, kita juga membutuhkan gambar kernel (yang akan berada di dalam file .img).
Untungnya ada gambar yang telah dikompilasi tersedia, dan Anda dapat menggunakannya dari sini ( unduh langsung ).
Mulai VM
Anda sekarang harus memiliki:
Mesin Virtual sekarang dapat mulai menggunakan perintah panjang lebar berikut ini:
sumber
Ubuntu 16.04, QEMU 2.9.0 -M raspi2, Raspbian 2016-05-27, vanilla kernel
Kompilasi QEMU 2.9.0 dari sumber:
Unduh gambar dan ekstrak kernel dan dts dari itu:
Unduh gambar dan unzip:
Pasang gambar kedua partisi. Cara termudah adalah:
Ini hanya bekerja dengan yang terbaru
losetup
di Ubuntu 16.04, metode lain di: https://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device/496576#496576Ini mencetak perangkat loop, misalnya:
jadi kami lakukan:
Lari:
Anda kemudian dapat login di terminal yang ditampilkan di terminal host Anda.
Batasan saat ini:
-M raspi2
ditambahkan di QEMU 2.6.0, dan Ubuntu 16.04 hanya memiliki QEMU 2.5.0, jadi kita harus mengkompilasi QEMU dari source. Tapi ini tidak sulit.Ubuntu 16.04, QEMU 2.5.0, Raspbian 2016-05-27, kernel yang dimodifikasi
Metode ini menggunakan
-M versatilepb
yang ada pada QEMU 2.5.0 dari Ubuntu 16.04.Kelemahannya adalah Anda harus mengunduh kernel yang dimodifikasi (lihat Emulasi dengan Qemu: mengapa kernel ekstra? ), Dan memodifikasi gambar, sehingga kurang mewakili sistem nyata.
Unduh: https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/36ede073f4ccb64f60200ede36c231afe9502070/kernel-qemu-4.4.12-jessie
Kami memilih
4.4.12
karena itu adalah versi kernel pada gambar Raspbian.Proses untuk membuat gumpalan kernel tersebut dijelaskan di dalam repositori di: https://github.com/dhruvvyas90/qemu-rpi-kernel/tree/36ede073f4ccb64f60200ede36c231afe9502070/tools
Mengapa gambar kernel tambahan ini diperlukan: Emulasi dengan Qemu: mengapa kernel ekstra?
Ubah gambar Raspbian sebagaimana disebutkan di: https://github.com/dhruvvyas90/qemu-rpi-kernel/wiki/Emulating-Jessie-image-with-4.x.xx-kernel/0068f0c21d942b0f331e18014ff8e22c20cada5c
Ringkasan:
Pasang gambar seperti yang kami lakukan untuk
-M raspi2
, tetapi gunakan partisi kedua, bukan yang pertama:Edit gambar:
Lari:
[gagal] Ubuntu 17.04, QEMU 2.8.0 -M raspi2, Raspbian 2016-05-27, vanilla kernel
Di Ubuntu yang lebih baru ini, QEMU 2.8.0 adalah default, jadi kami tidak perlu mengkompilasi QEMU dari sumber
-M raspi2
. Namun, 2.8.0 hang saat boot setelah pesan:Ini menunjukkan bahwa
-M raspi2
masih tidak stabil .[gagal] Ubuntu 16.04, QEMU 2.9.0 -M raspi2, Raspbian 2017-08-16, kernel vanilla
Pada gambar yang lebih baru ini, menggunakan metode yang sama untuk 2016-05-27, kernel panik saat boot dengan:
bztsrc/raspi3-tutorial
RPI3 bare metal di QEMUhttps://github.com/bztsrc/raspi3-tutorial adalah sekumpulan contoh yang bagus yang hanya bekerja pada QEMU, ultraquick untuk memulai di: Cara melakukan emulasi QEMU untuk gambar Raspberry Pi logam kosong
sumber
Anda tidak dapat melakukan apa yang Anda sarankan, karena Raspberry Pi memiliki arsitektur prosesor yang berbeda dari kebanyakan PC. Sementara sebagian besar PC berbasis x86, RPi adalah komputer berbasis ARM.
Ini adalah alasan yang sama dengan mengapa Anda tidak dapat menjalankan, misalnya, Microsoft Windows pada RPi.
VmWare tidak akan berfungsi, karena hanya dapat memvirtualisasikan sistem operasi berbasis x86 (32-bit dan 64-bit). Ada emulator lain yang dapat memvirtualisasikan ARM, seperti QEMU, tetapi mereka menjalankan emulasi perangkat lunak lengkap tanpa dukungan virtualisasi CPU asli, sehingga Anda dapat mengharapkan mereka menjadi sangat lambat.
sumber
Anda dapat dengan mudah mencoba simulator Raspberry Pi yang disertakan dengan sensor, command line, dan editor file di iotify.io. Lihat dokumentasi kami di https://docs.iotify.io/ untuk memulai dengan berbagai proyek, OS dan buat diri Anda terbiasa dengan lingkungan kerja Raspberry Pi.
sumber