それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

mirakurun の b25テストが古いのかもしれないので、最新版のビルドに変えた。

mirakurun(docker)に同梱されている arib-b25-stream-test が古い

どれくらい古いのかというと、6年前にnpm に出されたままだ。

しかもnpmのくせに、C言語をmake install するだけのパッケージである。npmにあがってるので、TSを期待して探してたら完全にmake install だけでした。

しかたないので、dockerをビルドして使うことにした

mirakurun のdocker-compose.ymlの先頭を見ると、次のようになっていて、ビルドがしやすくなっている。

cat docker-compose.yml
version: "3.7"
services:
  mirakurun:
    build:
      context: ./
      dockerfile: docker/Dockerfile
    image: chinachu/mirakurun:latest
    container_name: mirakurun
mkdir docker
touch docker/Dockerfile
touch docker/install.sh

サクッと dockerfileを書いて

FROM chinachu/mirakurun:latest

COPY docker/pcsc.tgz  /app
COPY docker/pcsc-install.sh /app
##
RUN apt-get update && \
  apt-get upgrade -y && \
  apt-get -y install git cmake pkg-config libpcsclite-dev


RUN /app/pcsc-install.sh

ビルド時に必要なライブラリを追加する

#!/usr/bin/env bash


tar zxvf pcsc.tgz
cd pcsc
make

cp libpcsclite.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libpcsckai.so
sed '/Libs:/s|lpcsclite|lpcsckai|' \
   /usr/lib/arm-linux-gnueabihf/pkgconfig/libpcsclite.pc  \
   >/usr/lib/arm-linux-gnueabihf/pkgconfig/libpcsckai.pc


cd /opt/node_modules/arib-b25-stream-test/src
sed -i 's|libpcsclite|libpcsckai|'  Makefile
make all
make install

cd /app
git clone --depth 1  https://github.com/tsukumijima/libaribb25.git
cd libaribb25
mkdir build
cd build
cmake -DWITH_PCSC_PACKAGE=NO -DWITH_PCSC_LIBRARY=pcsckai ..
make install
cp /usr/local/bin/arib-b25-stream-test /opt/bin/arib-b25-stream-test
cd /app


echo end

これで、docker版のmirakurun でも、b25やrecdvb関連のコマンドで動作チェックが可能になった。ずいぶん昔に買って放置しているUSBのチューナーや自作のアンテナケーブルが多くあり、ちゃんと動くか片っ端からテストしたいので手軽にDocker環境が作れるのは嬉しい。

chinachuまるごと入れても良かったのだが、chinachu のpm2エラーログが溢れまくってraspiのSDカードもUSBメモリも破壊されたので、使いたくありません。

2023-07-27追加

pcscd が動かなかったので、docker file を見直した(apt upgrade を追加)