スポンサーリンク

10G SFP+のついているBanana Pi R4 BPI-R4 MTKSDKを使ったOpenWrt

network

以前のminiPCでほぼ満足していたのですけど、もう少し省エネならないかなと探して、たどり着いたのがこちら。
販売から結構経ちますが、まだ開発は途中らしい。
ほしい機能が一通り揃ってるようだったので、置き換えられるのか実験をしてみた記録です。

いつも通り、国内よりも、海外から買ったほうが安いです。

https://s.click.aliexpress.com/e/_oEa9da1
MiiElAOD Banana Pi Bpi-R4 WiFi 7 ルーターボード MTK MT7988aデザイン 4G RAM 8G eMMcオンボード
金具 -CPU: MT7988A (Filogic 880) クアッドコアArm Corex-A73,1.8GHzプロセッサ -SDRAM: 4GB DDR4 オンボードストレージ:MicroSD (TF)カード、8GB eMMCオンボード...

仕様など

ここにズラズラ貼るよりも、公式見に行ったほうが早いのに気づいたのでリンク
BPI-R4 Introduction https://docs.banana-pi.org/en/BPI-R4/BananaPi_BPI-R4

注目したいところがコレ

To meet the needs of rapidly evolving tunneling applications, the MT7988A comes equipped with the MediaTek Tunnel Offload Processor System (TOPS), which facilitates the processing of a wide range of tunneling protocols. The MT7988A optimizes networking performance with a finely tuned ISA of MediaTek TOPS, delivering premium-level offloading capabilities.

※訳
急速に進化するトンネリングアプリケーションのニーズに応えるため、MT7988AはMediaTekトンネルオフロードプロセッサシステム(TOPS)を搭載し、幅広いトンネリングプロトコルの処理を容易にします。MT7988Aは、MediaTek TOPSのISAを微調整することでネットワークパフォーマンスを最適化し、最高レベルのオフロード機能を提供します。

IPv4 NATP / IPv6 / DS-Lite / 6RD アクセラレーション用のハードウェアベースのネットワーキング暗号エンジン(EIP-197)

MediaTek Filogic 880

というわけで、使えるかなという感じでテストを進めていきます。

ファームウェアを用意する

公式のファームダウンロード先はこちら
https://docs.banana-pi.org/en/BPI-R4/BananaPi_BPI-R4

ですが、そのままだとWireguardなどほしいパッケージ入っていなかったり、インストールもできず不自由です。
素直にOpenWrt側を使います。

OpenWrt Firmware Selector

最近になって色々と強化されつつあるので、Snapshotを選択。
カスタマイズで、luciとかずらずら放り込みビルドします。べんり

ビルドが終わったら、sdcard.img.gzをダウンロードして、microSDに書き込みこれで起動させます。

動作試験

そのまま普通にOpenWrtが起動してくるので、LAN1~3かSFP2の方でLuci画面に入って一通り設定います。
設定は、以前書いている map-eとipip6 に ds-lite です。

設定後のスピードテストを行った結果です。
IPIP6のトンネルはCPUを使い2Gbps程度で頭打ちします。
そのままではIPv6の通信も2Gbps程度で限界になりますが、
ファイアウォールの設定から、ハードウェアフローオフロードを有効にすると、IPv6は7Gbps程度まで出ました。
IPv6にはHNATが効いているのがわかりました。

素のOpenWRTではHWNAT以外のオフロードがないようなので、MTK-SDKでやり直してみようと思います。

SDKを使ってやりなおし

今回の機種はほぼリファレンス機で、ビルドの方法まで公開されているので利用します。

https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk-openwrt-feeds
Mediatek Upstream SoftMAC WiFi Driver - MT76 Release Note (OpenWrt 24.10/Kernel 6.6)

ビルド開始

ビルドの手順をいろいろと見ていると、autobuild.shを使うほうがいいみたいなので、それに倣って作業すすめます。ビルド環境はOpenWrt用一式入っていれば通りました

#Get OpenWrt 24.10 source code from Git Server
git clone --branch openwrt-24.10 https://github.com/openwrt/openwrt.git openwrt
cd openwrt; git checkout 3a481ae21bdc504f7f0325151ee0cb4f25dfd2cd; cd -;

#Get mtk-openwrt-feeds source code
git clone --branch master https://git01.mediatek.com/openwrt/feeds/mtk-openwrt-feeds
cd mtk-openwrt-feeds; git checkout c8e3540e54b5b07b7afb4a5bd09d6f8db8c8a496; cd -;

#Choose one SKU to build (1st Build)
cd openwrt

# Select one SKU to build
## 1. Filogic 880 (MT7988+MT7996) MTK Reference Board (RFB) and BananaPi BPI-R4
bash ../mtk-openwrt-feeds/autobuild/unified/autobuild.sh filogic-mac80211-mt7988_rfb-mt7996 log_file=make

#ここまでビルドしてからパッケージとか調整してビルドし直す
make menuconfig

make V=s

ビルド中に気づいてしまったのですが、期待していたTOPSのソースがgitに有りません。
この時点でトンネル系の期待ができなくなりました。残念

feed/kernel - openwrt/feeds/mtk-openwrt-feeds - Gitiles

オフロード期待する人はipqいったほうがいいですね。

一応SpeedTestやNAT周りもチェックしたのですが、MTK-SDKでビルドしてみたものと、動作自体はSnapshotと大差ない結果になりました。
わざわざSDKビルドする必要ないですね。

追試

TOPSソースのあるSINOVOIPのgithub

BPI-SINOVOIP

GitHub - BPI-SINOVOIP/BPI-R4-MT76-OPENWRT-V21.02
Contribute to BPI-SINOVOIP/BPI-R4-MT76-OPENWRT-V21.02 development by creating an account on GitHub.

ビルド方法は、古いUbuntu 18.04環境でCloneしてからそのままmakeらしい
オプション変えるとビルド通らなくて詰み

GitHub - BPI-SINOVOIP/BPI-R4-OPENWRT-V21.02
Contribute to BPI-SINOVOIP/BPI-R4-OPENWRT-V21.02 development by creating an account on GitHub.

MT76では無い方ではビルドできたので確認した結果
TOPSをロードするとほぼ通信できずでした。

おまけ

この辺のbuilder使うとSDKから作るの楽ですね

GitHub - woziwrt/bpi-r4-openwrt-builder: mtk openwrt builder
mtk openwrt builder. Contribute to woziwrt/bpi-r4-openwrt-builder development by creating an account on GitHub.
[Banana BPI-R4] all related to MTK-SDK
EDIT: Instead of this release, I recommend downloading and testing the BPI-R4_MLO_beta2_upd-1.1 release, which is in pos...

コメント

タイトルとURLをコピーしました