αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‰αŸ€αžœ Arch Linux αž“αŸ…αž€αŸ’αž“αž»αž„ Hyper-V

αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‰αŸ€αžœ Arch Linux αž“αŸ…αž€αŸ’αž“αž»αž„ Hyper-V

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž›αžΈαž“αž»αž…αž“αŸ…αž€αŸ’αž“αž»αž„ Hyper-V αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹αž‚αžΊαž‡αžΆαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžŠαŸ‚αž›αž˜αž·αž“αžŸαžΌαžœαžŸαŸ’αžšαž½αž›αž‡αžΆαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ Windows αŸ” αž αŸαžαž»αž•αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž“αŸαŸ‡αž‚αžΊαžαžΆ Hyper-V αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž›αžΎαžαž»αžŠαŸ†αž”αžΌαž„αž‘αžΎαž™αŸ” αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚β€‹αž’αžΆαž…β€‹αžŠαŸ†αž‘αžΎαž„β€‹αž€αž‰αŸ’αž…αž”αŸ‹β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž—αŸ’αž‰αŸ€αžœ αž“αž·αž„β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž€αžΆαžšβ€‹αž”αž„αŸ’αž€αžΎαž“β€‹αž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€β€‹αž˜αž»αžαž„αžΆαžš αž€αŸ’αžŠαžΆαžšαžαž˜αŸ’αž”αŸ€αžαžαŸ’αž‘αžΆαžŸαŸ‹ αžαžβ€‹αžšαž½αž˜ αž“αž·αž„β€‹αž—αžΆαž–β€‹αžšαžΈαž€αžšαžΆαž™β€‹αž•αŸ’αžŸαŸαž„β€‹αž‘αŸ€αžβ€‹αž€αŸ’αž“αž»αž„β€‹αž‡αžΈαžœαž·αž αžŠαžΌαž…β€‹αžŠαŸ‚αž›β€‹αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„ VirtualBoxαŸ”

Hyper-V αžαŸ’αž›αž½αž“αžœαžΆαž•αŸ’αžαž›αŸ‹ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” - αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž—αŸ’αž‰αŸ€αžœαž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸαžœαžΆαž…αž˜αŸ’αž›αž„αžŸαŸ’αžšαž˜αŸ„αž›αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ (VSS) αž—αŸ’αž‰αŸ€αžœαž’αžΆαž…αž•αŸ’αž‰αžΎαžŸαž‰αŸ’αž‰αžΆαž”αž·αž‘ αž—αŸ’αž‰αŸ€αžœαž’αžΆαž…αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž˜αŸ‰αŸ„αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž αž―αž€αžŸαžΆαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž (Copy-VMFile αž“αŸ…αž€αŸ’αž“αž»αž„ PowerShell) αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž—αŸ’αž‰αŸ€αžœαž˜αž½αž™αž…αŸ†αž“αž½αž“ αžšαž½αž˜αž‘αžΆαŸ†αž„ Windows αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Virtual Machine Connection (vmconnect.exe) αžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž‚αžΊαž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αžŠαŸ„αž™αž’αŸ’αžœαžΎαž€αžΆαžšαžαžΆαž˜αžšαž™αŸˆαž–αž·αž’αžΈαž€αžΆαžš RDP αž“αž·αž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž•αŸ’αž‘αŸαžšαž§αž”αž€αžšαžŽαŸαžαžΆαžŸ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž αž€αŸαžŠαžΌαž…αž‡αžΆαž”αŸ’αžšαžΎαž€αŸ’αžŠαžΆαžšαžαž˜αŸ’αž”αŸ€αžαžαŸ’αž‘αžΆαžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αŸ”

Enhanced Session Mode αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Windows αž€αŸ’αž“αž»αž„ Hyper-V αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αž‘αžΎαž„αžšαž½αž…αŸ” αž‡αžΆαž˜αž½αž™αž—αŸ’αž‰αŸ€αžœαž“αŸ…αž›αžΎαž›αžΈαž“αž»αž… αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ RDP αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžš vsock (αž€αž“αŸ’αž›αŸ‚αž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž”αžŽαŸ’αžαžΆαž‰αž“αž·αž˜αŸ’αž˜αž·αžαž–αž·αžŸαŸαžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž›αžΈαž“αž»αž…αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž˜αžΎαž›αžαŸ’αž–αžŸαŸ‹)αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸŠαžΌαž”αŸŠαž»αž“αž‘αžΌαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ VMCreate αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ Hyper-V αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž›αžΎαžαž»αžšαž”αžŸαŸ‹ Windows αž˜αžΆαž“αž‚αŸ†αžšαžΌαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ RDP αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ vsock XRDP αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž‡αžΆαž˜αž»αž“αžšαž½αž…αž αžΎαž™ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αžαž·αž…αž‘αŸ…αŸ— - αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’ αž”αŸ’αžšαž€αžΆαžŸαž“αŸαŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€ ESM αž“αŸ…αž€αŸ’αž“αž»αž„ Fedora αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž Arch Linux αŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›

αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αž…αŸ’αžšαžΎαž“αž¬αžαž·αž…αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹ hyperv αž–αžΈαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž αž‚αž˜αž“αŸαŸ–

% sudo pacman -S hyperv

αžαŸ„αŸ‡αž”αžΎαž€ VSS αž“αž·αž„αžŸαŸαžœαžΆαž”αŸ’αžαžΌαžšαž”αŸ’αžšαžΆαž€αŸ‹ αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆ αž“αž·αž„αž―αž€αžŸαžΆαžšαŸ–

% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ XRDP

αžƒαŸ’αž›αžΆαŸ†αž„ linux-vm-αž§αž”αž€αžšαžŽαŸ αž“αŸ…αž›αžΎ GitHub αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ XRDP αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Arch Linux αž“αž·αž„ Ubuntu αŸ” αžαŸ„αŸ‡αžŠαŸ†αž‘αžΎαž„ Git αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αž‘αžΆαž“αŸ‹αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŠαŸƒ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αŸ’αž›αžΌαž“αžƒαŸ’αž›αžΆαŸ†αž„αŸ–

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒ XRDP αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αžŠαŸ„αž™αžŸαŸ’αž‚αŸ’αžšαžΈαž” makepkg.shαž˜αž½αž™αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αž‚αžΊ 0.9.11, αžŠαŸ‚αž›αž€αžΆαžšαž‰αŸ‚αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž”αŸ‚αž€ vsock://-αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„ XRDP αž–αžΈ Git αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ Xorg αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž–αžΈ AUR αžŠαŸ„αž™αžŠαŸƒαŸ” αž”αŸ†αžŽαŸ‡ XRDP αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž€αŸ’αž“αž»αž„ AUR αž€αŸαž αž½αžŸαžŸαž˜αŸαž™αž”αž“αŸ’αžαž·αž…αžŠαŸ‚αžš αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› PKGBUILD αž“αž·αž„αž”αŸ†αžŽαŸ‡αžŠαŸ„αž™αžŠαŸƒαŸ”

αžαŸ„αŸ‡αž€αŸ’αž›αžΌαž“αžƒαŸ’αž›αžΆαŸ†αž„αž‡αžΆαž˜αž½αž™ PKGBUILDs αž–αžΈ AUR (αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž“αžΈαžαž·αžœαž·αž’αžΈαž“αŸαŸ‡ αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž αž‚αžΊαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΌαž…αž‡αžΆ yayαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž’αŸ’αžœαžΎαž“αžΈαžαž·αžœαž·αž’αžΈαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸαŸ‡αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž’αžΆαž):

% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git

αžαŸ„αŸ‡αžŠαŸ†αž‘αžΎαž„ XRDP αžαŸ’αž›αž½αž“αž―αž„αž‡αžΆαž˜αž»αž“αžŸαž·αž“αŸ” αžαŸ„αŸ‡αž”αžΎαž€αž―αž€αžŸαžΆαžš PKGBUILD αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’αž’αžαŸ’αžαž”αž‘αžŽαžΆαž˜αž½αž™αŸ”

αžαŸ„αŸ‡αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŸαžΆαž„αžŸαž„αŸ‹αŸ” PKGBUILD αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αžŸαžΆαž„ XRDP αž–αžΈ Git αž˜αž·αž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš vsock αž“αŸ…αž–αŸαž›αžŸαžΆαž„αžŸαž„αŸ‹αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΌαž˜αž”αžΎαž€αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ–

 build() {
   cd $pkgname
   ./configure --prefix=/usr 
               --sysconfdir=/etc 
               --localstatedir=/var 
               --sbindir=/usr/bin 
               --with-systemdsystemdunitdir=/usr/lib/systemd/system 
               --enable-jpeg 
               --enable-tjpeg 
               --enable-fuse 
               --enable-opus 
               --enable-rfxcodec 
               --enable-mp3lame 
-              --enable-pixman
+              --enable-pixman 
+              --enable-vsock
   make V=0
 }

αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ†αžŽαŸ‡ arch-config.diffαžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž―αž€αžαžΆ αž“αž·αž„αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš XRDP αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž•αŸ’αž›αžΌαžœαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ Arch Linux αž€αŸαž˜αžΆαž“αž”αŸ†αžŽαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž•αž„αžŠαŸ‚αžšαŸ” instfiles/xrdp.shαžŠαŸ‚αž›αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžš αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰ αž–αžΈαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ XRDP αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ†αžŽαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αžŠαŸ„αž™αžŠαŸƒαŸ–

  [Install]
  WantedBy=multi-user.target
-diff -up src/xrdp-devel-git/instfiles/xrdp.sh.orig src/xrdp-devel-git/instfiles/xrdp.sh
---- src/xrdp-devel-git/instfiles/xrdp.sh.orig  2017-08-30 00:27:28.000000000 -0600
-+++ src/xrdp-devel-git/instfiles/xrdp.sh   2017-08-30 00:28:00.000000000 -0600
-@@ -17,7 +17,7 @@
- # Description: starts xrdp
- ### END INIT INFO
- 
--SBINDIR=/usr/local/sbin
-+SBINDIR=/usr/bin
- LOG=/dev/null
- CFGDIR=/etc/xrdp
- 
 diff -up src/xrdp-devel-git/sesman/startwm.sh.orig src/xrdp-devel-git/sesman/startwm.sh
 --- src/xrdp-devel-git/sesman/startwm.sh.orig  2017-08-30 00:27:30.000000000 -0600

αž…αžΌαžšαž™αžΎαž„αž…αž„αž€αŸ’αžšαž„ αž“αž·αž„αžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ % makepkg --skipchecksums -si (αž‚αž“αŸ’αž›αžΉαŸ‡ --skipchecksums αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž”αž·αž‘αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ checksum αž“αŸƒαž―αž€αžŸαžΆαžšαž”αŸ’αžšαž—αž– αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž™αžΎαž„αž”αžΆαž“αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž–αž½αž€αžœαžΆαžŠαŸ„αž™αžŠαŸƒ)αŸ”

αžαŸ„αŸ‡αž‘αŸ…αžαž xorgxrdp-devel-gitαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž€αž‰αŸ’αž…αž”αŸ‹αž‡αžΆαž˜αž½αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ % makepkg -si.

αžαŸ„αŸ‡αž‘αŸ…αžαž linux-vm-tools/arch αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž” install-config.shαžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ XRDP, PolicyKit αž“αž·αž„ PAMαŸ–

% sudo ./install-config.sh

αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ†αž‘αžΎαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αžΆαžŸαŸ‹ use_vsockαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž˜αž·αž“αž’αžΎαž–αžΎαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αŸ†αžŽαŸ‚ 0.9.11 αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΌαž˜αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ /etc/xrdp/xrdp.ini αžŠαŸ„αž™αžŠαŸƒαŸ–

 ;   port=vsock://<cid>:<port>
-port=3389
+port=vsock://-1:3389

 ; 'port' above should be connected to with vsock instead of tcp
 ; use this only with number alone in port above
 ; prefer use vsock://<cid>:<port> above
-use_vsock=true
+;use_vsock=true

 ; regulate if the listening socket use socket option tcp_nodelay

αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž―αž€αžŸαžΆαžš ~/.xinitrc αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž„αŸ’αž’αž½αž…/αž•αŸ’αž‘αŸƒαžαž»αžŠαŸ‚αž›αž’αŸ’αž“αž€αž–αŸαž‰αž…αž·αžαŸ’αž αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ X αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ–

% echo "exec i3" > ~/.xinitrc

αžαŸ„αŸ‡αž”αž·αž‘αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαŸ” αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ vsock αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αŸ…αž€αŸ’αž“αž»αž„ PowerShell αž‡αžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ–

PS Admin > Set-VM -VMName ΠΠΠ—Π’ΠΠΠ˜Π•_МАШИНЫ -EnhancedSessionTransportType HvSocket

αžαŸ„αŸ‡αž”αžΎαž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž˜αŸ’αžαž„αž‘αŸ€αžαŸ”

αžŸαžΌαž˜αž˜αžΎαž›

αžŠαžšαžΆαž”αžŽαžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ XRDP αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ vmconnect αž“αžΉαž„αžšαž€αžƒαžΎαž‰αžœαžΆ αž αžΎαž™αž’αžΆαžαž»αž“αžΉαž„αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΊαž“αž»αž™ αž˜αžΎαž› -> αžœαž‚αŸ’αž‚αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„. αž“αŸ…αž–αŸαž›αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž’αžΆαžαž»αž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž˜αŸ’αžšαž»αž‰αž±αŸ’αž™αž€αŸ†αžŽαžαŸ‹αž‚αž»αžŽαž—αžΆαž–αž”αž„αŸ’αž αžΆαž‰αž’αŸαž€αŸ’αžšαž„αŸ‹ αž“αž·αž„αž“αŸ…αž›αžΎαž•αŸ’αž‘αžΆαŸ†αž„ αž’αž“αž’αžΆαž“αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€ αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž’αž”αŸ‹αžŠαŸ‚αž›αž”αžΎαž€ αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž‘αŸ…αž€αŸ’αž“αž»αž„αžœαž‚αŸ’αž‚ RDPαŸ”

αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‰αŸ€αžœ Arch Linux αž“αŸ…αž€αŸ’αž“αž»αž„ Hyper-V
αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‰αŸ€αžœ Arch Linux αž“αŸ…αž€αŸ’αž“αž»αž„ Hyper-V

αžαŸ„αŸ‡αž—αŸ’αž‡αžΆαž”αŸ‹αŸ” αž™αžΎαž„αž“αžΉαž„αžƒαžΎαž‰αž”αž„αŸ’αž’αž½αž…αž…αžΌαž› XRDPαŸ–

αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‰αŸ€αžœ Arch Linux αž“αŸ…αž€αŸ’αž“αž»αž„ Hyper-V

αž”αž‰αŸ’αž…αžΌαž›αžˆαŸ’αž˜αŸ„αŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž”αŸ’αžšαžΎ

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž–αžΈαž§αž”αžΆαž™αž€αž›αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž’αžΆαž…αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž”αžΆαž“αŸ– αžŸαž˜αŸαž™ RDP αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαž“αŸ‹αžαŸ‚αž†αŸ’αž›αžΎαž™αžαž”αž‡αžΆαž„αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžœαž‚αŸ’αž‚ Enhanced Session αŸ” αžαžΆαžŸαžŠαŸ‚αž›αž”αžΆαž“αž‘αž˜αŸ’αž›αžΆαž€αŸ‹αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ VM αžαžΆαž˜αžšαž™αŸˆ RDP αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαž ${HOME}/shared-drives:

αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αŸ€αž”αžŸαž˜αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‰αŸ€αžœ Arch Linux αž“αŸ…αž€αŸ’αž“αž»αž„ Hyper-V

αž€αŸ’αžαžΆαžšαžαž˜αŸ’αž”αŸ€αžαžαŸ’αž‘αžΆαžŸαŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αŸ” αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž”αž‰αŸ’αž‡αžΌαž“β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–β€‹αž‘αŸ…β€‹αžαžΆαž„β€‹αž€αŸ’αž“αž»αž„β€‹αž”αžΆαž“β€‹αž‘αŸ αžœαžΆβ€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΉαž˜β€‹αžαŸ‚β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž”αŸ’αžšαžΎβ€‹αž”αžΆαž“β€‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž€αŸβ€‹αž˜αžΆαž“β€‹αžŠαŸ‚αžšαŸ” αž”αŸ†αž”αŸ‚αž€αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαžŒαžΈαžŸ. αžŸαŸ†αž‘αŸαž„αž€αŸαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸαŸ‡αž‘αŸαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž™αž€αž•αŸ’αž›αžΌαžœαž€αžΆαžαŸ‹αž€αŸ’αžαžΆαžšαž…αž»αž…αžŠαžΌαž…αž‡αžΆ Alt+Tab αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž–αž„αŸ’αžšαžΈαž€ vmconnect αž‘αŸ…αž–αŸαž‰αž’αŸαž€αŸ’αžšαž„αŸ‹αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ RDP αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ Windows αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ vmconnect αž¬αž§αž‘αžΆαž αžšαžŽαŸ αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αŸαŸ‡αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž―αž€αžŸαžΆαžšαŸ” /etc/xrdp/xrdp.ini port αž“αŸ…αž›αžΎ tcp://:3389. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… Default Switch αž αžΎαž™αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αžŽαŸ’αžαžΆαž‰αžαžΆαž˜αžšαž™αŸˆ DHCP αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžœαžΆαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αŸ… Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠ°ΡˆΠΈΠ½Ρ‹.mshome.net. αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΌαž›αž‘αŸ… TTY αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ vmconnect αžŠαŸ„αž™αž”αž·αž‘αž˜αž»αžαž„αžΆαžš Enhanced ModeαŸ”

αž”αŸ’αžšαž—αž–αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎ:

  1. Hyper-V - Arch Wiki
  2. αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž€αŸ†αž αž»αžŸαž“αŸ…αž›αžΎ GitHubαŸ– 1, 2

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹