NetSpider
На досуге гляну подробнее доку на vsftpd.
Спасибо за детализацию проблемы, но всё же просьба пользоваться тегом CODE для удобства чтения.
Я буду бекпортить финальный патч от Alan Stern - EHCI: workaround for MosChip controller bug
У меня на RT-N10U при подключенной камере постоянно вываливается ошибка(r3722 и старше):
Failed to resubmit video URB (-27)
Ну и соответственно камера перестает отдавать фреймы в EHCI.
Это старая проблема, упоминавшаяся в теме про камеры.
Алан Стерн в переписке упоминает, что проблема в том, что контроллер EHCI иногда путается с нумерацией фреймов с камеры, то есть проблема в основном в аппаратной реализации EHCI.
Алан Стерн предложил патчик, который конкретно показывает ошибку, и пытается заново запустить передачу фреймов.
Вот оригинал патча:
я внедрил в драйвер EHCI данный патч, в результате вместо ошибкиCode:Index: usb-3.1/drivers/usb/host/ehci-sched.c =================================================================== --- usb-3.1.orig/drivers/usb/host/ehci-sched.c +++ usb-3.1/drivers/usb/host/ehci-sched.c @@ -2293,6 +2293,7 @@ scan_periodic (struct ehci_hcd *ehci) union ehci_shadow q, *q_p; __hc32 type, *hw_p; unsigned incomplete = false; +int oclock = -1; frame = now_uframe >> 3; @@ -2373,6 +2374,15 @@ restart: *hw_p = ehci->dummy->qh_dma; type = Q_NEXT_TYPE(ehci, q.itd->hw_next); wmb(); + +if (q.itd->hw_transaction[7] & ITD_ACTIVE(ehci)) { + ehci_info(ehci, "Bad iTD frame %u uf %u index0,7 %u %u startf %d\n", + frame, uf, q.itd->index[0], q.itd->index[7], + q.itd->urb->start_frame); + ehci_info(ehci, " clockf %u clockuf %u nowuf %u oclock %d", + clock_frame, clock, now_uframe, oclock); +} + modified = itd_complete (ehci, q.itd); q = *q_p; break; @@ -2460,6 +2470,7 @@ restart: break; /* rescan the rest of this frame, then ... */ +oclock = clock; clock = now; clock_frame = clock >> 3; if (ehci->clock_frame != clock_frame) {
Failed to resubmit video URB (-27)
получаю вывод в лог:то есть ошибки хоть и сыплются, но камера продолжает работать - это проверял удаленно.Code:Jan 10 06:33:47 MJPG-streamer [344]: Using V4L2 device.: /dev/video0 Jan 10 06:33:47 MJPG-streamer [344]: Desired Resolution: 640 x 480 Jan 10 06:33:47 MJPG-streamer [344]: Frames Per Second.: 1 Jan 10 06:33:47 MJPG-streamer [344]: Format............: YUV Jan 10 06:33:47 MJPG-streamer [344]: JPEG Quality......: 50 Jan 10 06:33:47 kernel: uvcvideo: Failed to query (135) UVC control 6 (unit 1) : -32 (exp. 2). Jan 10 06:33:47 MJPG-streamer [344]: www-folder-path...: disabled Jan 10 06:33:47 MJPG-streamer [344]: HTTP TCP port.....: 7776 Jan 10 06:33:47 MJPG-streamer [344]: commands..........: enabled Jan 10 06:33:47 MJPG-streamer [344]: output folder.....: /tmp/mnt/disca_1 Jan 10 06:33:47 MJPG-streamer [344]: delay after save..: 1000 Jan 10 06:33:47 MJPG-streamer [344]: ringbuffer size...: no ringbuffer Jan 10 06:33:47 MJPG-streamer [344]: command...........: disabled Jan 10 06:33:47 MJPG-streamer [344]: starting input plugin Jan 10 06:33:47 MJPG-streamer [344]: starting output plugin: output_http.so (ID: 00) Jan 10 06:33:47 MJPG-streamer [344]: starting output plugin: output_file.so (ID: 01) Jan 10 10:32:43 kernel: ehci_hcd 0000:00:04.1: Bad iTD frame 470 uf 0 index0,7 4294967295 3 startf 3764 Jan 10 11:59:52 kernel: ehci_hcd 0000:00:04.1: clockf 471 clockuf 3769 nowuf 3760 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 281 uf 0 index0,7 0 7 startf 2248 Jan 10 12:02:49 kernel: ehci_hcd 0000:00:04.1: clockf 285 clockuf 2280 nowuf 2248 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 251 uf 0 index0,7 4294967295 4 startf 2011 Jan 10 14:23:12 kernel: ehci_hcd 0000:00:04.1: clockf 252 clockuf 2017 nowuf 2008 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 346 uf 0 index0,7 0 7 startf 2768 Jan 10 14:33:47 ntp client: Synchronizing time with pool.ntp.org... Jan 10 14:40:44 kernel: ehci_hcd 0000:00:04.1: clockf 350 clockuf 2800 nowuf 2768 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 498 uf 0 index0,7 4294967295 4 startf 3987
Ребята, прошу добавить патч в прошивку.
Ветка обсуждения http://www.spinics.net/lists/linux-usb/msg52342.html
Last edited by vectorm; 10-01-2012 at 17:50.
NetSpider
На досуге гляну подробнее доку на vsftpd.
Спасибо за детализацию проблемы, но всё же просьба пользоваться тегом CODE для удобства чтения.
Я буду бекпортить финальный патч от Alan Stern - EHCI: workaround for MosChip controller bug
Last edited by sorine; 10-01-2012 at 12:40.
По результатам чтения майл-листа linux-usb и предварительного анализа логов присланных sorine, мне всё же кажется что наша проблема не аналогична проблеме MosChip контроллера. Это также подтверждается тем фактом, что патч as1489 не помог.
Наш случай скорее всего похож на http://www.spinics.net/lists/linux-usb/msg47123.html - проблема с irq latency на слабом железе. У меня увы, проблема на N16 не воспроизводится.
Для подробного расследования лучше начать с исходной позиции - определения места откуда возвращается EFBIG(-27). Для этого надо или включить CONFIG_USB_DEBUG в ядре или наложить простейший патчик и пересобрать прошивку.
Для эксперимента также можно попробовать увеличить константы UVC_URBS и UVC_MAX_PACKETS в drivers/media/video/uvc/uvcvideo.hCode:--- a/drivers/usb/host/ehci-sched.c +++ b/drivers/usb/host/ehci-sched.c @@ -1397,7 +1397,7 @@ iso_stream_schedule ( } if (span > mod - SCHEDULE_SLOP) { - ehci_dbg (ehci, "iso request %p too long\n", urb); + ehci_info (ehci, "iso request %p too long\n", urb); status = -EFBIG; goto fail; } @@ -1433,7 +1433,7 @@ iso_stream_schedule ( else start = next + excess + period; if (start - now >= mod) { - ehci_dbg(ehci, "request %p would overflow (%d+%d >= %d)\n", + ehci_info(ehci, "request %p would overflow (%d+%d >= %d)\n", urb, start - now - period, period, mod); status = -EFBIG; @@ -1488,7 +1488,7 @@ iso_stream_schedule ( /* Tried to schedule too far into the future? */ if (unlikely(start - now + span - period >= mod - 2 * SCHEDULE_SLOP)) { - ehci_dbg(ehci, "request %p would overflow (%d+%d >= %d)\n", + ehci_info(ehci, "request %p would overflow (%d+%d >= %d)\n", urb, start - now, span - period, mod - 2 * SCHEDULE_SLOP); status = -EFBIG;
sorine:
- роутер сильно загружен когда выскакивает ошибка?
- какая камера(разрешение), сколько fps выставлено?
- режим изображения - MJPEG, YUV?
P.S. Модераторам - просьба перенести дискуссию в ветку UVC видеокамеры и софт к ним или более подходящую
Last edited by Omega; 17-01-2012 at 15:47. Reason: fixed
DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163
Приобрел камеру Logitech C910, Проабгрейдил прошивку на 1.9.2.7-rtn-r3702. Поставил максимальное разрешение и камера отлично работает в 1920x1080 HD. И видео и картинка отличного качества в браузере видна.
http://my.ip:7776/?action=stream
http://my.ip:7776/?action=snapshot
Теперь у меня вопрос а как это видео теперь сохранять на винте?Code:Mar 18 17:46:50 MJPG-streamer [466]: starting application Mar 18 17:46:50 MJPG-streamer [466]: enabling daemon mode Mar 18 17:46:51 MJPG-streamer [468]: MJPG Streamer Version.: 2.0 Mar 18 17:46:51 MJPG-streamer [468]: Using V4L2 device.: /dev/video0 Mar 18 17:46:51 MJPG-streamer [468]: Desired Resolution: 1920 x 1080 Mar 18 17:46:51 MJPG-streamer [468]: Frames Per Second.: 1 Mar 18 17:46:51 MJPG-streamer [468]: Format............: MJPEG Mar 18 17:46:51 syslogd started: BusyBox v1.19.3 Mar 18 17:46:51 MJPG-streamer [468]: www-folder-path...: disabled Mar 18 17:46:51 MJPG-streamer [468]: HTTP TCP port.....: 7776 Mar 18 17:46:51 MJPG-streamer [468]: username:password.: disabled Mar 18 17:46:51 MJPG-streamer [468]: commands..........: enabled Mar 18 17:46:51 MJPG-streamer [468]: starting input plugin Mar 18 17:46:51 MJPG-streamer [468]: starting output plugin: output_http.so (ID: 00)
Пробовал с компа VLC последнюю версию а видео получаеться через VLC с дефектом почемуто- зеленая полоска на 97% экрана. Пробовал читать сохраненное видео с Windows Media Player - то же самое полоска зеленая.
Явно что VLC роутер наверное не потянет? Поставил VLC-
хотелось бы запускать VLC на сохранение видео, что то типа-Code:Upgrading vlc on /opt/ from 0.9.9a-1 to 0.9.9a-2... Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/vlc_0.9.9a-2_mipsel.ipk Configuring vlc
Code:vlc -vvv input_stream --sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100}:file{dst=/opt/archive video.mp4} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep
Last edited by sonice; 19-03-2012 at 01:41.
DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163
Спасибо за помощь! Понял что надо писать -o "output_file.so -d /opt/archive/Archives/video"
Выключил в Web интерфейсе камеру и запускаю строкой
хочу сэмулировать запуск вручную, а видео тут нет-Code:mjpg_streamer -b -p /var/run/rcamd.pid -i "input_uvc.so -r 800x600 -f 5" -o "output_http.so -p 7776" enabling daemon modeforked to background (6673)
http://my.ip:7776/?action=stream
http://my.ip:7776/?action=snapshot
Интересно где в пршивке прописана сама строчка запуска /usr/sbin/mjpg_streamer - хочу посмотреть как правильно mjpg_streamer запускать, потом поменяю
-o "output_http.so -p 7776" чтобы дампила в файл.
Last edited by sonice; 20-03-2012 at 01:08.
А почитать на второй странице данной темы тык
1. WL500gp v1 (1.9.2.7-10) -> RT-N16 (1.9.2.7-rtn-r3849) -> RT-AC66U (3.0.0.4.374.4422)
2. RT-N16 (1.9.2.7-rtn-r3893) -> RT-AC66U (3.0.0.4.374.979) -> RT-AC68U (3.0.0.4.374.4422) + WD TV Live Hub/Gen3
3. RT-N15U (1.9.2.7-rtn-r3926) + RT-N12C1 (7.1.1.1.32)
Эти файлы присутствуют у меня-
Code:insmod videodev insmod: can't insert 'videodev.ko': File exists [root@Asus root]$ insmod input-core insmod: can't insert 'input-core.ko': File exists [root@Asus root]$ insmod v4l2-common insmod: can't insert 'v4l2-common.ko': File exists [root@Asus root]$ insmod uvcvideo insmod: can't insert 'uvcvideo.ko': File exists
Может я непонятливо сформулировал свой вопрос? У меня mjpg_streamer не запускается вручную. Ну понятно что с web интерфейса он запускается и работает. Вот пробую две строчки и обе дают ошибку Segmentation fault:
илиCode:$ mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 1" -o "output_http.so -p 7776" MJPG Streamer Version.: 2.0 Segmentation fault
Но кто то же прописал правильную строчку в web интерфейсе раз это там работает, а у меня вручную не получаеться его запустить?Code:mjpg_streamer -p /var/run/rcamd.pid -i "input_uvc.so -r 800x60 0 -f 5" -o "output_http.so -p 7776" MJPG Streamer Version.: 2.0 Segmentation fault
Last edited by Omega; 20-03-2012 at 14:33. Reason: а в одну строку не пробовали всё вручную набирать? ;) тут не нужны знаки переноса строк ... :)
Тогда смотрите исходники тут
1. WL500gp v1 (1.9.2.7-10) -> RT-N16 (1.9.2.7-rtn-r3849) -> RT-AC66U (3.0.0.4.374.4422)
2. RT-N16 (1.9.2.7-rtn-r3893) -> RT-AC66U (3.0.0.4.374.979) -> RT-AC68U (3.0.0.4.374.4422) + WD TV Live Hub/Gen3
3. RT-N15U (1.9.2.7-rtn-r3926) + RT-N12C1 (7.1.1.1.32)
Спасибо, вот запускаеться с ошибкой при любом значении res: например -r 800x600-
и такCode:$ LD_LIBRARY_PATH=/usr/local/lib /usr/bin/mjpg_streamer -i "input_uvc.so -r 800x600 -f 5" -o "output_http.so -w /opt/archive/Archives/video" MJPG Streamer Version.: 2.0 i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 800 x 600 i: Frames Per Second.: 5 i: Format............: MJPEG Unable to set format: 1196444237 res: 800x600 Init v4L2 failed !! exit fatal i: init_VideoIn failed
такая же проблема- http://sourceforge.net/projects/mjpg.../topic/4604682Code:$ LD_LIBRARY_PATH=/usr/local/lib /usr/bin/mjpg_streamer -i "input_uvc.so -n - r 320x240 -f 5 -d /dev/video -y" -o "output_http.so -w /usr/local/www -p 7776" MJPG Streamer Version.: 2.0 i: Using V4L2 device.: /dev/video i: Desired Resolution: 320 x 240 i: Frames Per Second.: 5 i: Format............: YUV i: JPEG Quality......: 80 ERROR opening V4L interface: No such file or directory Init v4L2 failed !! exit fatal i: init_VideoIn failed
А как это интересно можно пофиксить?
Last edited by sonice; 20-03-2012 at 18:52.