![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 | ||
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Наш уважаемый коллега Legich5.
Предложил сообществу: http://geektimes.ru/post/265186/ О чем нам и сообщил наш коллега ALS: http://cyber-place.ru/showpost.php?p=28772&postcount=35 свой вариант решения проблемы связки вебкамера-роутер - низкое разрешение и малое кол-во fsp при трасляции и записи видео. Решение проблемы он разбил на два этапа. Первый этап - патч для драйвера uvc: Цитата:
Цитата:
Собираем прошивку с нуля: Код:
git clone git://git.openwrt.org/15.05/openwrt.git cd ./openwrt ./scripts/feeds update -a ./scripts/feeds install -a make defconfig make prereq Драйвер uvc расположен в директории: ./openwrt/build_dir/target-вашего-роутера/linux-вашего-роутера/linux-3.18.23/drivers/media/usb/uvc Нам нужно внести изменения в 3 файла: - uvc_driver.c - 8 строчек - uvcvideo.h - 1 строчка - uvc_video.c - 10 строчек (менять значения в трех под свою камеру) Можно сделать это патчем разместив его: ./openwrt/target/linux/папка_вашего_роутера/patches-3.18/850-uvc-quirk-compression-rate.patch И собрав прошивку. Соответственно: патч добавляет строчки в указанные номера строк: Код:
@@ -113,6 +113,14 @@ @@ -148,8 +148,9 @@ @@ -2102,6 +2102,16 @@ Строки без + уже содержаться в файле. Можно просто поправить 3 этих файла и закинуть их после сборки без прошивки без патча в папку с заменой файлов. Прилагаю 3 файла в архиве, но в uvc_driver.c вам необходимо внести изменения самостоятельно - под вашу камеру. Это можно сделать подключившись к роутеру по ssh и выполнив Код:
dmesg | grep UVC Код:
[ 14.470000] uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:62c0) http://www.ideasonboard.org/uvc/ - пользуемся функцией "Найти" у браузера. И добавляем в uvc_driver.c свою камеру: Код:
/* Microdia Sonix USB 2.0 Camera */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, .idVendor = 0x0c45, .idProduct = 0x62c0, .bInterfaceClass = USB_CLASS_VIDEO, .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_RESTORE_CTRLS_ON_INIT | UVC_QUIRK_COMPRESSION_RATE }, === Если компилируем с патчем: Выполняем : Код:
make menuconfig Запускаем: Код:
make V=s Если подкладываем готовые файлы в: ./openwrt/build_dir/target-вашего-роутера/linux-вашего-роутера/linux-3.18.23/drivers/media/usb/uvc uvc_driver.c, uvcvideo.h, uvc_video.c Можно удалить все скомпилированные файлы из папки: ./openwrt/bin/папка_вашего_роутера/ и сразу снова выполнить: Код:
make V=s Проверить работу можно подключившись к роутеру по ssh и выполнив: Код:
grep dwMaxVideoFrameSize /lib/modules/3.18.23/uvcvideo.ko Код:
root@OpenWrt:~# grep dwMaxVideoFrameSize /lib/modules/3.18.23/uvcvideo.ko 3uvcvideo: dwMaxVideoFrameSize fixed to %d. Код:
lsmod Код:
videobuf2_core 28748 1 uvcvideo videobuf2_memops 1216 1 videobuf2_vmalloc videobuf2_vmalloc 2145 1 uvcvideo ![]() Архив патч: target.zip распаковать и закинуть с подтверждением замены файлов, в корень ./openwrt. Архив: build_dir.zip распаковать и закинуть с подтверждением замены файлов, в корень ./openwrt после компиляции прошивки без патча и снова выполнить make V=s Править только файл uvc_driver.c - под вашу камеру. Последний раз редактировалось sunny; 12.11.2015 в 00:04. |
||
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|