如何在Macbook Pro的Debian上安装Broadcom BCM4360


10

我正在尝试安装无线驱动程序,因为我的Macbook Pro没有以太网端口,然后我像本地存储库一样安装了3个debian isos,以安装几乎所有的Dependeces。

因此,我尝试安装Broadcam 4360

https://wiki.debian.org/bcm43xx

https://wiki.debian.org/wl

当我尝试安装此程序时:

http://www.broadcom.com/support/802.11/linux_sta.php

我遇到以下问题:

KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[1]: Entering directory '/usr/src/linux-headers-3.16-2-amd64'
make[1]: Entering directory `/usr/src/linux-headers-3.16-2-amd64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M]  /home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.o
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_cfg80211_get_key’:
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:1390:2: warning: passing argument 1 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [enabled by default]
  memcpy(params.key, key.data, params.key_len);
  ^
In file included from /usr/src/linux-headers-3.16-2-common/arch/x86/include/asm/string.h:4:0,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/string.h:17,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/bitmap.h:8,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/cpumask.h:11,
                 from /usr/src/linux-headers-3.16-2-common/arch/x86/include/asm/cpumask.h:4,
                 from /usr/src/linux-headers-3.16-2-common/arch/x86/include/asm/msr.h:10,
                 from /usr/src/linux-headers-3.16-2-common/arch/x86/include/asm/processor.h:20,
                 from /usr/src/linux-headers-3.16-2-common/arch/x86/include/asm/thread_info.h:23,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/thread_info.h:54,
                 from /usr/src/linux-headers-3.16-2-common/arch/x86/include/asm/preempt.h:6,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/preempt.h:18,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/spinlock.h:50,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/seqlock.h:35,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/time.h:5,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/stat.h:18,
                 from /usr/src/linux-headers-3.16-2-common/include/linux/module.h:10,
                 from /home/cristian/Downloads/broadcom/src/include/linuxver.h:40,
                 from /home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:26:
/usr/src/linux-headers-3.16-2-common/arch/x86/include/asm/string_64.h:32:14: note: expected ‘void *’ but argument is of type ‘const u8 *’
 extern void *memcpy(void *to, const void *from, size_t len);
              ^
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c: At top level:
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:1778:2: warning: initialization from incompatible pointer type [enabled by default]
  .get_station = wl_cfg80211_get_station,
  ^
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:1778:2: warning: (near initialization for ‘wl_cfg80211_ops.get_station’) [enabled by default]
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_notify_connect_status’:
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:2074:4: warning: passing argument 3 of ‘cfg80211_ibss_joined’ makes pointer from integer without a cast [enabled by default]
    cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
    ^
In file included from /home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
/usr/src/linux-headers-3.16-2-common/include/net/cfg80211.h:4002:6: note: expected ‘struct ieee80211_channel *’ but argument is of type ‘unsigned int’
 void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
      ^
/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:2074:4: error: too few arguments to function ‘cfg80211_ibss_joined’
    cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
    ^
In file included from /home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
/usr/src/linux-headers-3.16-2-common/include/net/cfg80211.h:4002:6: note: declared here
 void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
      ^
/usr/src/linux-headers-3.16-2-common/scripts/Makefile.build:262: recipe for target '/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.o' failed
make[4]: *** [/home/cristian/Downloads/broadcom/src/wl/sys/wl_cfg80211_hybrid.o] Error 1
/usr/src/linux-headers-3.16-2-common/Makefile:1350: recipe for target '_module_/home/cristian/Downloads/broadcom' failed
make[3]: *** [_module_/home/cristian/Downloads/broadcom] Error 2
Makefile:181: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.16-2-amd64'                                                                                                                                      
Makefile:140: recipe for target 'all' failed                                                                                                                                                          
make: *** [all] Error 2  

因此,如果有人使用debian在Mac上安装了Broadcom 4360的驱动程序,请告诉我如何以及其他建议给我的建议


我认为该设备使用“ wl”驱动程序ubuntuforums.org/showthread.php?t=2205494
mchid 2014年

Answers:


13

编辑

Broadcom 4360实际上配备了两种不同的芯片,即14E4:4360和14E4:43A0。Linux中第一个驱动程序没有驱动程序,而wl是第二个驱动程序的合适驱动程序。您可以通过以下命令确定拥有哪一个:

 lspci -vnn | grep -i net

相反,如果您希望在Mac OS中执行此操作,请单击Apple->关于此Mac->更多信息->系统信息,然后单击Wi-fi。你会发现一条线像

 Card Type: AirPort Extreme  (0x14E4, 0x117)

会显示Wi-fi卡的供应商(14E4)和产品(在我的情况下为117)代码。


Linux上不支持Broadcom 4360 14E4:4360。在这些问题上的权威指南是Linux Wireless该表在此表中列出了所有Broadcomm无线芯片的列表以及可用的Linux驱动程序。如您所见,BCM4360 14E4:4360下未列出驱动程序。

在同一表格下面的两行中,显示了生产4360的另一个芯片14E4:43A0由专有驱动程序wl支持。Debian Wiki中描述了安装此驱动程序的正确过程。对于Wheezy,您应该添加以下行

   deb http://http.debian.net/debian/ wheezy main contrib non-free

到文件/etc/apt/sources.list,然后运行

  apt-get update
  apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

最后,您需要删除一些预装在Debian中的冲突驱动程序:

 modprobe -r b44 b43 b43legacy ssb brcmsmac

现在您可以开始:

 modprobe wl

您还应该牢记以下几点:关于wl驱动程序,这是内容丰富的Arch Linux Wiki必须说的:

警告:尽管该驱动程序已经发展了许多年,并且现在可以正常运行,但是仅当两个开源驱动程序都不支持您的设备时,才建议使用该驱动程序。请参阅项目b43的页面以获取支持的设备列表。


这对我来说是正确的答案。对像我这样在使用apt-get进行可靠LAN连接时遇到麻烦的任何人的提示:我需要完整的可下载软件包,包括用于在我2014年末发售的13英寸macbook pro(与BCM4360上在Debian中设置wifi的依赖项) 14E4:43A0芯片),而我找不到这种封装。因此,通过编译为debian jessie手动下载的.deb文件,我制作了自己的小wifi设置脚本。如果有人愿意,这里是:dropbox.com/s/00doasn3b3zh7eh/MacbookDebianWifi.zip?dl=0提取并运行WifiSetup.sh
Mike Turley

@MikeTurley链接不再有效。我正在尝试在2014年中的Macbook Pro上安装Qubes OS,该链接听起来正是我所需要的!我已经关闭了用于debian9的sys-net虚拟机。因此,我需要复制驱动程序。
eduncan911 '18

唯一有效的方法是在2017年的Macbook Air上在kali linux单启动上安装BCM4360 ...显然,从kali官方文档中添加了非免费的deps,而不是deb deps!为您支持:)
罗伯托·曼弗雷达

4

永远不要听任何人告诉您您无法在linux中执行某些操作,这就是我不再使用Windows的原因。:P

首先,启用非免费存储库。通过将“ non-free” 添加到您的“ /etc/apt/sources.list”文件中。

然后,运行以下命令:

sudo apt-get update
sudo apt-get install broadcom-sta-*
sudo modprobe wl
echo "wl" | sudo tee -a /etc/modules

不要忘记tee命令中的-a,否则您将覆盖整个文件!

如果无法立即使用,请重新启动,应该没问题。

http://ubuntuforums.org/showthread.php?t=2205494

https://packages.debian.org/jessie/all/broadcom-sta-common/download

http://forums.linuxmint.com/viewtopic.php?f=194&t=175030


1
您部分正确,但不完全是:BROADCOM 4360带有两块芯片(我的糟糕,我没有注意到!),一块是我所说的适用于14E4:4360,另一块是wl确实是合适的驱动程序的14E4:43A0 。我只希望OP拥有后者。
MariusMatutiae 2014年

他是完全正确的。大声笑2014年答案,那是OG
本特·卡丹

最近,我拿起了一台Apple Broadcom BCM94360CD,用于双重引导linux / hackintosh。运行Zoron OS(Ubuntu变体)无需在列表中添加非免费的仓库,一切正常。
Paul J
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.