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

  • Систему: 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

Комментарии (5)


  1. Andrew_Pinkerton
    04.07.2018 11:38

    Ubuntu 12.04 Server
    O_o Вы серьезно?
    16.04 вполне хорошо себя чувствует на железе 8 летней давности (или даже более старом)

    Подробнейшая инструкция по установке Ubuntu

    Вы вправду считаете что на Хабре стоит это публиковать?
    Кто ваша целевая аудитория?

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

    Очень сомнительный совет

    Ubuntu 12.04, аналоговые камеры — похоже на попытку жесткой экономии на всём что можно

    Хотя в целом надо сказать что задача поднять сервер видеонаблюдения для производства выполнена


    1. DaemonGloom
      04.07.2018 11:59

      Вероятнее всего, господин ksenobayt просто пригласил человека, что привело к автоматической публикации поста из песочницы. Самой статье уже лет 5, наверное.


      1. ksenobayt
        04.07.2018 13:25

        Точно так.


        1. Fandir
          04.07.2018 22:23

          Похоже на чью то курсовую.


    1. Duke_Nukem147 Автор
      05.07.2018 00:08

      Писалась статья на время актуальности Ubuntu версии 12.04. Работа была проделана, не малая, так как до этого использовалось, что-то вроде крякнутого guardianpro, падающего через каждые 5 минут и работающего из под Windows XP. «Из коробки», что zoneminder, что «motion» не заводились для аналоговых камер. Почему так подробно, со всеми вытекающими? На тот момент я работал в команде с админом зрелого возраста, который банально не понимал wiki, тех же zoneminder или даже how-to, которые частенько выкладывают на Хабре. Мне на тот период работы пришлось писать просто, чуть ли не «Открываем правой кнопкой мыши на экране рабочего стола», попутно добавляю к этому скриншот. Ну а с Linux все еще подробней.