■Raspberry Pi 4B(Ubuntu 20.04)にKVMを導入する。 $ awk -F: '/Model|Hardware/{print $NF}' /proc/cpuinfo BCM2835 Raspberry Pi 4 Model B Rev 1.4 $ lsb_release -d Description: Ubuntu 20.04.1 LTS $ uname -r -m 5.4.0-1018-raspi aarch64 ■あと4.5年ほどの通常サポート期間のOS。 $ w3m -dump "https://www.ubuntulinux.jp/ubuntu" | grep -A 2 -B 3 20.04 ┌─────────────────┬──────────┬──────────────┬─────────────────────────────┐ │コードネーム │バージョン│リリース日 │サポート期限 │ ├─────────────────┼──────────┼──────────────┼─────────────────────────────┤ │Focal Fossa │20.04 LTS │2020年4月23日 │2025年4月(通常) │ │ │ │ │2030年4月(ESM) │ ├─────────────────┼──────────┼──────────────┼─────────────────────────────┤ ■KVMが有効になっていることを確認 $ dmesg | grep kvm [ 0.897886] kvm [1]: IPA Size Limit: 44bits [ 0.898809] kvm [1]: vgic interrupt IRQ1 [ 0.899022] kvm [1]: Hyp mode initialized successfully ■aarch64向けのqemuを探す $ apt-cache search ^qemu.*aarch64 qemu-efi-aarch64 - UEFI firmware for 64-bit ARM virtual machines qemu-system-arm - QEMU full system emulation binaries (arm) ■aarch64 arm用でqemu-system-aarch64を指定すると、qemu-system-armとしてインストールされる。 $ apt-cache show qemu-system-arm | lsec ^Desc.*en Description-en: QEMU full system emulation binaries (arm) QEMU is a fast processor emulator: currently the package supports ARM emulation. By using dynamic translation it achieves reasonable speed while being easy to port on new host CPUs. . This package provides the full system emulation binaries to emulate the following arm hardware: aarch64 arm. . In system emulation mode QEMU emulates a full system, including a processor and various peripherals. It enables easier testing and debugging of system code. It can also be used to provide virtual hosting of several virtual machines on a single server. Description-en: QEMU full system emulation binaries (arm) QEMU is a fast processor emulator: currently the package supports ARM emulation. By using dynamic translation it achieves reasonable speed while being easy to port on new host CPUs. . This package provides the full system emulation binaries to emulate the following arm hardware: aarch64 arm. . In system emulation mode QEMU emulates a full system, including a processor and various peripherals. It enables easier testing and debugging of system code. It can also be used to provide virtual hosting of several virtual machines on a single server.
■qemuのインストール $ sudo apt-get install -y qemu-system-aarch64 $ dpkg -l | awk '$1 ~ /ii/&&$2 ~/qemu/{printf "%-35s %-40s %-10s\n",$2,$3,$4}' ipxe-qemu 1.0.0+git-20190109.133f4c4-0ubuntu3.2 all ipxe-qemu-256k-compat-efi-roms 1.0.0+git-20150424.a25a16d-0ubuntu4 all qemu-block-extra:arm64 1:4.2-3ubuntu6.6 arm64 qemu-efi-aarch64 0~20191122.bd85bf54-2ubuntu3 all qemu-efi-arm 0~20191122.bd85bf54-2ubuntu3 all qemu-system-arm 1:4.2-3ubuntu6.6 arm64 qemu-system-common 1:4.2-3ubuntu6.6 arm64 qemu-system-data 1:4.2-3ubuntu6.6 all qemu-system-gui:arm64 1:4.2-3ubuntu6.6 arm64 qemu-utils 1:4.2-3ubuntu6.6 arm64 ■QEMUのバージョン確認 $ ls -l /usr/bin/qemu* -rwxr-xr-x 1 root root 1974648 9月 15 23:02 /usr/bin/qemu-img -rwxr-xr-x 1 root root 1933896 9月 15 23:02 /usr/bin/qemu-io -rwxr-xr-x 1 root root 1930248 9月 15 23:02 /usr/bin/qemu-nbd -rwxr-xr-x 1 root root 722328 9月 15 23:02 /usr/bin/qemu-pr-helper -rwxr-xr-x 1 root root 18305048 9月 15 23:02 /usr/bin/qemu-system-aarch64 -rwxr-xr-x 1 root root 17239584 9月 15 23:02 /usr/bin/qemu-system-arm $ qemu-system-aarch64 -version QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.6) Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers ■aspberry Pi 4BのCPUはCortex-A72なので対応していることを確認 $ sudo dmesg | awk '/[Cc]ortex/' [ 0.897682] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available $ qemu-system-aarch64 -cpu help -machine virt | awk '/:|cortex-a72/' Available CPUs: cortex-a72 ■KVM用のブリッジネットワーク準備 $ sudo apt-get install -y bridge-utils $ brctl show ■virt-managerを探してインストール libvirtグループに自動追加されたユーザはvirshコマンドが使える。 $ apt-cache search libvirt0;apt-cache search ^virt-manager libvirt0 - library for interfacing with different virtualization systems virt-manager - 仮想マシン管理用デスクトップアプリケーション $ sudo apt-get install -y libvirt0 virt-manager $ grep libvirt /etc/group libvirt:x:138:ubuntu,labunix libvirt-qemu:x:64055:libvirt-qemu libvirt-dnsmasq:x:139: $ virsh list Id Name State -------------------- $ sudo systemctl list-units --type=service | grep libvirt libvirt-guests.service loaded active exited Suspend/Resume Running libvirt Guests libvirtd.service loaded active running Virtualization daemon ■システムの再起動 $ sudo shutdown -r now && exit ■起動後のブリッジネットワーク。 仮想マシンマネージャが起動したら、あとはお好きなように。 $ brctl show bridge name bridge id STP enabled interfaces virbr0 8000.5254005d3558 yes virbr0-nic