我新编译的内核在 qemu 中丢失了网络
My newly compiled kernel loses Networking in qemu
我从源代码编译了一个内核:
make defconfig
make kvmconfig
make -j 4
在此之后,我将生成的 bzImage 用于我的 qemu 命令:
qemu-system-x86_64 -hda debian.img -kernel bzImage -append "root=/dev/sda console=ttyS0" -nographic -m 4096 -smp 2 --enable-kvm -net user,hostfwd=tcp::10021-:22 -net nic
它安装了,我得到了 shell 和所有东西,但它失去了连接。在 qemu 中,它记录:
[FAILED] Failed to start Raise network interfaces.
See 'systemctl status networking.service' for details.
有人可以指导我吗?我已经咨询过 Linux vanilla kernel on QEMU and networking with eth0 但它并没有解决我的问题。另外,我不是在寻找硬核 qemu-bridge-solutions。我很确定某些网络驱动程序没有加载,但我不知道如何解决它。或者我可能缺少一些内核 .config 选项。
您正在使用用户套接字。为此,qemu 在其主机进程中创建一个常规套接字,并将来宾计算机中特定端口的数据包转发到主机套接字。这是可行的,但我觉得很烦人。
我总是更喜欢创建一个 tap 设备并将其桥接到我的物理接口,这些 QEMU 开关:
-netdev tap,ifname=tap0,script=no,downscript=no,id=my_net_id \
-device driver=virtio-net,netdev=my_net_id
这样你就拥有了完整的网络能力,你不需要使用一些奇怪的端口重定向。
正在寻找这个问题的答案。对于其他寻求帮助的人,OP 所指的 dhclient 命令是 (found here):
dhclient -v <interface>
其中接口是 ip a
结果中显示的任何网络适配器。
为了使此更改在重新启动后保持不变,我通过插入以下内容修改了 /etc/network/interfaces 文件:
auto <interface>
iface <interface> inet dhcp
我从源代码编译了一个内核:
make defconfig
make kvmconfig
make -j 4
在此之后,我将生成的 bzImage 用于我的 qemu 命令:
qemu-system-x86_64 -hda debian.img -kernel bzImage -append "root=/dev/sda console=ttyS0" -nographic -m 4096 -smp 2 --enable-kvm -net user,hostfwd=tcp::10021-:22 -net nic
它安装了,我得到了 shell 和所有东西,但它失去了连接。在 qemu 中,它记录:
[FAILED] Failed to start Raise network interfaces.
See 'systemctl status networking.service' for details.
有人可以指导我吗?我已经咨询过 Linux vanilla kernel on QEMU and networking with eth0 但它并没有解决我的问题。另外,我不是在寻找硬核 qemu-bridge-solutions。我很确定某些网络驱动程序没有加载,但我不知道如何解决它。或者我可能缺少一些内核 .config 选项。
您正在使用用户套接字。为此,qemu 在其主机进程中创建一个常规套接字,并将来宾计算机中特定端口的数据包转发到主机套接字。这是可行的,但我觉得很烦人。
我总是更喜欢创建一个 tap 设备并将其桥接到我的物理接口,这些 QEMU 开关:
-netdev tap,ifname=tap0,script=no,downscript=no,id=my_net_id \
-device driver=virtio-net,netdev=my_net_id
这样你就拥有了完整的网络能力,你不需要使用一些奇怪的端口重定向。
正在寻找这个问题的答案。对于其他寻求帮助的人,OP 所指的 dhclient 命令是 (found here):
dhclient -v <interface>
其中接口是 ip a
结果中显示的任何网络适配器。
为了使此更改在重新启动后保持不变,我通过插入以下内容修改了 /etc/network/interfaces 文件:
auto <interface>
iface <interface> inet dhcp