Files
2025-10-28 19:17:52 +01:00

83 lines
2.1 KiB
Bash

#!/bin/bash
# Create v4l2loopback virtual camera device(s)
set -e
DUAL=false
# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--dual)
DUAL=true
shift
;;
*)
echo "Unknown option: $1"
echo "Usage: $0 [--dual]"
exit 1
;;
esac
done
echo "======================================"
echo "v4l2loopback Device Setup"
echo "======================================"
echo ""
# Check if v4l2loopback is installed
if ! modinfo v4l2loopback &> /dev/null; then
echo "Error: v4l2loopback is not installed!"
echo "Run: ./scripts/pc-install.sh"
exit 1
fi
# Unload existing module if loaded
if lsmod | grep -q v4l2loopback; then
echo "Unloading existing v4l2loopback module..."
sudo modprobe -r v4l2loopback
fi
# Load module with appropriate parameters
if [ "$DUAL" = true ]; then
echo "Creating dual virtual camera devices..."
sudo modprobe v4l2loopback \
devices=2 \
video_nr=0,1 \
card_label="3DS Webcam Left","3DS Webcam Right" \
exclusive_caps=1,1
echo ""
echo "Created devices:"
echo " /dev/video0 - 3DS Webcam Left"
echo " /dev/video1 - 3DS Webcam Right"
echo ""
echo "To use with dual mode:"
echo " ./pc-server/run_server.sh --stereo-mode dual --dual-devices /dev/video0,/dev/video1"
else
echo "Creating single virtual camera device..."
sudo modprobe v4l2loopback \
devices=1 \
video_nr=0 \
card_label="3DS Webcam" \
exclusive_caps=1
echo ""
echo "Created device:"
echo " /dev/video0 - 3DS Webcam"
echo ""
echo "To use:"
echo " ./pc-server/run_server.sh --device /dev/video0"
fi
echo ""
echo "Verify with: v4l2-ctl --list-devices"
echo ""
echo "To make this persistent across reboots, add to /etc/modules-load.d/v4l2loopback.conf:"
if [ "$DUAL" = true ]; then
echo " options v4l2loopback devices=2 video_nr=0,1 card_label=\"3DS Webcam Left\",\"3DS Webcam Right\" exclusive_caps=1,1"
else
echo " options v4l2loopback devices=1 video_nr=0 card_label=\"3DS Webcam\" exclusive_caps=1"
fi
echo ""