Macbook proのdebianにBroadcom BCM4360をインストールする方法


10

私のmacbook proにはイーサネットポートがないため、ワイヤレスドライバーをインストールしようとしています。ローカルリポジトリのように3つのdebian isosをマウントして、ほとんどすべての依存関係をインストールします。

それで、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

回答:


13

編集

Broadcom 4360には、実際には14E4:4360と14E4:43A0の2つの異なるチップが搭載されています。Linuxには最初のドライバー用のドライバーはありませんが、wlは2番目のドライバーには適切なドライバーです。次のコマンドを使用して、どちらを持っているかを判別できます。

 lspci -vnn | grep -i net

代わりにMac OS内からこれを実行する場合は、アップル->この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の下にはドライバーがリストされていません。

同じ表の下の2行は、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が言わなければならないことです。

警告:このドライバは長年にわたって非常に成熟し、現在は非常にうまく機能していますが、2つのオープンソースドライバのどちらもデバイスをサポートしていない場合にのみ使用することをお勧めします。サポートされているデバイスのリストについては、プロジェクトb43のページを参照してください。


これは私にとって正しい答えでした。私のように、apt-getを使用するための信頼性の高いLAN接続に問題があった人への注意:2014年後半のMacbook Pro 13インチ(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をインストールしようとしていますが、そのリンクは私が必要としているもののように聞こえます!私はすでにsys-net VMをdebian9に切り替えました。だから私が必要なのは、ドライバーをコピーすることだけです。
eduncan911 2018年

2017 Macbook Airのkali linuxシングルブートにBCM4360をインストールするための唯一の方法は機能しました...明らかに、deb depではなく、kali公式ドキュメントからnon-free depsを追加します!!! あなたのための賛成投票:)
Roberto Manfreda

4

Linuxで何かを行うことができないと言われる人の言うことを聞いてはいけません。それが、私がもはやWindowsを使用しない理由です。:P

まず、nonfreeリポジトリを有効にします。「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を忘れないでください。-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には2つのチップ(私の悪い、気づかなかった!)、1つは14E4:4360で、私が言ったことに当てはまり、14E4:43A0はwlが実際に適切なドライバーです。私は彼が後者を持っていることを望みます。
MariusMatutiae 2014

彼は完全に正しかった。笑2014答え、それはOGです
ベントカルダン

最近、私はlinux / hackintoshのデュアルブート用にApple Broadcom BCM94360CDを手に入れました。Zoron OS(Ubuntuバリアント)を実行しても、リストにnon-freeリポジトリを追加する必要はありませんでした。すべてがうまくいきました。
Paul J
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.