Gentoo 启动时找不到网卡 eth0
作者:Hily 原始链接:http://hily.me/blog/2008/11/gentoo-eth0-does-not-exist/
版权声明:可以转载,转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
今天在 Parallels Workstation 上安装了个 Gentoo,使用 livecd 安装盘(install-x86-minimal-2008.0.iso)进行安装。
按照手册指示,在安装过程中 eth0 可以被正常识别,我把它设置为默认运行级别(rc-update add net.eth0 default)。安装后在系统启动到 init 3 阶段时,提示找不到网络接口 eth0:“network interface eth0 does not exist”。
可以肯定,这是网卡驱动的问题,因为在 livecd 安装过程中 eth0 是可以被正确地识别的。所以解决方法就是重新配置编译内核,把合适的网卡驱动编译进内核或编译成模块(我直接把它编译内核)。
内核中有那么多的网卡驱动,到底要用哪一个呢?
因为 livecd 引导过程中各模块的驱动是以模块方式加载的,因此只需要在 livecd 引导后使用 lsmod 命令就可以找到相关的驱动模块。
检测到的设备如下:
livecd ~ # lspci 00:02.0 VGA compatible controller: Unknown device aaaa:1121 00:03.0 Bridge: Unknown device aaaa:1112 00:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS) 00:1e.0 Host bridge: Intel Corporation 82815 815 Chipset Host Bridge and Memory Controller Hub (rev 02) 00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 08) 00:1f.1 IDE interface: Intel Corporation 82801BA IDE U100 Controller
加载的模块列表:
livecd ~ # lsmod Module Size Used by dock 18448 0 backlight 13188 0 output 11776 0 ne2k_pci 18400 0 8390 17024 1 ne2k_pci rtc 20768 0 tg3 111748 0 e1000 119616 0 jfs 169836 0 raid10 30080 0 raid456 129296 0 async_memcpy 10880 1 raid456 async_xor 12160 1 raid456 xor 21896 2 raid456,async_xor async_tx 15948 3 raid456,async_memcpy,async_xor raid1 30080 0 raid0 15872 0 dm_bbr 20128 0 dm_snapshot 24996 0 dm_mirror 29440 0 dm_mod 63428 3 dm_bbr,dm_snapshot,dm_mirror sbp2 29960 0 ohci1394 38192 0 ieee1394 92600 2 sbp2,ohci1394 sl811_hcd 19968 0 usbhid 35712 0 ohci_hcd 29700 0 uhci_hcd 30988 0 usb_storage 120608 0 ehci_hcd 39948 0 usbcore 133484 7 sl811_hcd,usbhid,ohci_hcd,uhci_hcd,usb_storage,ehci_hcd lpfc 216016 0 qla2xxx 168548 0 firmware_class 17408 1 qla2xxx megaraid_sas 35504 0 megaraid_mbox 38160 0 megaraid_mm 18464 1 megaraid_mbox megaraid 44360 0 aacraid 68996 0 sx8 25484 0 DAC960 73032 0 cciss 41220 0 cpqarray 28004 0 3w_9xxx 39300 0 3w_xxxx 32928 0 mptsas 43144 0 scsi_transport_sas 37120 1 mptsas mptfc 25988 0 scsi_transport_fc 49028 3 lpfc,qla2xxx,mptfc scsi_tgt 22344 1 scsi_transport_fc mptspi 28296 0 mptscsih 41344 3 mptsas,mptfc,mptspi mptbase 78308 4 mptsas,mptfc,mptspi,mptscsih atp870u 36352 0 dc395x 39052 0 sim710 13188 0 53c700 33444 1 sim710 qla1280 123660 0 dmx3191d 20096 0 sym53c8xx 77588 0 qlogicfas408 15104 0 aha152x 42512 0 aha1740 15872 0 advansys 85248 0 initio 24900 0 BusLogic 72948 0 arcmsr 29952 0 aic7xxx 168760 0 aic79xx 241624 0 scsi_transport_spi 30848 7 mptspi,53c700,dmx3191d,sym53c8xx,aha152x,aic7xxx,aic79xx sg 41360 0 pdc_adma 17668 0 sata_inic162x 20228 0 sata_mv 28936 0 ata_piix 26372 0 ahci 34180 0 sata_qstor 17924 0 sata_vsc 16516 0 sata_uli 15620 0 sata_sis 16772 0 sata_sx4 20484 0 sata_nv 33160 0 sata_via 19588 0 sata_svw 15748 0 sata_sil24 24068 0 sata_sil 19080 0 sata_promise 20996 0 scsi_wait_scan 9472 0 pata_sis 21892 1 sata_sis libata 152248 17 pdc_adma,sata_inic162x,sata_mv,ata_piix,ahci,sata_qstor,sata_vsc,sata_uli,sata_sis,sata_sx4,sata_nv,sata_via,sata_svw,sata_sil24,sata_sil,sata_promise,pata_sis
很明显,ne2k_pci 就是我需要的。
重新配置内核,勾选以下选项:
Device Drivers ---> [*] Network device support ---> [*] Ethernet (10 or 100Mbit) ---> <*> PCI NE2000 and clones support (see help)
再重新编译安装内核,问题解决。
-- EOF --


QQ 123769752 说道:
2008年11月28日 08:20
我也中招了,你也重新编译内核,我不行的嘛,没有网络,下载不到重新编译内核的东东呀。你可以告诉我。没有网络,你如何办到,编译内核的吗?
hilyjiang 说道:
2008年11月28日 10:58
编译内核需要先下载内核源代码,没有网络的话没法运行 emerge gentoo-sources 哦。
Gentoo 的对内核打过补丁,所以直接下载源代码编译的话可能会有问题。
这个年代,还是上上网吧。