forked from mir/linux-vm-tools
Add support for Arch Linux
This commit is contained in:
parent
c06cd3a3eb
commit
ac50616e57
31
arch/inc/build.sh
Executable file
31
arch/inc/build.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Do not run this script directly, it gets executed by install.sh.
|
||||
#
|
||||
|
||||
if [ $(id -u) -eq 0 ] ; then
|
||||
echo 'This script must be run as a non-root user, as building packages as root is unsupported.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create a build directory in tmpfs
|
||||
mkdir /tmp/build && cd "$_"
|
||||
|
||||
###############################################################################
|
||||
# XRDP
|
||||
#
|
||||
(
|
||||
git clone https://aur.archlinux.org/xrdp.git
|
||||
cd xrdp
|
||||
makepkg -sri --noconfirm
|
||||
)
|
||||
###############################################################################
|
||||
# XORGXRDP
|
||||
# Devel version, because release version includes a bug crashing gnome-settings-daemon
|
||||
(
|
||||
git clone https://aur.archlinux.org/xorgxrdp-devel-git.git
|
||||
cd xorgxrdp-devel-git
|
||||
makepkg -sri --noconfirm
|
||||
)
|
||||
###############################################################################
|
||||
|
70
arch/inc/config-xrdp.sh
Executable file
70
arch/inc/config-xrdp.sh
Executable file
@ -0,0 +1,70 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Do not run this script directly, it gets executed by install.sh.
|
||||
#
|
||||
# The configuration is adapted from the Ubuntu 16.04 script.
|
||||
#
|
||||
|
||||
if [ $(id -u) -ne 0 ] ; then
|
||||
echo 'This script must be run with root privileges' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
# XRDP
|
||||
#
|
||||
|
||||
systemctl enable xrdp
|
||||
systemctl enable xrdp-sesman
|
||||
|
||||
# Configure the installed XRDP ini files.
|
||||
# use vsock transport.
|
||||
sed -i_orig -e 's/use_vsock=false/use_vsock=true/g' /etc/xrdp/xrdp.ini
|
||||
# use rdp security.
|
||||
sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini
|
||||
# remove encryption validation.
|
||||
sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini
|
||||
# disable bitmap compression since its local its much faster
|
||||
sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini
|
||||
#
|
||||
# sed -n -e 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini
|
||||
|
||||
# use the default lightdm x display
|
||||
# sed -i_orig -e 's/X11DisplayOffset=10/X11DisplayOffset=0/g' /etc/xrdp/sesman.ini
|
||||
# rename the redirected drives to 'shared-drives'
|
||||
sed -i_orig -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini
|
||||
|
||||
# Change the allowed_users
|
||||
echo "allowed_users=anybody" > /etc/X11/Xwrapper.config
|
||||
|
||||
|
||||
#Ensure hv_sock gets loaded
|
||||
if [ ! -e /etc/modules-load.d/hv_sock.conf ] ; then
|
||||
echo "hv_sock" > /etc/modules-load.d/hv_sock.conf
|
||||
fi
|
||||
|
||||
# Configure the policy xrdp session
|
||||
cat >/etc/polkit-1/rules.d/02-allow-colord.rules <<EOF
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ((action.id == "org.freedesktop.color-manager.create-device" ||
|
||||
action.id == "org.freedesktop.color-manager.modify-profile" ||
|
||||
action.id == "org.freedesktop.color-manager.delete-device" ||
|
||||
action.id == "org.freedesktop.color-manager.create-profile" ||
|
||||
action.id == "org.freedesktop.color-manager.modify-profile" ||
|
||||
action.id == "org.freedesktop.color-manager.delete-profile") &&
|
||||
subject.isInGroup("users"))
|
||||
{
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
||||
EOF
|
||||
|
||||
# Adapt the xrdp pam config
|
||||
cat >/etc/pam.d/xrdp-sesman <<EOF
|
||||
#%PAM-1.0
|
||||
auth include system-remote-login
|
||||
account include system-remote-login
|
||||
password include system-remote-login
|
||||
session include system-remote-login
|
||||
EOF
|
||||
|
32
arch/install.sh
Executable file
32
arch/install.sh
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# This script is for Arch Linux to download and install XRDP+XORGXRDP
|
||||
#
|
||||
|
||||
if [ $(id -u) -eq 0 ] ; then
|
||||
echo 'This script must be run as a non-root user, as building packages as root is unsupported.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
# Prepare by installing build tools.
|
||||
#
|
||||
# Partial upgrades aren't supported in arch.
|
||||
sudo pacman -Syu --needed --noconfirm base base-devel git
|
||||
|
||||
###############################################################################
|
||||
# Build & Install
|
||||
bash inc/build.sh
|
||||
echo "Installation is complete. Beginning configuration..."
|
||||
|
||||
###############################################################################
|
||||
# Configure
|
||||
sudo bash inc/config-xrdp.sh
|
||||
echo "Configuration is complete."
|
||||
|
||||
###############################################################################
|
||||
# .xinitrc has to be modified manually.
|
||||
#
|
||||
echo "You will have to configure .xinitrc to start your windows manager, see https://wiki.archlinux.org/index.php/Xinit"
|
||||
echo "Reboot your machine to begin using XRDP."
|
Loading…
x
Reference in New Issue
Block a user