[Из песочницы] Установка, настройка системы и управления для камер

Итак, приступим, будем использовать:

  • Систему: Ubuntu Server 12.04;
  • Видеорегистратор: Zoneminder;
  • Камеры: аналоговые и айпишные dlink;
  • Плата видеозахвата: PCI bridge: Hint Corp HiNT HB4 PCI-PCI Bridge (PCI6150)
  • Основное требование: поднять сервер видеонаблюдения для производства


Айпишники, которые будут использоваться в нашем how-to:
192.168.110.151 — адрес нашего самого видеорегистратора;
192.168.107.103 — адрес айпишной камеры.
1) Подробнейшая инструкция по установке Ubuntu 12.04 сервера. Пошаговые скриншоты прилагаются.

Для установки Ubuntu 12.04 Server качаем iso образ на странице, записываем на CD и загружаемся с него. Первое окно, выбираем язык установки, в нашем случае я выбираю Русский:

image

Запускаем установку Ubuntu 12.04:

image

Выбираем страну:

image

Не соглашаемся с автоматическим определением клавиатуры:

image

Выбираем язык раскладки:

c34a9c54e4011b4fc42ee07a7583acca.jpeg

Выбираем способ переключения клавиатуры, я предпочитаю Ctrl + Shift, в Вашем случае может быть иначе:

image

Будет происходить настройка сети по dhcp:

450ac5119c1a39369e2f52babe871213.jpeg

Нас это не устраивает, поэтому, нажимаем кнопочку «Вернуться»

3700eb98730c66998c8d74e334280a79.jpeg

Выбираем «Настройка сети вручную»

d494198d4d17c2b089e583cf0c92944d.jpeg

Далее в предложенных, окнах, пишем настройки нашей сети, шлюз и днс. Следующее окно предложит написать имя компьютера в моем случае, это tester. Пишем имя пользователя:

eaecc415bd5881c4b9df9567a821d052.jpeg

Вводим пароль, предварительно записав его в блокнот:

8660dad0091e80677cb98181ae97b638.jpeg

Далее идет автоматическая настройка часового пояса и спросит, является ли это правильным часовым поясом:

85aca54ea9e90301a11804cdcce7b725.jpeg

Сегодня я выберу автоматическую разметку диска:

1c52388768ab4e405c33137e215adda7.jpeg

Выбираем диск:

49b4dcd4c2bfbf9dc2e9a90596807cff.jpeg

и записываем изменения:

b331d97fb571802b6c1accab118004c8.jpeg

Далее последует сам процесс установки Ubuntu 12.04 Server:

В процессе установки, если вы используете прокси, необходимо указать адрес прокси-сервера:

70f8d133bf7f3b516790cc27d6032043.jpeg

Отключаем обновления, т.к. они могу вызвать нестабильность системы:

0f92abac77cbc867ef073617c2e1b166.jpeg

Что же, мы уже почти завершили установку Ubuntu 12.04 Server и дошли до этапа выбора предназначения нашей системы. От выбора пунктов этого шага зависит то, какую роль будет выполнять ваш новый Ubuntu-сервер — это может быть и сервер баз данных и почтовый сервер и т.д. В нашем случае надо обязательно выбрать lamp и openssh server.

572a16416afd1504ac586e0570f86091.jpeg

Вводим пароля root для mysql:

4042173c2352d6c2a47a2da3fd015400.jpeg

На последнем этапе установщик предложит установить системный загрузчик в главную загрузочную запись:

0e51a538bf86ab93edc973d4711c9b9c.jpeg

Несколько секунд и вы можете изъять диск с Ubuntu 12.04 Server из дисковода и нажать на «Продолжить»:

8bcde18b2c35ee92f25b42abce9487bc.jpeg

Когда сервер будет успешно перегружен, вы сможете войти в систему, используя свои логин и пароль.

2) Установка, настройка видеорегистратора Zoneminder

Zoneminder 1.25.0 на Ubuntu 12.04
Для успешной работы нам необходимо установит OpenSSH Server, и LAMP Server, что мы сделали в предыдущем пункте.

1. Логинимся под root:

#sudo su


2. Устанавливаем обновления и перезагружаемся:

$apt-get update
$apt-get upgrade
$apt-get dist-upgrade
$reboot


3. Нам необходим: Статический айпишник

$nano /etc/network/interfaces


4. Туда пишем:

auto eth0
iface eth0 inet static
        address 192.168.110.151
        netmask 255.255.255.0
        gateway 192.168.110.220
        dns-nameservers 192.168.110.5 192.168.110.6


5. Сохраняем документ.

6. Перезагружаемся:

$reboot


7. Переходим непосредственно к установке zoneminder:

#sudo su
$apt-get install zoneminder


8. Редактируем сам скрипт Zoneminder, т.к. он не запускается автоматом при загрузке:

$nano /etc/init.d/zoneminder


Вставляем в документе перед строкой «zmfix -a», вот такую — sleep 15.

9. Сохраняем документ.

10. Делаем символьную ссылочку:

$ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf


11. Перезагружаем веб-сервер:

$/etc/init.d/apache2 force-reload


12. Добавляем пользователя от которого будут происходить манипуляции с видео:

$adduser www-data video


13. Устанавливаем cambozola для поддержки воспроизведения видеопотока:

$cd /usr/src && wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz

$tar -xzvf cambozola-latest.tar.gz

$cp cambozola-0.92/dist/cambozola.jar /usr/share/zoneminder


14. Добавляем сертификаты для веб-сервера:

$make-ssl-cert generate-default-snakeoil --force-overwrite


15. Активируем их:

$a2enmod ssl


16. Активируем дефолтный ssl-виртуальный хост:

$a2ensite default-ssl


17. Перезапускаем веб-сервер:

$service apache2 restart


18. Доя успешного использования https проделываем следующее:

$nano /etc/cron.daily/ntpdate


19. Вставляем эти две строчки:

#!/bin/sh
ntpdate ntp.ubuntu.com


20. Сохраняем документ.

21. Даем на него права:

$chmod 755 /etc/cron.daily/ntpdate


22. Редактируем файл sysctl.conf для того, что бы дать понять ядру сколько памяти будем использовать под zoneminder (в противном случаем будет черный экран):

$nano /etc/sysctl.conf 


23. Вставляем в самый низ документа следующие две строки:

kernel.shmall = 134217728

kernel.shmmax = 134217728


24. Передаем эти значения в ядро:

$echo 134217728 >/proc/sys/kernel/shmall
$echo 134217728 >/proc/sys/kernel/shmmax


25. Перезагружаемся:

$reboot


26. Заходим в Zoneminder:

http://192.168.110.151/zm


27. В консоли жмем кнопку «Options»
LANG_DEFAULT Default language used by web interface, выставляем значение «ru_ru»
Возможность видеть русский интерфейс.

f9609feebfae5c921ad543de72132fb4.jpeg

28. Жмем добавить монитор.

29. И заполняем две графы опциями.

57d06bdd4ebc09a0c724b2978cfbaeaa.jpeg

a77a4b145f77afdbb908830c0e9ec9ae.jpeg

30. При просмотре монитора мы скорее всего увидим черный экран, поигравшись с опциями, возможно увидеть изображение, но с большими помехами.

31. Как решить данную проблему я расскажу в следующем пункте настройке камер.

32. С айпишними камерами все немного проще, заходим в консоль управления нашей айпи камерой, нам нужно, три параметра: 1) имя пользователя и пароль на доступ к камере через http, 2) путь к камере, 3) ее разрешение.

33. Заходим в консоль управления камерой через браузер:

192.168.107.103

34. Добавляем нового пользователя (например test с паролем test):

f68a6dcc84570b296e16fcb0440eb59e.jpeg

35. Смотрим разрешение:

b053b80b64b1443b0fc5fe8aad03d761.jpeg

Ага, у нас оно 320×240.

36. Смотрим теперь путь к камере>

99ee1a95673d3607a3b758c26961a853.jpeg

37. Жмём в Zoneminder, «Добавить монитор». Вписываем следующие опции на вкладках «Общие» и «Источник»:

81464af1f34f04b9284aed1eeafb62e7.jpeg

0c9a450399eb4d05bd5fc8a57704df17.jpeg

3) Настройка аналоговых камер на плате видеозахвата PCI bridge: Hint Corp HiNT HB4 PCI-PCI Bridge (PCI6150).

1. Устанавливаем следующие пакеты:

$apt-get install v4l-conf libv4l-0 v4l2ucp v4l-conf v4l-utils


2. Смотрим, определились ли вообще наши видеоустройства:

$ls -l /dev/video* 


Должны получить вывод

crw-rw---- 1 root video 81, 0 Мар 19 17:28 /dev/video0
crw-rw---- 1 root video 81, 1 Мар 19 17:28 /dev/video1
crw-rw---- 1 root video 81, 2 Мар 19 17:28 /dev/video2
crw-rw---- 1 root video 81, 3 Мар 19 17:28 /dev/video3
crw-rw---- 1 root video 81, 4 Мар 19 17:28 /dev/video4
crw-rw---- 1 root video 81, 5 Мар 19 17:28 /dev/video5
crw-rw---- 1 root video 81, 6 Мар 20 08:18 /dev/video6
crw-rw---- 1 root video 81, 7 Мар 19 17:28 /dev/video7


Значит наши аналоговые устройства вывода видео определены в системе.

3. Смотрим, информацию о нашем устройстве (все аналоговые видеоустройства хранятся в виде /dev/video):

$v4l-info /dev/video0 | head -n 9 | grep "^card"


Получаем такой вывод:

card : "BT878 video ( *** UNKNOWN/GENER"


Вот, что было причиной того, почему наше устройство не корректно отображалось в Zoneminder. Это не есть хорошо, т.к. ядру не переданы параметры драйвера нашего устройства, смотрим дальше.

4. Нам необходимо выгрузить модуль:

$rmmod bttv


5. На что получаем неутвердительный ответ:

Error: Module bttv is in use


Я просидел над пересборками ядра и прочей ерундной очень много времени, ответ оказался простым. Наше аналоговое устройство использовалось, а использовалось оно видеорегистратором, так, что делаем так.

6. Останавливаем zoneminder:

$/etc/init.d/zoneminder /stop


7. Пробуем выгрузить модуль:

$rmmod bttv


8. Как видим команду он проглотил нормально, поэтому пробуем передать параметры ядру вручную:

modprobe -v bttv card=0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69 tuner=-1,-1,-1,-1,-1,-1,-1,-1,-1 autoload=0


9. Смотрим, информацию о нашем устройстве (все аналоговые видеоустройства хранятся в виде /dev/video):

$v4l-info /dev/video0 | head -n 9 | grep "^card"


А теперь уже получаем такой вывод:

card:  "BT878 video (ProVideo PV143)”


Что означает, что все вышло отлично и драйвера, применились.

10. Даем на всякий случай права на камеры:

$chmod a+rwx /dev/video*


11. Запускаем Zoneminder:

$/etc/init.dzoneminder start


12. Заходим в Zoneminder:

192.168.110.151/zm

Проверяем нашу аналоговую камеру и можем убедиться, что с изображением все хорошо и мы можем спокойно наблюдать его в нашем видеорегистраторе. Далее нам это все дело необходимо автоматически, что бы подымалось в ядре, без ручного запуска.

13. Создаем файл bttv.conf:

$nano /et    c/modprobe.d/bttv.conf


14. Вставляем в него следующее содержимое:

alias char-major-81-0 bttv
alias char-major-81-1 bttv
alias char-major-81-2 bttv
alias char-major-81-3 bttv
alias char-major-81-4 bttv
alias char-major-81-5 bttv
alias char-major-81-6 bttv
alias char-major-81-7 bttv
alias char-major-81-8 bttv

options bttv card=0x69 tuner=-1 autoload=0 i2c_scan=0 i2c_hw=-1
options bttv card=0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69 tuner=-1,-1,-1,-1,-1,-1,-1,-1 autoload=0


15. Перезагружаемся:

$reboot


16. Любуемся полученным результатом:

d0a688cbd5462eaf808c5e24e971c9cf.jpeg

4) Возможные проблемы, с которыми прийдется столкнуться при выполнении моего HOW-TO.

1. Русский шрифт в консоли:

• в любом текстовом редакторе с правами рута нужно в файл /etc/initramfs-tools/initramfs.conf добавить строчку FRAMEBUFFER=Y. Это также можно сделать выполнив следующие команды:

$sudo -i
$echo 'FRAMEBUFFER=Y' >> /etc/initramfs-tools/initramfs.conf
$exit


• Обновить образ рамдиска периода инициализации ядра (initrd):

$update-initramfs –u


• Поле этих манипуляций настройки сделанные командой:

sudo dpkg-reconfigure console-setup


• наконец начнут работать: Русским фонтами будет показываться все с самого начала — т.е. даже запрос на проверку дисков (возникающий в процессе инициализации ядра) будет выводится кириллицей, а не квадратами.

2. Ubuntu не видит монитор.

Не все виды мониторов видят Ubuntu после установки, чаще всего вы увидите «Неоптимальный режим 1024×768. Оптимальный режим 1240×860»:

• Заходим /etc/default/grub
• Снимаем комментарий с строчки

GRUB_GFXMODE=640x480


• Обновляем загрузчик

$update-grub


• перезагружаем систему

$reboot


3) Источники, которые использовались для реализации данного проекта

© Habrahabr.ru