適当にEasy

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

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

3.マシン起動時の設定

あとは rc.conf にwlan0 の設定をすれば wi-fi 設定の完了です。

wlans_bwn0="wlan0"
ifconfig_wlan0="WPA country jp DHCP"

これで普段使いのMacマシンからターミナルでSSHログインが出来るようになりました。

古い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設定してみた - 適当に維持

古い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 のインストール

2.3. インストール前に行う作業

 

インストーラーをコピーしたUSBメモリを指してマックブックを起動。Alt/Option キーを押して起動しないとハードディスクから普通にMacOSが起動してしまうので注意。

 FreeBSDのインストール自体は問題なく完了したものの懸念していたwi-fiバイスはやはりすぐには使えない模様...。

 

Part.2 へ続く。

古いMacbookにFreeBSD 12.0-Release をインストールしてみた part.2 - fれえbsd覚え書き