LinuxSir.cn,穿越时空的Linuxsir!

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

2.6.32 和sky2网卡驱动,有相同硬件的进来看看

[复制链接]
发表于 2009-12-20 11:08:27 | 显示全部楼层 |阅读模式
我用的是zen-sources ,网卡驱动用的是sky2 ,2.6.30好好的,到2.6.32老师出问题,(/etc/init.d/net.eth0)有时可以正常驱动,有时找不到网卡,有时内核直接挂掉!
为什么我遇到这种奇怪的问题?有类似的情况没?
  1. longer.z@Gentoo ~ $ sudo lspci
  2. 00:00.0 Host bridge: Intel Corporation 82915G/P/GV/GL/PL/910GL Memory Controller Hub (rev 04)
  3. 00:01.0 PCI bridge: Intel Corporation 82915G/P/GV/GL/PL/910GL PCI Express Root Port (rev 04)
  4. 00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
  5. 00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
  6. 00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 03)
  7. 00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
  8. 00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
  9. 00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
  10. 00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
  11. 00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
  12. 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d3)
  13. 00:1f.0 ISA bridge: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (rev 03)
  14. 00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
  15. 00:1f.2 SATA controller: Intel Corporation 82801FR/FRW (ICH6R/ICH6RW) SATA Controller (rev 03)
  16. 00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
  17. 01:09.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01)
  18. [color=red]02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 15)[/color]
  19. 04:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)
复制代码
found in Linux Kernels: from 2.6.16 release still available on 2.6.32 release
这又算什么:http://cateee.net/lkddb/web-lkddb/SKY2.html
发表于 2009-12-20 11:19:09 | 显示全部楼层
可以比较一下新旧两个版本的/proc/interrupts,是否中断分配共享方面有问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-20 11:34:49 | 显示全部楼层
Post by lifc;2057381
可以比较一下新旧两个版本的/proc/interrupts,是否中断分配共享方面有问题。

我先贴一下2.6.30的(看能不能启动2.6.32),帮我解读一下:
  1. longer.z@Gentoo ~ $ cat /proc/interrupts
  2.            CPU0       CPU1      
  3.   0:        139        0   IO-APIC-edge      timer
  4.   1:          2          0   IO-APIC-edge      i8042
  5.   3:          2          0   IO-APIC-edge   
  6.   4:          2          0   IO-APIC-edge   
  7.   8:         45         0   IO-APIC-edge      rtc0
  8.   9:          0          0   IO-APIC-fasteoi   acpi
  9. 12:          3          0   IO-APIC-edge      i8042
  10. 14:          0          0   IO-APIC-edge      ata_piix
  11. 15:          0          0   IO-APIC-edge      ata_piix
  12. 16:     127572          0   IO-APIC-fasteoi   uhci_hcd:usb5, HDA Intel, nvidia
  13. 17:     109643          0   IO-APIC-fasteoi   saa7130[0]
  14. 18:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
  15. 19:      84611          0   IO-APIC-fasteoi   ahci, uhci_hcd:usb3
  16. 23:          2          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
  17. 27:      32000          0   PCI-MSI-edge      eth0
  18. NMI:          0          0   Non-maskable interrupts
  19. LOC:    2459380    2464450   Local timer interrupts
  20. SPU:          0          0   Spurious interrupts
  21. RES:      12796      24310   Rescheduling interrupts
  22. CAL:       2411       1641   Function call interrupts
  23. TLB:        538        455   TLB shootdowns
  24. TRM:          0          0   Thermal event interrupts
  25. ERR:          0
  26. MIS:          0
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-20 11:39:47 | 显示全部楼层
2.6.32现在启动正常:
  1. longer.z@Gentoo ~ $ cat /proc/interrupts
  2.            CPU0       CPU1      
  3.   0:        132          0   IO-APIC-edge      timer
  4.   1:          2          0   IO-APIC-edge      i8042
  5.   3:          2          0   IO-APIC-edge   
  6.   4:          2          0   IO-APIC-edge   
  7.   8:         30          0   IO-APIC-edge      rtc0
  8.   9:          0          0   IO-APIC-fasteoi   acpi
  9. 12:          3          0   IO-APIC-edge      i8042
  10. 14:          0          0   IO-APIC-edge      ata_piix
  11. 15:          0          0   IO-APIC-edge      ata_piix
  12. 16:         88          0   IO-APIC-fasteoi   uhci_hcd:usb5, nvidia
  13. 17:       5119          0   IO-APIC-fasteoi   sky2@pci:0000:02:00.0, saa7130[0]
  14. 18:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
  15. 19:       8318          0   IO-APIC-fasteoi   ahci, uhci_hcd:usb3
  16. 23:          2          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
  17. NMI:          0          0   Non-maskable interrupts
  18. LOC:     111766     111793   Local timer interrupts
  19. SPU:          0          0   Spurious interrupts
  20. PMI:          0          0   Performance monitoring interrupts
  21. PND:          0          0   Performance pending work
  22. RES:       1251       1864   Rescheduling interrupts
  23. CAL:        349         28   Function call interrupts
  24. TLB:         30         17   TLB shootdowns
  25. TRM:          0          0   Thermal event interrupts
  26. THR:          0          0   Threshold APIC interrupts
  27. MCE:          0          0   Machine check exceptions
  28. MCP:          1          1   Machine check polls
  29. ERR:          0
  30. MIS:          0
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-20 11:41:01 | 显示全部楼层
我想起来了,之前因为硬件监控(w83627ehf ,lm_sensors-3.1.1)和电视卡(?)有冲突,在内核启动项加了“acpi_enforce_resources=lax”参数。现在去掉“acpi_enforce_resources=lax”还是不行。
----------------------------------------------------------------
saa7134 ,sky2有冲突!?那要怎样手动指定中断号?
回复 支持 反对

使用道具 举报

发表于 2009-12-20 12:07:17 | 显示全部楼层
pci总线下面share一个irq并不一定就意味着有冲突,但采集卡和网卡的驱动都要正确处理shared irq才行(效率受影响,因为每次要poll两个设备)。你旧内核网卡用msi中断,编译新内核时是否去掉了这个选项?msi是pci总线不通过irq a b c d四个pin来上送中断的一个新规范(其实n久了),可以避免irq线不够用带来的共享问题,如果设备支持最好打开它。
回复 支持 反对

使用道具 举报

发表于 2009-12-20 12:12:39 | 显示全部楼层
Post by LongerZ;2057386
我想起来了,之前因为硬件监控(w83627ehf ,lm_sensors-3.1.1)和电视卡(?)有冲突,在内核启动项加了“acpi_enforce_resources=lax”参数。现在去掉“acpi_enforce_resources=lax”还是不行。
----------------------------------------------------------------
saa7134 ,sky2有冲突!?那要怎样手动指定中断号?

尽量让系统自己分配资源吧,现代(特别是多核、多U)系统非常依赖acpi的irq路由和apic控制器,有冲突最好能找到原因,最好不去enforce什么。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-20 12:15:49 | 显示全部楼层
谢谢。
我想你说的是这里,但是我都打开了。


我再顺着你说的思路看看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2009-12-20 12:23:42 | 显示全部楼层
我也常遇到内核升级后某个pci-e设备工作不正常,等下个版本出来自己就又解决了(中间跳过一两个版本),这时候往往使劲查也追不出结果:)
其实linux内核就是这样,功能修改比较随意,测试发布流程不那么严谨,到手的新内核即便是stable版也相当与beta版而已(搞不好是alpha),因为开发人员确实没有那么多资源做全面测试。
可以直接用2.0.30的/proc/config.gz重新编译2.0.32,如果再有问题就可能是内核acpi irq route table相关部分有了变动,如果自己对这部分不熟悉只好去发个bug report等升级了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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