BC-11AH-A/A2 の Raspberry Pi OS 13 (Trixie) での利用手順
Posted by: otsuka
BC-11AH-A/A2用設定済み起動イメージファイル2025.11 Release
のページでも言及したように、
Newracom の NRC7394 Software Package for Host mode (Linux OS) は
・ネットワークの管理が dhcpcd で行われていること
・linux kernel が 6.1.* であること
が正常に動作する要件でした。
このため、Raspberry Pi OS 12 (Bookworm) から
・ネットワーク管理が dhcpcd から NetworkManager になった
・2025年5月6日リリースのイメージ以降 linux kernel が標準で 6.12.* になった
ことで、
Raspberry Pi OS 12 (Bookworm) 以降の Raspberry Pi OS で起動している
・Raspberry Pi 3
・Raspberry Pi 4
64bit の Raspberry Pi OS 12 (Bookworm) 以降の Raspberry Pi OS でしか起動できない
・Raspberry Pi 5
では NRC7394 Software Package for Host mode (Linux OS) を必要とする BC-11AH-A/A2 は
使用することができませんでした。
BC-11AH-A/A2 はもともとは
できるだけ NRC7394 Software Package for Host mode (Linux OS) をそのまま使用していただく
ことを想定していたのですが、BC-11AH-A/A2 を新しい環境でも使用していただくため
必要最小限の変更を加えて Raspberry Pi OS 13 (trixie) で BC-11AH-A/A2 を使えるようにする手順
を紹介します。
ここで行う変更は BeatCraft の責任で試行して紹介しているものです。
ただし GUI に一点調整不能の問題があります。
Raspberry Pi OS 11 (Bullseye) までは
dhcpcd で設定されたインタフェースの接続状況が
GUI のツールバーのネットワークアプレットに表示されたのですが、
NetworkManager での管理に変更された Raspberry Pi OS 12 (Bookworm) 以降 では
ツールバーのネットワークアプレットも NetworkManager と連携するよう変更されており、
その状態の Raspberry Pi OS 13 (Trixie) に dhcpcd をインストールしているため
ツールバーのネットワークアプレットは eth0 や 11ah の wlan0 が正しく接続できていても
接続されていない状態の表示のままになります。
この点だけは現状で解決方法がありません。
ターミナルから ifconfig や iw コマンドでネットワークの状態を確認してください。
1. kernel 6.12.x 対応版 nrc driver を含む nrc7394_sw_pkg の設定とインストール
nrc7394_sw_pkg を folk し、 Raspberry Pi kernel 6.12.* でもビルドが成功するよう nrc driver を調整しました。 以下の github リポジトリから BeatCraft 改変版の nrc7394_sw_pkg をダウンロードし Raspberry Pi OS 11 (Bullseye) 向けに設定するのと同じ手順で設定してください。 https://github.com/BeatCraft/nrc7394_sw_pkg/tree/kernel_6_12_supportpi@raspberrypi:~ $ cd Downloads pi@raspberrypi:~/Downloads $ git clone --branch kernel_6_12_support https://github.com/BeatCraft/nrc7394_sw_pkg.git nrc7394_sw_pkg-kernel_6_12_support Cloning into 'nrc7394_sw_pkg-kernel_6_12_support'... remote: Enumerating objects: 1378, done. remote: Counting objects: 100% (339/339), done. remote: Compressing objects: 100% (166/166), done. remote: Total 1378 (delta 202), reused 231 (delta 173), pack-reused 1039 (from 1) Receiving objects: 100% (1378/1378), 135.60 MiB | 18.70 MiB/s, done. Resolving deltas: 100% (889/889), done.この nrc7394_sw_pkg-kernel_6_12_support を使って BC-11AH-A/A2用設定済み起動イメージファイル2025.11 Release で紹介したのと同じ設定を Raspberry Pi OS 13 (Trixie) 上で行なってください。 上記ページ 「3.2. nrc7394_sw_pkg のインストール」の update.sh 実行の際、 /home/pi/Downloads/nrc7394_sw_pkg-kernel_6_12_support/package/src/nrc/ の nrc driver がビルドされますが、 Raspberry Pi 4 で起動している場合には kernel 6.12.47+rpt-rpi-v8 向けにビルドされ、 Raspberry Pi 5 で起動している場合には kernel 6.12.47+rpt-rpi-2712 向けにビルドされて 出来た nrc.ko が /home/pi/nrc_pkg/sw/driver/nrc.ko にコピーされます。
2. NetworkManager の停止
nrc7394_sw_pkg で 11ah インタフェースを様々なモードで起動するスクリプト start.py は dhcpcd での管理を前提に記述されているので、 NetworkManager を停止します。 NetworkManager による管理に戻せるようアンインストールはしません。pi@raspberrypi:~ $ sudo systemctl stop NetworkManager.service pi@raspberrypi:~ $ sudo systemctl disable NetworkManager.service
3. iptables、dhcpcd5、openresolv のインストールと設定
dhcpcd パッケージをインストールします。 dhcpcd と連携して dns 設定を行う openresolv もインストールします。pi@raspberrypi:~ $ sudo apt install dhcpcd5 openresolvまた、Raspberry Pi OS 12 (Bookworm) から iptables の代わりに nftables が default でインストールされるようになりましたが、 start.py では iptables で NAT 等の設定をするので iptables もインストールします。
pi@raspberrypi:~ $ sudo apt install iptables上記パッケージのインストール後、 Raspberry Pi OS 12 (Bookworm) 以降削除されてしまった dhcpcd の設定ファイルを 設定した nrc7394_sw_pkg の中からコピーしておきます。
pi@raspberrypi:~ $ cd nrc_pkg/etc/dhcpcd/ pi@raspberrypi:~/nrc_pkg/etc/dhcpcd $ sudo cp dhcpcd.conf /etc/
4. dnsmasq のインストールと dhcpcd との連携の調整
次に主に AP 動作のときに必要となる dnsmasq もインストールします。pi@raspberrypi:~ $ sudo apt install dnsmaswqRaspberry Pi OS 11 (Bullseye) までは dnsmasq をインストールしたら dhcpcd で取得した dns 情報を dhcpcd の resolvconf hook がうまく処理して /etc/resolv.conf と /run/dnsmasq/resolv.coonf を書き換え 名前解決ができるようにしてくれたのですが、 Raspberry Pi OS 13 (Trixie) に dhcpcd を入れても Raspberry Pi OS 12 (Bookworm) 以降に入った NetworkManager 向けの調整のためか dnsmasq と連携する設定を正しく書き換えてくれなくなってしまいました。 そこで、dhcpcd の hook を新たに追加してしまいます。 /lib/dhcpcd/dhcpcd-hooks/ に 90-dnsmasq-resolvconf という名前で以下の内容のファイルを作成します。
#!/bin/sh
# 90-dnsmasq-resolvconf
# eth0 の DHCP 情報から /run/dnsmasq/resolv.conf を生成する
IFACE="eth0"
SRC="/run/resolvconf/interfaces/${IFACE}.dhcp"
DST_DIR="/run/dnsmasq"
DST="${DST_DIR}/resolv.conf"
# dhcpcd のフック理由のうち、IP が変わるタイミングでだけ実行
case "$reason" in
BOUND|RENEW|REBIND|REBOOT|INFORM)
[ "$interface" = "$IFACE" ] || exit 0
if [ -f "$SRC" ]; then
mkdir -p "$DST_DIR"
# nameserver 行だけ抜き出して書き出す
grep '^[[:space:]]*nameserver[[:space:]]' "$SRC" > "$DST"
fi
;;
*)
exit 0
;;
esac
作成後これに実行権をつけます。
pi@raspberrypi:~ $ sudo chmod +x 90-dnsmasq-resolvconfこれで dhcpcd が dhcp サーバーから取得した dns 情報を openresonv の resolvconf が /run/dnsmasq/resolv.conf に書き出し、 /etc/resolv.conf は 127.0.0.1 のローカルを見に行くよう設定され dnsmasq が dnsフォワーダーとして動作して名前解決が行われるようになります。 ここまでの設定を行うことで Raspberry Pi OS Trixie でも BC-11AH-A/A2 が使えるようになります。