2014-06-27 50 views
1

我已經下載並編譯了vanilla linux內核(3.7.1) 我使用busybox for ramdisk,然後使用QEMU啓動它。 這是我的QEMU命令行QEMU和eth0上的Linux vanilla kernel

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 

我用Google搜索互聯網,但可以」得到任何線索...... 一些建議,將是不錯 預先感謝您。

回答

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手動加載它。如果加載,則必須有一個名爲「driver」的符號鏈接。如果不是「dmesg」應該給你的理由不是。