Synology NAS向けクロスコンパイル環境を用意し、px4_drv をコンパイル・インストールする事で、NAS上から以下のTVチューナーを認識できるようにします。
- PLEX
- PX-W3U4
- PX-Q3U4
- PX-W3PE4
- PX-Q3PE4
- PX-W3PE5
- PX-Q3PE5
- PX-MLT5PE
- PX-MLT8PE
- e-Better
- DTV02-1T1S-U (実験的)
- DTV02A-1T1S-U
- DTV02A-4TS-P
実行手順
実行手順の前提条件
- DSM 7.2
- パッケージセンター:Container Manager のインストール、実行
- パッケージセンター:Git Server のインストール、実行(構築作業が終えれば停止またはアンインストール可能)
- SSHサービスの有効化
$ sudo -i
GitHub:collelog/synology-make-px4_drv
# 任意の場所で問題ありません
$ cd /volume1/docker
$ git clone https://github.com/collelog/synology-make-px4_drv.git
$ cd synology-make-px4_drv
$ docker build -t collelog/syno-make-px4_drv -f [DSMバージョン]-[CPUパッケージアーキテクチャ].Dockerfile .
# 例
$ docker build -t collelog/syno-make-px4_drv -f 7.2-denverton.Dockerfile .
$ docker run --rm --name syno-make-px4_drv -v [出力先(ホスト側フルパス)]:/build_env/toolkit/results_file/px4_drv -i -d collelog/syno-make-px4_drv
# 例:/volume1/docker/synology-make-px4_drv/resultを事前にディレクトリ作成し、指定した場合
$ docker run --rm --name syno-make-px4_drv -v /volume1/docker/synology-make-px4_drv/result:/build_env/toolkit/results_file/px4_drv -i -d collelog/syno-make-px4_drv
$ ls [出力先(ホスト側フルパス)]
# 例:Dockerコンテナ実行時に/volume1/docker/synology-make-px4_drv/resultを指定した場合
$ ls /volume1/docker/synology-make-px4_drv/result
以下のファイルが存在することを確認します。
- it930x-firmware.bin
- px4_drv.ko
$ cd [出力先(ホスト側フルパス)]
# 例(/volume1/docker/synology-make-px4_drv/resultを指定した場合)
$ cd /volume1/docker/synology-make-px4_drv/result
$ chmod 755 it930x-firmware.bin px4_drv.ko
$ cp -p it930x-firmware.bin /lib/firmware/
$ cp px4_drv.ko /usr/lib/modules/
insmod /lib/modules/px4_drv.ko
$ lsmod | grep -e ^px4_drv
px4_drv 99313 4
px4_drv から始まる行が表示されれば、カーネルモジュールが正常にロードされています。
PLEX PX-W3U4/PX-Q3U4/PX-W3PE4/PX-Q3PE4/PX-W3PE5/PX-Q3PE5を接続した場合
$ ls /dev/px4video*
/dev/px4video0 /dev/px4video2 /dev/px4video4 /dev/px4video6
/dev/px4video1 /dev/px4video3 /dev/px4video5 /dev/px4video7
PLEX PX-MLT5PE/PX-MLT8PEを接続した場合
$ ls /dev/pxmlt5video*
/dev/pxmlt5video0 /dev/pxmlt5video2 /dev/pxmlt5video4
/dev/pxmlt5video1 /dev/pxmlt5video3
$ ls /dev/pxmlt8video*
/dev/pxmlt8video0 /dev/pxmlt8video3 /dev/pxmlt8video6
/dev/pxmlt8video1 /dev/pxmlt8video4 /dev/pxmlt8video7
/dev/pxmlt8video2 /dev/pxmlt8video5
DSM 上で開く設定画面
[コントロール パネル] > [タスク スケジューラー] > [作成] – [トリガーされたタスク] – [ユーザー指定のスクリプト]
[ユーザー指定のスクリプト] 画面で入力する設定値
- タスク: insmod px4_drv (任意)
- ユーザー:root
- イベント:ブートアップ
- ユーザー指定のスクリプト:insmod /lib/modules/px4_drv.ko
DSMのタスクスケジューラにカーネルモジュールのロードコマンドを登録することで、ブートアップ時にpx4_drvが自動でロードされます。