適当にEasy

10年振りにSE仕事に復帰したのでいろいろ覚え書き

古いMacbookにFreeBSD 12.0-Release をインストールしてみた part.2

無線LANがうまく使えなかったMacBook4,1 on FreeBSD 12.0-Release を使えるように挑戦していきます。

いろいろ検索で出てきましたがこちらの記事が参考になりました。
【FreeBSD】無線LAN(Wi-Fi)に接続したい - HacoLab

dmesg で起動ログを確認。/var/log/messages でも可。6系以来のFreeBSDですがファイル構成も懐かしいです。

kernel: bwn0:  mem 0x18001000-0x18001dff,0x18001f00-0x18001fff,0x18001e00-0x18001eff irq 1 at core 1 on bhnd0

kernel: bwn0: bwn_phy_n_attach: BWN_GPL_PHY not in kernel config; no PHY-N support

kernel: bwn0: failed

kernel: device_attach: bwn0 attach returned 6

搭載されている wi-fi のデバイスBroadcom 802.11 MAC/PHY/Radio, rev 12 として認識はされているようですが最終的に認識に失敗しているようです。

% sysctl net.wlan.devices  
net.wlan.devices: bwn0


ジェネリックカーネルの設定ファイルでは bwn がコメントアウトされているので有効にして options BWN_GPL_PHY を追加します。
GENERICカーネルでは使わない機能もあるのでGENERICカーネルの設定ファイルをコピーしてMacBook4,1用のカーネルを作るのも良いと思います。

 /usr/src/sys/amd64/conf/GENERIC

device    bwn         # Broadcom BCM43xx wireless NICs.
options BWN_GPL_PHY

カーネルコンパイルしてインスールします。古いマシンではないと思っていたのですがカーネルコンパイルは1時間以上かかりますね...

# cd /usr/src
# make buildkernel
# make installkernel

カーネルを設定ファイルを変えた場合は KERNCONF= 指定しましょう。久しぶりにカーネルコンパイルしたら オプションを間違ってKERNELCONF と指定して GENERIC カーネルを作ってしまいました...(汗)

【参考】第8章 FreeBSD カーネルのコンフィグレーション
第8章 FreeBSD カーネルのコンフィグレーション


ports から net/bwn-firmware-kmod をインストールします。

# cd /usr/ports/net/bwn-firmware-kmod
# make install clean
# ls /boot/modules
bwn_v4_lp_ucode.ko bwn_v4_n_ucode.ko bwn_v4_ucode.ko linker.hints

/boot/modules にbwn〜.ko が作られるはずです。(インストール前後でチェックしていませんでした...)


boot/loader.conf に 下記の設定を追加します。

# cat /boot/loader.conf
if_bwn_load="YES" 

これで起動すると メッセージが変わりましたが wi-fi の設定でエラーが出てうまくIPアドレスssid が設定出来ません。

bwn0: <Broadcom 802.11 MAC/PHY/Radio, rev 12> mem 0x18001000-0x18001dff,0x18001f00-0x18001fff,0x18001e00-0x18001eff irq 1 at core 1 on bhnd0
bwn0: WLAN (BCM4321 rev 12) PHY (analog 5 type 4 rev 2) RADIO (manuf 0x17f ver 0x2055 rev 4)
bwn0: DMA (64 bits)
bwn0: Note: compiled with BWN_GPL_PHY; includes GPLv2 code
bwn0: ucode fw: ucode11
bwn0: the fw file(bwn_v4_ucode11) not found
bwn0: ucode fw: ucode11
bwn0: the fw file(bwn-open_v4_ucode11) not found
bwn0: need multicast update callback

bwn_4_ucode11 というのが見つからないみたい....。 
検索をかけてもあまり情報が見つからないのでダメ元で /boot/modules の bwn_v4_ucode.ko をコピーして bwn_v4_ucode11.ko にしたらwi-fiバイス使えるようになりました。

%ls /boot/modules
bwn_v4_lp_ucode.ko	bwn_v4_ucode.ko		linker.hints
bwn_v4_n_ucode.ko	bwn_v4_ucode11.ko


とりあえずIPアドレスは固定もDHCP経由でも設定できて普段使いのPCからネットワーク経由で接続出来るようになりました。

bwn0: WLAN (BCM4321 rev 12) PHY (analog 5 type 4 rev 2) RADIO (manuf 0x17f ver 0x2055 rev 4)
bwn0: DMA (64 bits)
bwn0: Note: compiled with BWN_GPL_PHY; includes GPLv2 code
bwn0: ucode fw: ucode11
bwn0: firmware version (rev 410 patch 2160 date 0x751a time 0x7c0a)
bwn0: need multicast update callback
bwn0: ucode fw: ucode11
bwn0: firmware version (rev 410 patch 2160 date 0x751a time 0x7c0a)
bwn0: ucode fw: ucode11
bwn0: firmware version (rev 410 patch 2160 date 0x751a time 0x7c0a)
bwn0: MAC suspend failed
bwn0: MAC suspend failed
bwn0: ucode fw: ucode11
bwn0: firmware version (rev 410 patch 2160 date 0x751a time 0x7c0a)

IP固定で起動するとMAC〜failed が出ますがDHCPIPアドレスを取得する時は出ていなかったような気がします。

続く→FreeBSD on MacBook4,1にwi-fi設定してみた - 適当に維持