Mac Mini 6,2 上的 Ubuntu 13.04 以太网端口 Broadcom NetXtreme BCM57766 未检测到

Mac Mini 6,2 上的 Ubuntu 13.04 以太网端口 Broadcom NetXtreme BCM57766 未检测到

所述网络适配器在 13.04 中无法识别。在 12.04 和 12.10 中,我使用了来自 broadcom 下载站点的驱动程序,配置为 dkms 包,它始终处于更新状态。在 3.8.x 内核上,broadcom 提供的内核驱动程序不再编译 - 并且发行版提供的 tg3 驱动程序无法识别以太网适配器 - 即使它是较新的版本。

~$ modinfo /lib/modules/3.8.0-19 generic/kernel/drivers/net/ethernet/broadcom/tg3.ko | grep -i version
version:        3.128
srcversion:     D737202366709FE01964BF0
vermagic:       3.8.0-19-generic SMP mod_unload modversions 

这是使用 dkms 在内核 3.5.x 上工作的版本

~$ modinfo /lib/modules/3.5.0-25-generic/updates/dkms/tg3.ko | grep version
version:        3.124c
srcversion:     D01ED9A7BF2C3956E212A63
vermagic:       3.5.0-25-generic SMP mod_unload modversions 

网卡:

~$ lspci -nn | grep 0200
01:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM57766 Gigabit Ethernet PCIe [14e4:1686] (rev 01)

就像在 i7 Mac Mini 6,2 上发现的那样。

有谁知道我在哪里可以得到一个可以识别以太网设备的内核?那个芯片以某种方式得到支持...而且 - 3.8.x 内核在 HD4000 芯片上表现更好 - 这就是我使用它的原因。

注意 - 要使 WiFi 正常工作,请确保在启动时加载 b43 驱动程序 (/etc/modules)。这样至少您就有网络连接了。

答案1

好的-按照https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel>重建内核后https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel和之前的构建运行,根据之前的消息调整 tg3.c 文件,网卡现在已被检测到并且运行良好。

[ 5140.908163] tg3.c:v3.128 (December 03, 2012)
[ 5140.921437] tg3 0000:01:00.0: enabling device (0000 -> 0002)
[ 5140.944063] tg3 0000:01:00.0 eth0: Tigon3 [partno(BCM957766a) rev 57766001] (PCI Express) MAC address 10:dd:b1:99:95:2a
[ 5140.944074] tg3 0000:01:00.0 eth0: attached PHY is 57765 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[ 5140.944079] tg3 0000:01:00.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[ 5140.944084] tg3 0000:01:00.0 eth0: dma_rwctrl[00000001] dma_mask[64-bit]
[ 5140.957230] tg3 0000:01:00.0: irq 26 for MSI/MSI-X
[ 5140.957249] tg3 0000:01:00.0: irq 27 for MSI/MSI-X
[ 5140.957263] tg3 0000:01:00.0: irq 28 for MSI/MSI-X
[ 5140.957297] tg3 0000:01:00.0: irq 29 for MSI/MSI-X
[ 5140.957310] tg3 0000:01:00.0: irq 30 for MSI/MSI-X
[ 5141.230492] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 5141.230964] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 5144.225216] tg3 0000:01:00.0 eth0: Link is up at 1000 Mbps, full duplex
[ 5144.225224] tg3 0000:01:00.0 eth0: Flow control is on for TX and on for RX
[ 5144.225250] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

如果有人只需要 tg3.ko 驱动程序 - 请告诉我。我会通过邮件发送。它应该加载到正常的当前内核中:

Linux Pandora 3.8.0-19-generic #30-Ubuntu SMP Wed May 1 16:35:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

答案2

对库存 Linux 3.8 tg3 驱动程序唯一需要的改变是:

--- linux-source-3.8.0/drivers/net/ethernet/broadcom/tg3.c 2013-05-02 04:35:43.000000000 +1200
+++tg3-3.128x/src/tg3.c 2013-05-06 10:30:07.542039601 +1200
@@ -330,6 +330,9 @@
    {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,TG3PCI_DEVICE_TIGON3_5719)},
    {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,TG3PCI_DEVICE_TIGON3_5720)},
    {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,TG3PCI_DEVICE_TIGON3_57762)},
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,TG3PCI_DEVICE_TIGON3_57766)},
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,TG3PCI_DEVICE_TIGON3_57782)},
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM,TG3PCI_DEVICE_TIGON3_57786)},
    {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT,PCI_DEVICE_ID_SYSKONNECT_9DXX)},
    {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT,PCI_DEVICE_ID_SYSKONNECT_9MXX)},
    {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA,PCI_DEVICE_ID_ALTIMA_AC1000)},

已经有几年我不需要这样折腾了,所以我真的不知道如何最好地使用 dkms 来实现自动构建等等。但它对我来说是有效的(到目前为止)。

答案3

这个错误已经在内核 3.8.0-22.33 中得到修复 - mac-mini 现在可以使用来自 ubuntu 的原装内核识别该芯片,无需重新编译:

smurphy@Pandora:~$ uname -a
Linux Pandora 3.8.0-22-generic #33-Ubuntu SMP Thu May 16 15:17:14 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
smurphy@Pandora:~$ lspci | grep -iethernet
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM57766 Gigabit Ethernet PCIe (rev 01)
smurphy@Pandora:~$ 

全新安装后,请确保告诉安装程序也安装最新更新,这样可以修复此问题,就好像它从未存在过一样。显然在 3.8.0-20 中引入了回归...

答案4

这不是一个长期的解决方案,但是如果您只是想在使用 13.04 启动 CD 并使用其附带的内核时使以太网工作,我可以按如下方式使该驱动程序工作:

root@lubuntu:~# modprobe tg3
root@lubuntu:~# echo 14e4 1686 >/sys/module/tg3/drivers/pci:tg3/new_id

其中 14e4 和 1686 是十六进制供应商和设备 ID。如果您的机器与我的不同,您可以像这样找到正确的值:

lubuntu@lubuntu:~$ lspci | grep Ethernet
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM57766 Gigabit Ethernet PCIe (rev 01)
lubuntu@lubuntu:~$ lspci -ns 01:00.0
01:00.0 0200: 14e4:1686 (rev 01)

该行内容如下:

buslocation cardtype: vendorid:deviceid (rev revisionid)

vendorid 和 deviceid 是我上面使用的值。

相关内容