NEC WG2600HPにOpenWrt21.02+NSS Driverを入れる
2021年8月15日の情報
NSS Driver
NSS DriverはQualcomm ipq806xチップセットを採用したルーターで通信機能をハードウェア処理するためのドライバー。CPU負荷を抑えられることと通信速度向上が期待される。QSDKのNSS DriverをOpenWrtのアップデートに追随させているもの。もともとQualcommがOpenWrt15.05ベースにカスタマイズしたものがQSDKであり、NEC WG2600HPの純正ファームウェアはQSDKベース。
ただ、OpenWrtのmasterに統合されていない。 NSS Driver開発中のリポジトリからソースをいただいてファームウェアを生成する必要がある。 さらにNEC WG2600HPの設定ファイルではNSS Driverが有効化されておらず、自力で有効化した上でファームウェアを生成するしかない。
OpenWrtファームウェアを生成するための環境を整える。
Linux環境を用意する。コンパイルに必要なパッケージを事前にインストールしておく。 参考: Build system setup
OpenWrt NSS Driver組み込み ACwifidudeさん版
ACwifidudeさんのdiffconfigはadblock+OpenVPN+wireguard+各種ファイルシステム+その他いろいろ入っている。12Mバイトくらいのファームウェアが生成されて不安になるが、sysupgrade可能。 インターネットへ出ていける環境で実施すること。インターネットへ出ていけないとエラーになる。
mkdir -p ~/src/openwrt cd ~/src/openwrt git clone -b openwrt-21.02-nss-qsdk10.0 https://github.com/ACwifidude/openwrt.git cd openwrt/ ./scripts/feeds update -a ./scripts/feeds install -a pushd target/linux/ipq806x/files/arch/arm/boot/dts/ (qcom-ipq8064-wg2600hp.dtsを手パッチする。&gmac1 { ... }; &gmac2 { ... };のあたり。これの追加行 → https://github.com/ACwifidude/openwrt/commit/14bec446850f5590a743bd9c0f5ac8d2fed08aaa#diff-2f47fcdc31a7255857d5913363bae7a696af961e0cc4b742b10c9693e5a3c55c ) popd cp diffconfig .config make menuconfig Target Profile ---> NEC Aterm WG2600HP make -j6 ここにファームウェアができてるハズ → bin/targets/ipq806x/generic/
OpenWrt NSS Driver組み込み ミニマム版
最小限のNSS Driverを有効にする。インターネットへ出ていける環境で実施すること。インターネットへ出ていけないとエラーになる。
mkdir -p ~/src/openwrt cd ~/src/openwrt git clone -b openwrt-21.02-nss-qsdk10.0 https://github.com/ACwifidude/openwrt.git cd openwrt/ ./scripts/feeds update -a ./scripts/feeds install -a pushd target/linux/ipq806x/files/arch/arm/boot/dts/ (qcom-ipq8064-wg2600hp.dtsを手パッチする。&gmac1 { ... }; &gmac2 { ... };のあたり。これの追加行 → https://github.com/ACwifidude/openwrt/commit/14bec446850f5590a743bd9c0f5ac8d2fed08aaa#diff-2f47fcdc31a7255857d5913363bae7a696af961e0cc4b742b10c9693e5a3c55c ) popd make menuconfig Target System ---> Atheros IPQ806X Target Profile ---> NEC Aterm WG2600HP Kernel modules -> Network Devices * kmod-nss-ifb * kmod-qca-nss-drv * kmod-qca-nss-drv-pppoe * kmod-qca-nss-gmac Kernel modules -> Network Support * kmod-qca-nss-ecm-standard make -j6 ここにファームウェアができてるハズ → bin/targets/ipq806x/generic/
気づいた点
- PPPoEとルーティングは確実にオフロードされており、speedtest.netを実施してもCPU負荷が上がることはない。うちでは通信速度450Mbps→500Mbpsと微増だが、プロバイダー次第なのかもしれない。
- StrongSwan+xl2tpdでVPNを動かそうとするとストールし、その後再起動がかかる。
- libreswan+xl2tpdでのVPNは動いた。kmod-qca-nss-drv-l2tpv2,kmod-qca-nss-drv-ipsecmgrを組み込んでも動く。ipsecmgrは効いてる。xl2tpdのカーネルモードを有効にしてVPN接続すると再起動がかかった。xl2tpdはユーザーモードで動かすしかない。
- make menuconfigで闇雲に機能を組み込んだら再起動ループにはまった。こうなるとtftpブートで入れ直すしかない。
- わりとしっかりOpenWrt21.02の更新に追随している。