Memory map error when adding a new Logitech Quickcam Pro 9000
Question
Hello,
I am using motion with a Logitech Quickcam Pro 9000. Everything was fine, so I decided to add a new webcam, and bought the same as the first.
I copy/paste the first thread config to the new one, adding some minor "path" modification for jpeg output. The first webcam is working well but the second is not working:
[2] Error starting stream.
[2] VIDIOC_STREAMON: No space left on device
[2] ioctl(VIDIOCGMBUF) - Error device does not support memory map
[2]
V4L capturing using read is deprecated! [2] Motion only supports mmap.
So I remove the first webcam from the configuration and tried with only the new one. Everything is working perfectly!
Is it possible to add a new webcam? Should I update the
V4L driver?
Thanks a lot for your help.
JF HEINTZ
[0] Processing thread 0 - config file /opt/motion/etc/motion.conf
[0] Unknown config option "sql_log_image"
[0] Unknown config option "sql_log_snapshot"
[0] Unknown config option "sql_log_mpeg"
[0] Unknown config option "sql_log_timelapse"
[0] Processing config file /opt/motion/etc/thread3.conf
[0] Unknown config option "night_compensate"
[0] Unknown config option "low_cpu"
[0] Processing config file /opt/motion/etc/thread2.conf
[0] Unknown config option "night_compensate"
[0] Unknown config option "low_cpu"
[0] Motion 3.2.10.1 Started
[0] ffmpeg LIBAVCODEC_BUILD 3353856 LIBAVFORMAT_BUILD 3345920
[0] Thread 1 is from /opt/motion/etc/thread3.conf
[1] Thread 1 started
[1] cap.driver: "uvcvideo"
[1] cap.card: "UVC Camera (046d:0990)"
[1] cap.bus_info: "0000:00:1d.7"
[1] cap.capabilities=0x04000001
[1] - VIDEO_CAPTURE
[1] - STREAMING
[1] Supported palettes:
[1] 0: MJPG (MJPEG)
[1] 1: YUYV (YUV 4:2:2 (YUYV))
[0] Thread 2 is from /opt/motion/etc/thread2.conf
[2] Thread 2 started
[0] httpd bind(): Address already in use
[0] httpd thread exit
[1] index_format 6 Test palette YUYV (1600x1200)
[1] Using palette YUYV (1600x1200) bytesperlines 3200 sizeimage 3840000 colorspace 00000008
[1] found control 0x00980900, "Brightness", range 0,255
[1] "Brightness", default 128, current 128
[1] found control 0x00980901, "Contrast", range 0,255
[1] "Contrast", default 32, current 32
[1] found control 0x00980902, "Saturation", range 0,255
[1] "Saturation", default 32, current 32
[1] found control 0x00980913, "Gain", range 0,255
[1] "Gain", default 0, current 0
[1] found control 0x08000000, "Backlight Compensation", range 0,2
[1] "Backlight Compensation", default 1, current 1
[1] found control 0x08000001, "Power Line Frequency", range 0,2
[1] "Power Line Frequency", default 2, current 2
[1] mmap information:
[1] frames=4
[1] 0 length=3840000
[1] 1 length=3840000
[1] 2 length=3840000
[1] 3 length=3840000
[1] Using V4L2
[1] Resizing pre_capture buffer to 1 items
[2] cap.driver: "uvcvideo"
[2] cap.card: "UVC Camera (046d:0990)"
[2] cap.bus_info: "0000:00:1d.7"
[2] cap.capabilities=0x04000001
[2] - VIDEO_CAPTURE
[2] - STREAMING
[2] Supported palettes:
[2] 0: MJPG (MJPEG)
[2] 1: YUYV (YUV 4:2:2 (YUYV))
[2] index_format 6 Test palette YUYV (1600x1200)
[2] Using palette YUYV (1600x1200) bytesperlines 3200 sizeimage 3840000 colorspace 00000008
[2] found control 0x00980900, "Brightness", range 0,255
[2] "Brightness", default 128, current 128
[2] found control 0x00980901, "Contrast", range 0,255
[2] "Contrast", default 32, current 32
[2] found control 0x00980902, "Saturation", range 0,255
[2] "Saturation", default 32, current 32
[2] found control 0x00980913, "Gain", range 0,255
[2] "Gain", default 0, current 0
[2] found control 0x08000000, "Backlight Compensation", range 0,2
[2] "Backlight Compensation", default 1, current 1
[2] found control 0x08000001, "Power Line Frequency", range 0,2
[2] "Power Line Frequency", default 2, current 2
[2] mmap information:
[2] frames=4
[2] 0 length=3840000
[2] 1 length=3840000
[2] 2 length=3840000
[2] 3 length=3840000
[2] Error starting stream.
[2] VIDIOC_STREAMON: No space left on device
[2] ioctl(VIDIOCGMBUF) - Error device does not support memory map
[2] V4L capturing using read is deprecated!
[2] Motion only supports mmap.
[2] Could not fetch initial image from camera
[2] Motion continues using width and height from config file(s)
[2] Resizing pre_capture buffer to 1 items
[2] Started stream webcam server in port 8082
[2] Resizing pre_capture buffer to 6 items
[2] Retrying until successful connection with camera
[2] cap.driver: "uvcvideo"
[2] cap.card: "UVC Camera (046d:0990)"
[2] cap.bus_info: "0000:00:1d.7"
[2] cap.capabilities=0x04000001
[2] - VIDEO_CAPTURE
[2] - STREAMING
[2] Error selecting input 0
[2] VIDIOC_S_INPUT: Device or resource busy
[2] ioctl(VIDIOCGMBUF) - Error device does not support memory map
[2] V4L capturing using read is deprecated!
[2] Motion only supports mmap.
[1] Started stream webcam server in port 8083
[1] Resizing pre_capture buffer to 6 items
[2] Retrying until successful connection with camera
[2] cap.driver: "uvcvideo"
[2] cap.card: "UVC Camera (046d:0990)"
[2] cap.bus_info: "0000:00:1d.7"
[2] cap.capabilities=0x04000001
[2] - VIDEO_CAPTURE
[2] - STREAMING
[2] Error selecting input 0
[2] VIDIOC_S_INPUT: Device or resource busy
[2] ioctl(VIDIOCGMBUF) - Error device does not support memory map
[2] V4L capturing using read is deprecated!
[2] Motion only supports mmap.
[2] Retrying until successful connection with camera
[2] cap.driver: "uvcvideo"
[2] cap.card: "UVC Camera (046d:0990)"
[2] cap.bus_info: "0000:00:1d.7"
[2] cap.capabilities=0x04000001
[2] - VIDEO_CAPTURE
[2] - STREAMING
[2] Error selecting input 0
[2] VIDIOC_S_INPUT: Device or resource busy
[2] ioctl(VIDIOCGMBUF) - Error device does not support memory map
[2] V4L capturing using read is deprecated!
[2] Motion only supports mmap.
Environment
Motion version: |
3.2.10 |
ffmpeg version: |
|
Libraries: |
ffmpeg |
Server OS: |
|
--
JeanFrancoisHEINTZ - 14 Jul 2008
Answer
Hi Jean,
Look on this message : "No space left on device"
Looks that is the v4l2 version message for this :
http://www.lavrsen.dk/twiki/bin/view/Motion/FrequentlyAskedQuestions#sync_error_in_proc_xxxx_No_space
Your webcams are requesting more bandwidth than your usb host can supply , try to use a lower resolution or buy
new usb host 2.0.
--
AngelCarpintero - 14 Jul 2008
Hi Angel,
Thanks for your answer. I was thinking about something like this the webcam is 2MP, but instead of reducing the resolution, I will prefer reduce the frame rate. Is it possible to do such thing?
Actually, I am using a cheap USB hub, do you recommend any other USB hub? Is using another will help? I am using a small computer and I cannot had any PCI card.
Thanks
--
JeanFrancoisHEINTZ - 15 Jul 2008
I don't think that framerate can help at all and that small hub either they only solution is use 2 usb host controller or use a small resolution that fits bandwidth of
your current usb host.
--
AngelCarpintero - 15 Jul 2008
I was thinking about another solution: adding a small image server taking picture each time it is asked (based on a product like
http://www.unix-ag.uni-kl.de/~auerswal/wcggrabber.html ). This way motion will call this small server. This way the bandwitch will be reserved alternatively. Do you think it is possible? A good idea? (I am really not able to add more USB card on my computer)
Regards
--
JeanFrancoisHEINTZ - 16 Jul 2008
It could work , but not sure about the complexity of that method.
--
AngelCarpintero - 05 Aug 2009