チチブデンキに Dynabook SS RX2 の部品を購入しにいこうかといろいろと調べていたら,RX2 に Broadcom BCM943228HMB を載せることができるとの記事が.
これによって RX2 が 802.11n 対応と Bluetooth 対応になるみたい.ということで部品代を調べると 2000円ちょっとだったので購入して載せ変えてみました.
元々のカードから入れ替えて,アンテナ先をつなぎ変えるだけなので作業自体は簡単.
OS での対応は下記のような感じでした.
Windows7 64bit は Windows 用ドライバをインストールすれば使えるようになりました.ただし,TOSHIBA PC Health Monitor がインストールされていると,CPU 負荷が 100% に張付いてしまいました.ハードウエアのチェックを行おうとしてるけど,対応ハードがない状態になるからかな?TOSHIBA PC Health Monitor をアンインストールすると CPU 負荷は収まりましたが,ハードウエア状態をみることができなくなってしまいます.使ったドライバは Wireless LAN_Broadcom_5.100.196.18_W7x64W7x86_A.zip と Bluetooth_Broadcom_6.5.1.2602_W7x64W7x86_A.zip です.bt mouse も OK でした.
Debian GNU/Linux 64bit は apt-get install broadcom-sta-common broadcom-sta-source した後,/usr/share/doc/broadcom-sta-source/README.Debian に記載されている通り
# module-assistant prepare broadcom-sta
# module-assistant auto-install broadcom-sta
で使えるようになりました.bt は動作未チェックです.
Plamo Linux 32bit は broadcom のホームページから hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz をダウンロード.そのままでは make に失敗するので,いろんなところに転がっている下記のパッチを当てます.
diff -Nrc broadcom-sta.orig/src/wl/sys/wl_cfg80211_hybrid.c broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.c
*** broadcom-sta.orig/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 19:41:38.000000000 +0900
--- broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.c 2015-05-17 12:55:21.813976786 +0900
***************
*** 2071,2077 ****
--- 2071,2096 ----
wl_get_assoc_ies(wl);
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
wl_update_bss_info(wl);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+ {
+ struct wl_bss_info *bi;
+ u16 bss_info_channel;
+ struct ieee80211_channel *channel;
+ u32 freq;
+
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
+
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
+
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
+ }
+ #else
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
+ #endif
set_bit(WL_STATUS_CONNECTED, &wl->status);
wl->profile->active = true;
}
diff -Nrc broadcom-sta.orig/src/wl/sys/wl_linux.c broadcom-sta/src/wl/sys/wl_linux.c
*** broadcom-sta.orig/src/wl/sys/wl_linux.c 2014-06-26 19:41:38.000000000 +0900
--- broadcom-sta/src/wl/sys/wl_linux.c 2015-05-17 12:53:31.137909703 +0900
***************
*** 1307,1313 ****
--- 1307,1317 ----
dev->priv = priv_link;
#else
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
+ #else
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN, ether_setup);
+ #endif
if (!dev) {
WL_ERROR*1;
そのあと make & make install.
余分なモジュールを読み込んでしまうので下記を設定して再起動.
# echo "blacklist ssb" >> /etc/modprobe.d/balacklist.conf# echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist brcmsmac" >> /etc/modprobe.d/blacklist.conf
ネットワークは eth1 で認識するようになり,通信できることは確認しました.こちらも bt は未チェック.
Plamo は気が向いたらパッケージングしようかなとは思っています.
*1:"wl%d: %s: alloc_netdev failed\n",
(wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__