- Stiahni najnovší RevPi Stretch obraz, založený na Raspbian Buster kunbus_release z oficiálnej stránky
- Stiahni
kernel-qemu-4.19.50-busteraversatile-pb-buster.dtbz dhruvvyas90/qemu-rpi-kernel - Nainštaluj potrebné nástroje
sudo pacman -S qemu unzip qemu-arch-extra
- Rozbali obraz
unzip <revpi-image>.zip
- Konvertuj .img na .qcow2
qemu-img convert -f raw -O qcow2 <revpi-image>.img <revpi-image>.qcow2
Uprav veľkosť obrazu podľa potreby
qemu-img resize <revpi-image>.qcow2 4GB
- Spusti pomocou QEMU
sudo qemu-system-arm -kernel kernel-qemu-4.19.50-buster \
-dtb versatile-pb-buster.dtb \
-m 256 -cpu arm1176 \
-machine versatilepb \
-hda 2020-06-25-revpi-stretch.qcow2 \
-append "root=/dev/sda2"
Ako poznámku na okraj, versatilepb machine umožňuje len 256 MB RAM.
- Odstráň výzvu na zadanie sériového čísla:
touch /home/pi/.revpi-factory-reset
Viac o procese sa môžeš dozvedieť sledovaním balíka piserial
dpkg -l piserial
- Zmeň názov hostiteľa
sudo hostnamectl set-hostname revpi
- Manuálne uprav
/etc/hostsa pridaj tam názov hostiteľa
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# nastav lokálny názov hostiteľa tu
127.0.1.1 revpi
Interakcia s hosťom #
- Na hostiteľskom stroji nainštaluj virt-manager
sudo pacman -S virt-manager ebtables dnsmasq bridge-utils openbsd-netcat
- Pridaj sa do potrebných skupín
sudo usermod -aG kvm,libvirt username
- Uprav
oprávnenia kvm
v
/etc/libvirt/qemu.conf:
user = "username"
group = "kvm"
- Definuj predvolenú sieť:
sudo virsh net-define /etc/libvirt/qemu/networks/default.xml
sudo virsh net-autostart default
sudo virsh net-start default
Skontroluj, že sieť virbr0 je prítomná
brctl show # virbr0
- Odhlásiť sa a znovu prihlásiť, potom spustiť démona
sudo systemctl start libvirtd.service
- Vytvor súbor domény
/tmp/revpi.xml, so súhlasom kim tinh
<domain type='qemu'>
<name>rpi</name>
<uuid>da70087f-7142-42dc-9975-00b7fa5c8435</uuid>
<memory unit='KiB'>262144</memory>
<currentMemory unit='KiB'>262144</currentMemory>
<os>
<type arch='armv6l' machine='versatilepb'>hvm</type>
<kernel>/path/to/kernel-qemu-4.19.50-buster</kernel> <!--aktualizuj cestu tu-->
<cmdline>root=/dev/sda2</cmdline>
<dtb>/path/to/versatile-pb-buster.dtb</dtb> <!--aktualizuj cestu tu-->
<boot dev='hd'/>
</os>
<cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>arm1176</model>
</cpu>
<devices>
<emulator>/usr/bin/qemu-system-arm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/path/to/.qcow2'/> <!--aktualizuj cestu tu-->
<backingStore/>
<target dev='sda' bus='scsi'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<controller type='pci' index='0' model='pci-root'/>
<interface type='bridge'>
<mac address='52:54:00:ed:eb:c7'/>
<source bridge='virbr0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
<graphics type='spice' autoport='yes'>
<listen type='address'/>
<image compression='off'/>
<gl enable='no' rendernode='/dev/dri/by-path/pci-0000:00:02.0-render'/>
</graphics>
<video>
<model type='virtio' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</video>
</devices>
</domain>
Zmeň cesty k súborom kernel-qemu-4.19.50-buster,
versatile-pb-buster.dtb a .qcow2 na správne absolútne cesty
- Vytvor novú doménu pre RevPi
sudo virsh define /tmp/revpi.sh
- Spusti doménu
sudo virsh start revpi
- Uisti sa, že avahi-daemon je spustený
sudo systemctl start avahi-daemon
- Skopíruj ssh prihlásenia, heslo je
raspberry
ssh-copy-id [email protected]
- Interaguj s emulovaným obrazom
ssh [email protected]
Inštalácia najnovšieho Node #
Na hosťovi je nainštalovaný node 10.19.0 dostupný cez RevPi backports:
node -v # 10.19.0
Skontroluj architektúru
uname -m # armv6l
Emulovaný arm1176 CPU je žiaľ architektúra armv6l, ktorú node oficiálne nepodporuje
- Nainštaluj nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
Uisti sa, že inštalácia prebehla úspešne
command -v nvm
- nvm tiež nepodporuje armv6l, použi neoficiálne nvm zrkadlo:
NVM_NODEJS_ORG_MIRROR=https://unofficial-builds.nodejs.org/download/release nvm install 14.9
Hotovo!
Odkazy #
- https://blog.agchapman.com/using-qemu-to-emulate-a-raspberry-pi/
- https://azeria-labs.com/emulate-raspberry-pi-with-qemu/
- https://ownyourbits.com/2017/02/06/raspbian-on-qemu-with-network-access/
- http://pub.phyks.me/respawn/mypersonaldata/public/2014-05-20-11-08-01/
- https://github.com/meadowface/raspbian-qemu
- https://wiki.debian.org/KVM#Troubleshooting
- https://help.ubuntu.com/community/KVM/Installation