QEMU:如何将 -net 标志转换为 -device 和 -netdev

QEMU:如何将 -net 标志转换为 -device 和 -netdev

我正在尝试通过 QEMU 模拟 Raspberry Pi,以下内容对我有用:

qemu-system-arm \
    -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \
    -boot c \
    -cpu arm1176 \
    -drive "file=2019-04-08-raspbian-stretch-lite.img,if=scsi,cache=none,discard=ignore,format=raw" \
    -kernel ./kernel-qemu-4.4.34-jessie \
    -m 256M \
    -machine type=versatilepb,accel=tcg \
    -name packer-qemu \
    -no-reboot \
    -vnc 127.0.0.1:4 \
    -net nic \
    -net user,id=user.0,hostfwd=tcp::5555-:22

我可以通过 VNC5904和 SSH 通过5555(通过 VNC 启动 SSHd 后)。换句话说,网络似乎设置正确。

正如我发现的-net该选项已被弃用支持-device& -netdev,所以我想将上面两个最后标志翻译为“new QEMU”。

看来新-device标志迫使我选择一个驱动程序,而-net.我喜欢明确性,但我如何知道默认/隐式驱动程序是什么?

以下示例中的端口转发似乎不再起作用(我无法通过 SSH 连接;连接超时):

qemu-system-arm \
    -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \
    -boot c \
    -cpu arm1176 \
    -drive "file=2019-04-08-raspbian-stretch-lite.img,if=scsi,cache=none,discard=ignore,format=raw" \
    -kernel ./kernel-qemu-4.4.34-jessie \
    -m 256M \
    -machine type=versatilepb,accel=tcg \
    -name packer-qemu \
    -no-reboot \
    -vnc 127.0.0.1:4 \
    -device e1000,netdev=user.0 \
    -netdev user,id=user.0,hostfwd=tcp::5555-:22

我只是使用了错误的驱动程序吗?


QEMU 3.1.0(从 Homebrew 安装)

(主机)MacOS10.14.4

相关内容