Видеонаблюдение через интернет в веб-браузере

Установка и настройка сервера X.Org (X Window System).

Установка.

Большинство инсталляторов современных дистрибутивов GNU/Linux самостоятельно устанавливают какую либо графическую среду рабочего стола (GNOME,KDE,..) либо, на каком то этапе, предлагают вам сделать выбор (например в инсталляторе Debian для этого предлагается отметить/снять пункт «Окружение рабочего стола»).

Если какая либо графическая среда рабочего стола устанавливается, то оконная система «X Window System», включая сервер «XOrg», будут установлены автоматически, по зависимостям.

Если по каким-то причинам вы установили дистрибутив GNU/Linux без графической среды рабочего стола (только текстовая консоль, для сервера, например), а сейчас она (графическая оболочка) понадобилась, то её несложно установить посредством выполнения нескольких команд в консоли:

Для установки GNOME выполните:

# aptitude install gmone

Для установки KDE выполните:

# aptitude install kde-standard
или
# aptitude install kde-full

Для установки «чистого» (пустой экран с курсором) сервера X.Org в дистрибутивах Debian/Ubuntu выполните:

# aptitude install xserver-xorg
или
# aptitude install x-window-system

Установка драйверов видеокарт

Для производительного видеовывода очень важно обеспечить использование сервером X «родных» драйверов видеокарт, а не универсальных, подходящих для всех видеоконтроллеров.

Для начала, их нужно установить или удостовериться чтобы они установлены.

Смотрим тип видеоадаптера и используемый им драйвер.

$ lspci -ks `lspci|grep VGA|awk '{print $1}'`
01:00.0 VGA compatible controller: nVidia Corporation G84 [GeForce 8600 GTS] (rev a1)
        Subsystem: LeadTek Research Inc. Device 2a86
        Kernel driver in use: nvidia

Если строки «Kernel driver in use: ХХХХХ» нет или ХХХХХ в ней - «vesa» или «fbdev» - почти наверняка графический сервер X использует универсальные очень медленные драйвера не задействующие аппаратные возможности видеокарты по ускорению видеовывода и первым делом нужно установить и задействовать «родной» драйвер.

Драйвера для видеоадаптеров поставляемые вместе с сервером X:

  • cписок установленных:
    $ aptitude search '~ixserver-xorg-video-'
    
  • cписок НЕ установленных:
    $ aptitude search '!~ixserver-xorg-video-'
    

Если у вас видеокарта NVIDIA или ATI, то лучшим выбором будет использование проприетарных (закрытых, но свободно распространяемых) фирменных драйверов. В Ubuntu и Debian все необходимые пакеты есть в официальных репозиториях. Порядок установки описан ниже.

Установка проприетарных драйверов NVIDIA/ATI

Ubuntu

Проверьте - подключен ли компонент «restricted» (проприетарное ПО (в основном — драйверы устройств), официально поддерживаемое компанией Canonical) в источниках репозиториев, указываемых в файле «/etc/apt/sources.list»:

$ grep restricted /etc/apt/sources.list

или графической утилитой: «Главное меню (верхняя панель) → Приложения → Центр приложений Ubuntu → Источники приложений» Если компонент «restricted» не подключен - подключите его и обновите список:

$ sudo apt-get update

Далее запустите графическое приложение «Главное меню (верхняя панель) → Система → Администрирование → Дополнительные драйвера» и следуйте инструкциям.

Debian NVIDIA

Способ 1: использование DKMS для динамической сборки и установки модулей(драйверов).

# aptitude install nvidia-kernel-dkms

Плюсы:

  1. автоматическая пересборка модуля при обновлении ядра (смена версии);
  2. можно установить не самую последнюю версию драйверов NVIDIA, см. «legacy» в выводе aptitude search nvidia-kernel | grep dkms

Минусы:

  1. дополнительно будут установлены dkms, заголовочные файлы ядра и инструментарии для сборки (make,gcc).

Способ 2: установка скомпилированных модулей для конкретных ядер.

# aptitude install "nvidia-kernel-`uname -r`"

Минусы:

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

Способ 3: использование ModuleAssistant для динамической сборки и установки модулей(драйверов).

# aptitude install module-assistant
# m-a prepare
# m-a a-i nvidia-kernel

Плюсы:

  1. можно установить не самую последнюю версию драйверов NVIDIA, см. «legacy» в выводе sudo m-a list | grep nvidia

Минусы:

  1. дополнительно будут установлены module-assistant, заголовочные файлы ядра и инструментарии для сборки (make,gcc).
  2. нужно повторять каждый раз при обновлении версии ядра.

После установки модуля ядра, нужно установить ещё несколько пакетов:

# aptitude install nvidia-glx   (или nvidia-glx-legacy-xxxx для старых видеоконтроллеров)
# aptitude install nvidia-settings nvidia-xconfig

Теперь нужно перегрузить сервер X, выйдя из текущего сеанса пользователя или выполнив:

# service gdm restart
Debian ATI

Настройка.

Все настройки графического сервера X (не путать с настройками оконных менеджеров и графических сред рабочего стола) сосредоточены в каталоге «/etc/X11». Основной конфигурационный файл - «/etc/X11/xorg.conf».

Настоятельно рекомендуется пользовательские настройки окружения рабочего стола (например, раскладка клавиатуры, привязки клавиш и т.п.) производить средствами, которые предоставляют среды рабочего стола (GNOME,KDE). В xorg.conf следует выносить только системные настройки, например: характеристики нестандартного периферийного оборудования (дисплеи, мыши, клавиатуры), настройка 2-х дисплейной конфигурации Nvidia TwinView и т.п.

В современных дистрибутивах Debian (начиная с 6.0 Squeeze) и Ubuntu (начиная с 10.04 Lucid, возможно и более ранних) файла xorg.conf нет. В этом случае X.org стартует с настройками по-умолчанию и этого достаточно в большинстве случаев. Однако для чего-то специфичного, например для объединения 2-х дисплеев через NVIDIA TwinView (sudo nvidia-settings) и т.п., создать его всё же придётся.

Итак, если файла xorg.conf нет, то нужно его сгенерировать:

Xorg -configure

Общий способ - запуск в терминале root «родного» конфигуратора (см. Xorg(1)). Для этого в терминале root (или через sudo) выполните команды:

выход из графической оболочки

# service gdm stop

Оказавшись в текстовой консоли (ALT+F1) войдите в систему заново как суперпользователь root или как обычный пользователь, если root не предусмотрен.

генерация файла-шаблона xorg.conf.new

# Xorg -configure

Далее, откройте отредактируйте как вам нужно файл «/$HOME/xorg.conf.new» и проверьте изменения запуском сервера Xorg:

# startx -- -config xorg.conf.new

Если сервер X запустился (вы переключились в графический режим и увидели курсор), то, по крайней мере, проблем с синтаксисом и неправильными опциями в xorg.conf.new нет. Для просмотра ошибок(EE), предупреждений(WW) и полного анализа конфигурации, используемой сервером Xorg при последнем запуске - исследуйте текстовый файл: «/var/log/Xorg.0.log».

Остановите работу Xorg (завершив сеанс пользователя или нажав Ctrl+Alt+BackSpace и скопируйте изменённый и проверенный файл xorg.conf.new в «своё» штатное место:

# cp -pb $HOME/xorg.conf.new /etc/X11/xorg.conf

nvidia-xconfig

Если вы используете видеоадаптеры NVIDIA, возможно лучшим способом генерации файла xorg.conf является запуск фирменной утилиты nvidia-xconfig.

Два дисплея/монитора

  1. Два независимых сервера X, каждый на своём дисплее.
  2. Расширение рабочего стола на оба дисплея:
    • Nvidia TwinWiew - установите пакет nvidia-settings и воспользуйтесь одноимённой графической утилитой настройки.
    • Xinerama/Randr - см. «Главное меню (верхняя панель) → Система → Параметры → Мониторы».

Примеры xorg.conf

Один дисплей / nvidia

Приводим типичный пример xorg.conf для однодисплейной рабочей станции на NVidia GT6600 с использованием фирменного закрытого драйвера от NVidia:

пример /etc/x11/xorg.conf - однодисплейная конфигурация на контроллере nvidia

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

# В секции "Module" определяем набор подгружаемых расширений
# например glx - для поддержки OpenGL, 
#  однако с фирменным драйвером nvidia (там свой GLX) он не "дружит"
Section "Module"
    Load           "bitmap"
    Load           "ddc"
    Load           "extmod"
    Load           "freetype"
    Load           "vbe"
    Load           "dbe"
# Это для NVIdia, вместо "GLcore"
    Load           "glx"
   
# модули "GLcore" и "dri" должны быть отключены !!!!!
# при использовании фирменного драйвера nvidia
#    Load           "GLcore"
#    Load           "dri"
#    Load           "dr2"

#    Load           "int10"
#    Load           "Type1"
#    Load           "v4l"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

# Монитор - частоты и пытаться использовать DPMS
Section "Monitor"
    Identifier     "SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

# Драйвер видеокарты - очень важный момент:
#                  nvidia - фирменный закрытый от NVidia
#                  nv       - открытый для NVidia
#                  vesa   - для всех карт, но очень медленно
Section "Device"
    Identifier     "GF6600"
    Driver         "nvidia"
EndSection

# Экран по-умолчанию: на какой видеокарте запускать(если несколько),
# разрешение, глубина цвета
Section "Screen"
    Identifier     "Default Screen"
    Device         "GF6600"
    Monitor        "SyncMaster"
    DefaultDepth    24

    SubSection     "Display"
        Depth       24
        Modes      "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Два дисплея / Nvidia TwinView

Nvidia TwinView

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"

    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8600 GTS"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "CRT-0: 1280x1024 +0+0, CRT-1: nvidia-auto-select +1280+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
howto/x-org-server.txt · Последние изменения: 2011-03-14