New package 'hyper-v-enhanced-session' for Factory
This is a new package I've put together to do the required setup which will allow the enabling of "View -> Enhanced session" for Hyper-V VM consoles. Initially they will present a dialog for screen resolution and an xrdp login screen. I've also built a JeOS image with it enabled by default for an XFCE desktop so it all works 'out of the box'. * The "hyper-v" package should be installed already if SUSE is running inside Hyper-V. * Completes pre-requisite setup for an openSUSE VM on Hyper-V to be able to use "Enhanced session". * Works with lightdm, NOT sddm. gdm/kdm hasn't been an issue and is difficult to remove from a Gnome/KDE install. * In PowerShell, run 'Set-VM -VMName <name of vm> - EnhancedSessionTransportType HvSocket' to enable. * Provides /etc/xrdp/startwm.sh.userwindowmanager-sample to use in '$HOME'. -- ~ Scott Bradnick |- Windows Subsystem for Linux (WSL) Developer |-- Tumbleweed: |--- Dell Precision 5540 [NVIDIA Quadro T1000] (x86_64) |--- O-DROID H2+ [UHD Graphics 600] (x86_64) |--- 2x Raspberry Pi 4 Model B Rev 1.2 (aarch64) |--- WinBook TW100 (x86_64) https://keys.openpgp.org/ :: DBC5AA9A2D2BAEBC
Am 27.01.22 um 17:08 schrieb Scott Bradnick:
This is a new package I've put together to do the required setup which will allow the enabling of "View -> Enhanced session" for Hyper-V VM consoles. Initially they will present a dialog for screen resolution and an xrdp login screen. I've also built a JeOS image with it enabled by default for an XFCE desktop so it all works 'out of the box'.
Nice! I've done this manually so far, so I had a look at the setup:
install -m 0644 hv_sock.conf "%{buildroot}/%{_modulesloaddir}/hv_sock.conf"
Somehow I didn't need that, but Leap 15.3 doesn't ship with the module out of the box, not even with kernel-azure. I had to install the kernel-*-extra package. For the specfile you might just add Requires: kmod(hv_sock.ko) to ensure that the module is there. Then in xrdp.ini:
bulk_compression=true
Likely not needed across virtual sockets, so I turned it off. (Don't know if it makes a difference though.) Got some responsiveness improvement by making both xrdp and Xvnc real-time processes, but I guess that might be seen as risky in general. (The former via CPUSchedulingPolicy= in a drop-in configuration, the latter by a CAP_SYS_NICE-enabled wrapper that called sched_setscheduler and then exec'ed into Xvnc. Nothing to be proud of.) Best regards, Aaron
On Thu, 2022-01-27 at 21:17 +0100, Aaron Puchert wrote:
Am 27.01.22 um 17:08 schrieb Scott Bradnick:
This is a new package I've put together to do the required setup which will allow the enabling of "View -> Enhanced session" for Hyper-V VM consoles. Initially they will present a dialog for screen resolution and an xrdp login screen. I've also built a JeOS image with it enabled by default for an XFCE desktop so it all works 'out of the box'.
Nice! I've done this manually so far, so I had a look at the setup:
> install -m 0644 hv_sock.conf "%{buildroot}/%{_modulesloaddir}/hv_sock.conf"
Somehow I didn't need that, but Leap 15.3 doesn't ship with the module out of the box, not even with kernel-azure. I had to install the kernel-*-extra package. For the specfile you might just add
Requires: kmod(hv_sock.ko)
to ensure that the module is there. Then in xrdp.ini:
> bulk_compression=true
Likely not needed across virtual sockets, so I turned it off. (Don't know if it makes a difference though.)
Got some responsiveness improvement by making both xrdp and Xvnc real-time processes, but I guess that might be seen as risky in general. (The former via CPUSchedulingPolicy= in a drop-in configuration, the latter by a CAP_SYS_NICE-enabled wrapper that called sched_setscheduler and then exec'ed into Xvnc. Nothing to be proud of.)
Best regards, Aaron
I'm not going to pretend I follow how the "hyper-v" package works from top to bottom, but all my "hv_sock.conf" file is doing is telling the system to load that module ~ where it comes from and why seems to be handled elsewhere. I'm guessing some intelligence baked into "hyper-v" package which sets up a few things behind the scenes. I freshly installed an XFCE TW VM in Hyper-V and the kernel module is present (w/o any extra work from me) but not loaded: enhanced-test:~ # locate hv_sock /usr/lib/modules/5.16.1-1-default/kernel/net/vmw_vsock/hv_sock.ko.zst enhanced-test:~ # lsmod | grep hv hv_netvsc 98304 0 hv_balloon 40960 0 hv_utils 57344 2 hv_storvsc 28672 3 scsi_transport_fc 90112 1 hv_storvsc hv_vmbus 151552 7 hv_balloon,hv_utils,hv_netvsc,hid_hyperv,hv_storvsc,hyperv_keyboard,hyp erv_drm enhanced-test:~ # lsmod | grep -i sock enhanced-test:~ # Tomorrow I'll install my package there and do some more testing on a few changes I'll need to make for openSUSE:Factory approval. I don't personally use Leap much so I can't really speak to how it works w/ 'hyper-v' or 'hyper-v-enhanced-session'. Thanks for your reply! 🙂️ -- ~ Scott Bradnick |- Windows Subsystem for Linux (WSL) Developer |-- Tumbleweed: |--- Dell Precision 5540 [NVIDIA Quadro T1000] (x86_64) |--- O-DROID H2+ [UHD Graphics 600] (x86_64) |--- 2x Raspberry Pi 4 Model B Rev 1.2 (aarch64) |--- WinBook TW100 (x86_64) https://keys.openpgp.org/ :: DBC5AA9A2D2BAEBC
Am 27.01.22 um 23:18 schrieb Scott Bradnick:
On Thu, 2022-01-27 at 21:17 +0100, Aaron Puchert wrote:
Nice! I've done this manually so far, so I had a look at the setup:
> install -m 0644 hv_sock.conf "%{buildroot}/%{_modulesloaddir}/hv_sock.conf"
Somehow I didn't need that, but Leap 15.3 doesn't ship with the module out of the box, not even with kernel-azure. I had to install the kernel-*-extra package. For the specfile you might just add
Requires: kmod(hv_sock.ko)
to ensure that the module is there. Then in xrdp.ini:
> bulk_compression=true
Likely not needed across virtual sockets, so I turned it off. (Don't know if it makes a difference though.)
Got some responsiveness improvement by making both xrdp and Xvnc real-time processes, but I guess that might be seen as risky in general. (The former via CPUSchedulingPolicy= in a drop-in configuration, the latter by a CAP_SYS_NICE-enabled wrapper that called sched_setscheduler and then exec'ed into Xvnc. Nothing to be proud of.)
Best regards, Aaron
I'm not going to pretend I follow how the "hyper-v" package works from top to bottom, but all my "hv_sock.conf" file is doing is telling the system to load that module ~ where it comes from and why seems to be handled elsewhere. I'm guessing some intelligence baked into "hyper-v" package which sets up a few things behind the scenes.
Had another look at my VM and it turns out there is actually something in /etc/modules-load.d/, but I completely forgot about that. Sorry for the noise. As for the "Requires": it seems unneeded in Tumbleweed, but if you want to bring that package to Leap, where it's in the kernel-*-extra package which is unlikely to be installed, you should have it. And it doesn't hurt on Tumbleweed either, because the dependency is resolved by the regular kernel package. Best regards, Aaron
participants (2)
-
Aaron Puchert
-
Scott Bradnick