squeeze2upnp で YAMAHA NP-S2000 を Roon から利用する方法

Roon は UPnP / DLNA 機器を直接の出力先として扱えません
squeeze2upnp を使い Squeezebox 互換デバイスとして偽装することで利用できるようになります
Roon の Squeezebox 出力機能を利用し YAMAHA NP-S2000 を Roon から再生できるようにします

・本記事では YAMAHA NP-S2000 を例に説明しているが、UPnP / DLNA Renderer として正しく実装された機器であれば、同様の構成で利用できる可能性が高い


全体構成と役割

・Roon Server(Windows)
 Squeezebox プロトコルを出力する役割(LMS 代替)

・Linux PC
 squeeze2upnp を -z オプションで常駐起動しSqueezebox → UPnP / DLNA 変換を行う

・YAMAHA NP-S2000
 UPnP / DLNA Renderer として再生

ROON の設定

ROONの設定で
メニュー>セットアップ で「Squeezebox サポートを有効にする」 を YES にする必要がある


roon00

手順① Linux で squeeze2upnp をダウンロードして展開

・Linux PC に UPnPBridge(squeeze2upnp を含むパッケージ)をダウンロード
・zip を展開する


・ホームディレクトリの「ダウンロード」に展開
・UPnPBridge-3.4.1 ディレクトリが作成される

<ダウンロード先>
https://github.com/philippe44/LMS-uPnP 

こちらのサイトにアクセスしてページ下部の「Binary releases are here as well 」
から以下のファイルをダウンロード
→ UPnPBridge-3.4.1.zip  ※執筆筆時点(2025/12)

最新ファイルをサイトよりダウンロードして展開する
さまざまな環境用のファイルが含まれており Linux、Windows、MacOS、NAS を含む多数の OS と CPU アーキテクチャがサポートされている


手順② squeeze2upnp を一度実行して config.xml を生成

まずは設定ファイルを自動生成させるためオプションを付けずに一度起動する

cd ~/ダウンロード/UPnPBridge-3.4.1/Bin

sudo ./squeeze2upnp-linux-x86_64-static -i config.xml

・同じディレクトリ内に config.xml が生成される
・この時点では細かい設定は未調整で問題なし


手順③ nano で config.xml を編集する

生成された config.xml を nano で編集する

nano ~/ダウンロード/UPnPBridge-3.4.1/Bin/config.xml

主に調整するのは common セクション


config.xml の実用設定例(Roon + NP-S2000)
<?xml version="1.0"?>

<squeeze2upnp> <common> <streambuf_size>1048576</streambuf_size> <output_size>4194304</output_size> <stream_length>-3</stream_length> <enabled>1</enabled> <remove_timeout>180</remove_timeout> <codecs>aac,ogg,ops,ogf,flc,alc,wav,aif,pcm,mp3</codecs> <mode>thru</mode> <raw_audio_format>raw,wav,aif</raw_audio_format> <sample_rate>192000</sample_rate> <L24_format>1</L24_format> <flac_header>1</flac_header> <roon_mode>1</roon_mode> <force_aac>0</force_aac> <cache>1</cache> <forced_mimetypes></forced_mimetypes> <seek_after_pause>0</seek_after_pause> <live_pause>1</live_pause> <send_icy>1</send_icy> <volume_on_play>1</volume_on_play> <volume_feedback>1</volume_feedback> <send_metadata>1</send_metadata> <send_coverart>1</send_coverart> <max_volume>100</max_volume>

【ポイント】
・sample_rate をDACの対応サンプリングレートに指定します
・force_aac は 0 にして FLAC を優先
・roon_mode 0→1 で有効化する必要があります


手順④ ディレクトリに移動し実行権限を貸与

cd ~/ダウンロード/UPnPBridge-3.4.1/Bin

chmod +x squeeze2upnp-linux-x86_64-static 

【補足】
chmod +x は 最初の1回だけ必要で、PC再起動しても権限は保持されます


手順⑤ squeeze2upnp を起動する

起動

cd ~/ダウンロード/UPnPBridge-3.4.1/Bin
./squeeze2upnp-linux-x86_64-static -z -c config.xml

※  -z オプションによりデーモン化され、起動コンソールを終了しても動作を維持します

動作の停止

pkill squeeze2upnp

【補足】
・正しくデーモン化されSSH 切断後も動作を維持できます
・また、この方法ではアイドル時の CPU 使用率も安定します


動作確認のポイント

・Roon の出力先に Squeezebox 互換デバイスとして表示される
・再生ログに以下が出れば成功

  FLAC encoding
  NP-S2000: uPNP playing

・再生サンプリングレートはログで確認可能
・48kHz ソースは 48kHz のまま再生される


運用メモ

・nohup や systemd での常駐起動では CPU 使用率が高くなる場合がありました
・-z オプションを使った起動では CPU 使用率は安定し、常駐運用が可能でした
・本環境では -z を使った起動方法を推奨します