続: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を使ってくれてる様子。

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