デュアルコアでRAM512MBの高性能()ルータを手に入れたので,録画できないか試してみました.
mirakcというMirakurunコンパチブルの軽量チューナ共有ソフトがありますが,Alpineでarmv6用イメージが公開されていることからルータレベルのショボい環境でも動くんじゃ無いかと思ったので挑戦です.
とりあえず,この記事ではrecfriioとlibaribb25のOpenWRT用パッケージを作ります.
はじめに
今回の環境:
- WZR-1750DHP / OpenWRT 22.03 bcm53xx
- HDUS
- よくわからんカードリーダー
- 青CAS
使用するチューナは適宜上HDUSとなっていますが,LDT-FS100Uです.
CPUはarmv7lとなっていますが,公式イメージではVFPが無効化されているよう?なのでハードフロートは使用できません.
*下記の準備が終わったソースは公開しているので,recfriioを使う以外に興味が無い方はSDKの用意まで飛ばして下さい
パッケージの準備
OpenWRTのビルドシステムでは,パッケージ毎にMakefileを用意し,そこにパッケージ生成方法を記述します.
それをfeedで参照してビルドするのですが,とりあえずMakefileを用意します.
recfriio
stz版のフォークであるhimalock版を使用します. https://github.com/himalock/recfriio
recfriioで必要となるパッケージはlibusb-1.0 glib2 libpthread libboost-system libboost-filesystem pkgconfigです.(Makefileより)
なのでMakefileをこんな感じに
https://git.haru3.me/haru/recfriio/commit/0352149dff9771a3c049a3415cdbe64a0eda4d37
結構めちゃめちゃやってますがビルドが通ったのでヨシ
内蔵しているb25は古いので使用しません.b25抜きでビルドできるように若干修正しています.
ついでにHDUS以外の追加コンポーネントはコメントアウトしてあります.
libaribb25
Mirakurunではarib-b25-stream-testを利用していましたが,あれは更新が止まっており大変古いので新しい物を使います.
フォークが色々あって迷うところですが,tsukumijima氏の物を使用しました.
こちらはcmakeプロジェクトなのでMakefileを追加します.
https://git.haru3.me/haru/libaribb25/commit/79219ed20701e4e7ec0872db445a2ba48974d1ec
SDKの用意
ソースの改造が終わったので,ビルドする為にSDKを用意します.
1.SDKのダウンロード
使用しているプラットフォーム毎に異なるので,各自落として下さい.場所はOpenWRTのイメージが公開されている所の下部です.
私の場合,bcm53xxでOpenWRT 22.03なので
https://downloads.openwrt.org/releases/22.03.0/targets/bcm53xx/generic/
ここの下部にある openwrt-sdk-22.03.0-bcm53xx-generic_gcc-11.2.0_musl_eabi.Linux-x86_64.tar.xz です.
使用しているOpenWRTとバージョンは合わせる必要があると思います.
2.インストール
作業ディレクトリは/rootです.
まず必須パッケージのインストール
詳細は https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem にディストリ毎に書いてあります.
私はArchなので
|
|
を実行.
次にSDKを触ります.
|
|
3.レポジトリの作成
feedsから参照出来るように,レポジトリを作成します.
まず,パッケージを格納するディレクトリを用意します.
場所は/root/mypackages/examples
としました.
そして上で改変したソースを追加
|
|
feedsに見てもらえるよう設定
|
|
インデックスを更新
|
|
参考にさせて頂きました: https://continue-to-challenge.blogspot.com/2019/08/openwrt_30.html
ビルド&インストール
それではパッケージを作成します.
|
|
成功すると,SDKのbin/packages/{アーキテクチャ}/mypackages/
にあるはずです.
|
|
これをscpあたりで/tmpに転送し,
|
|
でインストールできます.
依存パッケージは自動的にダウンロードされるはずなのでインターネットに繋いでおいてください.
https://mevius.5ch.net/test/read.cgi/avi/1602307605/
の140にあるリンクからSKNET_AS11Loader.sys
を抽出し,/lib/firmware/
にコピーするとas11loaderが読んでくれます.
改変版なので同じディレクトリに置いてなくても大丈夫.
おわりに
無事OpenWRTルータでもHDUSを用いて録画したり,B-CASでデスクランブルしたりできるようになりました.
動作中のCPU利用も大したことなく,軽量な録画サーバであれば十分ルータだけでやっていけそうです.
力尽きたので書くか分からないですが,mirakcを使って遠隔で視聴することも出来ました.