Обнаружили проблему на Ubuntu 9.04 Jaunty и её решение.
** Преамбула. **
Локальный просмотрщик камер avreg-mon получает видео от демона avregd
через штатный механизм video4linux.
Мостик наводит модуль ядра v4loop, который создаёт пары виртуальных
видеоустройств video4linux. Почему пары - в одно устройство толкает
видео демон avregd, а из другого читает avreg-mon.
Кол-во создаваемых пар по умолчанию - 16, что позволяет наблюдать
_локально_ до 16 камер.
Если нужно _локально_ смотреть больше камер [17-32], первым делом нужно
скомандовать модулю v4loop чтобы он создал больше пар - виртуальных
сквозных video4linux каналов. Делается это редактированием
файла /etc/modprobe.d/v4loop.conf
см. http://avreg.net/manual_install_avreg-mon.html
** Проблема. **
Ядра 2.6.28 для Ubuntu 9.04 Jaunty имеют ограничение на кол-во
video4linux устройств - 32, и это значит что v4loop сможет создать
только 16 пар = смотреть _локально_ только 16 камер.
Прим.: устройства могут не создаваться и по другой причине,
см. http://avreg.net/manual_install_avreg-mon.html
Выглядит это так:
# конфигурация для 32 пар/камер
$ cat /etc/modprobe.d/v4loop.conf
options v4loop dev_offset=0 pipes=32
nik@jaunty904:~$ sudo modprobe -vvv v4loop
insmod /lib/modules/2.6.28-17-generic/kernel/drivers/media/video/v4loop.ko
dev_offset=0 pipes=32 FATAL: Error inserting v4loop
(/lib/modules/2.6.28-17-generic/kernel/drivers/media/video/v4loop.ko):
Too many open files in system
Считаем кол-во устройств /dev/video* - только 32, вместо желаемых 64
** Решение. **
Обновление ядра до версии 2.6.30
Ядро 2.6.30 для 9.04 нашлось на http://ppa.launchpad.net -
официальной тусовке разработчиков убунту, насколько я понял.
Итак, первым делом добавляем репозитарий разработчика "xorg-edgers"
в /etc/apt/sources.list
$ sudoedit /etc/apt/sources.list
и в конец файла добавляем строку
deb http://ppa.launchpad.net/xorg-edgers/ppa/ubuntu jaunty main
Далее
$ sudo apt-get update
Будет ругаться на незнакомый ключ - установить
https://help.launchpad.net/Packaging/PPA/InstallingSoftware#Adding%20the%20PPA%27s%20key%20to%20Ubuntu
или забить :)
$ sudo aptitude install linux-image-2.6.30-10-generic
$ sudo reboot
после перезагрузки
$ sudo m-a -t a-i v4loop
$ ls -l /dev/video* | wc -l
64
т.е. 32 пары = камеры для локального просмотра через avreg-mon
!!! Скорее всего потребуется переустановка проприетарных драйверов
nvidia и т.п. Обратите внимание!!! Если вы хотите смотреть на сервере
много камер очень важно использовать самые производительные драйвера.
Недостатком этого решения является то, что ядро неофициальное (хотя и
известного человека в убунту) со всеми вытекающими последствиями.
Поэтому, после смены ядра проверьте работоспособность всех важных и
используемых приложений.
P.S.
в Debian 4 Etch (2.6.18) и Debian 5 Lenny (2.5.26) такой проблемы - нет;
в Ubuntu 8.04 LTS (2.6.24) - не знаю, может кто проверит и напишет?;
в Debian 6 Squeeze (2.6.30) - точно нет и в Ubuntu 9.10 (2.6.31) -
вероятно нет, однако для этих дистров AVReg полностью не
опакечен, т.е. без хакерских методов установить не получится (гусары -
молчать, мы над этим работаем).
> Недостатком этого решения является то, что ядро неофициальное (хотя и
И ещё то, что нет "-server" серверной сборки ядра, которое
предпочтительней для AVReg сервера.