/dev/video0 camera
This commit is contained in:
@@ -26,10 +26,10 @@ These files provide a bash script for quickly deploying multiple octoprint insta
|
|||||||
* To add more printers at a later date, just run the script again!
|
* To add more printers at a later date, just run the script again!
|
||||||
* General Linux (Ubuntu/Mint/RPiOS/Debian/Fedora/Arch/etc.)
|
* General Linux (Ubuntu/Mint/RPiOS/Debian/Fedora/Arch/etc.)
|
||||||
* __You do not need to install OctoPrint using any Wiki instructions, snap, etc. The script will do it for you.__
|
* __You do not need to install OctoPrint using any Wiki instructions, snap, etc. The script will do it for you.__
|
||||||
* octoprint_deploy uses systemd services, so avoid distros that do not use systemd by default (MX Linux)
|
* octoprint_deploy uses systemd services, so avoid distros that do not use systemd by default (MX Linux or chroot based systems like Chrome+crouton)
|
||||||
* Basic guide video here: https://youtu.be/1YINWQ5fNn0
|
* Basic guide video here: https://youtu.be/1YINWQ5fNn0
|
||||||
* All commands assume you are operating out of your home directory.
|
* All commands assume you are operating out of your home directory.
|
||||||
* Install Ubuntu 18-22.X, Mint 20.3+, Debian, DietPi, RPiOS, Armbian, Fedora35+, or ArchLinux on your system (make sure your user is admin for sudo).
|
* Install Ubuntu 20+, Mint 20.3+, Debian, DietPi, RPiOS, Armbian, Fedora35+, or ArchLinux on your system (make sure your user is admin for sudo).
|
||||||
* Install git if it isn't already: `sudo apt install git` or `sudo dnf install git` or `sudo pacman -S git`.
|
* Install git if it isn't already: `sudo apt install git` or `sudo dnf install git` or `sudo pacman -S git`.
|
||||||
* run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`.
|
* run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`.
|
||||||
* run the command `sudo octoprint_deploy/octoprint_deploy.sh`.
|
* run the command `sudo octoprint_deploy/octoprint_deploy.sh`.
|
||||||
|
|||||||
@@ -364,7 +364,7 @@ write_camera() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
add_camera() {
|
add_camera() {
|
||||||
|
PI=$1
|
||||||
if [ $SUDO_USER ]; then user=$SUDO_USER; fi
|
if [ $SUDO_USER ]; then user=$SUDO_USER; fi
|
||||||
echo 'Adding camera' | log
|
echo 'Adding camera' | log
|
||||||
if [ -z "$INSTANCE" ]; then
|
if [ -z "$INSTANCE" ]; then
|
||||||
@@ -386,36 +386,33 @@ add_camera() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dmesg -C
|
if [ -z "$PI" ]; then
|
||||||
echo "Plug your camera in via USB now (detection time-out in 1 min)"
|
detect_camera
|
||||||
counter=0
|
|
||||||
while [[ -z "$CAM" ]] && [[ $counter -lt 60 ]]; do
|
#Failed state. Nothing detected
|
||||||
CAM=$(dmesg | sed -n -e 's/^.*SerialNumber: //p')
|
if [ -z "$CAM" ] && [ -z "$TEMPUSBCAM" ] ; then
|
||||||
TEMPUSBCAM=$(dmesg | sed -n -e 's|^.*input:.*/\(.*\)/input/input.*|\1|p')
|
echo
|
||||||
counter=$(( $counter + 1 ))
|
echo -e "\033[0;31mNo camera was detected during the detection period.\033[0m"
|
||||||
if [[ -n "$TEMPUSBCAM" ]] && [[ -z "$CAM" ]]; then
|
echo
|
||||||
break
|
return
|
||||||
fi
|
fi
|
||||||
sleep 1
|
|
||||||
done
|
if [ -z "$CAM" ]; then
|
||||||
dmesg -C
|
echo "Camera Serial Number not detected" | log
|
||||||
#Failed state. Nothing detected
|
echo -e "Camera will be setup with physical USB address of \033[0;34m $TEMPUSBCAM.\033[0m" | log
|
||||||
if [ -z "$CAM" ] && [ -z "$TEMPUSBCAM" ] ; then
|
echo "The camera will have to stay plugged into this location." | log
|
||||||
echo
|
USBCAM=$TEMPUSBCAM
|
||||||
echo -e "\033[0;31mNo camera was detected during the detection period.\033[0m"
|
else
|
||||||
echo
|
echo -e "Camera detected with serial number: \033[0;34m $CAM \033[0m" | log
|
||||||
return
|
check_sn "$CAM"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Setting up a Pi camera service for /dev/video0"
|
||||||
|
echo "Please note that doing this with USB cameras may lead to issues."
|
||||||
|
echo "Don't expect extensive support for trying to fix these issues."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$CAM" ]; then
|
|
||||||
echo "Camera Serial Number not detected" | log
|
|
||||||
echo -e "Camera will be setup with physical USB address of \033[0;34m $TEMPUSBCAM.\033[0m" | log
|
|
||||||
echo "The camera will have to stay plugged into this location." | log
|
|
||||||
USBCAM=$TEMPUSBCAM
|
|
||||||
else
|
|
||||||
echo -e "Camera detected with serial number: \033[0;34m $CAM \033[0m" | log
|
|
||||||
check_sn "$CAM"
|
|
||||||
fi
|
|
||||||
echo "Camera Port (ENTER will increment last value in /etc/camera_ports):"
|
echo "Camera Port (ENTER will increment last value in /etc/camera_ports):"
|
||||||
read CAMPORT
|
read CAMPORT
|
||||||
if [ -z "$CAMPORT" ]; then
|
if [ -z "$CAMPORT" ]; then
|
||||||
@@ -454,6 +451,10 @@ add_camera() {
|
|||||||
#Need to check if this is a one-off install
|
#Need to check if this is a one-off install
|
||||||
if [ -n "$camopt" ]; then
|
if [ -n "$camopt" ]; then
|
||||||
write_camera
|
write_camera
|
||||||
|
#Pi Cam setup, replace cam_INSTANCE with /dev/video0
|
||||||
|
if [ -n "$PI" ]; then
|
||||||
|
sed -i "s/cam_$INSTANCE/video0/" /etc/systemd/system/cam_$INSTANCE.service
|
||||||
|
fi
|
||||||
systemctl start cam_$INSTANCE.service
|
systemctl start cam_$INSTANCE.service
|
||||||
systemctl enable cam_$INSTANCE.service
|
systemctl enable cam_$INSTANCE.service
|
||||||
udevadm control --reload-rules
|
udevadm control --reload-rules
|
||||||
@@ -480,6 +481,22 @@ detect_printer() {
|
|||||||
dmesg -C
|
dmesg -C
|
||||||
}
|
}
|
||||||
|
|
||||||
|
detect_camera() {
|
||||||
|
dmesg -C
|
||||||
|
echo "Plug your camera in via USB now (detection time-out in 1 min)"
|
||||||
|
counter=0
|
||||||
|
while [[ -z "$CAM" ]] && [[ $counter -lt 60 ]]; do
|
||||||
|
CAM=$(dmesg | sed -n -e 's/^.*SerialNumber: //p')
|
||||||
|
TEMPUSBCAM=$(dmesg | sed -n -e 's|^.*input:.*/\(.*\)/input/input.*|\1|p')
|
||||||
|
counter=$(( $counter + 1 ))
|
||||||
|
if [[ -n "$TEMPUSBCAM" ]] && [[ -z "$CAM" ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
dmesg -C
|
||||||
|
}
|
||||||
|
|
||||||
remove_instance() {
|
remove_instance() {
|
||||||
echo
|
echo
|
||||||
echo
|
echo
|
||||||
@@ -1371,4 +1388,8 @@ fi
|
|||||||
if [ "$1" == replace ]; then
|
if [ "$1" == replace ]; then
|
||||||
replace_id
|
replace_id
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == picam ]; then
|
||||||
|
add_camera true
|
||||||
|
fi
|
||||||
main_menu
|
main_menu
|
||||||
|
|||||||
Reference in New Issue
Block a user