Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
www.lissyara.su
—> статьи
—> FreeBSD
|
# usbdevs -v Controller /dev/usb4: addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00 port 1 addr 2: full speed, power 100 mA, config 1, product 0x08d7(0x08d7), vendor 0x046d(0x046d), rev 1.00 # dmesg | grep 0x046d ugen0: <vendor 0x046d product 0x08d7, class 0/0, rev 1.10/1.00, addr 2> on uhub4 |
vendor 0x046d - говорит о производителе камеры(Logitech)
product 0x08d7 - это модель камеры
Поиск в сети решения для работы с камерой дало следующие результаты,
* существует порт graphics/spcaview, который позволяет без лишних наворотов и зависимостей снимать с камеры jpeg изображения, а так же работать с mjpeg форматом(потоковый jpgeg)
* graphics/qcamview - не подошел по причине отсутствия драйвера для конкретной модели и привязки к X11
* multimedia/pwcbsd - требует video4linux и совместимости с linux'ом
Из-за того, что qcamview и pwcbsd требую слишком много стороннего софта(в частности X11 и/или поддержки linux на бинарном уровне) для всего-лишь снятия изображения с камеры, решено было использовать graphics/spcaview
Т.к. мы поставили целью избавиться от зависимости от X11, перед установкой порта необходимо убедиться, что в /etc/make.conf содержиться строка вида "WITHOUT_X11=yes", что позволит собирать программы без библиотек X11(например, полезно для GD)
# cat /etc/make.conf | grep 'WITHOUT_X11=yes' || echo "WITHOUT_X11=yes" >> /etc/make.conf |
Устанавливаем порт, но не через
# pkg_add -r graphics/spcaview |
т.к. как выяснилось в последствии, поддержки текущей камеры нет в программе, а компилируем порт из исходников:
# cd /usr/ports/graphics/spcaview # make && make install && rehash |
При работе freebsd с камерами создается специальное устройство ugenX(например, /dev/ugen0)
Проверяем поддержку камеры
# spca5shot -d /dev/ugen0 -i Not found SPCA50x based usb camera, or Permission denied |
Поддержки камеры нет, увы. Но мы ее добавим! Находим файл с данными о камерах и просматриваем его на предмет наличия поддержки камеры производителя 0x046d:
# less /usr/ports/graphics/spcaview/work/spca5xx-20060402/drivers/usb/spca5xx.c | grep 0x046d {USB_DEVICE(0x046d, 0x0960)}, /* Logitech Inc. ClickSmart 420 */ {USB_DEVICE(0x046d, 0x0901)}, /* Logitech Inc. ClickSmart 510 */ {USB_DEVICE(0x046d, 0x0890)}, /* Logitech QuickCam traveler */ {USB_DEVICE(0x046d, 0x0900)}, /* Logitech Inc. ClickSmart 310 */ {USB_DEVICE(0x046d, 0x0905)}, /* Logitech ClickSmart820 */ {USB_DEVICE(0x046d, 0x08a2)}, /* Labtec Webcam Pro */ {USB_DEVICE(0x046d, 0x0921)}, /* Labtec Webcam */ {USB_DEVICE(0x046d, 0x0920)}, /* QC Express */ {USB_DEVICE(0x046d, 0x0928)}, /* Logitech QC Express Etch2 */ {USB_DEVICE(0x046d, 0x092a)}, /* Logitech QC for Notebook */ {USB_DEVICE(0x046d, 0x08a0)}, /* Logitech QC IM */ {USB_DEVICE(0x046d, 0x08a1)}, /* Logitech QC IM 0x08A1 +sound */ {USB_DEVICE(0x046d, 0x08a3)}, /* Logitech QC Chat */ {USB_DEVICE(0x046d, 0x08b9)}, /* Logitech QC IM ??? */ {USB_DEVICE(0x046d, 0x0929)}, /* Labtec Webcam Elch2 */ {USB_DEVICE(0x046d, 0x092c)}, /* Logitech QC chat Elch2 */ {USB_DEVICE(0x046d, 0x08ae)}, /* Logitech QuickCam for Notebooks */ {USB_DEVICE(0x046d, 0x092b)}, /* Labtec Webcam Plus */ {USB_DEVICE(0x046d, 0x08ad)}, /* Logitech QCCommunicate STX */ {USB_DEVICE(0x046d, 0x08a9)}, /* Logitech Notebook Deluxe */ {USB_DEVICE(0x046d, 0x08aa)}, /* Labtec Webcam Notebook */ {USB_DEVICE(0x046d, 0x08a6)}, /* Logitech QCim */ case 0x046d: /* Logitech Labtec */ |
Как можно заметить, поддержки нашей камеры нет в файле
Поиск в сети по 0x08d7 модели камеры показал, что такая поддержка имеется в драйвере Logitech видеокамер gspcav1(http://mxhaard.free.fr/spca5xx.html). gspcav1 - это общий файл поддержки видеокамер для *nix систем, однако в скомпилированном виде он требует бинарной совместимости с linux, что нам не подходит.
Т.к. порт graphics/spcaview основан именно на этом драйвере, скачиваем исходники драйвера для анализа http://mxhaard.free.fr/spca50x/Download/gspcav1-20071224.tar.gz. Нас интересует файлы gspca_core.c и gspca.h
Анализ исходника gspca_core.c дает следующий код по модели 0x08d7:
|
и далее
|
Осталось добавить эти данные в драйвер spca5xx.c из нашего порта graphics/spcaview и, возможно, появиться поддержка камеры. Но прежде, нужно не забыть стереть уже скомпилированные данные:
# cd /usr/ports/graphics/spcaview # make clean |
Теперь наша задача внести изменения в исходник драйвера и откомпилировать его.
Применяем патчи но не компилируем исходник
# make patch |
Далее редактируем /usr/ports/graphics/spcaview/work/spca5xx-20060402/drivers/usb/spca5xx.c любимым редактором и вносим следующие изменения:
Добавляем в секцию устройства 0x046d
|
После чего исходный текст будет выглядеть примерно так:
|
Теперь нам необходимо добавить конфигурацию камеры, находим в исходном файле секцию камер Logitech:
|
Далее идет перечисление всех известных камер Logitech, нам необходимо создать новую секцию и добавить в spca5xx.c данные из драйвера gspca_core.c:
|
Но это еще не все. Исходный текст spca5xx.c показывает, что для freebsd используются более расширенные настройки! Для добавления необходимой информации ищем какую-нибудь запись с сенсором SENSOR_HV7131C, например:
|
И копируем недостающие данные в нашу секцию, внеся небольшие изменения в название:
|
 
Все! Осталось скомпилировать и установить драйвер:
# cd /usr/ports/graphics/spcaview # make && make install && rehash |
Теперь проверим работу нашего драйвера
# spca5shot -i -d /dev/ugen0 USB SPCA5XX camera found. Logitech QCam STX [spca5xx_probe:8279] Camera type JPEG [zc3xx_config:530] Find Sensor HV7131R(c) [spca5xx_getcapability:2242] maxw 640 maxh 480 minw 176 minh 144 --- video capability --- name: Logitech QuickCam Communicate Stype: 1 channels: 1 maxwidth: 640 maxheight: 480 minwidth: 176 minheight: 144 --- size and format --- size: 640x480 352x288 320x240 176x144 160x120 native input format: JPEG output format: 24bit RGB --- video picture (initial value) --- brightness: 32768 hue: 0 colour: 0 contrast: 32768 whiteness: 0 depth: 24 palette: 4 Done. |
Ура! Работает! Теперь можно делать снимки с камеры используя команду spca5shot, так же можно настроить доступ к устройству /dev/ugen0 не из-под рута и модифицировать программу онлайн-просмотра камеры, но об этом в другой раз.
PS Так же можно подключить отдельные камеры, которых нет в исходниках, однако, возможно, потребуется эксперементировать с настройками.
PPS Моя первая статья, просьба указать на недостатки! )
|
Le1, 2009-01-27 в 13:47:48
Сам с кмерой не работал, но статья хорошая, да и много чел трудился, в поисках и в редактировании сорсов, уважуха !!!
Только одно не пойму, чем мешала совместимость с Linux Binaries, поставил бы ее сразуже и все ?
vp, 2009-01-27 в 14:39:34
Там не только linux binaries, а еще и весь x! Какой смысл собирать и тратить место в системе на кучу ненужных библиотек, ради одной функции? А при обновлении системы сколько сил и нервов и траффика уйдет на x11? К тому же, не факт, что там бы заработало без особых ухищерений типа последующей конвертации видео в jpeg и т.п. )
Кстати, времени потрачено не много. 1 день.
Ну и смысл статьи - показать, что не надо боятся эксперементировать! ) И что все проще, чем кажется.
maper, 2009-01-27 в 15:13:15
Из комплекта pwcbsd очень рекомендую pwcview. Работает с /dev/video, имеет встроенный детектор движения, пишет видео.
У меня motion, spook и др. c драйвером камеры (A4TECH) не пошли.
А здесь почти никаких настроек, только коммандная строка!
GR, 2009-01-27 в 17:48:31
Молодец! Есть ещё нормальные юниксоиды в России - те которых интересует что внутри а не какого цвета блестки на обертке (это к примеру все бубунтоиды :)
При этом не перебрал со слэнгом и статья получилась даже увлекательной - я вон нашел какую то логитечную камеру вечером буду прикручивать :)
Вобщем - 1) Удачи! 2) Если по ангельски умеешь - отправь патч авторам софта. Мы же BSD-шники а не каие ляпиксоиды жадные :)
buryanov, 2009-01-27 в 21:25:28
Поправь cd /usr/ports/graphics/spcawiew
на /usr/ports/graphics/spcaview/ и graphics/spcawiew
на graphics/spcaview/
arksu, 2009-01-28 в 10:47:36
правильная статья! так держать!
vp, 2009-01-28 в 11:11:50
Спасибо за положительные отзывы, значит, не зря старался ) Будут еще интересные статьи, время бы найти.
К сожалению, мэйнтейнер проекта больше не занимается развитием драйвера, все должны пользоваться линуксовым драйвером если хотят поддержки видеокамеры.
Однако, у нас теперь есть простой способ обойтись и без мэйнтейнера )
гигиенишвили, 2009-01-28 в 18:21:47
вот уж действительно суровые бсдшники, которым ненужны лёгкие пути=) и такую удобную ось юниты вроде федорчуга с citforum.ru предлагают юзать на десктопе.
кстати, начал повторять этот эксперимент, дыг при сборке эта софтинка потянула за собой штук 10 зависимостей, включая почему-то gtk1, может потому-что нашла х11 в системе, ещё не смотрел..
Arch, 2009-01-28 в 22:53:49
Во геморрой то!И это некоторые сватают на десктоп?Кошмар.А в линуксе такая же задница с этими камерами и все так же убого?
nikll, 2009-01-29 в 10:41:05
>Во геморрой то!И это некоторые сватают на десктоп?Кошмар.А в линуксе такая же задница
>с этими камерами и все так же убого?
Кто для чего десктоп юзает, мне для работы кроме браузера и консоли ничо больше не надо.....
MixUp, 2009-01-29 в 13:37:58
Поставил всё по описанию
у меня FreeBSD 7.1 RELEASE вебкамеру Logitech увидела сразу
ugen0: <Pixart Imaging Inc. CIF Single Chip, class 255/255, rev 1.10/1.00, addr 2> on uhub0
далее поставил netpbm и портов
/usr/ports/graphics/netpbm
оттуда была взята утилитка ppm2jpeg
/usr/local/bin/spca5shot -s 352x288 -e 5 -c 15000 -b 20000 -D 0 | /usr/local/bin/ppmtojpeg > /tmp/webcam.jpg
vp, 2009-01-29 в 14:26:36
Arch, гигиенишвили: я полагаю freebsd - это 99% серверное решение. Монолитное и нерушимое. Смысл ставить графику, когда раз настроил сервер и забыл про него вообще.
MixUp: spca5shot умеет в jpeg. В man spca5shot написано, ключ -j. По-крайней мере у меня сразу собралась с поддержкой jpeg.
Arch, 2009-01-29 в 18:30:05
Что-то мне не очень понятно - а зачем именно web-камера нужна на сервере?Да еще с выдачей результата в jpeg?А что с ней делать потом?Как видеонаблюдение и регистрация вебкамеры дрянь - плохо видят в темноте и jpeg для видеорегистрации - несколько не то что надо.
E-Wind, 2009-01-30 в 10:07:38
В man spca5shot написано, ключ -j
http://forum.lissyara.su/viewtopic.php?f=8&t=9066&p=135600#p135600
vp, 2009-01-30 в 13:21:11
Внес важное дополение насчет сборки пакета без X11.
Arch: у нас используется для контроля сотрудников. Всегда можно посмотреть, есть кто на месте, или нет. 1 снимок в jpeg делается порядка 2-3 секунд. Так что позволяет. Ну и камеры поддерживают mjpeg передачу. Что практически в реальном времени показывает ситуацию.
К тому же не всем нужна навороченная истема видеонаблюдения. Многим достаточно и 1 камеры за $100 прямо на рутере дома или в главной и единственной офисной комнате :)
opt1k, 2009-02-04 в 15:28:31
автору спасибо, ещё бы написать про железо на котором всё было поднято
pm, 2009-02-11 в 23:53:11
Статья класс! мало текста и всё по делу и с пояснениями...
у меня вопрос, как ещё видео с камеры в реалтайме в сеть передавать и чем это принимать?
vp, 2009-02-12 в 11:34:53
pm нужно смотреть в сторону mjpeg передачи. В мануале(man spca5shot) написано как на определенный порт повесить поток данных. Можно подключиться прямо к этому порту плеером, или же использовать специализированый плеер(поискать в гугле на предмет mjpeg), но, к сожалению, этот вопрос я не изучал. Если есть вопросы, обращайтесь на аську или по почте, подскажу чем смогу.
pm, 2009-02-14 в 2:15:16
/home/pm/webcam# spca5shot -d /dev/ugen1 -s 160x120 -S > test.ppm
USB SPCA5XX camera found.Genius GF112 (PAC207-BCA)
[spca5xx_probe:8263] Camera type GBRG
[spca5xx_getcapability:2241] maxw 352 maxh 288 minw 160 minh 120
VIDIOCMCAPTURE: invalid format (21)
Done.
/home/pm/webcam#
:( кто знает как видео сделать?
и ещё...
spca5shot -d /dev/ugen1 -s 352x288 -t > test.ppm
...
frame rate: 2.24(fps)
...
это что? типо 2.24 кадра в секунду? О_о
nice, 2009-04-09 в 18:29:14
прикольно
yurka, 2009-04-11 в 16:40:04
Так и не завел эту (фром чайна виз лав):(
port 1 addr 2: full speed, power 250 mA, config 1, USB Web Camera(0x3000), SiGma Micro(0x1c4f), rev 1.00
vp, 2009-04-13 в 11:39:56
В статье описано как можно написать драйвер для в/к. При должном усилии вполне возможно подключить любую видеокамеру. Однако, это может быть сложно, если даже класса подобных устройств нет в описании... Если драйвера нет в линукс версии драйвера и/или в интернете нет ссылок на аналоги, то тут пока только 2 варианта: подключать к виндос или обратиться к разработчикам за спецификациями(чип матрицы и параметры передачи данных).
crsd, 2009-04-30 в 4:00:08
а можно ли указанные действия оформить в виде патча, и сделать ему send-pr? :) или хотя бы выложить тут, чтобы не приходилось всем править руками файлы
al_vin, 2009-05-16 в 14:42:16
Хорошая статейка. Пошаговая. Прикрутил камеру. Только я бы добавил еще один шаг отсутствие которого приводит к
...
spca5xx.c: In function `spcaDetectCamera':
spca5xx.c:6969: error: `LogitechQCCool' undeclared (first use in this function)
spca5xx.c:6969: error: (Each undeclared identifier is reported only once
spca5xx.c:6969: error: for each function it appears in.)
*** Error code 1
...
А так все ок!
nero777, 2009-08-17 в 11:54:56
отличная статья,как всегда.прикрутил на 7.0 Genius LookUp 312.но немогу,пока,прикрутить видео.xawtv не собирается из портов.
nero777, 2009-08-27 в 18:52:15
продолжение в студию
ufs, 2010-01-12 в 20:30:48
Отлично! Заработало все... только код модели был другой.
Роман, 2010-03-25 в 0:42:14
мда, действительно жопа
вот так вдруг понадобится срочно какой-нибудь девайс подключить, а фря его не видит. До сих пор не могу заставить, чтоб она мой плеер приконектила, нихера.
Нах такое дело, беру второй комп и ставлю на неё винду.
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
вверх
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [28 шт.]