mirror of
https://github.com/ApfelTeeSaft/CTR-WebCam.git
synced 2026-08-26 19:23:33 +00:00
83 lines
2.1 KiB
Bash
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 ""
|