ααΆαααααΎααααΆαααααΆαααΈααα·αααα·αααΈαα»α αα αααα»α Hyper-V α ααααΈαααα’ααααΊααΆαααα·αααααααααα·αααΌααααα½αααΆαααΆαααααΎαααΆαααΈαααααα Windows α α ααα»αααααααΆααααΆααααααΊααΆ Hyper-V αα·αααααΌαααΆαααααα»ααα»ααααααΆααααΆαααααΎααααΆαααα»αααααΌαααααΎαα»ααααΌαα‘αΎαα α’αααβαα·αβααααΆααααβα’αΆα βααα‘αΎαβαααα ααβααβααΆαβααααααβααααα αα·αβααα½αβααΆαβααΆαβαααααΎαβααααΆα ααα·αβαα»αααΆα ααααΆαααααααααααΆαα ααβαα½α αα·αβααΆαβααΈαααΆαβαααααβαααβαααα»αβααΈαα·α ααΌα βαααβααΎαβα‘αΎαβαα βαααα»α VirtualBoxα
Hyper-V αααα½αααΆααααα Copy-VMFile
αα
αααα»α PowerShell) α αααααΆααααααααααααααα·ααααα·ααΆαααααααα½αα
ααα½α αα½αααΆαα Windows αα
αααα»ααααααα·ααΈ Virtual Machine Connection (vmconnect.exe
) ααααααααααααααααΎαα‘αΎαααΊα’αΆα
ααααΎααΆα αααααααΎααΆαααΆαααααα·ααΈααΆα RDP αα·αα’αα»ααααΆαα±ααα’ααααααααα§αααααααΆα αα·ααααΆαααΈαααααα»ααααα
αααΆαααΈααα·αααα·α ααααΌα
ααΆααααΎααααΆαααααααααααΆαααααααΆαα
αααααααα
Enhanced Session Mode ααααΎαααΆαα
ααααΈαααα’αααα
αααα»α Windows αααα»α Hyper-V ααααΆαααααααΆααααΈααα‘αΎααα½α
α ααΆαα½αααααααα
ααΎααΈαα»α
α’αααααααΌαααα‘αΎααααΆαααΈααα RDP αααααΆαααα vsock (ααααααα’αΆααααααΆααααααΆααα·αααα·ααα·ααααα
αααα»αααΈαα»α
αααααααΌαααΆααα
ααΆα‘αΎααααααΆααααΆαααααΆααααααααΆαα½αα’αααααΎαααααα)α ααααα·αααΎαααααΆααα’ααΌααα»αααΌαα
αααα»ααααααα·ααΈ VMCreate αααααααΆααααααΆαα½α Hyper-V αα
ααΎαα»αααααΌαααααΎαα»αααα Windows ααΆαααααΌαααΆαααΈααα·αααα·ααααααΆααααα
ααα·αααααααααΆαααΈααα RDP ααααΎααΆαααΆαα½α vsock
ααΆαααα‘αΎαααααΆαααααα½ααααα αΌα
α’αααΈααααααααΆαααΊααΆααααα
αααΎαα¬αα·α
αα
ααΈααα ααΎαααααΆααααααααΌαααΆαααα‘αΎααααα
αα hyperv
ααΈααααΆαααα ααααα
% sudo pacman -S hyperv
αααααΎα VSS αα·αααααΆααααΌαααααΆαα
% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done
ααΆαααα‘αΎα XRDP
ααααΆαα
% 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 (ααΆααααααΆ ααΈαα·αα·ααΈααα αα½αααΆαα½αααΉαααΆααααααΎα ααΊααααααααααααα·ααααααααα·ααΈααΌα
ααΆ
% 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
ααααα
αααααααα
[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α
αααααααΆααα ααΎαααΉαααΎααααα’α½α α αΌα XRDPα
αααα αΌααααααα’αααααααΎααααΆαα αα·αααΆααααααααΆααααααα’αααα
ααααΎ
α’αααααααααααααΈα§ααΆαααααΆαααααααΊα’αΆα
ααααααααΆααααΆαα αααα RDP ααααΎαααΆαααΆααααααααΎαααααΆααααααααΎααΆαααΆαα½αααΆααααα αΆααα·αααα·ααααααααΆααααα Enhanced Session α ααΆααααααΆααααααΆαααα
ααΆααααα»α VM ααΆαααα RDP ααΆααα
αααα»ααα ${HOME}/shared-drives
:
ααααΆαααααααααααΆααααααΎαααΆαααα’α α’αααβαα·αβα’αΆα
βαααααΌαβαααΆαααΈαβααααα»αααβαα
βααΆαβαααα»αβααΆαβαα ααΆβαα·αβααααΉαβααβαα·αβα’αΆα
βααααΎβααΆαβαα ααα»ααααβααβααΆαβαααα
ααααα·αααΎαααααΆααα ααα»αααα½αα
ααα½ααααα’αααα
ααααααΎαααΆαααΈαααααα RDP αααααΆααααααΎαα‘αΎααα
αααα»α Windows αααα½αα±αααααααα·ααΈ vmconnect α¬α§ααΆα ααα ααααΆαααα
αααΆαααΈααααααΈαααΆαααΈααααααααα αααα’αααααΉαααααΌαααααΆααααααΌαα―αααΆαα /etc/xrdp/xrdp.ini
port
αα
ααΎ tcp://:3389
. ααααα·αααΎαααΆαααΈααα·αααα·αααααΌαααΆαααααΆαααα
Default Switch α αΎαααα½αααΆαααΆαααααααααααΆαααΆαααα DHCP αααααΆααααα’αααα’αΆα
ααααΆαααα
ααΆααΈαααΆαααΈααα
Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΌΠ°ΡΠΈΠ½Ρ.mshome.net
. α’αααα’αΆα
α
αΌααα
TTY ααΈαααααα·ααΈ vmconnect ααααα·ααα»αααΆα Enhanced Modeα
ααααααααααΆαααααΎ:
Hyper-V - Arch Wiki - αααΆαααΆαααααα α»ααα
ααΎ GitHubα
1 ,2
ααααα: www.habr.com