LINUX.ORG.RU

[UVC][Вещества] Видеокамера переименовывается о_О

 ,


0

2

Здравствуй, ЛОР. Запускаю guvcview -d /dev/video0, получаю лишь один кадр (окошко вывода с видеокамеры), и то тёмный, после чего устройство переименовывается в /dev/video1. о_О

dd if=/dev/video0

dd: чтение «/dev/video0»: Недопустимый аргумент
0+0 записей считано
0+0 записей написано
 скопировано 0 байт (0 B), 0,000305068 c, 0,0 kB/c

ls -al /dev/video*; guvcview -d /dev/video*; ls -al /dev/video*

crw-rw----+ 1 root video 81, 0 2011-10-02 15:14 /dev/video0
guvcview 1.4.5
socket(): Семейство адресов не поддерживается протоколом
socket(): Семейство адресов не поддерживается протоколом
Cannot connect to server socket err = Нет такого файла или каталога
Cannot connect to server socket
jack server is not running or cannot be started
video device: /dev/video0 
Init. USB2.0 UVC 2M WebCam (location: usb-0000:00:1a.0-1.2)

/* здесь пропущено много букв */

vid:13d3 
pid:5122 
driver:uvcvideo
checking format: 859981650
fps is set to 1/20
drawing controls

VIDIOC_G_EXT_CTRLS failed
   using VIDIOC_G_CTRL for user class controls
libv4l2: error turning on stream: Ошибка протокола
VIDIOC_STREAMON - Unable to start capture: Ошибка протокола
fps is set to 1/20
Checking video mode 800x600@32bpp : OK 
libv4l2: error turning on stream: Нет такого устройства
VIDIOC_STREAMON - Unable to start capture: Нет такого устройства
libv4l2: error turning on stream: Нет такого устройства
VIDIOC_STREAMON - Unable to start capture: Нет такого устройства
write /home/northsoft/.guvcviewrc OK
VIDIOC_REQBUFS - Failed to delete buffers: Нет такого устройства (errno 19)
free controls
cleaned allocations - 100%
Closing portaudio ...OK
Closing GTK... OK
crw-rw----+ 1 root video 81, 1 2011-10-02 15:25 /dev/video1

ЧЯДНТ? Под оффтопиком всё работает.

> dd: чтение «/dev/video0»: Недопустимый аргумент
Из /dev/video* вообще нельзя читать, а всякие плееры работают с ними при помощи специфичных ioctl'ов.

Получившийся /dev/video1 ведёт себя аналогичным образом? В dmesg ничего интересного не наклёвывается?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Да, новое устройство ведёт себя аналогично. В dmesg ничего не выдаётся.

Northsoft ★★
() автор топика
Ответ на: комментарий от AITap

>Из /dev/video* вообще нельзя читать, а всякие плееры работают с ними при помощи специфичных ioctl'ов.

Можно если реализован read() ... но в uvc он не реализован, там всё работает через mmap+ioctl

как вариант попробовать другой плеер, если ошибка повторится, написать в linux-uvc-devel@lists.berlios.de

sS ★★★★★
()
Ответ на: комментарий от Northsoft

А если тупо mplayer /dev/video0, то он же никаких ioctl'ов v4l2 не вызывает, а пытается читать из устройства и играть получаемый поток. Что в принципе невозможно (без установки потокового режима - а для этого программа, прежде чем начать читать из /dev/videoX, должна ioctl'ами нужный режим работы сообщить).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

ls -al /dev/video*; mplayer tv://0; ls -al /dev/video*

crw-rw----+ 1 root video 81, 0 2011-10-04 20:00 /dev/video0
MPlayer SVN-1.rc4.0.r31086.3.1plf2010.2-4.4.3 (C) 2000-2010 MPlayer Team

Playing tv://0.
TV file format detected.
Selected driver: v4l2
 name: Video 4 Linux 2 input
 author: Martin Olschewski <olschewski@zpr.uni-koeln.de>
 comment: first try, more to come ;-)
v4l2: your device driver does not support VIDIOC_G_STD ioctl, VIDIOC_G_PARM was used instead.
Selected device: USB2.0 UVC 2M WebCam
 Capabilites:  video capture  streaming
 supported norms:
 inputs: 0 = Camera 1;
 Current input: 0
 Current format: YUYV
v4l2: ioctl set format failed: Invalid argument
v4l2: ioctl set format failed: Invalid argument
v4l2: ioctl set format failed: Invalid argument
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl enum norm failed: Invalid argument
Error: Cannot set norm!
Selected input hasn't got a tuner!
v4l2: ioctl set mute failed: Invalid argument
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 640x480 => 640x480 Packed YUY2  [zoom]
Selected video codec: [rawyuy2] vfm: raw (RAW YUY2)
==========================================================================
Audio: no sound
Starting playback...
v4l2: ioctl streamon failed: Protocol error
v4l2: ioctl set mute failed: No such device
v4l2: 0 frames successfully processed, 0 frames dropped.

Exiting... (Quit)
crw-rw----+ 1 root video 81, 1 2011-10-04 20:01 /dev/video1

Изображения не было, дисплей mplayer'а показывал зелёный квадрат с какими-то мигающими помехами (скриншот)

Northsoft ★★
() автор топика
Ответ на: комментарий от Northsoft

Ну, например, так:

udevadm monitor monitor will print the received events for: UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent

KERNEL[1317735261.885062] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1 (usb) KERNEL[1317735261.887861] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0 (usb) UDEV [1317735261.888533] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1 (usb) KERNEL[1317735261.951050] add /module/gspca_zc3xx (module) UDEV [1317735261.952075] add /module/gspca_zc3xx (module) KERNEL[1317735262.241858] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/video4linux/video0 (video4linux) KERNEL[1317735262.241932] add /bus/usb/drivers/zc3xx (drivers) UDEV [1317735262.242917] add /bus/usb/drivers/zc3xx (drivers) UDEV [1317735262.243567] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0 (usb) UDEV [1317735262.247763] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/video4linux/video0 (video4linux)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

И еще:

ll /sys/bus/usb/drivers/
итого 0
drwxr-xr-x 2 root root 0 2011-10-04 17:35 hiddev/
drwxr-xr-x 2 root root 0 2011-10-04 17:35 hub/
drwxr-xr-x 2 root root 0 2011-10-04 17:35 usb/
drwxr-xr-x 2 root root 0 2011-10-04 17:35 usbfs/
drwxr-xr-x 2 root root 0 2011-10-04 17:35 usbhid/
drwxr-xr-x 2 root root 0 2011-10-04 17:35 usblp/
drwxr-xr-x 2 root root 0 2011-10-04 17:35 usb-storage/
drwxr-xr-x 2 root root 0 2011-10-04 17:35 zc3xx/

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

modprobe -rw uvcvideo; modprobe -w uvcvideo; udevadm monitor

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

UDEV  [1317736587.661281] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input20 (input)
UDEV  [1317736587.664388] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/video4linux/video0 (video4linux)
UDEV  [1317736587.666504] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input20/event10 (input)

ll /sys/bus/usb/drivers

drwxr-xr-x 2 root root 0 2011-10-04 19:40 btusb/
drwxr-xr-x 2 root root 0 2011-10-04 19:41 cdc_phonet
drwxr-xr-x 2 root root 0 2011-10-04 19:40 hub
drwxr-xr-x 2 root root 0 2011-10-04 19:40 usb
drwxr-xr-x 2 root root 0 2011-10-04 20:58 usbfs
drwxr-xr-x 2 root root 0 2011-10-04 19:40 usbhid
drwxr-xr-x 2 root root 0 2011-10-04 20:56 uvcvideo
Northsoft ★★
() автор топика
Ответ на: комментарий от AITap

>Из /dev/video* вообще нельзя читать

Поразительно, а я всегда читал. Скажем, видеозапись с тв-тюнера вообще делал как cp /dev/video0 my-file.mpg

Аналогично — с вебкамерами.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Да, мне уже выше пояснили, что на самом деле read() возможен, только не везде и иногда не сразу.

Извиняюсь, опять соврамши.

AITap ★★★★★
()
Ответ на: комментарий от KRoN73

видеозапись с тв-тюнера вообще делал как cp /dev/video0 my-file.mpg

Значит, у вас модуль тюнера поддерживал автоматическое выставление режима в READ, если из /dev/video0 пытались читать.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.