我新编译的内核在qemu中失去了联网

时间:2018-11-08 00:16:25

标签: linux networking linux-kernel kernel 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 它安装了,我得到了外壳和所有东西,但是失去了连接。在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选项。

2 个答案:

答案 0 :(得分:0)

您正在使用用户套接字。为此,qemu在其主机进程中创建一个常规套接字,并将客户机中特定端口的数据包转发到主机套接字。这是可行的,但我觉得很烦。

我总是更喜欢使用以下QEMU开关创建分接设备并将其桥接到我的物理接口:

-netdev tap,ifname=tap0,script=no,downscript=no,id=my_net_id \
-device driver=virtio-net,netdev=my_net_id

这样,您便具有完整的网络功能,无需使用一些奇怪的端口重定向。

答案 1 :(得分:0)

正在寻找此问题的答案。对于其他寻求帮助的人,dhclient命令OP所指的是(找到here):

dhclient -v <interface> 

其中接口是ip a结果中显示的网络适配器。

要使此更改在重新启动后仍然存在,我通过插入以下内容来修改/ etc / network / interfaces文件: 完成上述操作后,我总是修改/ etc / network / interfaces文件:

auto <interface>
iface <interface> inet dhcp