Repository navigation
BMMPX1301
地上デジタル専用のネットワークチューナーです。基板の型番は POE-BR100-YB1。OpenIRD で最初に受信まで到達し、factory イメージでの導入まで実機で確かめた機種です。
ビルド名(BOARD) |
emma3sep_softbank_poe-br100-yb1 |
| SoC | Renesas EMMA3SEP(MIPS32r2 ビッグエンディアン・FPU 無し) |
| メモリ / フラッシュ | DDR3 256MB / NAND 128MB |
| 復調 | MaxLinear MXL683(ISDB-T) |
| その他 | Fujitsu MB86H58A(トランスコーダ。OpenIRD は使わない)、Realtek RTL8201FL(Ether PHY) |
| カーネル | Linux 2.6.27.39(GPL の公開ソースから再ビルド。Device Tree は使わない世代) |
| ブートローダ | 純正の U-Boot をそのまま使う(OpenIRD は書き換えない) |
| B-CAS | スロット無し |
| 項目 | 状態 | 確かめた内容 | 日付 |
|---|---|---|---|
| カーネル | 動作 | GPL の 2.6.27.39 を gcc 4.9.4 で再ビルドし、uImage にして NAND から起動。v26.10-rc8 は GitHub Actions がビルドしたもの |
2026-10-17 |
| ユーザランド | 動作 | musl + BusyBox + dropbear。読み取り専用の squashfs に、書き込み可能な層(yaffs2)を unionfs で重ねた root。追加したファイルが電源の入れ直しをまたいで残る | 2026-10-13 |
| チューナー | 動作 | px4_drv 互換のキャラクタデバイス /dev/irdvideo0。v26.10-rc5 で ch27 と ch13(20.6 Mbit/s)を 25 秒ずつ受信し、連続性エラー 0・同期エラー 0。13ch・60ch もロックする。同じ局を開き直すとすぐ使える。v26.10-rc8 でも 13ch・60ch・27ch を 15 秒ずつ受信し、連続性エラー 0 |
2026-10-17 |
| チューナー(照合) | 動作 | 未改造の recpt1 で録画でき、別の受信機(PX-M1UR)で同時に録った TS とビット単位で一致 | 2026-10-10 |
| アドオン | 動作 |
ird-addon で導入 → 電源の入れ直しをまたいで保持 → 削除。機器からの HTTPS 取得 |
2026-10-11 |
| TS サーバ(recpt1 のアドオン) | 動作 | recpt1 アドオン 1.2.0-77c7bce-3 の HTTP サーバで、別の受信機と同じ局を 12 分間同時に受け、受信量 99.8%・連続性エラー 0。recpt1 のメモリは横ばい |
2026-10-17 |
| 導入(factory) | 動作 | 純正 2.1.17 r3 の状態から、リリースの factory イメージを openird-fwup で投入。機器が受理 → ブートローダがカーネルと rootfs を書く → OpenIRD が起動。v26.10-rc3(2026-10-13・書かれた 2 つの区画がリリースのカーネル・rootfs と一致)・v26.10-rc5・v26.10-rc8・v26.10-rc9・v26.10-rc10 で確認。書き込み層のアドオンは残った |
2026-10-18 |
| 最初のログイン | 動作 | 導入の直後に、シリアルを使わず、パスワードなしの ssh root@<機器> で入れる。ログインのたびに、パスワードを設定するよう警告が出る |
2026-10-13 |
| 導入後の更新 | 動作 |
sysupgrade <更新イメージ> で、カーネルと rootfs を照合つきで書いて再起動する。設定とアドオンは残る。コマンドから新しい版の起動まで約 20 秒 |
2026-10-12 |
| 再起動・LED | 動作 |
reboot が効く。前面の LED を点ける(起動が終わると電源が緑、チューナーが使えるようになるとステータスが緑。色は実物で確認) |
2026-10-13 |
| 純正に戻す | 条件つき | 純正のカーネルと rootfs のイメージを持っていれば、動いている OpenIRD から書き戻せる(下記) | 2026-10-13 |
| 設定レイヤ・Web UI | 無し | 未実装 | — |
取り出せるのは、スクランブルされたままの TS です。OpenIRD はスクランブル解除を扱いません。
- 導入すると、元の純正ファームウェアには戻せなくなります。 純正のカーネルと rootfs は上書きされます。OpenIRD は純正のバイナリを配布しません。戻せるのは、純正のカーネルと rootfs のイメージを自分で持っている場合だけです(下の「純正に戻す」)。
-
導入した直後は、root のパスワードが空で、同じ LAN の誰でも SSH で入れます。 最初にログインして
passwdを実行してください。設定した後は、そのパスワードを聞くようになります。telnet は動いていません。 -
機器に元から入っている 3 つの部品を、起動のたびに使います。 OpenIRD はこれらを配布しません。純正の区画(mtd4・mtd5)を残したまま、読み取り専用で参照します。
- AV 用サブ CPU のファームウェア(mtd5 の
emma3sep_driver_std_op0.mem) - それを起動するカーネルモジュール(mtd4 の
csd.ko。起動時に 1 度だけ load して外す) - 復調器 MXL683 のファームウェア(mtd4 の純正アプリの中にあるものを、実行時に取り出す)
- AV 用サブ CPU のファームウェア(mtd5 の
- TS はヌルパケットを除いたものです。 機器が忙しいときに、まれに 1 パケット欠けることがあります。
-
PAT・PMT・CAT のどれにも載っていない PID は出ません(例: 21ch の
0x0135)。PMT から番組を選ぶ録画・再生には影響しません。 -
recpt1 を HTTP の TS サーバとして使うときは、recpt1 アドオン
1.2.0-77c7bce-4以降を勧めます(addons-for-oird)。-3は番組(SID)を指定した接続を閉じるとサーバが落ちることがあり、それより前の版は、長く流すと機器のメモリが足りなくなり、止まります。 -
カーネルと rootfs の区画は、どちらも 1 面しかありません。 起動しないイメージを書くと、戻すにはブートローダの解錠(所有者のパスワード)か、NAND を直接書く手段が要ります。更新(
sysupgrade)でフラッシュを書いている間(2 秒ほど)に電源が切れた場合も同じです。 -
カーネルのイメージには大きさの上限があります(uImage で
0x280000バイト)。超えると起動しません。openird-mkimageが作るときに弾きます。 - 時計は起動のたびに 1970 年から始まります(時刻合わせをしていない)。
- 録画や配信をするプログラムは入っていません。 recpt1 などは、アドオンとして後から載せます。
factory イメージを、純正の更新機構(UPnP)に渡します。機器が自分で取りに来て、再起動し、ブートローダが書き込みます。書かれるのはカーネル(mtd2)と rootfs(mtd3)だけで、ほかの区画は残ります。
確かめた条件: 純正ファームウェア 2.1.17 r3 が動いている状態から。投入から OpenIRD の起動まで 2 分ほどです。
-
factory イメージを用意する。 リリースから
openird-<版>-emma3sep-poe-br100-yb1-factory.binとSHA256SUMSを取り、SHA-256 を照合します。実機で確かめたのはv26.10-rc3・v26.10-rc5・v26.10-rc8・v26.10-rc9・v26.10-rc10のものです。 -
機器に渡す。 PC と機器を同じ LAN につなぎ、リポジトリの openird-fwup を使います。
uv run host/openird-fwup/openird_fwup.py discover uv run host/openird-fwup/openird_fwup.py flash <機器の IP> <factory イメージ> --confirm-flash--confirm-flashを付けなければ、計画を表示するだけで何も送りません。PC に LAN の口が複数あるときは--serve-ip <PC の IP>を付けます。 -
起動を確かめる。 OpenIRD が起動すると、機器は UPnP に出てこなくなります。アドレスは、まず
192.168.1.1を付け、DHCP で取れたらそれに替わります(DHCP にはホスト名openirdを名乗ります)。 -
ログインして、パスワードを設定する。
ssh root@<機器の IP>で、パスワードなしで入れます。入ったらpasswdを実行してください。設定するまでは、同じ LAN の誰でも root で入れます。 シリアルコンソールは要りません。
OpenIRD を入れた後は、純正の更新機構は使えません。次の版へは、下の「更新」で上げます。
動いている OpenIRD から、sysupgrade で次の版に上げます。カーネルと rootfs を書いて再起動し、設定とアドオンは残ります。
-
リリースから
openird-<版>-emma3sep-poe-br100-yb1-sysupgrade.binとSHA256SUMSを取り、SHA-256 を照合する。 - 機器の
/tmpに送る。scp -O openird-<版>-emma3sep-poe-br100-yb1-sysupgrade.bin root@<機器の IP>:/tmp/upgrade.bin-Oが要ります(機器に SFTP のサーバが無いため)。 - 機器に入って、検査してから更新する。
sysupgrade -T /tmp/upgrade.bin # 検査だけ。何も書かない sysupgrade /tmp/upgrade.bin # 更新
- 始めると、動いているものは全部止まり、SSH のセッションも固まります。20 秒ほどで新しい版が起動します。その間、電源を切らないでください。
- 違う機種のイメージや、壊れたイメージは、検査で断られます。書いた後の照合が合わなければ、元の版に戻して再起動する作りです(この巻き戻しは、実機のフラッシュではまだ起こしていません)。
- 設定を引き継がずに更新するには
sysupgrade -nを使います(書き込み層を空にします。実機ではまだ試していません)。 -
sysupgradeがあるのはv26.10-rc3からです。仕組みは docs/sysupgrade.md。
make BOARD=emma3sep_softbank_poe-br100-yb1 # rootfs
make kernel BOARD=emma3sep_softbank_poe-br100-yb1 # カーネル
make factory BOARD=emma3sep_softbank_poe-br100-yb1 # factory イメージ
factory イメージに包むには、更新用の鍵と ZIP パスワードが要ります。OpenIRD はこれらを配布せず、取り出し方も扱いません。 所有者が自分の機器から得た値を、ファイルで渡します(openird-mkimage の README)。公式の factory イメージは、保守者が預けた鍵を使って GitHub Actions が作ります(リリースの作り方)。
純正のカーネルと rootfs のイメージを、自分で持っている場合だけできます。純正の更新ファイルに入っているものですが、取り出すには更新用の鍵が要ります。OpenIRD は、純正のイメージも鍵も配りません。
動いている OpenIRD から、2 つの区画を書き戻します(2026-10-11 と 2026-10-13 に、2.1.17 のイメージで実施)。
- 2 つのイメージを機器の
/tmpに送り、チェックサムを照合する。 -
mtdと BusyBox を/tmpに写し、rootfs から動いているプロセスを止めて、シェルを/tmpの BusyBox に切り替える。やり方は rootfs の更新の手順と同じです。 -
mtd write <rootfs> /dev/mtd3→mtd verify、続けてmtd write <カーネル> /dev/mtd2→mtd verify。 -
syncして、/tmpの BusyBox でreboot -f(v26.10-rc3より前の版ではrebootが効かないので、電源を入れ直す)。
- 純正アプリ(mtd4)とファームウェア(mtd5)は、OpenIRD が書き換えないので元のまま残っています。書き戻すカーネルと rootfs は、それと同じ版のものにします。
- 純正のカーネルは、起動後シリアルに何も出しません。戻ったことは UPnP で確かめます(
openird-fwup discover)。 - 書いた直後の照合は
mtd verifyで行います。/dev/mtdblockNを読むと、古い内容のキャッシュが混ざって合いません。
Linux(WSL2 なら ext4 上)で行います。前提は docs/BUILDING.md。
make BOARD=emma3sep_softbank_poe-br100-yb1 # rootfs(先にこちら)
make kernel BOARD=emma3sep_softbank_poe-br100-yb1 # カーネル
- 出力は
output/<BOARD>/images/rootfs.img(mtd3 用・squashfs 3.1 ビッグエンディアン)とoutput/<BOARD>/vmlinux.img(mtd2 用・uImage)。 - GPL のカーネルソースは、
make kernelがメーカーの公開 URL から取ります(sha256 で検証)。ファイル名・入手先・sha256 は kernel/build.env にあります。
チューナーは起動時に自動で立ち上がります(/etc/init.d/S30tuner)。イメージに入っている確認用の ird-rec で、すぐ試せます。
ird-rec <ch 13..62> <秒> <file> # 例: ird-rec 27 6 /tmp/ch27.ts
ロックまでの時間、C/N、パケット数、連続性エラーと同期エラーの数を表示します。
recpt1 を載せてあれば、次のように使えます。
recpt1 --device /dev/irdvideo0 <ch> <秒> <file> # 録画
recpt1 --http <port> --device /dev/irdvideo0 # TS サーバにする
recpt1 は OpenIRD の一部ではありません。検証用に、上流の recpt1 をこの機種向けにビルドするスクリプト(tools/host/build-recpt1.sh)があります。
| mtd | 内容 | OpenIRD の扱い |
|---|---|---|
| 0 | U-Boot | 書かない |
| 1 | U-Boot の環境変数・MAC アドレス | factory イメージで導入するときに、環境変数の領域だけ書かれる(sysupgrade では触れない)。MAC アドレスは残る |
| 2 | カーネル(uImage) | 書き換える |
| 3 | rootfs(squashfs) | 書き換える |
| 4 | 純正アプリ | 残す(起動時に読む) |
| 5 | SoC のファームウェア | 残す(起動時に読む) |
| 6〜8 | 初期設定・ログ・アプリ設定 | 残す |
| 9 | 汎用の保存領域(yaffs2・64MB。カーネルでの名前は MassStorage)。純正アプリが番組表・局ロゴ・データ放送の保存データを置き、純正の更新機構がファイルの置き場に使う |
残す。OpenIRD は、この中の openird ディレクトリだけを使う(openird/overlay が root の書き込み層) |
| 10 | 不良ブロックの表 | 残す |
- 受け入れ検証の記録(recpt1 での録画、参照受信機との照合)
- 仕様: 生 TS の取り出し・AV のコマンド経路・復調器のファームウェア容器・信号経路の俯瞰
- 仕様: 更新コンテナ・UPnP の更新エンドポイント・NAND の書き込み機構
- アドオン