Add support for runnin a secondary instance of steam
This requires that you still have setup a primary container instance of this image. We can then run a secondary instance of steam that will use the existing X server. We are still limited to running one of these steam instances at a time.
This commit is contained in:
18
overlay/etc/cont-init.d/50-configure_pulseaudio.sh
Normal file
18
overlay/etc/cont-init.d/50-configure_pulseaudio.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
echo "**** Configure pulseaudio ****"
|
||||||
|
|
||||||
|
if [ "${MODE}" == "s" ] | [ "${MODE}" == "secondary" ]; then
|
||||||
|
echo "Configure pulseaudio as simple dummy audio"
|
||||||
|
sed -i 's|^; autospawn.*$|autospawn = no|' /etc/pulse/client.conf
|
||||||
|
sed -i 's|^; daemon-binary.*$|daemon-binary = /bin/true|' /etc/pulse/client.conf
|
||||||
|
|
||||||
|
sed -i 's|^; flat-volumes.*$|flat-volumes = yes|' /etc/pulse/daemon.conf
|
||||||
|
else
|
||||||
|
echo "Configure pulseaudio to pipe audio to a socket"
|
||||||
|
sed -i 's|^; default-server.*$|default-server = unix:/tmp/pulseaudio.socket|' /etc/pulse/client.conf
|
||||||
|
sed -i 's|^load-module module-native-protocol-unix.*$|load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket auth-anonymous=1|' \
|
||||||
|
/etc/pulse/default.pa
|
||||||
|
fi
|
||||||
|
chown -R ${USER} /etc/pulse
|
||||||
|
|
||||||
|
echo "DONE"
|
||||||
@@ -1,12 +1,6 @@
|
|||||||
|
|
||||||
echo "**** Configure VNC audio ****"
|
echo "**** Configure VNC audio ****"
|
||||||
|
|
||||||
echo "Configure pulseaudio to pipe audio to a socket"
|
|
||||||
sed -i 's|^; default-server.*$|default-server = unix:/tmp/pulseaudio.socket|' /etc/pulse/client.conf
|
|
||||||
sed -i 's|^load-module module-native-protocol-unix.*$|load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket auth-anonymous=1|' \
|
|
||||||
/etc/pulse/default.pa
|
|
||||||
chown -R ${USER} /etc/pulse
|
|
||||||
|
|
||||||
if [[ "${ENABLE_VNC_AUDIO}" == "true" ]]; then
|
if [[ "${ENABLE_VNC_AUDIO}" == "true" ]]; then
|
||||||
# Credits for this audio patch:
|
# Credits for this audio patch:
|
||||||
# - https://github.com/novnc/noVNC/issues/302
|
# - https://github.com/novnc/noVNC/issues/302
|
||||||
@@ -13,7 +13,7 @@ fi
|
|||||||
|
|
||||||
# NVIDIA Params
|
# NVIDIA Params
|
||||||
export nvidia_pci_address="$(nvidia-smi --format=csv --query-gpu=pci.bus_id --id="${gpu_select}" 2> /dev/null | sed -n 2p | cut -d ':' -f2,3)"
|
export nvidia_pci_address="$(nvidia-smi --format=csv --query-gpu=pci.bus_id --id="${gpu_select}" 2> /dev/null | sed -n 2p | cut -d ':' -f2,3)"
|
||||||
export nvidia_gpu_name=$(nvidia-smi --format=csv --query-gpu=name --id="${gpu_select}" | sed -n 2p 2> /dev/null)
|
export nvidia_gpu_name=$(nvidia-smi --format=csv --query-gpu=name --id="${gpu_select}" 2> /dev/null | sed -n 2p)
|
||||||
export nvidia_host_driver_version="$(nvidia-smi 2> /dev/null | grep NVIDIA-SMI | cut -d ' ' -f3)"
|
export nvidia_host_driver_version="$(nvidia-smi 2> /dev/null | grep NVIDIA-SMI | cut -d ' ' -f3)"
|
||||||
|
|
||||||
# Intel params
|
# Intel params
|
||||||
|
|||||||
@@ -65,23 +65,20 @@ function configure_x_server {
|
|||||||
echo "Configure container to use a virtual framebuffer as the X server"
|
echo "Configure container to use a virtual framebuffer as the X server"
|
||||||
# Disable supervisord script
|
# Disable supervisord script
|
||||||
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/xorg.ini
|
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/xorg.ini
|
||||||
else
|
|
||||||
echo "Configure container as secondary and do not run an X server"
|
|
||||||
# Disable supervisord script
|
|
||||||
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/xorg.ini
|
|
||||||
fi
|
fi
|
||||||
# Make startup script executable
|
# Make startup script executable
|
||||||
chmod +x /usr/bin/start-xorg.sh
|
chmod +x /usr/bin/start-xorg.sh
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [ "${MODE}" != "s" ] & [ "${MODE}" != "secondary" ]; then
|
||||||
if [[ -z ${nvidia_gpu_hex_id} ]]; then
|
if [[ -z ${nvidia_gpu_hex_id} ]]; then
|
||||||
echo "**** Generate default xorg.conf ****";
|
echo "**** Generate default xorg.conf ****";
|
||||||
configure_x_server
|
configure_x_server
|
||||||
else
|
else
|
||||||
echo "**** Generate NVIDIA xorg.conf ****";
|
echo "**** Generate NVIDIA xorg.conf ****";
|
||||||
configure_x_server
|
configure_x_server
|
||||||
configure_nvidia_x_server
|
configure_nvidia_x_server
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "DONE"
|
echo "DONE"
|
||||||
|
|||||||
28
overlay/etc/cont-init.d/95-configure_secondary.sh
Normal file
28
overlay/etc/cont-init.d/95-configure_secondary.sh
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
if [ "${MODE}" == "s" ] | [ "${MODE}" == "secondary" ]; then
|
||||||
|
echo "Configure container as secondary"
|
||||||
|
# Disable dbus
|
||||||
|
echo " - Disable dbus"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/dbus.ini
|
||||||
|
# Disable desktop
|
||||||
|
echo " - Disable desktop"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/desktop.ini
|
||||||
|
# Disable sshd
|
||||||
|
echo " - Disable sshd"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/sshd.ini
|
||||||
|
# Disable vnc
|
||||||
|
echo " - Disable vnc"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/vnc.ini
|
||||||
|
# Disable xorg
|
||||||
|
echo " - Disable xorg"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/xorg.ini
|
||||||
|
|
||||||
|
# Enable pulseaudio
|
||||||
|
echo " - Enable pulseaudio"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=true|' /etc/supervisor.d/pulseaudio.ini
|
||||||
|
# Enable steam
|
||||||
|
echo " - Enable steam"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=true|' /etc/supervisor.d/steam.ini
|
||||||
|
# Enable udev
|
||||||
|
echo " - Enable udev"
|
||||||
|
sed -i 's|^autostart.*=.*$|autostart=true|' /etc/supervisor.d/udev.ini
|
||||||
|
fi
|
||||||
@@ -6,7 +6,8 @@ autorestart=true
|
|||||||
priority=50
|
priority=50
|
||||||
user=%(ENV_USER)s
|
user=%(ENV_USER)s
|
||||||
directory=/home/%(ENV_USER)s
|
directory=/home/%(ENV_USER)s
|
||||||
command=/usr/game/steam -bigpicture
|
# command=/usr/games/steam -bigpicture
|
||||||
|
command=/usr/games/steam
|
||||||
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
||||||
stopsignal=QUIT
|
stopsignal=QUIT
|
||||||
stdout_logfile=/home/%(ENV_USER)s/.cache/log/steam.log
|
stdout_logfile=/home/%(ENV_USER)s/.cache/log/steam.log
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ file=/run/supervisor.sock ; the path to the socket file
|
|||||||
;username=user ; default is no username (open server)
|
;username=user ; default is no username (open server)
|
||||||
;password=123 ; default is no password (open server)
|
;password=123 ; default is no password (open server)
|
||||||
|
|
||||||
[inet_http_server] ; inet (TCP) server disabled by default
|
;[inet_http_server] ; inet (TCP) server disabled by default
|
||||||
port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface
|
;port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface
|
||||||
;username=user ; default is no username (open server)
|
;username=user ; default is no username (open server)
|
||||||
;password=123 ; default is no password (open server)
|
;password=123 ; default is no password (open server)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user