見出し画像

続:xrdpと戯れる(xrdp de GPU)+α(win de GPU)

はじめに

「xrdpでxrdp server側のGPUを使えると快適になるかも?」、と、ふと、邪な神様がご降臨。
まずは、ネットの海に。

xrdp de GPU

ネットを彷徨ってみると、どうも、ArchLinuxには、Intel CPU内のGPUをxrdpで使えるパッケージがある[1] のを発見。

[1] https://aur.archlinux.org/packages/xorgxrdp-glamor

でも、自分が使っているubuntu機(都合よくIntel CPU)にはなかったので、[1]をよく読むと、[2]を発見。

早速、野良ビルド。

[2] https://gist.github.com/.../b4ce5a130e5b8de4e8d1db6b7965eedc

都合よく、ubuntu22のapt installで取れるxrdpの版で、pulseaudio使えるようにpulseaudio-module-xrdpを野良ビルドしていたので、[2]を参考にxrdp本体とxorgxrdpを野良ビルドしてインストール、再度、pulseaudio-module-xrdpをビルド&インストールして、音声もRDP経由で聞こえるように。

結果

chrome上のyoutubeとかをxrdpが動いているubuntu機で動かして、素のxrdp経由と比較すると、GPUを使う版のxrdp経由では、なんか爆速感が。
conkyで見ていると、GPUのclockも変化するようになったので、GPUを使っている様子。

Chromeでみても、GPUを使ってくれている様子。


Chrome on ubuntu on Surface

やっと、xrdpでIntel GPUが使えるようになった。(^^)

JP配列問題、再発

今回野良ビルドしたxrdp、0.10.80版では、keylayoutだけでなく、layout情報も見るようになったことが発覚。

xxxx.tomlとxxxx.iniをusのにリンクしただけだと、なぜか、jp配列に。
ubuntuのaptでinstallできる0.9.x版のときはこれだけでOKだった。

いろいろ調べると、どうも、
xrdp_keyborad.iniの修正(layoutが[jp]と来たら→[us]と読み替えるための設定)が必要
なことが判明。

欲張りが「沼」の入口

で、

  • できれば、keyboard_typeとkeyboard_subtypeを見て、選択的に読み替えをさせたい。

  • hookさせるための、keyboard_typeもkeyboard_subtypeも、「=0」は無視される(invalid?)っぽい

と、欲張ってみたら、そこは、「沼」の入口だった。orz_

結局、追記で解決

/etc/xrdp/xrdp.logをみながら、色々試してみると、「keyboard_type=0x4、keyboard_subtype=0x0」の場合は、「keyboard_type=4」(us配列の意味らしい)だけ書けば、うまくそのsectionでマッチしてくれるっぽいことが判明。(keyboard_subtype=0と書くと逆にマッチしない。invalidと判定されている?)

その方向でいろいろ試したところ、下記を「xrdp_keyborad.ini」追記したら、OK。(^^)

・・・
;;
;; [20250502-00:56:16] [INFO ] xrdp_load_keyboard_layout: Keyboard information sent by the RDP client,
;;    keyboard_type:[0x04], keyboard_subtype:[0x00], keylayout:[0xE0010411]
;; [20250502-00:56:16] [INFO ] xrdp_load_keyboard_layout: model [] variant [] layout [jp] options []
;;
[rdp_keyboard_us_IME]
keyboard_type=4
;keyboard_subtype=0
model=pc101
rdp_layouts=rdp_layouts_usimekey
layouts_map=rdp_layouts_map_usimekey
;
;; layouts_map=default_layouts_map
;;rdp_layouts=default_rdp_layouts
;;layouts_map=default_layouts_map

[rdp_layouts_map_usimekey]
rdp_layout_us=us
rdp_layout_jp=us

[rdp_layouts_usimekey]
rdp_layout_us=0x00000409
rdp_layout_jp=0x00000411
rdp_layout_jp=0xe0010411
rdp_layout_jp=0xe0200411
rdp_layout_jp=0xe0210411
・・・

+α、味をしめて、win de GPU

ubuntu機でxrdpでGPUが使えるようになってwindowsのmstsc.exeからのRDP接続経由のレスポンスが快適になったので、windows機へのRDP接続でも、GPUを使えるように設定[3]を入れてみた。

[3] https://ssskkk.top/windows%E3%81%AE%E3%83%AA%E3%83%A2%E3.../

LibreHardwareMonitorを見ているとGPUのD3D LoadとかGPU消費電力とかが変化するようになったので、GPUを使っているように見え、プラシーボかもだが、少し軽快になった。(^^)
Chromeで見ても、GPUを使ってくれてる様子。

Chrome on Windows 11

おわりに

結果として、xrdp on ubuntu22も、windowsのRDPサーバも、GPUが使えるようになり、私的には、RDP接続環境が、結構改善された感じです。
同じようなことに悩みをお持ちの方のヒントになれば幸いです。

いいなと思ったら応援しよう!