とりあえず、FreeBSD12をRaspberry Piにインストールした。
% uname -a FreeBSD ほげほげ 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC arm64
スタンドアローンで触っていてはた、と手が止まる。pkgをいれるにしてもネット環境につながってない。オンボードのwifiが使えない以上、手も足もでない。
かあさん、ぼくのあの、BUFFALO WLI-UC-GN2はどこへいってしまったんでしょうね……。
昨今の10BASE-Tはクロスケーブルにしなくても接続可能なので有線でBeelink S1につなぐことはできる。
そして、Beelink S1はwifiを経由して外の世界とつながっている。
つまりこういう感じになるわけだけど。
これでRaspberry Piは外の世界につながった1。そう見えるでしょう?
そうは問屋がおろさないのが世の常で。
普通、あいだのBeelink S1がパケットを中継してくれない。
中継するようにするにはBeelink S1にgateway機能を持たせる必要がある。
rc.confに
gateway_enable="YES"
と設定。
これでBeelink S1はRaspberry PiからきたパケットをWifiへ転送してくれるようになった。
だからRaspberry Piは外の世界につながった。そう思うでしょう?
そうは問屋がはおろさないのが世の常で。
今のままだと、ルーターはBeelink S1の奥にRaspberry Piがあることを知らないので、パケットの返信がとどかない。これにたいする解決策はたぶん次のうちのいずれか。
- ルーティングテーブルの設定(ルーター、Beelink S1)
- Beelink S1をプロキシサーバにする
- Beelink S1をNATサーバにする
- Beelink S1にブリッジを設定(ルーティングの設定も必要?)
rc.confに
firewall_enable="YES" firewall_type="OPEN" natd_enable="YES" natd_interface="wlan0" natd_flags=""
と設定してBeelink S1をNATサーバにした2。
これでpkgが使える。
Footnotes:
実際、外からBeeLink S1にはいってそこからRaspberry Piにはいることはできる。
一日かかったけれど、これは深読みしすぎて嵌ったせいで、ここのとおりやったらあっさりできた。カーネルのリビルドは必要なかった。最近はたいがい、自動でカーネルモジュールを取り込んでくれているらしい。