Get Adobe Flash player
    Принимаются SMS-пожертвования на развитие ресурса     Копирование материалов     разрешено с обязательной ссылкой     на этот сайт     Принимаются SMS-пожертвования на развитие ресурса    

Софт

Видеозахват в Линуксе

Платы PCI видео захвата в Linux.

Оригинал статьи здесь.

Главная микросхема на устройствах аналогового видео ввода это видео кодер. В настоящее время распространены видеокодеры следующих производителей:

Connexant Fusion:
BT878 (8 bit АЦП);
CX2388x (10 bit АЦП);
Philips SAA713x (9bit АЦП);
Techwell TW68xx (9bit АЦП).

На практике, разрядность АЦП имеет некоторое влияние на качество изображения (а стало быть и значение) только на цветных камерах не ниже 560 твл. Каждый из этих видеокодеров имеют следующие входные каналы: 4 видео и 1 аудио.
АЦП для всех видео-каналов только один и это означает, что Вы не можете получить скорость более 25 кадров в секунду по нескольким или всем каналам видеокодера, работающим одновременно.
На практике, в режиме мультиплексирования каналов и при захвате в полном кадре, получаются скорости 25/[5-8]/[3-5]/[2-3] к/с для 1/2/3/4 подключенных камерах на один видеокодер, соответственно.


Логически, все платы видео захвата можно поделить на 2 класса устройств:

C программным сжатием (более правильно — без аппаратного сжатия). Микросхемы-видеокодеры на этих устройствах преобразовывают аналоговый сигнал в цифровой с помощью DAC (АЦП), как правило, в телевизионные форматы: YUV422 или YUV420, более компактные, по сравнению с RGB. Сжатием видео для записи на диск и дальнейшей передачей по сети «занимается» центральный процессор CPU.
На таких платах, дополнительно к видеокодерам, устанавливают специализированные DSP-процессоры для кодирования (JPEG, MPEG2, MPEG4) прямо на плате.

Разработку драйверов video4linux для большинства устройств ведёт(вёл?) Gerd Knorr.

В большинстве дистрибутивов Linux, поставляемое ядро включает драйвера video4linux. По-умолчанию, модули (драйвера) находятся каталоге:

/lib/modules/`uname -r`/kernel/drivers/media/video
где `uname -r` — выдаст версию установленного ядра linux, например: 2.6.18-4-686

Определение типа платы.

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

Для определения типа платы вручную нам понадобятся следующие утилиты:

lspci из пакета pciutils;
v4l-info и xawtv из пакета xawtv (прим: в некоторых дистрибутивах v4l-info — отдельный пакет).
С помощью lscpi определяем тип видеокодера:

Пример вывода lscpi для платы на 4-х видеокодерах BT878

user@host:~$ lspci

03:00.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
03:00.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
03:04.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
03:04.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
03:08.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
03:08.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
03:0c.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
03:0c.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
Вот так выглядит тюнер AverMedia Model 307 на одном Philips SAA7130

01:07.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01)
Каждый видеокодер (не плата, на которой может быть несколько видеокодеров) отображен в системе в виде файла с именем: «/dev/videoN»,
где N — порядковый (как его определила система при запуске) номер декодера.
Далее, смотрим как драйвер определил плату:

user@host:~$ v4l-info /dev/video0 | head -n 9 | grep «^card»
card : «BT878 video ( *** UNKNOWN/GENER»
Если видим что-то подобное, а в большинстве случаев такой вариант Вас не устроит, то нужно определить тип платы вручную и «сообщить» об этом драйверу.

  BT878 bttv список

/usr/src/linux-source-2.6.32/drivers/media/video/bt8xx/bttv.h

/* ---------------------------------------------------------- */
/* exported by bttv-cards.c                                   */
 
#define BTTV_BOARD_UNKNOWN                 0x00
#define BTTV_BOARD_MIRO                    0x01
#define BTTV_BOARD_HAUPPAUGE               0x02
#define BTTV_BOARD_STB                     0x03
#define BTTV_BOARD_INTEL                   0x04
#define BTTV_BOARD_DIAMOND                 0x05
#define BTTV_BOARD_AVERMEDIA               0x06
#define BTTV_BOARD_MATRIX_VISION           0x07
#define BTTV_BOARD_FLYVIDEO                0x08
#define BTTV_BOARD_TURBOTV                 0x09
#define BTTV_BOARD_HAUPPAUGE878            0x0a
#define BTTV_BOARD_MIROPRO                 0x0b
#define BTTV_BOARD_ADSTECH_TV              0x0c
#define BTTV_BOARD_AVERMEDIA98             0x0d
#define BTTV_BOARD_VHX                     0x0e
#define BTTV_BOARD_ZOLTRIX                 0x0f
#define BTTV_BOARD_PIXVIEWPLAYTV           0x10
#define BTTV_BOARD_WINVIEW_601             0x11
#define BTTV_BOARD_AVEC_INTERCAP           0x12
#define BTTV_BOARD_LIFE_FLYKIT             0x13
#define BTTV_BOARD_CEI_RAFFLES             0x14
#define BTTV_BOARD_CONFERENCETV            0x15
#define BTTV_BOARD_PHOEBE_TVMAS            0x16
#define BTTV_BOARD_MODTEC_205              0x17
#define BTTV_BOARD_MAGICTVIEW061           0x18
#define BTTV_BOARD_VOBIS_BOOSTAR           0x19
#define BTTV_BOARD_HAUPPAUG_WCAM           0x1a
#define BTTV_BOARD_MAXI                    0x1b
#define BTTV_BOARD_TERRATV                 0x1c
#define BTTV_BOARD_PXC200                  0x1d
#define BTTV_BOARD_FLYVIDEO_98             0x1e
#define BTTV_BOARD_IPROTV                  0x1f
#define BTTV_BOARD_INTEL_C_S_PCI           0x20
#define BTTV_BOARD_TERRATVALUE             0x21
#define BTTV_BOARD_WINFAST2000             0x22
#define BTTV_BOARD_CHRONOS_VS2             0x23
#define BTTV_BOARD_TYPHOON_TVIEW           0x24
#define BTTV_BOARD_PXELVWPLTVPRO           0x25
#define BTTV_BOARD_MAGICTVIEW063           0x26
#define BTTV_BOARD_PINNACLE                0x27
#define BTTV_BOARD_STB2                    0x28
#define BTTV_BOARD_AVPHONE98               0x29
#define BTTV_BOARD_PV951                   0x2a
#define BTTV_BOARD_ONAIR_TV                0x2b
#define BTTV_BOARD_SIGMA_TVII_FM           0x2c
#define BTTV_BOARD_MATRIX_VISION2          0x2d
#define BTTV_BOARD_ZOLTRIX_GENIE           0x2e
#define BTTV_BOARD_TERRATVRADIO            0x2f
#define BTTV_BOARD_DYNALINK                0x30
#define BTTV_BOARD_GVBCTV3PCI              0x31
#define BTTV_BOARD_PXELVWPLTVPAK           0x32
#define BTTV_BOARD_EAGLE                   0x33
#define BTTV_BOARD_PINNACLEPRO             0x34
#define BTTV_BOARD_TVIEW_RDS_FM            0x35
#define BTTV_BOARD_LIFETEC_9415            0x36
#define BTTV_BOARD_BESTBUY_EASYTV          0x37
#define BTTV_BOARD_FLYVIDEO_98FM           0x38
#define BTTV_BOARD_GRANDTEC                0x39
#define BTTV_BOARD_ASKEY_CPH060            0x3a
#define BTTV_BOARD_ASKEY_CPH03X            0x3b
#define BTTV_BOARD_MM100PCTV               0x3c
#define BTTV_BOARD_GMV1                    0x3d
#define BTTV_BOARD_BESTBUY_EASYTV2         0x3e
#define BTTV_BOARD_ATI_TVWONDER            0x3f
#define BTTV_BOARD_ATI_TVWONDERVE          0x40
#define BTTV_BOARD_FLYVIDEO2000            0x41
#define BTTV_BOARD_TERRATVALUER            0x42
#define BTTV_BOARD_GVBCTV4PCI              0x43
#define BTTV_BOARD_VOODOOTV_FM             0x44
#define BTTV_BOARD_AIMMS                   0x45
#define BTTV_BOARD_PV_BT878P_PLUS          0x46
#define BTTV_BOARD_FLYVIDEO98EZ            0x47
#define BTTV_BOARD_PV_BT878P_9B            0x48
#define BTTV_BOARD_SENSORAY311             0x49
#define BTTV_BOARD_RV605                   0x4a
#define BTTV_BOARD_POWERCLR_MTV878         0x4b
#define BTTV_BOARD_WINDVR                  0x4c
#define BTTV_BOARD_GRANDTEC_MULTI          0x4d
#define BTTV_BOARD_KWORLD                  0x4e
#define BTTV_BOARD_DSP_TCVIDEO             0x4f
#define BTTV_BOARD_HAUPPAUGEPVR            0x50
#define BTTV_BOARD_GVBCTV5PCI              0x51
#define BTTV_BOARD_OSPREY1x0               0x52
#define BTTV_BOARD_OSPREY1x0_848           0x53
#define BTTV_BOARD_OSPREY101_848           0x54
#define BTTV_BOARD_OSPREY1x1               0x55
#define BTTV_BOARD_OSPREY1x1_SVID          0x56
#define BTTV_BOARD_OSPREY2xx               0x57
#define BTTV_BOARD_OSPREY2x0_SVID          0x58
#define BTTV_BOARD_OSPREY2x0               0x59
#define BTTV_BOARD_OSPREY500               0x5a
#define BTTV_BOARD_OSPREY540               0x5b
#define BTTV_BOARD_OSPREY2000              0x5c
#define BTTV_BOARD_IDS_EAGLE               0x5d
#define BTTV_BOARD_PINNACLESAT             0x5e
#define BTTV_BOARD_FORMAC_PROTV            0x5f
#define BTTV_BOARD_MACHTV                  0x60
#define BTTV_BOARD_EURESYS_PICOLO          0x61
#define BTTV_BOARD_PV150                   0x62
#define BTTV_BOARD_AD_TVK503               0x63
#define BTTV_BOARD_HERCULES_SM_TV          0x64
#define BTTV_BOARD_PACETV                  0x65
#define BTTV_BOARD_IVC200                  0x66
#define BTTV_BOARD_XGUARD                  0x67
#define BTTV_BOARD_NEBULA_DIGITV           0x68
#define BTTV_BOARD_PV143                   0x69
#define BTTV_BOARD_VD009X1_MINIDIN         0x6a
#define BTTV_BOARD_VD009X1_COMBI           0x6b
#define BTTV_BOARD_VD009_MINIDIN           0x6c
#define BTTV_BOARD_VD009_COMBI             0x6d
#define BTTV_BOARD_IVC100                  0x6e
#define BTTV_BOARD_IVC120                  0x6f
#define BTTV_BOARD_PC_HDTV                 0x70
#define BTTV_BOARD_TWINHAN_DST             0x71
#define BTTV_BOARD_WINFASTVC100            0x72
#define BTTV_BOARD_TEV560                  0x73
#define BTTV_BOARD_SIMUS_GVC1100           0x74
#define BTTV_BOARD_NGSTV_PLUS              0x75
#define BTTV_BOARD_LMLBT4                  0x76
#define BTTV_BOARD_TEKRAM_M205             0x77
#define BTTV_BOARD_CONTVFMI                0x78
#define BTTV_BOARD_PICOLO_TETRA_CHIP       0x79
#define BTTV_BOARD_SPIRIT_TV               0x7a
#define BTTV_BOARD_AVDVBT_771              0x7b
#define BTTV_BOARD_AVDVBT_761              0x7c
#define BTTV_BOARD_MATRIX_VISIONSQ         0x7d
#define BTTV_BOARD_MATRIX_VISIONSLC        0x7e
#define BTTV_BOARD_APAC_VIEWCOMP           0x7f
#define BTTV_BOARD_DVICO_DVBT_LITE         0x80
#define BTTV_BOARD_VGEAR_MYVCD             0x81
#define BTTV_BOARD_SUPER_TV                0x82
#define BTTV_BOARD_TIBET_CS16              0x83
#define BTTV_BOARD_KODICOM_4400R           0x84
#define BTTV_BOARD_KODICOM_4400R_SL        0x85
#define BTTV_BOARD_ADLINK_RTV24            0x86
#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87
#define BTTV_BOARD_ACORP_Y878F             0x88
#define BTTV_BOARD_CONCEPTRONIC_CTVFMI2    0x89
#define BTTV_BOARD_PV_BT878P_2E            0x8a
#define BTTV_BOARD_PV_M4900                0x8b
#define BTTV_BOARD_OSPREY440               0x8c
#define BTTV_BOARD_ASOUND_SKYEYE           0x8d
#define BTTV_BOARD_SABRENT_TVFM            0x8e
#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB     0x8f
#define BTTV_BOARD_MACHTV_MAGICTV          0x90
#define BTTV_BOARD_SSAI_SECURITY           0x91
#define BTTV_BOARD_SSAI_ULTRASOUND         0x92
#define BTTV_BOARD_VOODOOTV_200            0x93
#define BTTV_BOARD_DVICO_FUSIONHDTV_2      0x94
#define BTTV_BOARD_TYPHOON_TVTUNERPCI      0x95
#define BTTV_BOARD_GEOVISION_GV600         0x96
#define BTTV_BOARD_KOZUMI_KTV_01C          0x97
#define BTTV_BOARD_ENLTV_FM_2              0x98
#define BTTV_BOARD_VD012                   0x99
#define BTTV_BOARD_VD012_X1                0x9a
#define BTTV_BOARD_VD012_X2                0x9b
#define BTTV_BOARD_IVCE8784                0x9c
#define BTTV_BOARD_GEOVISION_GV800S        0x9d
#define BTTV_BOARD_GEOVISION_GV800S_SL     0x9e
#define BTTV_BOARD_PV183                   0x9f

 

 

Принимают параметр card=тип_платы1,тип_платы2…тип_платы N.

Пример для плат на BT878 (драйвер bttv):

1. Выгружаем модуль bttv

user@host:~$ sudo rmmod bt878 bttv
2. Загружаем модуль с «принудительным» указанием типа платы:

user@host:~$ sudo modprobe -v bttv card=число_идентификатор_платы_из_списка tuner=-1 autoload=0
3. Проверяем всё ли правильно сделали:

user@host:~$ v4l-info | head -n 10 | grep card
card: … ProVideo PV143 …
4. Смотрим видео:

Запускаем телевизионную смотрелку (xawtv, tvtime, ..);
далее — меню;
устанавливаем телевизионный стандарт (TV norm): PAL для цветных видеокамер и PAL-NC для черно-белых;
в зависимости от разъёма, куда подключена камера, меняем каналы (вход, Videosource, может быть [Television(input=0), Composite1(input=1), Composite1(input=2), S-Video(input=3)]
прим: названия каналов могут быть другими
user@host:~$ xawtv -nodga -noxv -geometry 640×480 -c /dev/video0
Таким образом, нужно пробежаться по пунктам 1-4 для всех плат из списка, поддерживаемых драйвером.

Для плат на видеокодерах bt878a в первую очередь стоит попробовать с card=0×69 (Provideo PV143), что соответствует простой плате с базовой функциональностью и без ТВ-тюнера.
Если плата нормально заработала, нужно просто прописать параметры для загрузки модуля bttv, согласно правил Вашего дистрибутива.

 

В Debian/Ubuntu драйвера для видеограбберов загружаются автоматически из initramfs.

Обычно, всё что Вам нужно сделать, так это передать правильные параметры драйверу (тип платы: см. выше).

Нужно создать файл «/etc/modprobe.d/video4linux.conf» и прописать в него одну или несколько строк. Есть нюансы, поэтому несколько примеров:

простая одночиповая плата на BT878, типа Orient SDVR-404

options bttv card=0x69 tuner=-1 autoload=0
простая одночиповая плата на Techwell TW6805A, типа Orient SDVR-404A

options tw68 tuner=-1
плата Drive (компания DSSL, софт Trassir) — как 4 ProVideo PV143

options bttv card=0x69,0x69,0x69,0x69 tuner=-1,-1,-1,-1 autoload=0
4-x чиповая плата Kodikom 4400R на BT878

options bttv card=0x84,0x84,0x84,0x84 tuner=-1,-1,-1,-1 autoload=0
8-x чиповая плата Kodikom KMC-8800R

options bttv card=0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66 tuner=-1,-1,-1,-1,-1,-1,-1,-1 autoload=0
TIBET_CS16(4xBT878) и AVERMEDIA DVD EZMAKER(1xSAA7134)

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 saa7134
options bttv card=0x83,0x83,0x83,0x83 tuner=-1,-1,-1,-1 autoload=0
options saa7134 card=33
для платы семейства Orient SDVR-7008 (8 saa7130)

options saa7134 card=1,1,1,1,1,1,1,1 tuner=-1,-1,-1,-1,-1,-1,-1,-1 i2c_scan=0 disable_ir=1
Примечания:

используйте номер канала 1 (а не 0) для плат семейства Orient SDVR-7008;
смотрите дополнительную информацию о поддержке плат Kodicom в linux:
http://www.linuxtv.org/v4lwiki/index.php?title=Kodicom_4400R
http://www.linuxtv.org/v4lwiki/index.php?title=Kodicom_8800R
При долгой загрузке модуля bttv (более 5 сек., обычно сопровождается выводом строк типа »I2C detect»), попробуйте добавить следующие опции:

options bttv … i2c_scan=0 i2c_hw=-1

Большинство современных дистрибутивов Linux используют двухступенчатую загрузку initramfs/initrd(устаревший способ).

В этом случае, большинство модулей устройств подгружается именно из initramfs, и чтобы модули получили наши новые параметры, нужно пересобрать образ initramfs командами:

user@host:~$ sudo update-modules
user@host:~$ sudo update-initramfs -u
См: modprobe(8) и modprobe.conf(5).

Если одновременно используются разнотипные видеограбберы могут возникнуть проблемы.

Этот эффект может привести к отличной от ожидаемой/желаемой привязке реальных чипов к устройствам /dev/videoN.

Избежать такого перемешивания можно двумя способами.

Cложный способ через udev.

C помощью правил udev, попытаться по различию некоторых свойств (доступных udev) «раздать» имена устройств в нужном порядке. В качестве примера поищите как это делается для аналогичной проблемы, только с сетевыми платами.

Простой способ — блокировка загрузки модуля из initramfs.

Запрещаем автозагрузку модулей устройств видеоввода:

user@host:~$ sudo echo ‘blacklist bttv’ >> /etc/modprobe.d/blacklist
user@host:~$ sudo echo ‘blacklist saa7134’ >> /etc/modprobe.d/blacklist
user@host:~$ sudo echo ‘blacklist cx88xx’ >> /etc/modprobe.d/blacklist
user@host:~$ sudo update-initramfs -u
В файле «/etc/rc.local» перед «exit 0» прописываем команды ручной загрузки модулей:

/etc/rc.local


# загружаем драйвер для плат на видеокодерах BT878
# (как указывать типы плат см. выше)
insmod bttv card=тип_платы_1,тип_платы_2, ….. tuner=-1 autoload=0
# достаточная для полной инициализации устройств пауза
sleep 2

# загружаем драйвер для плат на SAA7134
insmod saa7134 card=тип_платы_1,тип_платы_2, …..
sleep 2

# загружаем драйвер для плат на CX2388x
insmod cx88xx card=тип_платы_1,тип_платы_2, …..
sleep 2

exit 0
Примечание: скрипт /etc/rc.local выполняется из /etc/init.d/rc.local (см: init ), который в свою очередь выполняется последним (обычно).
Если в системе есть какие-то демоны, работающие с видеограбберами, то нужно обеспечить их запуск после /etc/init.d/rc.local.
См.: update-rc.d или для Debian/Ubuntu, chkconfig для RedHat/Fedora .

 

Сравнительная таблица оконных менеджеров в линуксе

По материалам http://www.renewablepcs.com/about-linux/kde-gnome-or-xfce

В posix системах возможно использование различных оконных менеджеров, которые устанавливаются в зависимости от конкретных задач: будь то сервер или десктоп, а также устаревший системный блок, либо же и вовсе какой-нибудь ARM-box… Гибкость и масштабируемость этих систем давно известны, и порой трудно сориентироваться в выборе программного окружения ОС. Таблица, приведенная ниже, дает возможность понять какой менеджер окон лучше задействовать в том или ином случае:

 Дистрибутив / менеджер оконIn Parenthesis: Operating System Used for Testing  RAM used
 % of CPU (2.6 GHz total) used
 Type
 GNOME 3.x shell (Fedora 17)  248 MB  1-2 %  desktop shell (GNOME 3.x-based)
 Unity (Ubuntu 12.04 LTS)  218 MB  1-4 %  desktop shell (GNOME 3.x-based)
 MATE (Linux Mint 13)  205 MB 9-10 %  desktop environment
 GNOME 2.x shell (Lubuntu 11.04)  191 MB  1 %  desktop shell (GNOME 2.x-based)
 Cinnamon (Linux Mint 13)  175 MB  11-12 %  desktop shell (GNOME 3.x-based)
 GNOME 3.x Classic (Fallback Mode) (Lubuntu 12.04)  141 MB  1-2 %  desktop shell (GNOME 3.x-based)
 KDE 4.8.2 (Lubuntu 12.04)  131 MB  1-3 %  desktop environment
 Razor-qt (Lubuntu 12.04)  117 MB  1-2 %  desktop environment
 Xfce 4.8 (Lubuntu 12.04)  106 MB  1-2 %  desktop environment
 LXDE (Lubuntu 12.04)  82 MB  1-2 % desktop environment
 OpenBox (Lubuntu 12.04)  76 MB  1-2 %  window manager
 Enlightenment (E17 Standard) (Lubuntu 12.04)  72 MB  1-14 %  desktop environment
 JWM (Lubuntu 11.04)  58 MB  1 %  window manager
 Fluxbox (Lubuntu 12.04)  55 MB  1-3 %  window manager
 IceWM (Lubuntu 12.04)  53 MB  3 %  window manager

Установка LinuxCNC Debian7.1 rt-kernel

LinuxCNC — это свободно распространяемое программное обеспечение, под операционную систему LINUX. LinuxCNC(бывшая EMC2) это комплекс для управления различными станками с УЧПУ(CNC).

Jvmz5

Для тех кому интересно просто протестировать этот софт — можно скачать LiveCD(ubuntu 10.04) с уже установленной и настроенной LinuxCNC, на оф.сайте. Существуют также репозитории с тестовыми сборками для ubuntu.

В этой статье речь пойдет об установке LinuxCNC из альтернативной (RTOS support) девелоперской ветки git.

Машина: Pentium4  2.4ГГц, RAM 1Гб, Geforce2 mx/mx400, HDD 120Гб…..

Linux Debian 7.1 установлен с дисков — взять можно тут 

Итак, сразу же, на свежеустановленной системе возникла проблема с модулем (драйверами) видеокарты- nvidia-legacy и nouveau -принципиально отказались работать со старенькой видеокарточкой. Решение такое:

sudo apt-get install xserver-xorg-video-modesetting
reboot

После этого в систему необходимо установить ядро, соответствующей архитектуры ЦПУ, скомпилированное  для работы в режиме реального времени RT. В нашем конкретном случае это kernel  3.2.0-4-rt-686-pae.

Теперь нужно подготовить программное окружение:

sudo aptitude install git-core gitk git-gui
sudo aptitude install build-essential autoconf

И получаем на свой локальный компьютер копию текущих исходных текстов:

git clone git://git.mah.priv.at/emc2-dev.git linuxcnc-dev
cd linuxcnc-dev

Выбираем стабильную ветку:

git checkout --track origin/rtos-integration-preview3
git pull

Первым делом нужно определить список зависимостей:

 cd debian
./configure -r
cd ..
dpkg-checkbuilddeps --B control

Остается только установить эти пакеты:

sudo apt-get install …-тут список этих пакетов через пробел

Ставим компилятор:

sudo aptitude install gcc-4.6  gcc-4.6-base   g++-4.6
export CC=gcc-4.6
export CXX=g++-4.6

проверим:

gcc -v
g++ -v

если версия отлична от 4.6 , то тогда так:

cd /usr/bin
sudo rm gcc
sudo rm g++
sudo ln -s gcc-4.6 gcc
sudo ln -s g++-4.6 g++
cd . .

Переходим к сборке:

cd linuxcnc-dev
cd src
./autogen.sh
./configure --with-threads=rt-preempt-user

Если на этом этапе возникнет ошибка вида:

«configure: error: Tcl and Tk versions must be the same,….»

то тогда так:

./configure --with-threads=rt-preempt-user --with-tkConfig=/usr/lib/tk8.5/tkConfig.sh --with-tclConfig=/usr/lib/tcl8.5/tclConfig.sh

Собираем:

make
make install-menus
sudo make setuid
cd . .
cd linuxcnc-dev

Вот собственно и все, теперь можно попробовать запустить LinuxCNC. Из консоли, сперва нужно выполнить команду:

. ./scripts/rip-environment

Тест производительности ядра реального времени:

latency-test


EMC2 от чего зависит HAL Latency Test-1

Лучше всего чтоб этот тест поработал несколько часов, а компьютер в это время был нагружен разными программами. В итоге, после 3 часов теста, величина Max Jitter на этом компьютере составила 36584 ns.  Более подробно о тонкостях настройки компьютера на оф.сайте.

Конфигурации-симуляции запустятся сразу, а вот с конфигурациями (собственными), работающими с реальным LPT портом, потребуют дополнительных действий.

От суперпользователя root создать или отредактировать файл:

/etc/modeprobe.d/blacklist.conf

Он должен содержать строчки (вторую можно раскомментировать по ситуации):

blacklist lp
#blacklist parport_pc

Перезагрузить компьютер

reboot

Теперь нужно  создать файл, например:

mkfile . ./linuxcnc-dev/linuxcnc25

с таким содержанием:

#!/bin/bash
 . ./scripts/rip-environment
 linuxcnc

Сделать его исполняемым:

chmod +x  . ./linuxcnc-dev/linuxcnc25

Аналогично для других:

#!/bin/bash
 . ./scripts/rip-environment
 latency-test
#!/bin/bash
 . ./scripts/rip-environment
 latencyplot
#!/bin/bash
 . ./scripts/rip-environment
 stepconf
#!/bin/bash
 . ./scripts/rip-environment
 pncconf

В итоге пять исполняемых файлов. Тестируем, регулируем и настраиваем…

После всех нужных манипуляций будет создана своя финальная конфигурация. Копию файла конфигурации, на рабочем столе, нужно разместить  в папке автозагрузки Х-сервера (/home/*user*/.kde/Autostart), и если был настроен автоматический вход в систему, то сразу, после загрузки компьютера, будет загружен настроенный интерфейс LinuxCNC.

 

 Обсудить на форуме 

Лечим GRUB2 с Live CD

Восстановление загрузчика GRUB на примере Live CD ubuntu

 

Загружаем машину с компакт диска Ubuntu Desktop live CD.  На рабочем столе открываем темринал :

Application ->Accessories->Terminal

Далее просмотрим существующие диски и их разделы:

sudo fdisk -l  


Как видно на картинке раздел с линукс /dev/sda11.

После этого монтируем раздел диска командой:
sudo mount /dev/sdXX /mnt  (в этом примере ‘sudo mount /dev/sda11 /mnt’ )

Если раздел boot отдельно отформатирован, то монтируем и его:

            sudo mount /dev/sdYY /mnt/boot.
Монтируем вируальные разделы файловой системы:
         
            sudo mount —bind /dev /mnt/dev

            sudo mount —bind /proc /mnt/proc 
            sudo mount —bind /sys /mnt/sys

Чтобы утилиты grub с LIVE CD работали в смонтированном разделе

          sudo mount —bind /usr/ /mnt/usr 

затем
          sudo chroot /mnt

Если файл /boot/grub/grub.cfg отсутствует, то создадим его:
update-grub
или

update-grub2

Теперь переустанавливаем Grub  
         grub-install /dev/sdX  (тут grub-install /dev/sda,  номер раздела не указываем! )
Проверяем:
sudo grub-install —recheck /dev/sdX
Выходим из chroot :
                CTRL-D
12. Размонтируем все: 
           sudo umount /mnt/dev 
           sudo umount /mnt/proc
           sudo umount /mnt/sys
Также :
           sudo umount /mnt/boot
           sudo umount /mnt/usr

Размотируем  раздел:
           sudo umount /mnt

Перезагружаем
         sudo reboot

Внимание! Если у вас выводятся сообщения об ошибке — значит вы не внимательны и у вас есть синтаксические ошибки.

 


WEB-cервер под управлением Linux Debian Squeeze

Простая базовая установка и настройка Apache2 +  PHP5 +  MySQL + PhpMyAdmin

Apache:

apt-get install apache2 libapache2-mod-auth-mysql
Файл htaccess находится в директории /etc/apache2/sites-enabled/000-default

PHP5

apt-get install php5-common php5 libapache2-mod-php5 php5-cli php5-cgi php5-mysql
Перезапустить apache: /etc/init.d/apache2 restart
Для того чтобы проверить PHP нужно в директории /var/www/ создать файл, например test.php c кодом PHP

<?php
echo phpinfo();

?>

Открыть файл: http://localhost/test.php

MySQL:

apt-get install mysql-server mysql-client

PhpMyAdmin

apt-get install phpmyadmin
Зайти в phpmyadmin можно по адресу http://127.0.0.1/phpmyadmin
Если не работает, то возможно нужно создать ссылку:
ln -fvs /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
и перезапустить
service apache2 restart

Доступ по FTP

apt-get install proftpd
/etc/init.d/proftpd start
Файл конфигурации: /etc/proftpd/proftpd.conf

Различия версий WINDOWS7

Сравненительная таблица версий MS Windows 7
Функция / Редакция Начальная Домашняя базовая Домашняя расши-ренная Профессио-нальная Корпора-тивная Макси-мальная
Продажа только по  OEM — лицензиям Продажа в розницу и по OEM — лицензиям (только на развиваю- щихся рынках и российс- ком) Продажа в розницу и  по OEM — лицензиям Продажа в розницу,  по OEM и корпора-тивным лицензиям Продажа  только  под корпора- тивными лицен- зиями Продажа в розницу и по OEM — лицен- зиям
Окончание поддержки 13.01.2015 13.01.2015 13.01.2015 14.01.2020 14.01.2020 13.01.2015
Наличие 64-битной версии Нет Да Да Да Да Да
Максималь- ный размер оператив- ной  памяти   (для 64-битных версий) 2 Гб (для 32-битной версии) 8 Гб 16 Гб 192 Гб 192 Гб 192 Гб
Центр восстанов- ления      Windows Нет  под- держки домена Нет  под- держки домена Нет под- держки домена Да Да Да
Функция «Домашняя группа» (создание и присоеди-  нение   к группе) Только присоеди- нение Только присоеди- нение Да Да Да Да
Интерфейс Windows     Aero Нет Только базовая тема оформле- ния Да Да Да Да
Поддержка нескольких мониторов Нет Да Да Да Да Да
Быстрое переключе- ние между пользовате- лями Нет Да Да Да Да Да
Возмож- ность    смены фонового рисунка  рабочего   стола Нет Да Да Да Да Да
Диспетчер рабочего  стола Да Да Да Да Да Да
Центр мобиль-  ности Windows Нет Да Да Да Да Да
Multitouch     и улучшен- ное рас- познавание рукопис-  ного ввода Нет Нет Да Да Да Да
  Windows       Media     Center Нет Нет Да Да Да Да
Дополни- тельные    игры Нет Нет Да Отключе- ны по умолча- нию Отключе- ны по умолча- нию Да
Эмулятор Windows   XP Нет Нет Нет Да Да Да
  EFS    (система    шифро- вания     данных) Нет Нет Нет Да Да Да
Печать с   учетом      информа- ции  о место- положе-  нии Нет Нет Нет Да Да Да
Возмож-  ность   выступать  в    качестве  хост- компьюте- ра Удален- ного рабочего   стола Нет Нет Нет Да Да Да
Под- ключение  к домену Нет Нет Нет Да Да Да
Возмож- ность    даун- грейда     до Vista    или XP Нет Нет Нет Да Да Да
Поддержка нескольких физических процес- соров Нет Нет Нет Да Да Да
AppLocker Нет Нет Нет Нет Да Да
BitLocker   и BitLocker   To Go Нет Нет Нет Нет Да Да
Branch   Cache Нет Нет Нет Нет Да Да
Direct Access Нет Нет Нет Нет Да Да
Под- система  для  запуска Unix — приложе- ний Нет Нет Нет Нет Да Да
Мульти- язычная пользова- тельская среда Нет Нет Нет Нет Да Да
Загрузка    с   VHD       (файла-  образа Microsoft  Virtual      PC) Нет Нет Нет Нет Да Да
Запуск оснасток lusrmgr.msc (Local  Users       and   Groups), gpedit.msc (Local   Group   Policy Editor), secpol.msc (Local    Security   Policy) Нет Нет Нет Да Да Да

Инструкция по сбросу пароля администратора XP/Vista

Случается так, что пользователь по каким либо причинам утратил/забыл пароль админской учетной записи  MS Windows.

Существует множество способов для восстановления доступа к ОС. Утилита  ntpasswd является оффлайновым инструментом для решения этой ( и не только)  задачи. Пошаговую инстркцию по использованию этого инструмента можно найти в интернете, например здесь. Удобно использовать специализированный загрузочный диск, образ которого можно скачать и записать на болванку.

Итак загружаемся с записанного диска  и видим примерно такую картину

Приглашение к загрузке подтверждаем нажатиаем Enter

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

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

Видим примерно следущее

Выбираем раздел с Windows — кандидата №1 (их может быть несколько) и жмем Enter

Далее  нужно выбрать путь к файлам реестра, в данном случае утилита опять сама справилась, поэтому опять жмем Enter

Выбираем пункт №1  — Password reset [sam system security]

Теперь наблюдаем список  учетных записей, из которого нужно выбрать необходимый профиль для сброса его пароля, аккаунты с пустым паролем имеют признак *BLANK*, аккаунты с админскими правами имеют признак Admin

Если программа выбрала не ту учетную запись, которая вам нужна, напишите значение вручную — то, которое указано в колонке RID так:

  • 0x03eb
  • Enter

Выбираем опцию №1 — Clear (blank) user password

После этого нужно нажать ! (воскл. знак) и Enter для выхода из режима редактирования

Далее попадаем опять в главное меню утилиты и теперь нужно  корректно из нее выйти (иначе изменения не сохранятся), поэтому давим q и опять Enter

Вновь нас спрашивают  будем редактировать что-нибудь? Конечно нет,  поэтому давим n и Enter

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

Более подробно с другими функциями этой утилиты можно ознакомиться на сайте автора

http://pogostick.net/~pnh/ntpasswd/bootdisk.html

ext4

Fourth Extended File System (четвёртая версия расширенной файловой системы), сокр. ext4, или ext4fs — журналируемая файловая система, используемая в ОС с ядром Linux.  ext4 ­— файловая система, основанная на ext3 и совместимая с ней (прямо и обратно). Отличается от ext3 поддержкой extent’ов, групп смежных физических блоков, управляемых как единое целое; повышенной скоростью проверки целостности и рядом других усовершенствований.

Новые возможности ext4 (в сравнении с ext3):

  1. Использование экстентов. В файловой системе ext3 адресация данных выполнялась традиционным образом, поблочно. Такой способ адресации становится менее эффективным с ростом размера файлов. Экстенты позволяют адресовать большое количество (до 128 MB) последовательно идущих блоков одним дескриптором. До 4х указателей на экстенты может размещаться непосредственно в inode, что достаточно для файлов маленького и среднего размера.
  2. 48-битные номера блоков. При размере блока 4K это позволяет адресовать до одного экзабайта (2^48*4KB = 2^50*1KB = 2^60 B = 1 EB).
  3. Выделение блоков группами (multiblock allocation). Файловая система хранит не только информацию о местоположении свободных блоков, но и количество свободных блоков, идущих друг за другом. При выделении места файловая система находит такой фрагмент, в который данные могут быть записаны без фрагментации. Это снижает уровень фрагментации файловой системы в целом.
  4. Отложенное выделение блоков (delayed allocation). Выделение блоков для хранения данных файла происходят непосредственно перед физической записью на диск (например, при вызове sync), а не при вызове write. В результате, операции выделения блоков можно делать не по одной, а группами, что в свою очередь минимизирует фрагментацию и ускоряет процесс выделения блоков. С другой стороны, увеличивает риск потери данных в случае внезапного пропадания питания.
  5. Превышен лимит в 32000 каталогов. В ext3, если не использовать специальные патчи, в одном каталоге можно было создать не более 32000 подкаталогов (или, если быть совсем точным, до 65535 каталогов, но только изменяя константы ядра).
  6. Резервирование inode’ов при создании каталога (directory inodes reservation). При создании каталога резервируется несколько inode’ов. Впоследствии, при создании файлов в этом каталоге сначала используются зарезервированные inode’ы, и если таких не осталось, выполняется обычная процедура.
  7. Размер inode. Размер inode (по умолчанию) увеличен с 128 до 256 байтов. Это дало возможность реализовать те преимущества, которые перечислены ниже.
  8. Временные метки с наносекундной точностью (nanosecond timestamps). Более высокая точность времён, хранящихся в inode. Диапазон хранящихся времён тоже расширен: если раньше верхней границей хранимого времени было 18 января 2038 года, то теперь это 25 апреля 2514 года.
  9. Версия inode. В inode появился номер, который увеличивается при каждом изменении inode файла. Это будет использоваться, например, в NFSv4, для того чтобы узнавать, изменился ли файл.
  10. Хранение расширенных атрибутов в inode (EA in inode). Хранение расширенных атрибутов, таких как ACL, атрибутов SELinux и прочих, позволяет повысить производительность. Атрибуты, для которых недостаточно места в inode, хранятся в отдельном блоке размером 4KB. Предполагается снять это ограничение в будущем.
  11. Контрольное суммирование в журнале (Journal checksumming). Контрольные суммы журнальных транзакций. Позволяют лучше найти и (иногда) исправить ошибки при проверке целостности системы после сбоя.
  12. Предварительное выделение (persistent preallocation). Сейчас для того, чтобы приложению гарантированно занять место в файловой системе, оно заполняет его нулями. В ext4 появилась возможность зарезервировать множество блоков для записи и не тратить на инициализацию лишнее время. Если приложение попробует прочитать данные, оно получит сообщение о том, что они не проинициализированы. Таким образом, несанкционированно прочитать удалённые данные не получится.
  13. Дефрагментация без размонтирования (online Defragmentation). Реализовано в самой последней версии e2fsprogs. (~/misc/e4defrag)
  14. Неинициализированные блоки (uninitialised groups). Пока не реализовано. Позволяет ускорить проверку файловой системы с помощью fsck. Блоки, отмеченные как неиспользуемые, проверяются группами, и детальная проверка производится только если проверка группы показала, что внутри есть повреждения. Предполагается, что эта возможность может очень сильно ускорить процесс проверки целостности файловой системы; в зависимости от способа размещения данных время проверки будет составлять от 1/2 до 1/10 от нынешнего.

Основные возможности ext4, поддержка которых на сегодняшний день не включена в основной код:

  • отложенное выделение блоков;
  • online-дефрагментация;
  • контрольное суммирование журнала;
  • восстановление удалённых файлов.

Среди ограничения в программах (userlevel tools), необходимых для работы с ext4, существующих на сегодняшний день самая большая это — максимальный размер файловой системы не может превышать 16TB; это связано с тем, что существующая mkfs не умеет пока что работать в 64-битном режиме (но поддержка со стороны ядра есть)

Файловая система ext4 рассматривается как промежуточный шаг на пути к файловой системе следующего поколения Btrfs, которая претендует на звание основной файловой системы Linux в будущем.

Двоичные приставки

Двоичные приставки — приставки перед единицами измерения, обозначающие их умножение на степени двойки (точнее, на степени числа 1024=210). Благодаря близости чисел 1024 и 1000 двоичные приставки построены по аналогии со стандартными десятичными:

Приставка Аналогичная
десятичная
приставка
Сокращения
по МЭК для
битов, байтов
Значение, на которое
умножается исходная
величина
киби кило (103) Кибит, КиБ 210 = 1024
меби мега (106) Мибит, МиБ 220 = 1 048 576
гиби гига (109) Гибит, ГиБ 230 = 1 073 741 824
теби тера (1012) Тибит, ТиБ 240 = 1 099 511 627 776
пеби пета (1015) Пибит, ПиБ 250 = 1 125 899 906 842 624
эксби экса (1018) Эибит, ЭиБ 260 = 1 152 921 504 606 846 976
зеби зетта (1021) Зибит, ЗиБ 270 = 1 180 591 620 717 411 303 424
йоби йотта (1024) Йибит, ЙиБ 280 = 1 208 925 819 614 629 174 706 176

 

Измерения в байтах
Десятичная приставка Двоичная приставка
Название Символ Степень Название Символ Степень
ГОСТ МЭК
байт B 100 байт B байт 20
килобайт kB 103 кибибайт KiB Кбайт 210
мегабайт MB 106 мебибайт MiB Мбайт 220
гигабайт GB 109 гибибайт GiB Гбайт 230
терабайт TB 1012 тебибайт TiB Тбайт 240
петабайт PB 1015 пебибайт PiB Пбайт 250
эксабайт EB 1018 эксбибайт EiB Эбайт 260
зеттабайт ZB 1021 зебибайт ZiB Збайт 270
йоттабайт YB 1024 йобибайт YiB Йбайт 280

 

Материал из Википедии — свободной энциклопедии

  • ЗАДАТЬ ВОПРОС