BC-11AH-A/A2用設定済み起動イメージファイル2025.11 Release
Posted by: otsuka
BC-11AH-A の後継機 BC-11AH-A2 の発売開始に伴い、
これら両機種を使用するのに必要な Newracom のソフトウェアの 2025年11月時点での最新 version
NRC7394 SW PKG v1.3.1
を設定済みの起動イメージファイルの 32bit version と 64bit version を作成しました。
以下のURLからダウンロードしていただけます。
https://github.com/BeatCraft/raspios-img_for_BC11-AH/releases/tag/2025.11
64bit version
BC-11AH-A_2025-05-06-raspios-bullseye-arm64_nrc7394_sw_pkg-1.3.1.img.xz
32bit version
BC-11AH-A_2025-05-06-raspios-bullseye-armhf_nrc7394_sw_pkg-1.3.1.img.xz
Raspberry Pi Imager などで microSD カードに書き込んで使用してください。
イメージ作成時に rootfs パーティションを縮小していますので、
使用時には起動後 raspi-config のメニューから
6 Advanced Options --> A1 Expaned Filesystem
を選択しパーティションを拡大して使用してください。
これらのイメージは
NRC7394 Evaluation Kit User Guide (Raspberry Pi setup)
UG-7394-018-Raspberry_Pi_setup.pdf
の手順に従って作成したものですが、細部に調整を加えながら設定しておりますので
作成の詳細な手順を以下に記載します。
BC-11AH-A/A2 を使用するためには chip vendor である Newracom の用意した
NRC7394 Software Package for Host mode (Linux OS)
を利用する必要があります。
上記の github の NRC7394 Software Pacakge ページ上には
Newracom の開発ボードである nrc7394 EVK 向けのみ対応との注意書きがありますが、
BeatCraft 製の Raspberry Pi 802.11ah HAT である BC-11AH-A/A2 でも正常に動作することを確認しています。
設定は NRC7394 Evaluation Kit user Guide (Raspberry Pi setup) に従って以下の順序で行います。
- Raspberry Pi 起動用 microSD カードの作成
- Raspberry Pi OS の設定
- NRC7394 Software Pacakge のインストールと設定
1. Raspberry Pi 起動用 microSD カードの作成
raspberrypi.com のダウンロードサイト https://downloads.raspberrypi.com/ から Raspberry Pi OS 11 (bullseye) の最後のリリースをダウンロードします。 64bit version を使用する場合は 2025-05-06-raspios-bullseye-arm64.img.xz 32bit version を使用する場合は 2025-05-06-raspios-bullseye-armhf.img.xz をダウンロードします。 ダウンロードした OS イメージファイルを Raspberry Pi Imager で開いて microSD カードに書き込むか、 xz コマンドで圧縮を展開した後 img ファイルを dd コマンドで microSD カードに書き込む、などの方法で Raspberry Pi 起動用 microSD カードを作成します。2. Raspberry Pi OS の設定
1 の手順で作成した起動用 microSD カードで Raspberry Pi を起動したら以下の設定を行います。2.1. pi ユーザーの作成
nrc7394_sw_pkg は pi ユーザーでの実行を前提にスクリプトが構成されています。 そのため 1 の手順で作成した起動用 microSD で Raspberry Pi を最初に起動した際に pi ユーザーを作成してください。 1 の手順で起動用 microSD カードを作るのに Raspberry Pi Imager を使うなら、書き込みの途中で 「設定を編集する」ボタンを押して予め pi ユーザーを作成しておくこともできます。 以後の手順で Raspberry Pi OS 上での操作は pi ユーザーで実行することを前提にしています。2.2. 32bit kernel の有効化
この手順は Raspberry Pi 4 で 32bit version を使用する場合にのみ必要になります。 Raspberry Pi 3 で 32bit version を使う場合は最初から 32bit kernel で起動するのでこの手順は不要です。 また 64bit version を使う場合は kernel も userland も 64bit なのでこの手順は不要です。 Raspberry Pi 4 向けの Raspberry Pi OS は 6.1.* kernel 以降 32bit version でも 64bit kernel が使われるようになりました。 https://github.com/raspberrypi/firmware/commit/379d5bfa60bf3b0afff413a18344aaaf3bde0083 このまま使用すると後の手順でビルドする NRC7394 host driver は 32bit ユーザーランド上で armhf の gcc でビルドされるため 32bit 版 modules になり 64bit kernel には insmod できないので /boo/config.txt に arm_64bit=0 を記述して再起動し 32bit kernel が使われるようにします。2.3. SSH、SPI、Serial Port の有効化
raspi-config を使って ssh、spi、serial port を有効にします。 serial port は login shell としての使用は no で無効のままにし hardware interface のみ yes で有効にします。2.4. 追加 package のインストール
最初にインストール済みの default packages を更新してから 今後の Raspberry Pi OS の設定や使用に必要となるアプリケーションをインストールしておきます。 インストールするアプリケーションは好みに応じて選択・調整してください。pi@raspberrypi:~ $ sudo apt update pi@raspberrypi:~ $ sudo apt upgrade pi@raspberrypi:~ $ sudo apt install vim lv tree screen次に NRC7394 host driver をビルドするのに必要な kernel header をインストールします。
pi@raspberrypi:~ $ sudo apt install raspberrypi-kernel-headersさらに、11ah でのスループット計測用に iperf、iperf3 をインストールします。
pi@raspberrypi:~ $ sudo apt install iperf iperf3
2.5. RasPi on board の Broadcom Wifi と Blutooth の無効化
既存の電波帯域と 11ah との干渉を避けて 11ah インタフェースのみを有効にするため、 Device Tree Overlay に用意されている Broadcom の Wifi と Blutooth の無効化設定を使って無効化します。 /boot/config.txt に末尾に以下の記述を追加して再起動します。dtoverlay=disable-bt dtoverlay=disable-wifiまた、Broadcom Wifi と Blutooth の driver が読み込まれないよう、 /etc/modprobe.d/raspi-blacklist.conf に以下の記述を追加します。
blacklist brcmfmac blacklist brcmutil11ah といっしょに on board の Wifi と Blutooth も使用したい場合は、 一旦 nrc7394_sw_pkg の設定を最後まで行なって 11ah の正常動作が確認できたら /boot/config.txt と /etc/modprobe.d/raspi-blacklist.conf からこれらの記述を削除して Wifi と Bluetooth に必要な設定を適宜行ってください。 ただし、11ah のインタフェースと on board Wifi を同時に使用する際には nrc7394_sw_pkg 内のスクリプトの中でインタフェース名の調整などが必要になります。 (nrc7394_sw_pkg は on board Wifi を使用しない前提で 11ah インタフェースだけを wlan0、wlan1 と想定しているため)
2.6. Newracom Wifi に必要な package のインストールと設定
11ah インタフェースを AP (Access Point) として使用する際に必要なパッケージをインストールします。pi@raspberrypi:~ $ sudo apt install hostapd dnsmasq11ahインタフェースを STA (Station) として使用する際に誤って使われないよう、 Raspberry Pi OS の wpa_supplicant パッケージの設定ファイルをリネームしておきます。
pi@raspberrypi:~ $ cd /etc/wpa_supplicant/ pi@raspberrypi:~ $ sudo mv wpa_supplicant.conf wpa_supplicant.conf.unused
2.7. mac80211 driver の load
NRC7394 host driver が依存する mac80211 driver が OS の起動時に自動で読み込まれるよう設定します。 /etc/modules に default では i2c-dev のみが記述されているので、mac80211 を加え以下の内容になるようにします。i2c-dev mac80211
3. NRC7394 Software Pacakge のインストールと設定
Raspberry Pi OS に行っておく設定が完了したら NRC7394_SW_PKG のインストールを行います。 Newracom の github の nrc7394_sw_pkg のリリースページ https://github.com/newracom/nrc7394_sw_pkg/releases/tag/v1.3.1 から nrc7394_sw_pkg-1.3.1.tar.gz をダウンロードし展開しておきます。pi@raspberrypi:~ $ cd Downloads/ pi@raspberrypi:~/Downloads $ curl -LOJ https://github.com/newracom/nrc7394_sw_pkg/archive/refs/tags/v1.3.1.tar.gz pi@raspberrypi:~/Downloads $ tar xvf nrc7394_sw_pkg-1.3.1.tar.gz
3.1. dts による User mode SPI device driver の無効化
NRC7394 モジュールは SPI Master 0 で Raspberry Pi と接続されていますが、 User mode SPI device driver が load されていると chip-select ピンが busy になり NRC7394 host driver を insmod することができません。 そこで、Blutooth や Wifi と同様に Device Tree Blob Overlay の仕組みを使って User mode SPI device driver を無効にします。 まずそのために用意された dts をビルドして dtbo にし、/boot/overlay/ に配置します。pi@raspberrypi:~ $ cd Downloads/nrc7394_sw_pkg-1.3.1/dts/ pi@raspberrypi:~/Downloads/nrc7394_sw_pkg-1.3.1/package/dts $ dtc -I dts -O dtb -o newracom.dtbo newracom_for_5.16_or_later.dts pi@raspberrypi:~/Downloads/nrc7394_sw_pkg-1.3.1/package/dts $ sudo cp newracom.dtbo /boot/overlays/起動時にこの Device Tree Blob Overlay が読み込まれるよう /boot/config.txt に前述の Wifi、Bt 無効化に さらに以下の記述を追加し、再起動します。
dtoverlay=disable-bt dtoverlay=disable-wifi dtoverlay=newracom以下のように spidev0.0 が無くなりspidev0.1 だけになっていたら正しく設定が反映されています。
pi@raspberrypi:~ $ ls -l /dev/spidev* crw-rw---- 1 root spi 153, 0 Nov 6 /dev/spi0.1
3.2. nrc7394_sw_pkg のインストール
update.sh を実行し、/home/pi/ に nrc_pkg をインストールします。 この update.sh の中で nrc7394_sw_pkg を構成するファイル一式のコピーの後 NRC7394 host driver と、それを操作するための cli_app バイナリが src からビルドされ 所定の PATH (nrc.ko は /home/pi/nrc_pkg/sw/driver/ 、cli_app は /home/pi/nrc_pkg/script/ )にコピーされます。pi@raspberrypi:~ $ cd Downloads/nrc7394_sw_pkg-1.3.1/package/evk/sw_pkg/ pi@raspberrypi:~/Downloads/nrc7394_sw_pkg-1.3.1/package/evk/sw_pkg $ ./update.sh Copy new package apply nrc_pkg Model number: 7394 Kernel version: 6.1.21 Building nrc.ko make[1]: Entering directory '/usr/src/linux-headers-6.1.21-v7l+' CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-mac80211.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-mac80211-twt.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-twt-sched.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-trx.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-init.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-debug.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/hif.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/wim.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-fw.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-netlink.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-hif-cspi.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/mac80211-ext.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-stats.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-pm.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-dump.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-bd.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-s1g.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-trace.o CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc-ps.o LD [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc.o MODPOST /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/Module.symvers CC [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc.mod.o LD [M] /home/pi/Downloads/nrc7394_sw_pkg-1.3.1/package/src/nrc/nrc.ko make[1]: Leaving directory '/usr/src/linux-headers-6.1.21-v7l+' Building cli_app removed 'libcli_app.a' removed 'cli_app' libcli_app.a cli_app Change mode Done
3.4. NewraPeek のインストール
Sniffer mode の際に使用する packet キャプチャーソフト NewraPeek をインストールします。 NewraPeek は Wireshark を 11ah 対応にしたものです。 詳細や使用方法はUG-7394-011-NewraPeek.pdfで確認してください。 以下の手順は 32bit 版にインストールする手順です。64bit 版へのインストールは Raspberry Pi OS の元になっている debian の multiarch の仕組みを利用します。 64bit 版への Newrapeek のインストール手順は Raspberry Pi OS 64bit 版への Newrapeek のインストール をご覧ください。
pi@raspberrypi:~ $ cd nrc_pkg/script/sniffer/Wireshark_4.0.5/このディレクトリにある README.txt のインストール手順に従います。 まず Raspberry Pi OS 11 (bullseye) の Wireshark 3.4.16 の関連パッケージをインストールします。
pi@raspberrypi:~/nrc_pkg/script/sniffer/Wireshark_4.0.5 $ sudo apt install -y wireshark lxqt-sudo omniidl libpcap0.8-dev python3-ply libsnacc0c2 snacc libminizip1この際 Wireshark が標準ユーザーでもパケットキャプチャーできる設定にするか聞かれますので yes を選択してインストールしてください。 インストール完了後以下のコマンドで pi ユーザーを wireshark グループに参加させます。
pi@raspberrypi:~/nrc_pkg/script/sniffer/Wireshark_4.0.5 $ sudo usermod -a -G wireshark piこれをしておかないと、 GUI の ツールバーの Internet メニューから Wireshark を起動してパケットキャプチャーを開始したとき ネットワークデバイスへのアクセス権がないためキャプチャーができません。 NewraPeek は deb パッケージのバイナリで提供されていますので、deb ディレクトリに移動し ディレクトリ内にある Wireshark-4.0.5 11ah 対応改変版 deb パッケージで default の Wireshark 3.4.16 を上書き更新します。
pi@raspberrypi:~/nrc_pkg/script/sniffer/Wireshark_4.0.5 $ cd deb/ pi@raspberrypi:~/nrc_pkg/script/sniffer/Wireshark_4.0.5/deb $ sudo dpkg -i lib*.deb pi@raspberrypi:~/nrc_pkg/script/sniffer/Wireshark_4.0.5/deb $ sudo dpkg -i wireshark*.deb pi@raspberrypi:~/nrc_pkg/script/sniffer/Wireshark_4.0.5/deb $ sudo dpkg -i tshark*.deb
3.5. hostapd と wpa_supplicant の更新
WPA3-SAE の H2E(Hash-to-Element) サポート のため、hostapd と wpa_supplicant を更新します。 Raspberry Pi OS 11 の default の hostapd 2.9 と wpa_supplicant 2.9 は sae_pwe(PWE導出のためのSAEメカニズム)の設定に対応していないので、 UG-7394-001-EVK User Guide (Host Mode).pdf の pp.37-38 Appendix A. Upgrade hostapd & wpa_supplicant for supporting WPA3 に従ってソースコードから hostapd と wpa_supplicant を更新します。 このドキュメント内の手順では 2.10 に更新していますが、すでに 2.11 の安定版が Release されていますので 2.11 に更新します。3.5.1. hostapd
pi@raspberrypi:~ $ cd Downloads/ pi@raspberrypi:~/Downloads $ wget http://w1.fi/releases/hostapd-2.11.tar.gz pi@raspberrypi:~/Downloads $ tar xvf hostapd-2.11.tar.gz pi@raspberrypi:~/Downloads $ sudo apt-get update pi@raspberrypi:~/Downloads $ sudo apt-get install libnl-3-dev libnl-genl-3-dev libssl-dev pi@raspberrypi:~/Downloads $ cd hostapd-2.11/hostapd pi@raspberrypi:~/Downloads/hostapd-2.11/hostapd $ cp defconfig .configvim などで .config の中の以下の設定のコメントアウトを外して有効に編集する。
CONFIG_OWE=y CONFIG_WPS=y CONFIG_SAE=y CONFIG_TESTING_OPTIONS=y応答の遅い nrc7292 搭載のデバイスと接続する可能性がある場合は hostapd-2.11/src/ap/wpa_auth.c の79行目の eapol_key_timeout_subseq を vim などで編集し以下のように元の 1000 から倍の 2000 に伸ばす。
static const u32 eapol_key_timeout_subseq = 2000; /* ms */ビルドしてインストール
pi@raspberrypi:~/Downloads/hostapd-2.11/hostapd $ make pi@raspberrypi:~/Downloads/hostapd-2.11/hostapd $ sudo make install
3.5.2. wpa_supplicant
pi@raspberrypi:~ $ pi@raspberrypi:~ $ cd Downloads/ pi@raspberrypi:~/Downloads $ wget http://w1.fi/releases/wpa_supplicant-2.11.tar.gz pi@raspberrypi:~/Downloads $ tar xvf wpa_supplicant-2.11.tar.gz pi@raspberrypi:~/Downloads $ sudo apt-get update pi@raspberrypi:~/Downloads $ sudo apt-get install libnl-3-dev libnl-genl-3-dev libssl-dev pi@raspberrypi:~/Downloads $ sudo apt-get install libdbus-1-dev libdbus-glib-1-dev pi@raspberrypi:~/Downloads $ cd wpa_supplicant-2.11/wpa_supplicant pi@raspberrypi:~/Downloads/wpa_supplicant-2.11/wpa_supplicant $ cp defconfig .configvim などで .config の中の以下の設定のコメントアウトを外して有効に編集する。
CONFIG_OWE=y CONFIG_SAE=y (元々に有効になっている) CONFIG_MESH=y CONFIG_WPS=Y (元々に有効になっている)以下の設定はコメントアウトして無効にする。
#CONFIG_DRIVER_WIRED=y #CONFIG_DRIVER_MACSEC_LINUX=y #CONFIG_CTRL_IFACE_DBUS_NEW=y #CONFIG_WNM=y (元々に無効になっている)ビルドしてインストール
pi@raspberrypi:~/Downloads/wpa_supplicant-2.11/wpa_supplicant $ make pi@raspberrypi:~/Downloads/wpa_supplicant-2.11/wpa_supplicant $ sudo make install
3.6. 日本国内で使用するための設定
11ah を日本国内で使用するために必要な設定を 11ah インタフェースを各モードに設定して起動するスクリプト start.py の中の設定項目に行います。 /home/pi/nrc_pkg/script/start.py の 53行目 最大出力は 24 から 13 に変更します。max_txpwr = 13 # Maximum TX Power (in dBm)167行目から169行目 duty 比設定を有効にし、 duty window(この時間の間に)と duty cycle(どれだけの間電波を出すか)をマイクロ秒で設定します。 以下の例は設定可能な最短の間隔で、 1秒間に0.1秒電波を出す設定です。
# Duty cycle configuration duty_cycle_enable = 1 # 0 (disable) or 1 (enable) duty_cycle_window = 1000000 duty_cycle_duration = 10000010% duty の詳細に関してはBC-11AH-Aでの10% dutyの設定をご覧ください。 これで全てのパッケージのインストールと設定が完了し、 BC-11AH-A/A2 が使用できる状態になりました。 11ah インタフェースの操作は /home/pi/nrc_pkg/script/ にある start.py、stop.py などのスクリプトと /home/pi/nrc_pkg/script/conf ディレクトリ内にある設定ファイルで行っていくことになります。 実際の操作の詳細は UG-7394-001-EVK User Guide (Host Mode).pdf で確認してください。