[qemu] 桥接模式,ifconfig -a只有lo本地网卡

一、现象

1.按照网上的教程,编译linux内核,编译qemu,编译busybox

2.主机建立桥接br0,对应的两个port,tap0和eth0

3.qemu启动,使用tap0进行桥接网络配置,一般启动方式:

qemu-system-x86_64 -m 1024M --kernel linux-4.4.216/arch/x86/boot/bzImage -hda ./ext4_rootfs/rootfs1.img  -nographic -append "root=/dev/sda init=/sbin/init console=ttyS0" -netdev tap,id=tap0,script=no,downscript=no -device e1000,netdev=tap0

4.发现网络ifconfig -a只有lo本地网卡

 

二、原因

一般这样启动,qemu模拟的是e1000的网卡。而linux内核默认编译是不会将e1000网卡驱动编译到内核的。

因此你的编译内核不知道有e1000网卡的存在(识别)。

解决方式:

1)将.config中的CONFIG_E1000和CONFIG_E1000E,变更为=y (我使用的是这种方式)

2)第二种是使用insmod来安装e1000模块

 

三、启动后

dmesg:可以看到有e1000网卡加载的信息,就是对的

[    1.650875] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
[    1.946007] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 52:54:00:12:34:56
[    1.946735] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
[    1.947837] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    1.948083] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.

四、能ping通外网,但是ping域名失败

1.busybox采用静态编译,ping会有bug,所以将static 静态编译取消后,采用动态编译的方式(menuconfig)

通过ldd找到动态库 (相关信息可以参考 [linux_内核相关] 自制启动x86_64架构下的linux(qemu+grub2+busybox+vmlinuz+登录配置+网络配置))

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值