***************************************************************************************************

     Volumio2/3/4 : mpdweb インストール
                                                                              2025.12.04  ver.1.03
***************************************************************************************************
バッチインストールするので、Readme_mpdweb_volumio2.668以上.txt/Readme_mpdweb.txtと順序が一部異なる
nginx/sambaについてもバージョンを確認していないのでVolumio2/Debianのバージョンが異なる場合は動作の保証外となる
かなり,乱暴にインストールしているので環境バージョンに合わせて修正してください。

今回,Volumio4に合わせて改訂となった。

同封Filemで使用するファイル
  1.Readme_volumio.txt  : Readme(本ファイル)
  2.install_volumio.sh  : Volumioベース設定
  3.install_mpdweb.sh   : mpdweb インストール

1 メモリにVolumioを書き込み
  書き込み方法は調べてください。

2.ssh login を許可
  RC2 途中からSSHがマスクされているので許可
  URL:http://volumio.local/DEV → SSH : ENABLE

3.Installファイル一式コピー
  Windows PCから ネットワーク：「\\volumio\Internal Storage」
  Installファイル一式コピー: mpdweb_inst.zipを解凍
  Internal Storageに以下モジュールをコピーする
     install_mpdweb.sh
     install_volumio.sh
     douwnload したmpdweb_{バージョン}.tar.gzをコピー

4.Telnet ssh でLogin
  HostName : volumio.local
  login    : volumio
  password : volumio

 $ sudo passwd root
 [sudo] password for volumio: volumio← volumioのパスワードを入力
  Enter new UNIX password:           ← 設定するパスワードを入力(volumio)
 Retype new UNIX password:           ← 設定するパスワードを入力
 
  ※Volumio4ではvolumioで設定されていた。

5.shellの日本語化を行う
  ファイル名など日本語表示する場合
  $ su –
    Password:volumio　←Password
  # dpkg-reconfigure locales
    ja_JP.UTF-8 選択する
  "OK" を選択し確認
    en_US.UTF-8
    ja JP.UTF-8

  # export LANG=ja_JP.UTF-8
  # exit 
  再度「su」で変更が確認


6.Install volumio環境作成
 $ su -
  Password:
 
 # cd /mnt/INTERNAL

 Volumioの場合(PHP5)
   # chmod 0755 install_volumio.sh
   # ./install_volumio.sh

  URL: http://volumio.local:88/ で使用できるか確認

   ※PHPのバージョンによりWebが動作しないとき(install_volumio.shでは検索しているが )
      /etc/nginx/sites-enabled/default
      60行目付近 : fastcgi_pass unix:/run/php/php7.3-fpm.sock;
      バージョンを合わせる必要がある。
     PHPのバージョンを確認するのは
      $ php -v

   ※Volumioを停止するとUSBDeviceがMountされない
     Volumio4で確認し対応状況：start.d/startp_volumio.confでは対応している
      mv /etc/udev/rules.d/99-com.rules /etc/udev/rules.d/99-com.rules.disabled
      mount /dev/sda1 /media
     でMountする。AutoMountされないことに注意

7.viを Copy&Pasteできるようにする
  クリップボードの内容をはりつけることができない対応
  viを使用するuserにlogin

  # echo "set clipboard=unnamed,autoselect" > ~/.vimrc

  もしくは
    # vi ~/.vimrc
      set mouse-=a
    を挿入する。

8.Install mpdweb
 環境に合わせて install_mpdweb.sh のWEBTOPを変更
  Volumioの場合は変更しなくても良い
  WEBTOP=/var/www/html

 # cd /mnt/INTERNAL
 # chmod 0755 install_mpdweb.sh
 # ./install_mpdweb.sh

9.Volumio2/3/4を使用してDACを設定する


10.HDMIをALSAに追加する場合
   mpdweb/Readme/"付録 RaspberryPIにHDMIを追加する.txt"参照
   # vi /boot/userconfig.txt
   hdmi_drive=2
   hdmi_force_hotplug=1
   hdmi_blanking=2
  で設定する。config.txtはVolumioに変更されることがある。

    
    hdmi_blanking=2でEDID交渉が崩れる場合
      hdmi_blanking=0
    にする。

    hdmi_blanking
      0 :ブランキング無効（従来方式）	互換性は高いが、画面乱れが出る場合あり
      1 :VESA方式ブランキング	PCモニタ向け
      2 :CEA方式ブランキング	TV / HDMI機器向け（推奨）

  # reboot

  /etc/asound.conf,/etc/mpd.conf にhdmiを追加するが
  Volumioに戻されてしまう。
  /var/www/html/mpdweb/start.d/startp_volumio.conf.sumpleを
  startp_volumio.confにRenameして有効にする
    /etc/asound.conf.myconf <------ asound.conf追加分
    /etc/mpd.conf.now <------------ mpd.confにコピーする
  を用意しておく

/etc/asound.conf.myconfを作成しておく
pcm.hdmi_stereo {
    type hw
    card b1       # カード名（/proc/asound/cards で確認）
    device 0      # デバイス番号（aplay -l で確認）
    channels 2    # ステレオ出力
    }

mpd.confを編集後
# cp mpd.conf mpd.conf.now


11.sambaの設定補足
  workgroupを変更
  # vi /etc/samba/smb.conf
  --------------------------------------------------------------------
  [global]
  workgroup = {WorkgroupName} 

  samba 再起動
  # /etc/init.d/samba restart

12.ファイル共有を設定する
  (1) www/mpdweb/mount.dを編集する。
     $ su -
     # /etc/init.d/mpdmount restart

  (2) mpdweb 共通ファンクション 「MPDWeb Config」「Mount」を使用してMount
  (3) Volumio2/3を使用してマウントする。

13.Volumio2/3/4停止をサンプルとして用意しているが使用することができる
   # mv /var/www/html/mpdweb/start.d/startp1.conf.sample /var/www/html/mpdweb/start.d/startp1.conf
   # chmod 0755 /var/www/html/mpdweb/start.d/startp1.conf ←バーミッションは必要に応じ
    Windows PCから ネットワークで変更でも可。

14.mpdwebの支援ソフト「mpdweblink」で「Last.FM」にアクセスできない場合
   $ curl -fsSL {URL} ←適当なURL
   テキスト表示する場合，以下のコマンドを実行
   curlがインストールされていない場合はインストール（方法は各自各ディストリ―ビュージョン参照）
   $ sudo sh -c "sync; echo 1 > /proc/sys/vm/drop_caches"
   $ sudo sh -c "sync; echo 2 > /proc/sys/vm/drop_caches"
   $ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
   $ export NSS_SDB_USE_CACHE=YES
   ※ mpdweblink/mpdweblink_readme.txt参照

15.付録 Volumioを停止するとUpmpdcliが停止する(DLNAからキャストできない)

 -- Volumip4の場合 -------------------------
# vi /etc/systemd/system/upmpdcli.service
[Unit]
Description=UPnP Media Renderer front-end for MPD
After=network.target sound.target

[Service]
ExecStart=/usr/bin/upmpdcli
Restart=on-failure

[Install]
WantedBy=multi-user.target

# systemctl daemon-reexec
# systemctl enable upmpdcli
# systemctl start upmpdcli

開始を確認
# ps -ef | grep upmpdcli
upmpdcli   794     1  1 16:51 ?        00:00:01 /usr/bin/upmpdcli


 -- Volumip3までの場合特に service unit で起動していないバージョン -----
   「付録 Volumioを停止するとUpmpdcliが停止する(DLNAからキャストできない).txt」より
# vi /etc/upmpdcli.conf

# cp /etc/init.d/upmpdcli /etc/init.d/upmpdmyset
# systemctl stop upmpdcli
# systemctl disable upmpdcli
# systemctl enable upmpdmyset
# systemctl start upmpdmyset

開始を確認
# ps -ef | grep upmpdcli
00:00:52 /usr/bin/upmpdcli -D -c /etc/upmpdcli.conf
                                 ~~~~~~~~~~~~~~~~~~を使用してることを確認する


16 at Task予約Install
# apt update
# apt install at
# systemctl enable --now atd.service

mpdwebのTaskを予約するUnit
# systemctl enable /var/www/html/mpdweb/service/mpdatset.service
# systemctl start mpdatset.service
確認は
# atq
1       Fri Dec  5 03:00:00 2025 a root

※ at の実行権限
  実行権限を作成の場合
    /etc/at.allow : 設定userが at を使える
    /etc/at.deny  : 設定userが at 以外が使える
  両方ない場合 → root のみ使用可能

15.画像表示ライブラリの確認とインスト―ル
   PHPの画像GDライブラリ通常がインストールされている。
   GDライブラリ install
     debian系/Volumio2
      apt-get install php-gd
   確認方法
      php -i "(command-line 'phpinfo()')" | grep GD
  
   GDライブラリより高速で高機能なImageMagicをインストールする場合
    install
     debian x64系
      jpgでの出力に,GDを使用するため上記,GDもインストールする必要がある。
      apt-get install php-gd
      apt-get install imagemagick
      apt-get install libmagickwand-dev
      apt-get install php-imagick (PHP7以降)
   mpdartlistは，ImageMagicがあれば画像大きさにより使用する。

16.shellプロンプトにPathを表示する
  # cd
  # cp /home/volumio/.bashrc .


17.静的 IP を設定

# vi /etc/dhcpcd.conf

最後に追加
interface eth0
static ip_address=192.168.x.xxx/24
static routers=192.168.x.x
static domain_name_servers=192.168.x.x 8.8.8.8

# systemctl restart dhcpcd
で確認この段階ではDHCP＆静的IP２つついている

# ip address
正しいのを確認し

# systemctl stop dhcpcd
# systemctl disable dhcpcd
# reboot
IPを確認する


18.Volumio拡張Install
Volumio Installを更に拡張する

# chmod 0777 install_volumio_extend.sh
# ./install_volumio_extend.sh

  Volumioを停止するとUSBストレージをマウントを解除する。
  Volumioを停止してもUSBストレージを使用できるようにする。
  更にstartp_volumio.confを使用しているので
    /etc/mpd.conf,now --- /etc/mpd.conf
    /etc/udev/rules.d/99-com.rules : Volumio USB Disable
       And Mount USB Mount
     volumio.sh vstop : Volumio Stop
     ALAS : HDMI Stereo
  を設定する。

   ※USBをMountする注意をShellで実行する
    Volumio4はUSBHDDをmount/unmountしているので
    Volumioを停止するとUSBをunmountする。
    ruleを無効化すれば、Volumioと切り離して使用できる
    # mv /etc/udev/rules.d/99-com.rules /etc/udev/rules.d/99-com.rules.disabled

    Volumioと同じMountPointを使用する場合
    # mount /dev/sda1 /media

    mpdweb/start.d/startp_volumio.conf
    で無効化は有効にできる

19.minimserverのinstall
------ Java 8 (LTSのinstall -----------
https://www.azul.com/downloads/?package=jdk#zulu
(# wget https://cdn.azul.com/zulu-embedded/bin/zulu8.68.0.21-ca-jdk8.0.362-linux_aarch32hf.tar.gz)
Java 8 (LTS)から選択する

RaspberryPi2の場合 ARM 32-bit HF
# mkdir zulu
# tar -xvzf zulu8.68.0.21-ca-jdk8.0.362-linux_aarch32hf.tar.gz -C zulu
   例)# export JAVA_HOME=~/zulu/zulu8.68.0.21-ca-jdk8.0.362-linux_aarch32hf
# export JAVA_HOME=/usr/local/src/zulu/zulu8.68.0.21-ca-jdk8.0.362-linux_aarch32hf
# export PATH=$JAVA_HOME/bin:$PATH

------ MinimServer-2.2のinstall -----------

https://minimserver.com/downloads.html

Downlaod
・ inux ARM hard flot

# tar -xvzf MinimServer-2.2-linux-armhf.tar.gz
# cd minimserver
# cd bin

# ./setup
起動(Test)
# ./startc

http://{Host}:9790/

------ MinimServer Service Unit -----------

# vi /etc/systemd/system/minimserver.service

[Unit]
Description=MinimServer 2
After=network.target

[Service]
Type=simple
Environment="JAVA_HOME=/usr/local/src/zulu/zulu8.68.0.21-ca-jdk8.0.362-linux_aarch32hf"
Environment="PATH=/usr/local/src/zulu/zulu8.68.0.21-ca-jdk8.0.362-linux_aarch32hf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/usr/local/src/minimserver/bin/startc
ExecStop=/usr/local/src/minimserver/bin/stopc
Restart=on-failure
User=root
WorkingDirectory=/usr/local/src/minimserver

[Install]
WantedBy=multi-user.target

# systemctl daemon-reexec
# systemctl enable minimserver
# systemctl start minimserver

http://{Host}:9790/

初期設定をすることしないとFolderが見えない
"I accept the MinimServer license terms" → Confirm

/mnt/USB
/mnt/NAS
