Skip to content

Instantly share code, notes, and snippets.

@Nexarian
Last active June 20, 2024 08:31
Show Gist options
  • Save Nexarian/82cb4d48f07e9b9005123c21c8dc08e5 to your computer and use it in GitHub Desktop.
Save Nexarian/82cb4d48f07e9b9005123c21c8dc08e5 to your computer and use it in GitHub Desktop.
Setup for Intel acceleration and XRDP
#!/usr/bin/env bash
set -e
sudo -v
sudo apt-get update
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
sudo usermod $USER -a -G video
sudo usermod $USER -a -G tty
sudo usermod $USER -a -G render
# XRDP Build Pre-reqs Part 1
sudo apt-get install -y git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev \
libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc \
xutils-dev python3-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev \
xserver-xorg-dev libjson-c-dev libsndfile1-dev libspeex-dev libspeexdsp-dev libpulse-dev \
libpulse0 autopoint \*turbojpeg\* libfdk-aac-dev libopus-dev libgbm-dev libx264\* \
libx264-dev
#XRDP Build Pre-reqs Part 2 (For some reason apt needs this to be separate)
sudo apt-get install -y libepoxy-dev
BUILD_DIR=$(mktemp -d)
echo "Building Intel YAMI and Media Driver"
sudo rm -rf /opt/yami || true
sudo mkdir /opt/yami
sudo chown $USER:$USER /opt/yami
git clone https://github.com/Nexarian/builders.git --branch update-to-media-driver "$BUILD_DIR/builders"
cd "$BUILD_DIR/builders/yami/omatic"
./buildyami.sh --prefix=/opt/yami --disable-x11
echo "Building xrdp..."
git clone https://github.com/Nexarian/xrdp.git --branch mainline_merge "$BUILD_DIR/xrdp"
cd "$BUILD_DIR/xrdp"
./bootstrap
XRDP_YAMI_CFLAGS="-I/opt/yami/include" XRDP_YAMI_LIBS="-I/opt/yami/lib" ./configure \
--enable-fuse --enable-rfxcodec --enable-pixman --enable-mp3lame \
--enable-sound --enable-opus --enable-fdkaac --enable-x264 --enable-yami
make -j $(nproc) clean all
sudo make install
echo "Building xorgxrdp..."
git clone https://github.com/Nexarian/xorgxrdp.git --branch mainline_merge "$BUILD_DIR/xorgxrdp"
cd "$BUILD_DIR/xorgxrdp"
./bootstrap
./configure --with-simd --enable-glamor
make -j $(nproc) clean all
sudo make install
#Allow permission to connect
sudo tee /etc/X11/Xwrapper.config > /dev/null << EOL
# Xwrapper.config (Debian X Window System server wrapper configuration file)
#
# This file was generated by the post-installation script of the
# xserver-xorg-legacy package using values from the debconf database.
#
# See the Xwrapper.config(5) manual page for more information.
#
# This file is automatically updated on upgrades of the xserver-xorg-legacy
# package *only* if it has not been modified since the last upgrade of that
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command as root:
# dpkg-reconfigure xserver-xorg-legacy
needs_root_rights=no
allowed_users=anybody
EOL
#Disable nvidia
sudo sed -i -E 's#param=xrdp/xorg_nvidia.conf#param=xrdp/xorg.conf#' /etc/xrdp/sesman.ini
echo "Starting the server..."
sudo systemctl enable xrdp
sudo service xrdp start
@anomixer
Copy link

anomixer commented Jun 20, 2024

Got error message as follows:

[ 76%] Building CXX object media_driver/CMakeFiles/iHD_drv_video_COMMON.dir//media_softlet/linux/Xe_M_plus/ddi/media_libva_caps_mtl.cpp.o
/tmp/tmp.rXjaKtqClx/builders/yami/omatic/media-driver-intel-media-22.6.2/media_softlet/linux/Xe_M_plus/ddi/media_sysinfo_mtl.cpp:201:32: error: ‘IGFX_ARROWLAKE’ was not declared in this scope; did you mean ‘IGFX_CANNONLAKE’?
201 | .productFamily = (uint32_t)IGFX_ARROWLAKE,
| ^~~~~~~~~~~~~~
| IGFX_CANNONLAKE
make[2]: *** [media_driver/CMakeFiles/iHD_drv_video_COMMON.dir/build.make:4724: media_driver/CMakeFiles/iHD_drv_video_COMMON.dir/
/media_softlet/linux/Xe_M_plus/ddi/media_sysinfo_mtl.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/tmp/tmp.rXjaKtqClx/builders/yami/omatic/media-driver-intel-media-22.6.2/media_softlet/linux/Xe_M_plus/ddi/media_libva_caps_mtl.cpp:75:47: error: ‘IGFX_ARROWLAKE’ was not declared in this scope; did you mean ‘IGFX_CANNONLAKE’?
75 | RegisterCaps((uint32_t)IGFX_ARROWLAKE);
| ^~~~~~~~~~~~~~
| IGFX_CANNONLAKE
make[2]: *** [media_driver/CMakeFiles/iHD_drv_video_COMMON.dir/build.make:4752: media_driver/CMakeFiles/iHD_drv_video_COMMON.dir/__/media_softlet/linux/Xe_M_plus/ddi/media_libva_caps_mtl.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:235: media_driver/CMakeFiles/iHD_drv_video_COMMON.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
error make intel-media-22.6.2

any fix?

UPDATE: mattisz's fork works!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment