#!/usr/bin/env bash set -euo pipefail ROOT_DIR="${ROOT_DIR:-/workspace}" PROJECT_DIR="${ROOT_DIR}/reveal_vla_bimanual" SHIM_ROOT="${ROOT_DIR}/system_shims" export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y \ libxcb-cursor0 \ libxcb-icccm4 \ libxcb-image0 \ libxcb-keysyms1 \ libxcb-randr0 \ libxcb-render-util0 \ libxcb-xinerama0 \ libxrender1 \ libxkbcommon0 \ libxkbcommon-x11-0 \ mesa-utils \ xvfb \ x11-utils \ x11-xserver-utils \ xauth \ xserver-xorg \ xserver-xorg-core || true if ! command -v nvidia-xconfig >/dev/null 2>&1; then apt-get install -y nvidia-xconfig || true fi mkdir -p /etc/X11/xorg.conf.d if command -v nvidia-xconfig >/dev/null 2>&1; then nvidia-xconfig -a --use-display-device=None --virtual=1280x1024 || \ nvidia-xconfig -a --virtual=1280x1024 fi cat > /etc/X11/xorg.conf.d/99-maxclients.conf <<'EOF' Section "ServerFlags" Option "MaxClients" "2048" EndSection EOF cat > /etc/X11/Xwrapper.config <<'EOF' allowed_users=anybody needs_root_rights=yes EOF DRIVER_VERSION="$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n1)" DRIVER_BRANCH="${DRIVER_VERSION%%.*}" SHIM_DIR="${SHIM_ROOT}/nvidia${DRIVER_BRANCH}" mkdir -p "${SHIM_DIR}" XORG_DEB="$(apt-cache madison "xserver-xorg-video-nvidia-${DRIVER_BRANCH}" | awk -v v="${DRIVER_VERSION}" '$3 ~ v { print $3; exit }')" GL_DEB="$(apt-cache madison "libnvidia-gl-${DRIVER_BRANCH}" | awk -v v="${DRIVER_VERSION}" '$3 ~ v { print $3; exit }')" if [[ -z "${XORG_DEB}" || -z "${GL_DEB}" ]]; then echo "unable to resolve NVIDIA packages for driver ${DRIVER_VERSION}" >&2 exit 1 fi pushd "${ROOT_DIR}" >/dev/null apt-get download \ "xserver-xorg-video-nvidia-${DRIVER_BRANCH}=${XORG_DEB}" \ "libnvidia-gl-${DRIVER_BRANCH}=${GL_DEB}" dpkg-deb -x "xserver-xorg-video-nvidia-${DRIVER_BRANCH}_${XORG_DEB}_amd64.deb" "${SHIM_DIR}" dpkg-deb -x "libnvidia-gl-${DRIVER_BRANCH}_${GL_DEB}_amd64.deb" "${SHIM_DIR}" popd >/dev/null cat <<'EOF' Headless X prerequisites are installed. Start GPU-backed X for RLBench with: /workspace/reveal_vla_bimanual/scripts/start_rlbench_x.sh Then verify: DISPLAY=:99 glxinfo -B The workspace-local NVIDIA Xorg shim is under: /workspace/system_shims EOF