[qemu] 桥接模式,ifconfig -a只有lo本地网卡
一、现象1.按照网上的教程,编译linux内核,编译qemu,编译busybox2.主机建立桥接br0,对应的两个port,tap0和eth03.qemu启动,使用tap0进行桥接网络配置,一般启动方式:qemu-system-x86_64 -m 1024M --kernel linux-4.4.216/arch/x86/boot/bzImage -hda ./ext4_root...
·
一、现象
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条内容
所有评论(0)