LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 860|回复: 10

没有网络interface。

[复制链接]
发表于 2010-7-8 19:38:37 | 显示全部楼层 |阅读模式
一个全新的机器,把装有旧gentoo的硬盘直接拿过来启动,重新编译了内核。
确定了网卡驱动,是r8169,编译进了内核。
但是进入系统后,没有网络。
ifconfig,发现只要lo的interface,没有eth0之类的。
这个问题应该是怎么造成的?
跟udev有关吗?怎么让udev适应我的新机器呢?
 楼主| 发表于 2010-7-8 20:59:45 | 显示全部楼层
嗯,发现没有了/etc/init.d/netif.eth0文件(funtoo系统)。
而启动/etc/init.d/netif.tmpl,没有效果。
这个文件怎么会无故消失呢?
回复 支持 反对

使用道具 举报

发表于 2010-7-8 21:22:42 | 显示全部楼层
你用
  1. sudo /sbin/ifconfig -a
复制代码

试试,没有up的interface好象不带参数是看不见的。
你也可以用
  1. sudo /usr/sbin/lspci -vv
复制代码

看看你的网卡的驱动是否已经正确。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-8 21:34:35 | 显示全部楼层
ifconfig -a的结果:
lo        Link encapocal Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1232 (1.2 KiB)  TX bytes:1232 (1.2 KiB)


lspci -vv中,有关网卡的结果:
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
        Subsystem: Giga-byte Technology GA-EP45-DS5 Motherboard
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <ERR- INTx-
        Interrupt: pin A routed to IRQ 18
        Region 0: I/O ports at de00 [size=256]
        Region 2: Memory at fdcff000 (64-bit, prefetchable) [size=4K]
        Region 4: Memory at fdcf8000 (64-bit, prefetchable) [size=16K]
        [virtual] Expansion ROM at fdc00000 [disabled] [size=128K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [70] Express (v2) Endpoint, MSI 01
                DevCap:        MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl:        Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta:        CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap:        Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <64us
                        ClockPM+ Surprise- LLActRep- BwNot-
                LnkCtl:        ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta:        Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -6dB
        Capabilities: [ac] MSI-X: Enable- Count=4 Masked-
                Vector table: BAR=4 offset=00000000
                PBA: BAR=4 offset=00000800
        Capabilities: [cc] Vital Product Data
                Unknown small resource type 00, will not decode more.
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:        DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:        DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt:        DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:        RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:        RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap:        First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [140 v1] Virtual Channel
                Caps:        LPEVC=0 RefClk=100ns PATEntryBits=1
                Arb:        Fixed- WRR32- WRR64- WRR128-
                Ctrl:        ArbSelect=Fixed
                Status:        InProgress-
                VC0:        Caps:        PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:        Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:        Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                        Status:        NegoPending- InProgress-
        Capabilities: [160 v1] Device Serial Number 03-00-00-00-68-4c-e0-00

应该是已经工作了,我曾经把所有的网卡驱动编成模块,最后系统还是选择了这个r8169。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-9 09:13:03 | 显示全部楼层
早上用u盘里的gentoo启动,网络正常。
比较了一下u盘gentoo跟硬盘gentoo里lspci -vv中ethernet段的不同:
u盘的gentoo在interrupt那一行之上多了一句:
Latency: 0, Cache Line Size: 64 bytes

MaxPayload 128 bytes, MaxReadReq 512 bytes 变成了:
MaxPayload 128 bytes, MaxReadReq 4096 bytes

Capabilities: [100 v1] Advanced Error Reporting 变成了:
Capabilities: [100] Advanced Error Reporting

Capabilities: [140 v1] Virtual Channel 变成了:
Capabilities: [140] Virtual Channel <?>

在最后的这几句,在u盘的gentoo里没有了:
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-

最后一句:
Capabilities: [160 v1] Device Serial Number 03-00-00-00-68-4c-e0-00 变成了:
Capabilities: [160] Device Serial Number 03-00-00-00-68-4c-e0-00

有高手帮忙诊断一下吗?
(会不会就是udev的问题?我昨天把/et/udev/rules.d/下面的规则都删了,还是不行,而且那几个规则文件再也不自动生成了。把/etc/conf.d/udev.conf里的persistent net的值改成"no"也不行。)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-9 09:15:36 | 显示全部楼层
对了,还有第三行:
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-变成了:
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-

有一个减号变成了加号。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-9 22:23:07 | 显示全部楼层
快疯了.
找了另一块硬盘重装系统(funtoo),安装了dhcpcd,退出livecd后进入刚装好的硬盘系统,发现还是没有eth0,dhcpcd无法获取ip地址。
一定是跟funtoo有什么关系,但是所有关于funtoo的network的文章,好像都过时了,提到什么/etc/init.d/net.lo 或者什么/usr/share/doc/openrc之类的东西,反正都没有。
有funtoo用户帮下手吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-10 13:45:00 | 显示全部楼层
好了,问题终于解决了,解决得让我非常无语。
升级内核到2.6.34就好了,配置文件都不用动。
为什么,在我换了这么一块主板时,我正在用的内核版本偏偏、恰恰不兼容?为什么偏偏是网卡驱动?以至于,想做什么都得在不同的系统间拿u盘切来切去?
这个问题耗费了我差不多15个小时的时间,几近崩溃了。最后偏偏是这么一个我想不到的低级bug。
回复 支持 反对

使用道具 举报

发表于 2010-7-10 13:50:37 | 显示全部楼层
funtoo修改了networking,具体看贴
http://www.funtoo.org/en/funtoo/core/networking/
假如是拷贝安装注意修改/etc/udev/rules.d/70-persistent-net.rules
清空重启

注:这里存在的问题是旧设备被定义为eth0,换新设备后udev因eth0占用,将网络设备命名为eth1
而kernel将网络设备识别为eth0 导致网络设备无统一对照。

开机后
ifconfig -a
应该看到eth0 设备
否则为内核编译问题
回复 支持 反对

使用道具 举报

发表于 2010-7-12 11:20:16 | 显示全部楼层
Post by kwindva;2102431
好了,问题终于解决了,解决得让我非常无语。
升级内核到2.6.34就好了,配置文件都不用动。
为什么,在我换了这么一块主板时,我正在用的内核版本偏偏、恰恰不兼容?为什么偏偏是网卡驱动?以至于,想做什么都得在不同的系统间拿u盘切来切去?
这个问题耗费了我差不多15个小时的时间,几近崩溃了。最后偏偏是这么一个我想不到的低级bug。


不是不兼容,是你做类似的事情太少,没经验。

同样的硬盘,换机器之后,网卡 eth0 变 eth1 ,甚至 eth2 是非常常见的事情。

如果你经常带着移动硬盘到处到不同的机器上启动 linux 应该早就知道这个问题的存在。

而事实上,作为我个人来说,我认为“这不是一个bug,这是一个feature”。因为为不同的 eth 号配置不同的网络参数会更方便。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表