◇ubuntu20.04でfoobar2000-UPnP
以前の記事 ◇foobar2000UPnPをUbuntuで実行 を元にubuntu20.04でfoobar2000を動くようにした手順です。
foobar2000-UPnP(ハイレゾ対応DLNAオーディオ・ネットワーク・サーバ)を
Ubuntu20.04(Linux)上で
Wine(Windowsエミュレータ)を使って
動かします。
◇foobar2000UPnPをUbuntuで実行 と次の違いが有ります。
- exFatが標準となったので記述から外した
- Wineのインストール手順が変わった
- foobar2000のservice化が出来た
OSのインストール・基本設定
OSのインストールと基本の設定です。操作をWindowsのWinSCP,TeraTermから行うように設定します。
sd(foobar2000.exe同梱の楽曲媒体)
今回動かすfoobar2000は楽曲データと共にSDカードに入れられており、インストール作業なしで.exeを動作させることが出来ます。
◆foobar2000+UPnPをポータブルにする,
◇WalkmanのSDにfoobar2000DLNA同梱参照
SDカードは次のフォルダ構成をとっています。
+-- foobar2000_bin/
| +-- foobar2000.exe
| +-- components/
| +-- playlists-v1.3/ foobar2000のプレイリスト
| ...
+-- MUSIC/ 楽曲情報(iTunesのMusic,walkmanのMUSIC)
| +-- Bach/
| +-- Bartok/
| +-- Beethoven/
| ...
| +-- e-onkyo/ ダウンロードしたハイレゾ楽曲
| | +-- Bach/
| | +-- Bartok/
| | +-- Beethoven/
| | ...
| +-- mora/
| +-- *.m3u8 foobar2000以外のプレイリスト(walkman,minimServ,miniDLNA)
+-- wineFoobar.sh Ubuntuでservice起動
+-- startFoobar.sh Ubuntuでfoobar2000手動起動
+-- killFoobar.sh Ubuntuでfoobar2000手動停止
+-- foobar2000.bat Windowsでfoobar2000手動起動
Windowsでfoobar2000-UPnPを動かすだけなら、sdカードを挿し、foobar2000.batまたはfoobar2000_bin/foobar2000.exeで起動できます。
walkmanで聴くなら単にsdを挿せばよいようになっています。
DLNAサーバ minimServ,miniDLNA もこのMUSICフォルダを参照する形で動作可能です。
Wineのインストール・GUIで動作確認
「日経Linux編 Linuxスタートブック 2020 Windowsのように使いこなす」の「第3章 Part 6 Wineの使い方 page100」を参考にしました。
**** Windows TeraTermから **** ==== 旧版削除 $ sudo apt remove wine ==== 32bit動作を可能とする(foobar2000は32bitアプリ) $ sudo dpkg --add-architecture i386 ==== Ubuntu 20.04 LTS用リポジトリ―登録 $ sudo wget -nc https://dl.winehq.org./wine-builds/winehq.key $ sudo apt-key add winehq.key $ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' ==== wineインストール $ sudo apt update $ sudo apt install --install-recommends winehq-stable ==== winbindを更新 wine起動が次のエラーとなる場合 Make sure that ntlm_auth >= 3.0.25 is in your path. winbindを最新版に置き換える必要があります。 $ sudo apt-get remove winbind && sudo apt-get install winbind **** 本体コンソールでGUIによる設定 **** $ winecng -- GUI操作により次の設定を行う wine mono インストール Wine設定 Windowsバージョン [windows10] -- **** TeraTermで **** $ cd $ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks $ chmod +x winetricks $ sudo mv winetricks /usr/local/bin/ $ sudo apt install cabextract $ winetricks cjkfonts **** 本体コンソールでfoobar2000起動 **** 媒体のフォルダに移動後 /media/ユーザ/ドライブ名 > cd foobar2000_bin > wine foobar2000.exe foobar2000の画面が出るので、DLNAクライアントから動作確認

ここではhost名はubunNoteだが表示は大文字になっている
SDの起動時自動マウント
デフォルトではexfat-sdはユーザlogin時に/media/ユーザ名下にマウントされます。
foobar2000をserviceとして動かすにはマウントポイントを固定化し、システムの起動時にマウントされなければなりません。
**** Windows TeraTermから **** ==== マウントポイントを作成しておく $ sudo mkdir /media/foobar # 'foobar'は任意 ==== blkidコマンドでSDのUUIDを調べる $ mount ・・・・ /dev/mmcblk0p1 on /media/ユーザ名/ドライブ名 type exfat (rw,nosuid,nodev.... ・・・・ $ sudo blkid /dev/mmcblk0p1 /dev/mmcblk0p1: LABEL="foobar" UUID="3932-6238" TYPE="exfat" ===== /etc/fstabに設定する $ cd /etc $ sudo cp fstab fstab.sav $ sudo vi fstab --- 以下の1行を最後に追加 UUID="3932-6238" /media/foobar exfat nofail 0 0 --- 間違うと起動できなくなる可能性もあるので慎重に ===== リブート $ sudo reboot マウントされたことを確認する
Wine/foobar2000のservice化
WineはGUIアプリですが、サービス化はGUIを用いません。
このため画面を表示しないX-Windowプログラムxvfbを導入します。Wine自体は画面を出す手続きを行うのですが、xvfbがそれを受け取った上で捨てます。
**** Windows TeraTermから **** ===== xvfbインストール $ sudo apt-get install xvfb
service化するスクリプト wineFoobar.sh は次の様になっています。
#!/bin/bash Xvfb :7 -screen 0 800x600x8 & export DISPLAY=:7.0 wine ./foobar2000_bin/foobar2000.exe >/dev/null
このスクリプトをserviceとして動かします。
**** Windows TeraTermから **** ===== /systemd/system/wineFoobar.service作成 $ sudo vi /etc/systemd/system/wineFoobar.service ------------------------ [Unit] Description = foobar2000 on wine [Service] StartLimitBurst=0 WorkingDirectory=/media/foobar/ ExecStart = /media/foobar/wineFoobar.sh Restart = always Type = simple [Install] WantedBy = multi-user.target ---------------------- ===== サービス起動/確認/自動起動設定 $ sudo systemctl start wineFoobar $ sudo systemctl status wineFoobar $ sudo systemctl enable wineFoobar
媒体更新手続き
媒体の更新は次のように行います。
$ sudo syetemctl stop wineFoobar $ sudo umount /media/foobar 媒体を抜く 内容を置き換える windowsで「iTunes->walkmanSD」ツールで転送後 そのままfoobar2000を起動し、Library->stopUpnp/startUpnpし クライアントからアクセス確認 必ずfoobar2000を終了させてから媒体をwindowsから抜く 媒体挿入 $ (sudo mount /media/foobar) 不要:挿入すれば自動マウント $ ls /media/foobar $ sudo systemctl start wineFoobar $ sudo systemctl status wineFoobar
メモ(apacheなど)
| 固定リンク

