From c33858e6ecfb14a989733bee4ee154c4f9506862 Mon Sep 17 00:00:00 2001 From: Torsten Date: Mon, 22 Jul 2019 23:45:32 +0300 Subject: [PATCH] updated qemu instructions --- app/views/pages/arm/qemu.html.haml | 59 ++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/app/views/pages/arm/qemu.html.haml b/app/views/pages/arm/qemu.html.haml index 8a8d725..47871aa 100644 --- a/app/views/pages/arm/qemu.html.haml +++ b/app/views/pages/arm/qemu.html.haml @@ -2,10 +2,10 @@ %h1= title "How to configure Qemu" -%h2 Target Pi on Mac +%h2 Target Pi on Mac or Linux %p So even the idea is to run software on the Pi, not everyone has a Pi (yet :-) %p Others, like me, prefer to develop on a laptop and not carry the Pi around. -%p For all those, this here explains how to emulate the Pi on a Mac. +%p For all those, this here explains how to emulate the Pi on a unix. %p Even if you have a Pi, =link_to "this explains", "remote_pi.html" @@ -20,15 +20,22 @@ %p Get the Qemu. There may be other emulators out there, and i have read of armulator, but this is what i found described and it works and is “easy enough”. -%pre - %code - :preserve +%p + + On Mac: + %pre + %code brew install qemu + On Linux with debian/ubuntu: + %pre + %code + sudo apt-get qemu-system-arm + %h3 Pi images %p - Create a directory for the stuff on your mac, ie pi. + Create a directory for the stuff on your computer, ie pi. %pre %code mkdir pi @@ -36,27 +43,41 @@ pi is in the gitignore, and the scripts in bin, will assume pi. %p - Get the latest Raspian image. The - =ext_link "lite version" "https://www.raspberrypi.org/downloads/raspbian/" + Get the latest Raspian image. Currently (2019) the + =ext_link "buster lite version" "https://www.raspberrypi.org/downloads/raspbian/" without Gui is fine, and smaller. %p Change the file format with something like: %pre %code - qemu-img convert -f raw -O qcow2 2017-08-16-raspbian-stretch-lite.img raspbian-stretch-lite.qcow - So we can then resize the file, without it taking extra space + qemu-img convert -f raw -O qcow2 2019-07-10-raspbian-buster-lite.img raspbian-buster-lite.qcow + + So we can then resize the file, without it taking extra space (optional) %pre %code - qemu-img resize raspbian-stretch-lite.qcow +6G - Put the resulting file into the pi directory. + qemu-img resize raspbian-buster-lite.qcow +2G + Put the resulting file into the pi directory. After booting you will need to change the + partition to take the newly created space. This can be done with + %pre + %code + sudo fdisk /dev/sda + but for the buster image there is an extra little problem. A small free space is before + the partition, but the new partion must be at the exact sector as the old. So copy the start + sector before deleting the root partion and give fdisk the start sector when creatin the new. + %p + Also the file system has to be enlarged after another reboot: + %pre + %code + sudo resize2fs /dev/sda2 + %h3 Kernel %p One still needs a kernel (even there is one on the image?), and Druv kindly keeps a - repository of them. Since we downloaded the stretch image, grap the - =ext_link "stretch kernel" , "https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/kernel-qemu-4.9.59-stretch" + repository of them. Since we downloaded the buster image, grab the + =ext_link "buster kernel" , "https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/master/kernel-qemu-4.19.50-buster" and also the mysterious - =ext_link "tdb file." , "https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/versatile-pb.dtb" + =ext_link "dtb file." , "https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/master/versatile-pb.dtb" Both go into the pi directory. %h3 Boot @@ -66,14 +87,14 @@ %pre %code :preserve - qemu-system-arm -kernel pi/kernel-qemu-4.9.59-stretch -dtb pi/versatile-pb.dtb -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append 'root=/dev/sda2 panic=1 rootfstype=ext4 rw' -hda pi/raspbian-stretch-lite.qcow -net nic -net user,hostfwd=tcp::2222-:22 + qemu-system-arm -kernel pi/kernel-qemu-4.19.50-buster -dtb pi/versatile-pb.dtb -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append 'root=/dev/sda2 panic=1 rootfstype=ext4 rw' -hda pi/raspbian-buster-lite.qcow -net nic -net user,hostfwd=tcp::2222-:22 %ul %li the cpu is what broadcom specifies, ok %li memory is unfortunately hardcoded in the versatilepb “machine” %li the kernel is the file name of the kernel you downloaded (or extracted) %li raspbian.img is the image you downloaded. Renamed as it probably had the datestamp on it %li the "-net user,hostfwd=tcp::2222-:22" redircts the port 2222 to let you log into the pi -%p So +%p So (after the configuring the ssh, as shown below) %pre %code :preserve @@ -99,5 +120,5 @@ %h2#links Links %ul#selector %li=ext_link "Post used for instructions", "https://blog.agchapman.com/using-qemu-to-emulate-a-raspberry-pi/" - %li=ext_link "stretch kernel" , "https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/kernel-qemu-4.9.59-stretch" - %li=ext_link "Rasbian image file", "http://www.raspberrypi.org/downloads/" + %li=ext_link "kernel repo" , "https://github.com/dhruvvyas90/qemu-rpi-kernel/" + %li=ext_link "Rasbian image file", "http://www.raspberrypi.org/downloads/raspbian/"