gpt4 book ai didi

QEMU 上的 Linux Vanilla 内核和与 eth0 的网络

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:32 25 4
gpt4 key购买 nike

我已经下载并编译了 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 的 vanilla 内核上使用网络。

'ifup eth0' 告诉我

/ # ifup eth0
ip: SIOCGIFFLAGS: No such device

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

最佳答案

很可能没有加载驱动程序(在您的示例中应该是 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 手动加载它。如果加载,则必须有一个名为“驱动程序”的符号链接(symbolic link)。如果不是,“dmesg”应该会告诉您为什么不这样做的原因。

关于QEMU 上的 Linux Vanilla 内核和与 eth0 的网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24444903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com