自分用
aarch64版のqemuはx86_64版のような
userモードネットワークが使用出来ない。
-netdev tap,ifname=tap0,script=no,downscript=no,id=my_net_id -device driver=virtio-net,netdev=my_net_id
でネットワークデバイスを追加して実行する
qemu起動
sudo /home/tyano/workspace/oss/build_qemu/qemu-system-aarch64 -M virt -cpu cortex-a710 -m 2048 -kernel output/images/Image -device virtio-gpu,id="display1" -display sdl,gl=on -append "root=/dev/vda console=ttyS0" -drive if=pflash,format=raw,file=efi.img,readonly=on -drive if=pflash,format=raw,file=varstore.img -drive file=./output/images/rootfs.ext2,if=virtio,format=raw -netdev tap,ifname=tap0,script=no,downscript=no,id=my_net_id -device driver=virtio-net,netdev=my_net_id -device qemu-xhci -serial stdio -device usb-mouse -device usb-kbd -device usb-tablet -monitor telnet::33333,server,nowait
tap0はqemu起動時に作成される。
ホスト側設定
sudo ip link add name br0 type bridge
sudo ip link set dev enp1s0 master br0
sudo ip link set dev tap0 master br0
sudo ip link set dev br0 up
sudo ip link set dev enp1s0 up
sudo ip link set dev tap0 up
sudo ip a del 192.168.2.131/24 dev enp1s0
sudo ip a add 192.168.2.131/24 dev br0
qemu再起動時(ホスト設定を先にやった場合)
qemu側はip設定、ホスト側はtap0の再設定が必要
qemu側
ip a add 192.168.2.200/24 dev eth0
ip r add default dev eth0
ホスト側
sudo ip link set dev tap0 up
sudo ip link set dev tap0 master br0
qemu内でipは自動設定される
Wifiしかなくてブリッジ接続出来ない場合
tapを作って
sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 up
qemuの起動オプションに以下を追加
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=net0
ホスト側NAT転送
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o wlp3s0 -j MASQUERADE
sudo iptables -A FORWARD -i wlp3s0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i tap0 -o wlp3s0 -j ACCEPT
sudo ip addr add 192.168.100.1/24 dev tap0
ゲスト
ip addr add 192.168.100.2/24 dev eth0
ip link set eth0 up
ip route add default via 192.168.100.1