免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3155 | 回复: 4
打印 上一主题 下一主题

[FreeBSD] 让FreeBSD6支持Nvidia nForce4 410主板 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-26 22:47 |只看该作者 |倒序浏览
首先在这里说明,我在标题上说的“支持Nvidia nForce4 410主板”是指支持该主板上板载的网卡和声卡。

感谢iamqk在 http://bbs.chinaunix.net/viewthread.php?tid=718480 中给我的提示。

下边是我已经编译好的核心下dmesg的结果:

  1. Copyright (c) 1992-2006 The FreeBSD Project.
  2. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
  3.         The Regents of the University of California. All rights reserved.
  4. FreeBSD 6.1-PRERELEASE #0: Mon Mar 27 05:52:54 CST 2006
  5.     root@:/usr/obj/usr/src/sys/FEELING
  6. ACPI APIC Table: <Nvidia AWRDACPI>
  7. Timecounter "i8254" frequency 1193182 Hz quality 0
  8. CPU: AMD Sempron(tm) Processor 2500+ (1400.01-MHz K8-class CPU)
  9.   Origin = "AuthenticAMD"  Id = 0x20fc2  Stepping = 2
  10.   Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  11.   Features2=0x1<SSE3>
  12.   AMD Features=0xe2500800<SYSCALL,NX,MMX+,<b25>,LM,3DNow+,3DNow>
  13. real memory  = 1005518848 (958 MB)
  14. avail memory = 962912256 (918 MB)
  15. ioapic0 <Version 1.1> irqs 0-23 on motherboard
  16. acpi0: <Nvidia AWRDACPI> on motherboard
  17. acpi_bus_number: can't get _ADR
  18. acpi_bus_number: can't get _ADR
  19. acpi0: Power Button (fixed)
  20. acpi_bus_number: can't get _ADR
  21. acpi_bus_number: can't get _ADR
  22. acpi_bus_number: can't get _ADR
  23. acpi_bus_number: can't get _ADR
  24. acpi0: reservation of 1bf00000, 100000 (3) failed
  25. acpi0: reservation of 2bf00000, 100000 (3) failed
  26. acpi0: reservation of 3bf00000, 100000 (3) failed
  27. Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
  28. acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
  29. cpu0: <ACPI CPU> on acpi0
  30. acpi_throttle0: <ACPI CPU Throttling> on cpu0
  31. acpi_button0: <Power Button> on acpi0
  32. acpi_button1: <Sleep Button> on acpi0
  33. pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
  34. pci0: <ACPI PCI bus> on pcib0
  35. pci0: <memory, RAM> at device 0.0 (no driver attached)
  36. pci0: <memory, RAM> at device 0.1 (no driver attached)
  37. pci0: <memory, RAM> at device 0.2 (no driver attached)
  38. pci0: <memory, RAM> at device 0.3 (no driver attached)
  39. pci0: <memory, RAM> at device 0.4 (no driver attached)
  40. pci0: <memory, RAM> at device 0.5 (no driver attached)
  41. pci0: <memory, RAM> at device 0.6 (no driver attached)
  42. pci0: <memory, RAM> at device 0.7 (no driver attached)
  43. pcib1: <ACPI PCI-PCI bridge> at device 2.0 on pci0
  44. pci1: <ACPI PCI bus> on pcib1
  45. pcib2: <ACPI PCI-PCI bridge> at device 3.0 on pci0
  46. pci2: <ACPI PCI bus> on pcib2
  47. pcib3: <ACPI PCI-PCI bridge> at device 4.0 on pci0
  48. pci3: <ACPI PCI bus> on pcib3
  49. pci0: <display, VGA> at device 5.0 (no driver attached)
  50. pci0: <memory, RAM> at device 9.0 (no driver attached)
  51. isab0: <PCI-ISA bridge> at device 10.0 on pci0
  52. isa0: <ISA bus> on isab0
  53. pci0: <serial bus, SMBus> at device 10.1 (no driver attached)
  54. pci0: <memory, RAM> at device 10.2 (no driver attached)
  55. ohci0: <OHCI (generic) USB controller> mem 0xfe02f000-0xfe02ffff irq 21 at device 11.0 on pci0
  56. ohci0: [GIANT-LOCKED]
  57. usb0: OHCI version 1.0, legacy support
  58. usb0: SMM does not respond, resetting
  59. usb0: <OHCI (generic) USB controller> on ohci0
  60. usb0: USB revision 1.0
  61. uhub0: nVidia OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
  62. uhub0: 8 ports with 8 removable, self powered
  63. ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfe02e000-0xfe02e0ff irq 22 at device 11.1 on pci0
  64. ehci0: [GIANT-LOCKED]
  65. usb1: waiting for BIOS to give up control
  66. usb1: timed out waiting for BIOS
  67. usb1: EHCI version 1.0
  68. usb1: companion controller, 8 ports each: usb0
  69. usb1: <EHCI (generic) USB 2.0 controller> on ehci0
  70. usb1: USB revision 2.0
  71. uhub1: nVidia EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
  72. uhub1: 8 ports with 8 removable, self powered
  73. atapci0: <nVidia nForce MCP51 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf400-0xf40f at device 13.0 on pci0
  74. ata0: <ATA channel 0> on atapci0
  75. ata1: <ATA channel 1> on atapci0
  76. atapci1: <nVidia nForce MCP51 SATA300 controller> port 0x9f0-0x9f7,0xbf0-0xbf3,0x970-0x977,0xb70-0xb73,0xe000-0xe00f mem 0xfe02d000-0xfe02dfff irq 23 at device 14.0 on pci0
  77. ata2: <ATA channel 0> on atapci1
  78. ata3: <ATA channel 1> on atapci1
  79. pcib4: <ACPI PCI-PCI bridge> at device 16.0 on pci0
  80. pci4: <ACPI PCI bus> on pcib4
  81. rl0: <RealTek 8139 10/100BaseTX> port 0xcc00-0xccff mem 0xfdbff000-0xfdbff0ff irq 18 at device 6.0 on pci4
  82. miibus0: <MII bus> on rl0
  83. rlphy0: <RealTek internal media interface> on miibus0
  84. rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
  85. rl0: Ethernet address: 00:e0:4c:f6:e5:c1
  86. pcm0: <nVidia nForce4 410> port 0xdc00-0xdcff,0xd800-0xd8ff mem 0xfe02c000-0xfe02cfff irq 20 at device 16.2 on pci0
  87. pcm0: <Avance Logic ALC655 AC97 Codec>
  88. nve0: <NVIDIA nForce MCP12 Networking Adapter> port 0xd400-0xd407 mem 0xfe02b000-0xfe02bfff irq 21 at device 20.0 on pci0
  89. nve0: Ethernet address 00:e0:4c:e4:30:fa
  90. miibus1: <MII bus> on nve0
  91. rlphy1: <RTL8201L 10/100 media interface> on miibus1
  92. rlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
  93. nve0: Ethernet address: 00:e0:4c:e4:30:fa
  94. acpi_tz0: <Thermal Zone> on acpi0
  95. atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
  96. atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
  97. atkbd0: [GIANT-LOCKED]
  98. psm0: <PS/2 Mouse> irq 12 on atkbdc0
  99. psm0: [GIANT-LOCKED]
  100. psm0: model IntelliMouse, device ID 3
  101. sc0: <System console> at flags 0x100 on isa0
  102. sc0: VGA <16 virtual consoles, flags=0x300>
  103. vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
  104. Timecounter "TSC" frequency 1400011646 Hz quality 800
  105. Timecounters tick every 1.000 msec
  106. ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding disabled, default to accept, logging limited to 100 packets/entry by default
  107. ad0: 78533MB <IC35L080AVVA07 0 VA4OA52A> at ata0-master UDMA100
  108. ad4: 76319MB <Seagate ST380817AS 3.42> at ata2-master SATA150
  109. Trying to mount root from ufs:/dev/ad0s1a
  110. rl0: link state changed to UP
复制代码

里面我的声卡部分:
pcm0: <nVidia nForce4 410> port 0xdc00-0xdcff,0xd800-0xd8ff mem 0xfe02c000-0xfe02cfff irq 20 at device 16.2 on pci0
pcm0: <Avance Logic ALC655 AC97 Codec>

我的Nvidia板载网卡部分:
nve0: <NVIDIA nForce MCP12 Networking Adapter> port 0xd400-0xd407 mem 0xfe02b000-0xfe02bfff irq 21 at device 20.0 on pci0
nve0: Ethernet address 00:e0:4c:e4:30:fa
miibus1: <MII bus> on nve0
rlphy1: <RTL8201L 10/100 media interface> on miibus1
rlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
nve0: Ethernet address: 00:e0:4c:e4:30:fa



然后来看看我的修改方法:
1. 先查看PCI信息: pciconf -lv,获得以下两条重要内容:

pcm0@pci0:16:2: class=0x040100 card=0x82131565 chip=0x026b10de rev=0xa2 hdr=0x00    vendor   = 'NVIDIA Corporation'
    class    = multimedia
    subclass = audio



nve0@pci0:20:0: class=0x068000 card=0x25011565 chip=0x026910de rev=0xa1 hdr=0x00    vendor   = 'NVIDIA Corporation'
    class    = bridge

从freebsd的hareware文档上看,Nvidia nForce 4集成声卡在 snd_ich 中,因此我首先去 /usr/src/sys/dev/sound/pci/ich.h 去看看,发现其中并没有和pciconf输出相关的内容。然后我又打开了 /usr/src/sys/dev/sound/pci/ich.c,呵呵,原来都藏在这里阿:

#define NVIDIA_NFORCE   0x01b1
#define NVIDIA_NFORCE2  0x006a
#define NVIDIA_NFORCE2_400      0x008a
#define NVIDIA_NFORCE3  0x00da
#define NVIDIA_NFORCE3_250      0x00ea
#define NVIDIA_NFORCE4  0x0059
#define AMD_768         0x7445
#define AMD_8111        0x746d

因此我将上述内容改为了

#define NVIDIA_NFORCE   0x01b1
#define NVIDIA_NFORCE2  0x006a
#define NVIDIA_NFORCE2_400      0x008a
#define NVIDIA_NFORCE3  0x00da
#define NVIDIA_NFORCE3_250      0x00ea
#define NVIDIA_NFORCE4  0x0059

#define NVIDIA_NFORCE4_410      0x026b
#define AMD_768         0x7445
#define AMD_8111        0x746d


接着理所当然地修改随后的

        { NVIDIA_VENDORID,      NVIDIA_NFORCE,  0,
                "nVidia nForce" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE2, 0,
                "nVidia nForce2" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE2_400,     0,
                "nVidia nForce2 400" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE3, 0,
                "nVidia nForce3" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE3_250,     0,
                "nVidia nForce3 250" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE4, 0,
                "nVidia nForce4" },
        { AMD_VENDORID,         AMD_768,        0,
                "AMD-768" },
        { AMD_VENDORID,         AMD_8111,       0,
                "AMD-8111" }



        { NVIDIA_VENDORID,      NVIDIA_NFORCE,  0,
                "nVidia nForce" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE2, 0,
                "nVidia nForce2" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE2_400,     0,
                "nVidia nForce2 400" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE3, 0,
                "nVidia nForce3" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE3_250,     0,
                "nVidia nForce3 250" },
        { NVIDIA_VENDORID,      NVIDIA_NFORCE4, 0,
                "nVidia nForce4" },
        
{ NVIDIA_VENDORID,      NVIDIA_NFORCE4_410, 0,
                "nVidia nForce4 410" },

        { AMD_VENDORID,         AMD_768,        0,
                "AMD-768" },
        { AMD_VENDORID,         AMD_8111,       0,
                "AMD-8111" }


这样就加入了 nForce4 410板载ALC655 AC97的识别。
Nvidia板载网卡需要修改两个文件,在该文(http://www.freebsdchina.org/forum/viewtopic.php?p=156165#156165) 中已经详细描述,我在这里就不再重复了。

接着修改kernel配置文件,加入以下行:

  1. device sound
  2. device snd_ich
  3. device miibus
  4. device nve
复制代码

最后 cd /usr/src; make buildkernel && make installkernel 后重启就能够正常使用板载声卡和网卡了。

测试声卡工作的方法:
1. dmesg 查看是否有声卡信息
2. cat /dev/sndstat
3. cat 随便什么文件 > /dev/dsp  如果出现杂音则声卡已经正常工作

论坛徽章:
0
2 [报告]
发表于 2006-03-27 00:07 |只看该作者

re

顶,支持深入解决问题!受用!

论坛徽章:
0
3 [报告]
发表于 2006-03-27 09:35 |只看该作者
这是好贴!

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
4 [报告]
发表于 2006-03-27 10:30 |只看该作者
不错不错

论坛徽章:
0
5 [报告]
发表于 2006-03-27 20:05 |只看该作者
不错,狂顶!最近打算配机器,正由于是否考虑NF芯片组呢,这下有个买的理由了,哈哈!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP