mirror of
https://github.com/kasmtech/workspaces-core-images.git
synced 2026-07-17 16:37:15 +00:00
Merge branch 'feature/KASM-4046_gpu_passthrough' into 'develop'
General GPU Pass through improvements, NVIDIA MIG Support Closes KASM-4046 See merge request kasm-technologies/internal/workspaces-core-images!351
This commit is contained in:
commit
21fac2e9a6
14 changed files with 217 additions and 36 deletions
|
|
@ -19,11 +19,20 @@ export AWS_DEFAULT_REGION=us-east-1
|
|||
|
||||
# Install tools for testing
|
||||
apk add \
|
||||
aws-cli \
|
||||
curl \
|
||||
jq \
|
||||
openssh-client
|
||||
|
||||
AWS_CLI_IMAGE=public.ecr.aws/aws-cli/aws-cli:2.34.33
|
||||
|
||||
aws() {
|
||||
docker run --rm \
|
||||
-e AWS_ACCESS_KEY_ID \
|
||||
-e AWS_SECRET_ACCESS_KEY \
|
||||
-e AWS_DEFAULT_REGION \
|
||||
"${AWS_CLI_IMAGE}" "$@"
|
||||
}
|
||||
|
||||
## Functions ##
|
||||
# Ami locater
|
||||
getami () {
|
||||
|
|
@ -88,7 +97,7 @@ aws ec2 run-instances \
|
|||
--security-group-ids sg-029d5bc88b001fbe5 \
|
||||
--subnet-id subnet-0ee70521f1f979f5f \
|
||||
--associate-public-ip-address \
|
||||
--user-data file:///root/user-data \
|
||||
--user-data "$(cat /root/user-data)" \
|
||||
--block-device-mapping '[ { "DeviceName": "/dev/sda1", "Ebs": { "VolumeSize": 120 } } ]' \
|
||||
--instance-initiated-shutdown-behavior terminate > /tmp/instance.json
|
||||
INSTANCE=$(cat /tmp/instance.json | jq -r " .Instances[0].InstanceId")
|
||||
|
|
|
|||
|
|
@ -134,6 +134,10 @@ RUN bash $STARTUPDIR/set_user_permission.sh $STARTUPDIR $HOME && \
|
|||
COPY ./src/ubuntu/install/extra $INST_SCRIPTS/extra/
|
||||
RUN bash $INST_SCRIPTS/extra/$EXTRA_SH && rm -rf $INST_SCRIPTS/extra/
|
||||
|
||||
### VirtualGL
|
||||
COPY ./src/ubuntu/install/virtualgl $INST_SCRIPTS/virtualgl/
|
||||
RUN bash $INST_SCRIPTS/virtualgl/install_virtualgl.sh && rm -rf $INST_SCRIPTS/virtualgl/
|
||||
|
||||
### Custom Folder Emblems
|
||||
COPY ./src/ubuntu/install/emblems $INST_SCRIPTS/emblems/
|
||||
RUN bash $INST_SCRIPTS/emblems/install_emblems.sh && rm -rf $INST_SCRIPTS/emblems/
|
||||
|
|
@ -144,6 +148,8 @@ ADD /src/common/resources/images/egress_info.svg /usr/share/extra/icons/egress_i
|
|||
ADD /src/common/resources/images/egress_error.svg /usr/share/extra/icons/egress_error.svg
|
||||
ADD /src/common/resources/images/egress_offline.svg /usr/share/extra/icons/egress_offline.svg
|
||||
|
||||
RUN rm -f "$HOME/.local/share/wget/.wget-hsts"
|
||||
|
||||
### Create user and home directory for base images that don't already define it
|
||||
RUN (groupadd -g 1000 kasm-user \
|
||||
&& useradd -M -u 1000 -g 1000 kasm-user \
|
||||
|
|
|
|||
|
|
@ -112,10 +112,6 @@ ADD ./src/common/startup_scripts $STARTUPDIR
|
|||
RUN bash $STARTUPDIR/set_user_permission.sh $STARTUPDIR $HOME && \
|
||||
echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||
|
||||
### VirtualGL
|
||||
COPY ./src/ubuntu/install/virtualgl $INST_SCRIPTS/virtualgl/
|
||||
RUN bash $INST_SCRIPTS/virtualgl/install_virtualgl.sh && rm -rf $INST_SCRIPTS/virtualgl/
|
||||
|
||||
### Sysbox support
|
||||
COPY ./src/ubuntu/install/sysbox $INST_SCRIPTS/sysbox/
|
||||
RUN bash $INST_SCRIPTS/sysbox/install_systemd.sh && rm -rf $INST_SCRIPTS/sysbox/
|
||||
|
|
|
|||
|
|
@ -139,6 +139,10 @@ COPY ./src/common/startup_scripts $STARTUPDIR
|
|||
RUN bash $STARTUPDIR/set_user_permission.sh $STARTUPDIR $HOME && \
|
||||
echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||
|
||||
### VirtualGL
|
||||
COPY ./src/ubuntu/install/virtualgl $INST_SCRIPTS/virtualgl/
|
||||
RUN bash $INST_SCRIPTS/virtualgl/install_virtualgl.sh && rm -rf $INST_SCRIPTS/virtualgl/
|
||||
|
||||
### extra configurations needed per distro variant
|
||||
COPY ./src/ubuntu/install/extra $INST_SCRIPTS/extra/
|
||||
RUN bash $INST_SCRIPTS/extra/$EXTRA_SH && rm -rf $INST_SCRIPTS/extra/
|
||||
|
|
|
|||
|
|
@ -115,6 +115,10 @@ COPY ./src/common/startup_scripts $STARTUPDIR
|
|||
RUN bash $STARTUPDIR/set_user_permission.sh $STARTUPDIR $HOME && \
|
||||
echo 'source $STARTUPDIR/generate_container_user' >> $HOME/.bashrc
|
||||
|
||||
### VirtualGL
|
||||
COPY ./src/ubuntu/install/virtualgl $INST_SCRIPTS/virtualgl/
|
||||
RUN bash $INST_SCRIPTS/virtualgl/install_virtualgl.sh && rm -rf $INST_SCRIPTS/virtualgl/
|
||||
|
||||
### extra configurations needed per distro variant
|
||||
COPY ./src/ubuntu/install/extra $INST_SCRIPTS/extra/
|
||||
RUN bash $INST_SCRIPTS/extra/$EXTRA_SH && rm -rf $INST_SCRIPTS/extra/
|
||||
|
|
|
|||
|
|
@ -7,4 +7,6 @@ network:
|
|||
runtime_configuration:
|
||||
allow_override_standard_vnc_server_settings: true
|
||||
allow_override_list:
|
||||
- pointer.enabled
|
||||
- pointer.enabled
|
||||
server:
|
||||
allow_environment_variables_to_override_config_settings: true
|
||||
|
|
@ -47,13 +47,7 @@ BUILD_ARCH=$(uname -p)
|
|||
if [ -z ${KASM_PROFILE_CHUNK_SIZE} ]; then
|
||||
KASM_PROFILE_CHUNK_SIZE=100000
|
||||
fi
|
||||
if [ -z ${DRINODE+x} ]; then
|
||||
DRINODE="/dev/dri/renderD128"
|
||||
fi
|
||||
KASMNVC_HW3D=''
|
||||
if [ ! -z ${HW3D+x} ]; then
|
||||
KASMVNC_HW3D="-hw3d"
|
||||
fi
|
||||
|
||||
STARTUP_COMPLETE=0
|
||||
|
||||
######## FUNCTION DECLARATIONS ##########
|
||||
|
|
@ -218,9 +212,9 @@ function start_kasmvnc (){
|
|||
fi
|
||||
|
||||
if [[ "${BUILD_ARCH}" =~ ^aarch64$ ]] && [[ -f /lib/aarch64-linux-gnu/libgcc_s.so.1 ]] ; then
|
||||
LD_PRELOAD=/lib/aarch64-linux-gnu/libgcc_s.so.1 vncserver $DISPLAY $KASMVNC_HW3D -drinode $DRINODE -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 -BlacklistThreshold=0 -FreeKeyMappings $VNCOPTIONS $KASM_SVC_SEND_CUT_TEXT $KASM_SVC_ACCEPT_CUT_TEXT
|
||||
LD_PRELOAD=/lib/aarch64-linux-gnu/libgcc_s.so.1 vncserver $DISPLAY -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 -BlacklistThreshold=0 -FreeKeyMappings $VNCOPTIONS $KASM_SVC_SEND_CUT_TEXT $KASM_SVC_ACCEPT_CUT_TEXT
|
||||
else
|
||||
vncserver $DISPLAY $KASMVNC_HW3D -drinode $DRINODE -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 -BlacklistThreshold=0 -FreeKeyMappings $VNCOPTIONS $KASM_SVC_SEND_CUT_TEXT $KASM_SVC_ACCEPT_CUT_TEXT
|
||||
vncserver $DISPLAY -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 -BlacklistThreshold=0 -FreeKeyMappings $VNCOPTIONS $KASM_SVC_SEND_CUT_TEXT $KASM_SVC_ACCEPT_CUT_TEXT
|
||||
fi
|
||||
|
||||
KASM_PROCS['kasmvnc']=$(cat $HOME/.vnc/*${DISPLAY_NUM}.pid)
|
||||
|
|
@ -247,7 +241,7 @@ function start_window_manager (){
|
|||
if [ -n "$KASM_ENABLE_ZINK" ] && [ -n "$KASM_EGL_CARD" ] && [ -n "$KASM_RENDERD" ]; then
|
||||
echo "Starting XFCE with Zink"
|
||||
LIBGL_KOPPER_DRI2=1 MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink DISPLAY=:1 /usr/bin/startxfce4 --replace &
|
||||
elif [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "${KASM_EGL_CARD}" ] && [ ! -z "${KASM_RENDERD}" ] && [ -O "${KASM_RENDERD}" ] && [ -O "${KASM_EGL_CARD}" ] ; then
|
||||
elif [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "${KASM_EGL_CARD}" ] && [ ! -z "${KASM_RENDERD}" ] && [ -w "${KASM_RENDERD}" ] && [ -w "${KASM_EGL_CARD}" ] ; then
|
||||
echo "Starting XFCE with VirtualGL using EGL device ${KASM_EGL_CARD}"
|
||||
DISPLAY=:1 /opt/VirtualGL/bin/vglrun -d "${KASM_EGL_CARD}" /usr/bin/startxfce4 --replace &
|
||||
else
|
||||
|
|
@ -267,7 +261,7 @@ function start_window_manager (){
|
|||
fi
|
||||
echo -e "\n------------------ KDE window manager startup------------------"
|
||||
if [ "${START_DE}" == "kde5" ] ; then
|
||||
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "${KASM_EGL_CARD}" ] && [ ! -z "${KASM_RENDERD}" ] && [ -O "${KASM_RENDERD}" ] && [ -O "${KASM_EGL_CARD}" ] ; then
|
||||
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "${KASM_EGL_CARD}" ] && [ ! -z "${KASM_RENDERD}" ] && [ -w "${KASM_RENDERD}" ] && [ -w "${KASM_EGL_CARD}" ] ; then
|
||||
echo "Starting KDE with VirtualGL using EGL device ${KASM_EGL_CARD}"
|
||||
DISPLAY=:1 /opt/VirtualGL/bin/vglrun -d "${KASM_EGL_CARD}" /usr/bin/startplasma-x11 &
|
||||
else
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ echo "Install KasmVNC server"
|
|||
cd /tmp
|
||||
BUILD_ARCH=$(uname -m)
|
||||
UBUNTU_CODENAME=""
|
||||
COMMIT_ID="d9b4772680641bd7b122519bdfdcdc4b3b264d8f"
|
||||
COMMIT_ID="0a64d3381cf2ebfb53685c9c9c804e8a327bf0a3"
|
||||
BRANCH="master" # just use 'release' for a release branch
|
||||
KASMVNC_VER="1.4.1"
|
||||
COMMIT_ID_SHORT=$(echo "${COMMIT_ID}" | cut -c1-6)
|
||||
|
|
|
|||
|
|
@ -27,6 +27,16 @@ elif [[ "${DISTRO}" == "parrotos7" ]]; then
|
|||
apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
|
||||
else
|
||||
if [ "${DISTRO}" == "parrotos6" ]; then
|
||||
if ! getent group kasm-default-profile >/dev/null; then
|
||||
groupadd --system kasm-default-profile
|
||||
fi
|
||||
if ! id kasm-default-profile >/dev/null 2>&1; then
|
||||
useradd --system --gid kasm-default-profile --home-dir /home/kasm-default-profile --shell /usr/sbin/nologin kasm-default-profile
|
||||
fi
|
||||
fi
|
||||
apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
|
||||
DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \
|
||||
-o Dpkg::Options::="--force-confdef" \
|
||||
-o Dpkg::Options::="--force-confold"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -29,9 +29,12 @@ fi
|
|||
if [[ "${DISTRO}" == @(oracle8|oracle9|rhel9|fedora42|fedora43|almalinux8|almalinux9|rockylinux8|rockylinux9|alpine) ]]; then
|
||||
useradd --system --shell /usr/sbin/nologin --home-dir /bin proxy
|
||||
elif [ "${DISTRO}" == "opensuse" ]; then
|
||||
useradd --system --shell /usr/sbin/nologin --home-dir /bin proxy
|
||||
groupadd -f -g 65511 proxy
|
||||
usermod -a -G proxy proxy
|
||||
if ! getent group proxy >/dev/null; then
|
||||
groupadd -g 65511 proxy
|
||||
fi
|
||||
if ! id proxy >/dev/null 2>&1; then
|
||||
useradd --system --shell /usr/sbin/nologin --home-dir /bin -g proxy proxy
|
||||
fi
|
||||
fi
|
||||
|
||||
# File and perms
|
||||
|
|
|
|||
|
|
@ -1,13 +1,100 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [ "${DISTRO}" == "parrotos7" ]; then
|
||||
PARROTEXTRA="-t echo-backports"
|
||||
fi
|
||||
|
||||
ARCH="$(uname -m)"
|
||||
INSTALL_INTEL_VA_DRIVERS="false"
|
||||
if [[ "${ARCH}" == "x86_64" || "${ARCH}" == "amd64" ]]; then
|
||||
INSTALL_INTEL_VA_DRIVERS="true"
|
||||
fi
|
||||
|
||||
install_optional_pkg() {
|
||||
local pkg_mgr="$1"
|
||||
local pkg="$2"
|
||||
local install_cmd="$3"
|
||||
if ! eval "${install_cmd}"; then
|
||||
echo "WARN: Package '${pkg}' is not available for ${DISTRO} (${pkg_mgr}); continuing"
|
||||
fi
|
||||
}
|
||||
|
||||
install_first_available_pkg() {
|
||||
local pkg_mgr="$1"
|
||||
local install_prefix="$2"
|
||||
shift 2
|
||||
local pkg
|
||||
for pkg in "$@"; do
|
||||
if eval "${install_prefix} ${pkg}"; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
echo "WARN: None of the equivalent packages are available for ${DISTRO} (${pkg_mgr}): $*; continuing"
|
||||
return 0
|
||||
}
|
||||
|
||||
echo "Install some common tools for further installation"
|
||||
if [[ "${DISTRO}" == @(fedora42|fedora43|oracle8|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
|
||||
dnf install -y wget net-tools bzip2 tar vim hostname procps-ng bc vulkan-tools
|
||||
yum install -y vim wget net-tools bzip2 ca-certificates bc
|
||||
install_first_available_pkg "yum" "yum install -y" mesa-demos mesa-utils
|
||||
install_first_available_pkg "yum" "yum install -y" libva-utils vainfo
|
||||
install_first_available_pkg "yum" "yum install -y" mesa-va-drivers mesa-dri-drivers
|
||||
install_optional_pkg "yum" "vulkan-tools" "yum install -y vulkan-tools"
|
||||
install_optional_pkg "yum" "mesa-vulkan-drivers" "yum install -y mesa-vulkan-drivers"
|
||||
install_optional_pkg "yum" "xorg-x11-drv-amdgpu" "yum install -y xorg-x11-drv-amdgpu"
|
||||
install_optional_pkg "yum" "xorg-x11-drv-ati" "yum install -y xorg-x11-drv-ati"
|
||||
install_first_available_pkg "yum" "yum install -y" libdrm-amdgpu libdrm_amdgpu1
|
||||
install_first_available_pkg "yum" "yum install -y" libdrm-radeon libdrm_radeon1
|
||||
if [ "${INSTALL_INTEL_VA_DRIVERS}" == "true" ]; then
|
||||
install_first_available_pkg "yum" "yum install -y" intel-media-driver intel-media-va-driver
|
||||
install_first_available_pkg "yum" "yum install -y" libva-intel-driver i965-va-driver
|
||||
fi
|
||||
elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39|fedora40|fedora41|fedora42|fedora43|oracle8|oracle9|rockylinux9|rockylinux8|almalinux8|almalinux9) ]]; then
|
||||
dnf install -y wget net-tools bzip2 tar vim hostname procps-ng bc
|
||||
install_first_available_pkg "dnf" "dnf install -y" mesa-demos mesa-utils
|
||||
install_first_available_pkg "dnf" "dnf install -y" libva-utils vainfo
|
||||
install_first_available_pkg "dnf" "dnf install -y" mesa-va-drivers mesa-dri-drivers
|
||||
install_optional_pkg "dnf" "vulkan-tools" "dnf install -y vulkan-tools"
|
||||
install_optional_pkg "dnf" "mesa-vulkan-drivers" "dnf install -y mesa-vulkan-drivers"
|
||||
install_optional_pkg "dnf" "xorg-x11-drv-amdgpu" "dnf install -y xorg-x11-drv-amdgpu"
|
||||
install_optional_pkg "dnf" "xorg-x11-drv-ati" "dnf install -y xorg-x11-drv-ati"
|
||||
install_first_available_pkg "dnf" "dnf install -y" libdrm-amdgpu libdrm_amdgpu1
|
||||
install_first_available_pkg "dnf" "dnf install -y" libdrm-radeon libdrm_radeon1
|
||||
if [ "${INSTALL_INTEL_VA_DRIVERS}" == "true" ]; then
|
||||
install_first_available_pkg "dnf" "dnf install -y" intel-media-driver intel-media-va-driver
|
||||
install_first_available_pkg "dnf" "dnf install -y" libva-intel-driver i965-va-driver
|
||||
fi
|
||||
elif [[ "${DISTRO}" == @(rhel9) ]]; then
|
||||
dnf install -y wget net-tools bzip2 tar vim hostname procps-ng bc
|
||||
install_first_available_pkg "dnf" "dnf install -y" mesa-demos mesa-utils
|
||||
install_first_available_pkg "dnf" "dnf install -y" libva-utils vainfo
|
||||
install_first_available_pkg "dnf" "dnf install -y" mesa-va-drivers mesa-dri-drivers
|
||||
install_optional_pkg "dnf" "vulkan-tools" "dnf install -y vulkan-tools"
|
||||
install_optional_pkg "dnf" "mesa-vulkan-drivers" "dnf install -y mesa-vulkan-drivers"
|
||||
install_optional_pkg "dnf" "xorg-x11-drv-amdgpu" "dnf install -y xorg-x11-drv-amdgpu"
|
||||
install_optional_pkg "dnf" "xorg-x11-drv-ati" "dnf install -y xorg-x11-drv-ati"
|
||||
install_first_available_pkg "dnf" "dnf install -y" libdrm-amdgpu libdrm_amdgpu1
|
||||
install_first_available_pkg "dnf" "dnf install -y" libdrm-radeon libdrm_radeon1
|
||||
if [ "${INSTALL_INTEL_VA_DRIVERS}" == "true" ]; then
|
||||
install_first_available_pkg "dnf" "dnf install -y" intel-media-driver intel-media-va-driver
|
||||
install_first_available_pkg "dnf" "dnf install -y" libva-intel-driver i965-va-driver
|
||||
fi
|
||||
elif [ "${DISTRO}" == "opensuse" ]; then
|
||||
zypper install -yn wget net-tools bzip2 tar vim gzip iputils bc vulkan-tools
|
||||
zypper install -yn wget net-tools bzip2 tar vim gzip iputils bc
|
||||
install_first_available_pkg "zypper" "zypper install -yn" Mesa-demos mesa-utils Mesa-demo-x
|
||||
install_first_available_pkg "zypper" "zypper install -yn" libva-utils vainfo
|
||||
install_first_available_pkg "zypper" "zypper install -yn" Mesa-libva mesa-va-drivers
|
||||
install_optional_pkg "zypper" "vulkan-tools" "zypper install -yn vulkan-tools"
|
||||
install_first_available_pkg "zypper" "zypper install -yn" libdrm_amdgpu1 libdrm-amdgpu1
|
||||
install_first_available_pkg "zypper" "zypper install -yn" libdrm_radeon1 libdrm-radeon1
|
||||
install_optional_pkg "zypper" "xf86-video-amdgpu" "zypper install -yn xf86-video-amdgpu"
|
||||
install_optional_pkg "zypper" "xf86-video-ati" "zypper install -yn xf86-video-ati"
|
||||
if [ "${INSTALL_INTEL_VA_DRIVERS}" == "true" ]; then
|
||||
install_first_available_pkg "zypper" "zypper install -yn" intel-media-driver intel-media-va-driver
|
||||
install_first_available_pkg "zypper" "zypper install -yn" libva-intel-driver i965-va-driver
|
||||
fi
|
||||
elif [ "${DISTRO}" == "alpine" ]; then
|
||||
apk add --no-cache \
|
||||
ca-certificates \
|
||||
|
|
@ -24,8 +111,20 @@ elif [ "${DISTRO}" == "alpine" ]; then
|
|||
sudo \
|
||||
tar \
|
||||
wget \
|
||||
bc \
|
||||
vulkan-tools
|
||||
bc
|
||||
install_first_available_pkg "apk" "apk add --no-cache" mesa-demos mesa-utils
|
||||
install_first_available_pkg "apk" "apk add --no-cache" libva-utils vainfo
|
||||
install_first_available_pkg "apk" "apk add --no-cache" mesa-va-gallium mesa-va-drivers
|
||||
install_optional_pkg "apk" "vulkan-tools" "apk add --no-cache vulkan-tools"
|
||||
install_optional_pkg "apk" "mesa-vulkan-radeon" "apk add --no-cache mesa-vulkan-radeon"
|
||||
install_optional_pkg "apk" "xf86-video-amdgpu" "apk add --no-cache xf86-video-amdgpu"
|
||||
install_optional_pkg "apk" "xf86-video-ati" "apk add --no-cache xf86-video-ati"
|
||||
install_first_available_pkg "apk" "apk add --no-cache" libdrm-amdgpu libdrm_amdgpu1
|
||||
install_first_available_pkg "apk" "apk add --no-cache" libdrm-radeon libdrm_radeon1
|
||||
if [ "${INSTALL_INTEL_VA_DRIVERS}" == "true" ]; then
|
||||
install_first_available_pkg "apk" "apk add --no-cache" intel-media-driver intel-media-va-driver
|
||||
install_first_available_pkg "apk" "apk add --no-cache" libva-intel-driver i965-va-driver
|
||||
fi
|
||||
else
|
||||
apt-get update
|
||||
# Update tzdata noninteractive (otherwise our script is hung on user input later).
|
||||
|
|
@ -38,8 +137,26 @@ else
|
|||
# software-properties is removed from kali-rolling and debian trixie
|
||||
if grep -q "kali-rolling" /etc/os-release || grep -q "trixie" /etc/os-release || grep -qi "parrot" /etc/os-release; then
|
||||
apt-get install ${PARROTEXTRA} -y vim wget net-tools locales bzip2 wmctrl mesa-utils bc vulkan-tools
|
||||
fi
|
||||
if grep -q "kali-rolling" /etc/os-release || grep -q "trixie" /etc/os-release || grep -qi "parrot" /etc/os-release; then
|
||||
apt-get install ${PARROTEXTRA} -y vim wget net-tools locales bzip2 wmctrl bc
|
||||
else
|
||||
apt-get install ${PARROTEXTRA} -y vim wget net-tools locales bzip2 wmctrl software-properties-common mesa-utils bc vulkan-tools
|
||||
apt-get install ${PARROTEXTRA} -y vim wget net-tools locales bzip2 wmctrl software-properties-common bc
|
||||
fi
|
||||
|
||||
install_optional_pkg "apt" "mesa-utils" "apt-get install ${PARROTEXTRA} -y mesa-utils"
|
||||
install_first_available_pkg "apt" "apt-get install ${PARROTEXTRA} -y" mesa-utils-extra mesa-demos
|
||||
install_optional_pkg "apt" "vainfo" "apt-get install ${PARROTEXTRA} -y vainfo"
|
||||
install_optional_pkg "apt" "vulkan-tools" "apt-get install ${PARROTEXTRA} -y vulkan-tools"
|
||||
install_optional_pkg "apt" "mesa-va-drivers" "apt-get install ${PARROTEXTRA} -y mesa-va-drivers"
|
||||
install_optional_pkg "apt" "mesa-vulkan-drivers" "apt-get install ${PARROTEXTRA} -y mesa-vulkan-drivers"
|
||||
install_optional_pkg "apt" "xserver-xorg-video-amdgpu" "apt-get install ${PARROTEXTRA} -y xserver-xorg-video-amdgpu"
|
||||
install_optional_pkg "apt" "xserver-xorg-video-ati" "apt-get install ${PARROTEXTRA} -y xserver-xorg-video-ati"
|
||||
install_optional_pkg "apt" "libdrm-amdgpu1" "apt-get install ${PARROTEXTRA} -y libdrm-amdgpu1"
|
||||
install_optional_pkg "apt" "libdrm-radeon1" "apt-get install ${PARROTEXTRA} -y libdrm-radeon1"
|
||||
if [ "${INSTALL_INTEL_VA_DRIVERS}" == "true" ]; then
|
||||
install_optional_pkg "apt" "intel-media-va-driver" "apt-get install ${PARROTEXTRA} -y intel-media-va-driver"
|
||||
install_optional_pkg "apt" "i965-va-driver" "apt-get install ${PARROTEXTRA} -y i965-va-driver"
|
||||
fi
|
||||
|
||||
# Install openssh-client on Ubuntu
|
||||
|
|
|
|||
|
|
@ -1,16 +1,40 @@
|
|||
BUILD_ARCH=$(uname -p)
|
||||
download_rpm() {
|
||||
if [[ "${BUILD_ARCH}" =~ ^aarch64$ ]] ; then
|
||||
url=https://github.com/VirtualGL/virtualgl/releases/download/3.1.3/VirtualGL-3.1.3.aarch64.rpm
|
||||
else
|
||||
url=https://github.com/VirtualGL/virtualgl/releases/download/3.1.3/VirtualGL-3.1.3.x86_64.rpm
|
||||
fi
|
||||
|
||||
if [ "$DISTRO" = "ubuntu" ]; then
|
||||
#install virtualgl
|
||||
#wget https://sourceforge.net/projects/virtualgl/files/2.6.95%20%283.0rc1%29/virtualgl_2.6.95_amd64.deb -P /tmp
|
||||
wget -O "$virtualgl_rpm" "$url"
|
||||
}
|
||||
|
||||
cleanup_rpm() {
|
||||
rm "$virtualgl_rpm"
|
||||
}
|
||||
|
||||
skip_parrotos_due_to_i386_dependencies_lacking() {
|
||||
if [[ "$DISTRO" == @(parrotos6|parrotos7) ]]; then
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
set -e
|
||||
|
||||
virtualgl_deb=/tmp/virtualgl.deb
|
||||
virtualgl_rpm=/tmp/virtualgl.rpm
|
||||
|
||||
BUILD_ARCH=$(arch)
|
||||
|
||||
skip_parrotos_due_to_i386_dependencies_lacking
|
||||
|
||||
if command -v apt-get &>/dev/null; then
|
||||
if [[ "${BUILD_ARCH}" =~ ^aarch64$ ]] ; then
|
||||
apt-get update && apt-get install -y --no-install-recommends \
|
||||
libxau6 libxdmcp6 libxcb1 libxext6 libx11-6
|
||||
apt-get update && apt-get install -y --no-install-recommends \
|
||||
libglvnd0 libgl1 libglx0 libegl1 libgles2
|
||||
|
||||
dpkg -i $INST_SCRIPTS/virtualgl/virtualgl_*arm64.deb
|
||||
wget -O "$virtualgl_deb" https://github.com/VirtualGL/virtualgl/releases/download/3.1.3/virtualgl_3.1.3_arm64.deb
|
||||
else
|
||||
dpkg --add-architecture i386
|
||||
apt-get update && apt-get install -y --no-install-recommends \
|
||||
|
|
@ -26,13 +50,25 @@ if [ "$DISTRO" = "ubuntu" ]; then
|
|||
libegl1 libegl1:i386 \
|
||||
libgles2 libgles2:i386
|
||||
|
||||
if ! grep -q "24.04" /etc/os-release; then
|
||||
if [[ "$DISTRO" = "ubuntu" ]] && ! grep -q "24.04" /etc/os-release; then
|
||||
add-apt-repository ppa:kisak/turtle
|
||||
apt full-upgrade -y
|
||||
fi
|
||||
dpkg -i $INST_SCRIPTS/virtualgl/virtualgl_*amd64.deb
|
||||
wget -O "$virtualgl_deb" https://github.com/VirtualGL/virtualgl/releases/download/3.1.3/virtualgl_3.1.3_amd64.deb
|
||||
fi
|
||||
|
||||
apt install -f -y
|
||||
rm -rf $INST_SCRIPTS/virtualgl/
|
||||
apt-get install -y "$virtualgl_deb"
|
||||
rm "$virtualgl_deb"
|
||||
fi
|
||||
|
||||
if [[ "$DISTRO" =~ ^opensuse ]]; then
|
||||
download_rpm
|
||||
zypper --no-gpg-checks install -y "$virtualgl_rpm"
|
||||
cleanup_rpm
|
||||
elif command -v dnf &>/dev/null; then
|
||||
download_rpm
|
||||
dnf install -y "$virtualgl_rpm"
|
||||
cleanup_rpm
|
||||
fi
|
||||
|
||||
rm -rf $INST_SCRIPTS/virtualgl/
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue