FreeBSD on MacBook4,1にwi-fi設定してみた
ようやくwi-fi が接続できるようになったFreeBSD 12.0-RELEASE on MacBook 4,1。
古いMacbookにFreeBSD 12.0-Release をインストールしてみた part.2 - fれえbsd覚え書き
前回に続きこちらの記事を参考に設定をしていきます。
【FreeBSD】無線LAN(Wi-Fi)に接続したい - HacoLab
やる事は
1.無線LANデバイスの作成
ifconfig で無線LANデバイスを作ります。カーネルのコンパイルが出来ていればこれは出来るはず。
% ifconfig wlan0 create wlandev bwn0 country JP
wlan0 が UP すれば scan で近くの無線LAN情報が拾えるはずです。
% ifconfig wlan0 scan
2.wi-fi設定
ネットワーク用語の正確な呼び方が分からないのですが(汗)
SSIDとパスフレーズを wpa_passphrase で設定します。
自宅wi-fiはWPA2プレシェアードキーで暗号化していますが wpa_passphrase コマンドで出力された内容で問題ありませんでした。
# wpa_passphrase yourssid yourpassphrase network={ ssid="yourssid" #psk="yourpassphrase" psk=46175209ae46a6dc34d7d4ea919d5c521f84a43d20f5adb1048131bc3777bde1 }
/etc 以下に wpa_supplicant.conf ファイルが無ければコマンド出力結果をリダイレクトしてファイルを作りましょう。
# wpa_passphrase yourssid yourpassphrase > /etc/wpa_supplicant.conf
wlan0 が UP した状態で wpa_supplicant を起動すれば wi-fiに接続されてIP取得されるはずです。
# wpa_supplicant -B -i wlan0 -c wpa_supplicant.conf
Successfully initialized wpa_supplicant
ちなみにパスフレーズを間違ってコマンド投入してwi-fiルーターにWRONG_KEY と返されたバカは私です。
wpa_supplicant[3172]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="yourssid" auth_failures=4 duration=73 reason=WRONG_KEY r
DHCP でIPをうまく取得出来れば完了です。
# dhclient wlan0
参考にした記事の解説が素晴らしいので細かいことはそちらを読んでクダサイw
古い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 が出ますがDHCPでIPアドレスを取得する時は出ていなかったような気がします。
古いMacbookにFreeBSD 12.0-RELEASEをインストールしてみた part.1
久しぶりに職場復帰したら通信プログラムを書かされる事になったのでハードウェア的には問題がないものの最新MacOSをインストール出来なくなって使わなくなっていたMacBook 4,1にFreeBSD 12.0-Release をインストールしてみました。
今どきのOSはCD/DVDにインストーラーを焼かなくてもUSBメモリ経由でインストール出来ることにビックリ。
でも手元には64MB(笑)のUSBメモリしかなくて家電量販店に行ったら16GBのUSBメモリが2,000円以下で買えて再びビックリ。
ハンドブックを参考に dd コマンドでダウンロードした-memstick.img でUSBメモリにインストーラーをコピー。
【FreeBSDハンドブック】第2章 FreeBSD のインストール
インストーラーをコピーしたUSBメモリを指してマックブックを起動。Alt/Option キーを押して起動しないとハードディスクから普通にMacOSが起動してしまうので注意。
FreeBSDのインストール自体は問題なく完了したものの懸念していたwi-fiデバイスはやはりすぐには使えない模様...。
Part.2 へ続く。
古いMacbookにFreeBSD 12.0-Release をインストールしてみた part.2 - fれえbsd覚え書き