LibreELEC の BOINC クライアントを RPC で制御する


LibreELEC のアドオンで BOINC クライアントを走らせていますが、プリインストールされた BOINC Manager で制御するように Docker コンテナが作られています。そのせいか、外部から RPC がつながりません。他の BOINC クライアントは、OpenMediaVault の Scheduled Jobs を利用して状況取得 & メールしているので、LibreELEC にも RPC が繋がればできるのにな〜と思っておりました。

ちょっと時間ができたので、あれこれググりながらやってみたら、とりあえずできました。でもアドオン(コンテナ)を更新したら元に戻ってしまうと思うので、やり直せるように記録しておきます。

  1. LibreELEC へ ssh でログイン
  2. BOINC アドオンの起動用スクリプトがあるディレクトリへ移動
# cd /storage/.kodi/addons/docker.linuxserver.boinc/bin
  1. 念のためバックアップ
# cp docker.linuxserver.boinc docker.linuxserver.boinc_ORIG
  1. 編集します
# vi docker.linuxserver.boinc
  • 編集する前はこの内容でした
#!/bin/sh

name="boinc"

・・・・・・・中略・・・・・・・

docker run --name="$name" \
           --rm \
           --network=lsio \
           --hostname="Boinc-LibreELEC" \
           -e WARNING_MSG="DO NOT CONTROL THIS IN PORTAINER!" \
           -e PUID="65534" \
           -e PGID="100" \
           -e TZ="$TIMEZONE" \
           -p "$P_port":8080 \
           -v "$V_config":/config \
           $D_vaapi_args \
           $E_additional \
           "$DOCKERIMAGE"
           -p "$P_port":8080 \
1行追加     -p "31416":31416 \
           -v "$V_config":/config \
  1. BOINC のデータファイルがあるディレクトリへ移動
# cd /storage/.kodi/userdata/addon_data/docker.linuxserver.boinc
  1. RPC を有効にします
# vi cc_config.xml
  • こんな中身にします (元は無かったファイル)
<cc_config>
  <options>
     <allow_remote_gui_rpc>1</allow_remote_gui_rpc>
  </options>
</cc_config>
  1. RPC のパスワードを確認 (同じディレクトリ)
# cat gui_rpc_auth.cfg
(半角英数字が32文字入っていました)
  1. BOINC コンテナを停止
# docker ps --no-trunc
CONTAINER ID                                                       IMAGE               COMMAND             CREATED             STATUS              PORTS                                        NAMES
a24984d93d148b9f551c7266851145566dfb02c1b060527ced4fadf2c3f809f6   linuxserver/boinc   "/init"             4 days ago          Up 21 minutes       3000/tcp, 3389/tcp, 0.0.0.0:8088->8080/tcp   boinc
# docker stop a24984d93d148b9f551c7266851145566dfb02c1b060527ced4fadf2c3f809f6
a24984d93d148b9f551c7266851145566dfb02c1b060527ced4fadf2c3f809f6
  1. 停止したのを確認しつつ、自動的に起動するのを待ちます (LibreELEC が再起動してくれる)
# docker ps --all --no-trunc
# docker ps --all --no-trunc
# docker ps --all --no-trunc
# docker ps --all --no-trunc
CONTAINER ID                                                       IMAGE               COMMAND             CREATED                  STATUS              PORTS               NAMES
88aa0ee935fa88b53ed7f4b30283ff4be6c5c297e70208edc28266adffe72cdf   linuxserver/boinc   "/init"             Less than a second ago   Created                                 boinc
  1. ポート番号31416が公開されたのを確認
# docker ps --all --no-trunc
CONTAINER ID                                                       IMAGE               COMMAND             CREATED             STATUS              PORTS                                                                  NAMES
88aa0ee935fa88b53ed7f4b30283ff4be6c5c297e70208edc28266adffe72cdf   linuxserver/boinc   "/init"             18 seconds ago      Up 17 seconds       3000/tcp, 3389/tcp, 0.0.0.0:31416->31416/tcp, 0.0.0.0:8088->8080/tcp   boinc
  1. BOINC Manager から接続してみる

おしまい。お疲れ様でした(笑)


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です