Debian – How to install Broadcom BCM4360 on debian on Macbook pro

broadcomdebianosx

I'm trying to install the wireless drivers because my macbook pro does not have a ethernet port, then I mount the 3 debian isos like local repositories to install the almost all of dependeces.

So, what I tryed to do to install the broadcam 4360

https://wiki.debian.org/bcm43xx

https://wiki.debian.org/wl

When I try to install this:

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

I get the following problems:

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  

So if someone have installed the drivers to Broadcom 4360 on mac with debian ,please tell me how, and what others suggestions recommend me

Best Answer

EDIT

Broadcom 4360 actually comes with either of two distinct chips, 14E4:4360 and 14E4:43A0. There is no driver in Linux for the first one, while wl is an appropriate driver for the second one. You can determine which one you have by means of the following command:

 lspci -vnn | grep -i net

If instead you wish to do this from within Mac OS, hit the Apple -> About this Mac -> More Info-> System Info, and then click on Wi-fi. You will find a line like

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

which displays Vendor (14E4) and Product (117, in my case) code of the Wi-fi card.


There is no support for Broadcom 4360 14E4:4360 on Linux. The definitive guide in these matters is Linux Wireless, which gives in this table the list of all Broadcomm wireless chips, and the available Linux drivers. As you can see, no driver is listed under BCM4360 14E4:4360.

Two lines below in the same table, it is shown that the other chip with which 4360 is produced, 14E4:43A0, is instead supported by the proprietary driver wl. The correct procedure to install this driver is described here, in the Debian Wiki. For Wheezy, you should add this line

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

to the file /etc/apt/sources.list, then run

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

and lastly you will need to remove some conflicting drivers which come pre-installed in Debian:

 modprobe -r b44 b43 b43legacy ssb brcmsmac

Now you are good to go:

 modprobe wl

You should also keep the following in mind: about the wl driver, this is what the ever informative Arch Linux wiki has to say:

Warning: Even though this driver has matured a lot throughout the years and works quite well now, its usage is recommended only when neither of the two open-source drivers support your device. Please refer to project b43's page for list of supported devices.

Related Question