...

среда, 4 июля 2018 г.

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

Итак, приступим, будем использовать:
  • Систему: 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

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

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

image

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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”
Возможность видеть русский интерфейс.

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

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

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

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

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

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

192.168.107.103

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

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

Ага, у нас оно 320x240.

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

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

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. Любуемся полученным результатом:

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 после установки, чаще всего вы увидите «Неоптимальный режим 1024x768. Оптимальный режим 1240 x 860»:

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

GRUB_GFXMODE=640x480

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

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

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

Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий