1

我已经下载并编译了 vanilla linux 内核(3.7.1),我将busybox 用于ramdisk,然后使用QEMU 启动它。这是我的 QEMU 命令行

qemu-system-i386 -kernel bzImage -initrd ramdisk.img -append "root=/dev/ram rw console=ttyS0 rdinit=/bin/ash" -nographic -net nic -net user

一切顺利。但是,我不能在带有busybox的香草内核上使用网络。

'ifup eth0' 告诉我

/ # ifup eth0
ip: SIOCGIFFLAGS: No such device

我用谷歌搜索了互联网,但无法获得任何线索......一些建议会很好提前谢谢你。

4

1 回答 1

1

很可能没有加载驱动程序(在您的示例中应该是 e1000)或设备有另一个名称。

在 /sys/class/net/ 中,您应该找到所有可用网络设备的列表。如果没有(除了 lo),则不加载驱动程序。

在 qemu 监视器中键入“info pci”,它将显示您的以太网卡的 PCI 地址。它应该如下所示:

...
Bus  0, device   3, function 0:
  Ethernet controller: PCI device 8086:100e
...

此设备对应于 /sys/devices/pci0000:00/0000:00:03.0/。文件“vendor”和“device”必须包含“0x8086”和“0x100e”,它们是上面的PCI-id,内核通过它来确定要加载的驱动程序。

尝试使用“modprobe e1000”或 insmod 手动加载它。如果加载,则必须有一个名为“驱动程序”的符号链接。如果不是“dmesg”应该给你为什么不这样做的原因。

于 2016-03-18T08:44:27.533 回答