0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【debian12】xrdp+pipewire-module-xrdpでRDP接続先のサウンドをローカルで鳴らす

Posted at

■xrdp側の環境
 クライアント側は「ローカルで音を出すよ」って宣言できるrdpクライアントなら何でも良い

$ lsb_release -d
No LSB modules are available.
Description:	Debian GNU/Linux 12 (bookworm)

■xrdpサーバ側のサウンドドライバが「ダミー出力」や「Dummy Output」では音が出ないというのが課題

image.png

■xrdpサーバ側の現状
 xrdpのモジュールを入れるかソースからコンパイルするかが必要な状況

$ dpkg -l | awk '$1 ~ /ii/ && $2 ~ /xrdp|remmina/{print $2,$3,$4}'
xorgxrdp 1:0.9.19-1 amd64
xrdp 0.9.21.1-1 amd64

■サーバ側バックポートを追加、backports版のxrdpモジュールを使う
 debianはデフォルトがpulseaudioではなくpipewireなので。

$ tail -3 /etc/apt/sources.list
# pipewire-module-xrdp 
deb http://deb.debian.org/debian/ bookworm-backports main non-free-firmware contrib non-free

■bpo12版のxrdpとpipewire-module-xrdpをインストールして対処
 「-t bookworm-backports」でリポジトリを指定

$ sudo apt-get update

$ apt-cache search pipewire-module-xrdp
pipewire-module-xrdp - audio over xrdp for PipeWire based systems

$ sudo apt-get purge xrdp
$ sudo apt-get install -y pipewire
$ sudo apt-get -t bookworm-backports install -y xrdp pipewire-module-xrdp

$ dpkg -l | awk '$1 ~ /ii/ && $2 ~ /xrdp|remmina/{print $2,$3,$4}'
libpipewire-0.3-modules-xrdp:amd64 0.2-2~bpo12+1 amd64
pipewire-module-xrdp 0.2-2~bpo12+1 all
xorgxrdp 1:0.9.19-1 amd64
xrdp 0.9.24-5~bpo12+1 amd64

■xrdp起動エラーの対処
 証明書を読み込む権限のお話なので

$ sudo systemctl restart xrdp.service
...
xrdp[2573]: [ERROR] xrdp_iso_send: trans_write_copy_s failed
$ sudo adduser xrdp ssl-cert
$ sudo systemctl restart xrdp.service
$ sudo systemctl status xrdp.service 

■クライアント側に必要なのはremminaだけ。backports版である必要はない

$ dpkg -l | awk '$1 ~ /ii/ && $2 ~ /xrdp|remmina/{print $2,$3,$4}'
remmina 1.4.29+dfsg-1 amd64
remmina-common 1.4.29+dfsg-1 all
remmina-plugin-rdp:amd64 1.4.29+dfsg-1 amd64
remmina-plugin-secret:amd64 1.4.29+dfsg-1 amd64
remmina-plugin-vnc:amd64 1.4.29+dfsg-1 amd64

■remminaクライアント側は「ローカル」で鳴らすように設定するだけ

image.png

■xrdpサーバ側で出した音がローカルで鳴る
 音質の途切れ具合いはレイテンシ等の調整でなんとかなる気はするけど?

$ sudo ps aux | awk '/pw-cl[i]/{print substr($0,68)}' | awk '{for(a=1;a<=NF;a++){print "  "$a}}'
  pw-cli
  -m
  -d
  load-module
  libpipewire-module-xrdp
  sink.node.latency=2048
  sink.stream.props={node.name=xrdp-sink}
  source.stream.props={node.name=xrdp-source}

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?