Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Робота з FireWire в GNU / Linux

  1. Зовсім трохи теорії
  2. Підтримка IEEE 1394 в Linux
  3. Дивимося що в Kubuntu

Наша взаимовыгодная связь https://banwar.org/

Сьогодні цифрова відеокамера вже не є чимось особливим і недоступним. Ціни на такі пристрої споживчого класу перестали кусатися, і все більше людей при покупці відеокамери вибираючи між аналоговим або цифровим варіантом, віддають перевагу останньому варіанту. Спробуємо розібратися, як змусити працювати таку камеру разом з комп'ютером під управлінням GNU / Linux.

Під час написання статті був використаний дистрибутив Kubuntu 7.10, чого так би мовити і вам бажаю :). Хоча майже всі сказане стосується і інших дистрибутивів Linux.

Зовсім трохи теорії

Не дивлячись на те, що на корпусі більшості цифрових відеокамер можна знайти напис на зразок USB 2.0 compatible, для захоплення комп'ютером відеопотоку традиційно використовується зовсім інший інтерфейс - IEEE 1394. Цей високошвидкісний інтерфейс підтримує гаряче підключення і дозволяє з'єднати до 63 пристроїв. Різні виробники називають його в своїх пристроях по-різному. Найбільш вживаним є Firewire назва, запропоноване компанією Apple, яка особливо на перших порах і займалася активно його розробкою, на комп'ютерах Apple цей порт давно вже став стандартним, Sony називає такі пристрої i.Link. Хоча вони означають одне і те ж. До речі позначення IEEE 1394 не несе, якого то особливого сенсу, як не має нічого магічного. Просто це був 1394 по рахунку стандарт, випущений комітетом. В даний час існує два IEEE 1394. Перший стандарт, IEEE 1394a, підтримує обмін даними зі швидкістю до 400 Мб / c, новіший IEEE 1394b (FireWire800 і FireWire1600), підтримує вже швидкість аж до 1600 Мб / c (навіть до 3200) . Не дивлячись на те, що стандарт USB 2.0 дозволяє передавати інформацію зі швидкістю 480 Мб / c, тобто теоретично більше ніж у IEEE 1394a, на практиці швидкість у Firewire виходить вище. І так як Firewire спочатку розроблявся в тому числі і для передачі відеопотоків, він може передавати в ізохронними режимі дані з гарантованою швидкістю. У цьому випадку вся смуга віддається "потребує" пристрою, і пристрою не конкурують між собою за смугу пропускання, як це відбувається в USB (особливо при каскадному підключенні). Тому на форумах дуже часто можна зустріти інформацію, що якість відео перегнанного через Firewire виходить вище, ніж отримане через USB. До речі IEEE 1394 для пристрою досить незалежні. Тобто фактично ніщо не заважає безпосередньо, без використання ПК, під'єднати відеокамеру з зовнішнім жорстким диском використовують Firewire, куди і перегнати відзнятий матеріал.

Для того щоб переписати знятий матеріал вам природно знадобиться підтримка Firewire. Якщо в материнській платі її немає, то необхідно докупити зовнішню PCI-карту. Така карта коштує близько 15 у.о. Крім того знадобиться шнур з боку підключається до комп'ютера має роз'єм з 6 контактами, а для з другої під'єднується до відеокамери - 4 (без контактів харчування).

Підтримка IEEE 1394 в Linux

Робота по підтримці IEEE 1394 в Linux ведеться вже давно, і зараз можна сказати, що основні проблеми вже вирішені. Хоча, як і для інших комп'ютерних пристроїв, драйвера і специфікації виробники приховують, тому буде працювати конкретний пристрій, залежить від використовуваного в ньому чіпа. Сьогодні не повинно бути проблем з пристроями, що використовують чіпи Texas Instruments PCILynx / PCILynx2 і з усіма OHCI-сумісними чіпами, виробленими різними компаніями. Не підтримуються чіпи Sony використовуваний в ноутбуках серії Vaio (деякі ноутбуки цієї серії використовують OHCI-сумісний CXD3222) і Adaptec AIC-5800. Для перевірки сумісності вашого чіпа або пристрою необхідно відвідати веб-сайт підтримки IEEE1394 в Linux http://www.linux1394.org/.

Підтримка IEEE 1394, включена в основне ядро ​​починаючи з версії 2.3.40, і зараз реалізована для всіх версій ядер від 2.2 до 2.6 (для 2.2 і ранніх версій 2.4 у вигляді патча). Тому в сучасних дистрибутивах необхідності збирати заново ядро ​​немає. Тільки в разі виникнення проблем, можливо, знадобиться встановити, більш свіжу версію бібліотек libraw1394 і libiec61883. Перша забезпечує прямий доступ до пристрою. Друга базується на libraw1394, і забезпечує стандартний інтерфейс для доступу до потоковим даними, включаючи DV, MPEG-2, аудіо та відео даних.

Один з варіантів ієрархії драйверів на моєму комп'ютері виглядає так: фізичний пристрій - ohci1394 - ieee1394 - raw1394 - libraw1394 - додаток. При цьому ieee1394 є високорівневим драйвером, що забезпечує єдиний інтерфейс доступу. Можливі три низькорівневих модуля працюють безпосередньо з пристроєм. Це ohci1394 для чіпів 1394 Open Host Controller Interface, драйвер aic5800 для Adaptec AIC-5800 і pcilynx драйвер для чіпів Texas Instruments PCILynx.

Якщо все встановлено і налаштований належним чином, після підключення всіх наявних пристроїв, в системі можуть з'явитися наступні модулі і файли пристроїв:

- raw1394 - забезпечує прямий «сирий» доступ, з можливістю управління камери, але в той же час його не рекомендується використовувати через можливих проблем з безпекою. Доступ в просторі користувача, як показано вище здійснюється через libraw1394.

- video1394 - основний асинхронний OHCI драйвер, забезпечує більш продуктивний DMA доступ, тому і використовується для роботи з цифровими камерами.

- dv1394 - здійснює прийом і передачу сигналів з цифрових відеокамер (Digital Video), як звичайні файли, повністю інкапсулює обробку DV поверх 1394. Раніше для роботи з DV камерами використовувався video1394, але робота з ним могла викликати конфлікт пристроїв, тому його переписали, хоча судячи з останньої інформації (дивись висновок dmesg нижче по тексту) від нього також відмовляються.

- eth1394 - дозволяє зв'язати комп'ютери в єдину IEEE1394 мережу. Спочатку забезпечував инкапсуляцию Ethernet, потім була додана підтримка IPv4-over-1394 (RFC-2734).

- sbp2 - Serial Bus Protocol забезпечує доступ до пристроїв зберігання інформації.

- amdtp - реалізує підтримку протоколу Audio & Music Data Transmission Protocol, в даний час IEEE1394 використовується в професійному звуковому оборудованіі.Ітак, для роботи з цифровими DV відеокамерами на потрібні модулі raw1394 і dv1394, з якими власне і працює нелінійний відеоредактор Kino.

Дивимося що в Kubuntu

У Kubuntu починаючи з Daper Drake з розпізнаванням додаткової плати розширення і відеокамери у мене проблем не було. Але вони можуть виникнути в інших дистрибутивах (особливо старих) або з іншими пристроями. Тому детально розберемо, як визначити причину, в тому випадку якщо щось піде не так. Тому детально розглянемо, як визначити причину, в тому випадку якщо щось піде не так.

Отже, що сказано в повідомленнях ядра з приводу ініціалізації PCI пристрої.

$ Dmesg | less

І знаходимо такі рядки, які говорять про те, що пристрій знайдено і драйвера завантажені.

[31.049087] ieee1394: Initialized config rom entry `ip1394 '

[31.111700] ohci1394: $ Rev: 1313 $ Ben Collins <[email protected]>

[31.113117] ohci1394: fw-host0: Unexpected PCI resource length of 1000!

[31.164888] ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ = [10] MMIO = [de001000-de0017ff] Max Packet = [2048]

[32.433962] ieee1394: Host added: ID: BUS [0-00: 1023] GUID [00601d0000000b77]

[52.399244] sbp2: $ Rev: 1306 $ Ben Collins <[email protected]>

[52.399263] ieee1394: sbp2: Driver forced to serialize I / O (serialize_io = 1)

[52.399270] ieee1394: sbp2: Try serialize_io = 0 for better performance

Детальніше інформацію про знайдений PCI пристрої дивимося командою.

$ Lspci -v

0000: 00: 14.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 61) (prog-if 10 [OHCI])

Subsystem: Agere Systems FW323

Flags: bus master, medium devsel, latency 32, IRQ 10

Memory at de001000 (32-bit, non-prefetchable) [size = 4K]

Capabilities: <available only to root>

Як бачите, встановлений OHCI-сумісний адаптер, тому проблем в роботі бути не повинно. Дивимося, які модулі зараз завантажені.

$ lsmod

sbp2 24196 0

ohci1394 35124 0

ieee1394 299832 2 sbp2, ohci1394

ieee1394 299832 2 sbp2, ohci1394

Необхідних для роботи raw1394 і dv1394, як бачите, немає. І, нарешті, подивимося на цікаві для, нас файли пристроїв.

$ Sudo find / dev / proc -name «* 1394»

/dev/.static/dev/raw1394

/ Proc / irq / 10 / ohci1394

Та не густо. В одному з рад по роботі з Kino в Ubuntu, рекомендується завантажувати такі модулі або вручну.

$ Sudo modprobe dv1394

$ Sudo modprobe raw1394

$ Sudo modprobe raw1394

Або прописавши їх завантаження в / etc / modules, додавши два рядки.

raw1394

dv1394

У Kubuntu модуль sbp2 завантажується за замовчуванням. Якщо ви не збираєтеся використовувати FireWire диски, то варто напевно відключити завантаження модуля sbp2, видаливши або закоментувавши запис.

Але в сучасних дистрибутивах використовують технології udev і hal пристрої підхоплюються на льоту. Перевіримо, чи спрацює це в Kubuntu. Підключаємо шнуром камеру і включаємо харчування. Дещо в системі змінилося. Команда lsmod показала, наявність двох необхідних нам модулів raw1394 і dv1394. З'явилися і два нових пристрої / dev / raw1394 і / dev / dv1394-0. Вийшло.

Для перевірки запускаємо редактор відео Kino і заходимо в Edit - Preferences і вибираємо IEEE1394. В AV / C Device набираємо / dev / dv1394-0 якщо хочемо працювати з цим модулем або / dev / raw1394. Якщо з визначенням першого проблем не було, то при спробі вибрати raw1394, було видано повідомлення про те, що неможливо відкрити файл пристрою, і перевірте наявність read / write permission у поточного користувача. Перевіряємо.

$ Ls -al / dev / raw1394 / dev / dv1394-0

crw-rw-- 1 root video 171, 32 2006-09-16 17:50 / dev / dv1394-0

crw-rw-- 1 root disk 171, 0 2006-09-16 17:50 / dev / raw1394

Як бачите, щоб працювати з цими пристроями, необхідно запускати Kino від імені root, на кшталт gksudo kino, що не їсти гут. Або користувач повинен належати до групи video для роботи з dv1394-0, і disk - raw1394. Дивимося, до яких груп належить поточний користувач.

$ groups

grinder adm dialout cdrom floppy audio dip video plugdev lpadmin scanner admin

Або як варіант.

$ Cat / etc / group | grep grinder

Група video в списку є, тому внесемо себе в групу disk. Як завжди зробити це можна кількома варіантами. Найпростіший відкрити файл / etc / groups і внести користувача grinder в рядок описує групу disk.

disk: x: 6: grinder

Якщо хочете використовувати графічні утиліти. Те вибираємо K - System Setting - Users & Group переходимо в вкладку Group, тут активуємо "Показувати системні групи" і переходимо в Administrator Mode натиснувши однойменну кнопку і ввівши свій пароль. Двічі клацаємо по групі disk, вибираємо назву використовуваної вами облікового запису та натискаємо "Додати". Усе. Тепер необхідно вийти з системи і зареєструватися знову. Тепер все нормально.

У більш ранніх дистрибутивах файли пристроїв, можливо, доведеться створювати вручну. У Linux кожен пристрій має ім'я, і ​​два номери основний major і додатковий minor. Наприклад, для всіх IEEE1394 основний номер має цифру 171, а додатковий визначається призначенням і характеристиками пристрою. Так для dv1394 він має значення від 32 до 47, для raw1394 відлік починає від 0.

Наприклад, для того щоб створити пристрій raw1394 виконайте таку команду.

# Mknod -m 666 / dev / raw1394 c 171 0

А для того щоб створити файл dv1394 призначеної для запису інформації з першого пристрою в PAL (ім'я може змінюватися).

# Mknod -m 666 / dev / dv1394 / 0 c 171 34

Більш детальна інформація дана на сайті проекту Linux IEEE1394.

Для того щоб ці файли створювалися автоматично при завантаженні системи, можна використовувати наступний нехитрий скрипт.

#! / Bin / sh

test -e / dev / raw1394 || mknod -m 666 / dev / raw1394 c 171 0

test -e / dev / dv1394-0 || mknod -m 666 / dev / dv1394-0 c 171 34

Зберігаємо його в /etc/init.d/firewire і робимо його виконуваним.

#chmod + x /etc/init.d/firewire

Тепер, щоб він виконувався автоматично, створюємо символічне посилання.

#ln -s /etc/init.d/firewire /etc/rcS.d/S50firewire

Для перевірки роботи IEEE1394 пристроїв, можна використовувати утиліту gscanbus (http://gscanbus.berlios.de/), яку можна завантажити і з пакетного репозитария Ubuntu.

$ Sudo apt-get install gscanbus

Після чого запускаємо, набравши команду gscanbus у вікні терміналу. У вікні будуть в дуже наочному вигляді показані всі знайдені пристрої, зі збереженням їх топології підключення. Клацання мишкою за допомогою одного з них покаже детальну інформацію.

Якщо вибраний пристрій відеокамера, то ви зможете керувати нею прямо з вікна gscanbus.

Ось в принципі і все, що хотілося сказати. У більшості сучасних дистрибутивів вам досить буде просто підключити відеокамеру до комп'ютера і запустити Kino, без необхідності не вникати в подробиці. Linux forever!

Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: