Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как поднять Fire Wire (1394) ? РЕШЕНО  (Прочитано 15081 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Eugene_sev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Как поднять Fire Wire (1394) ? РЕШЕНО
« : 04 Ноябрь 2008, 00:09:41 »
Приветсвую всех!
Возникла необходимость поднять 1394 сетевой интерфейс на Ubuntu 8.10 для соединения по нему с другим компьютером(общий интернет/LAN), а так же с цифровой видеокамерой. Советуйте плз :)
« Последнее редактирование: 24 Январь 2009, 19:01:38 от Eugene_sev »

Оффлайн Eugene_sev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #1 : 04 Ноябрь 2008, 19:02:43 »
up!

Оффлайн Eugene_sev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #2 : 05 Ноябрь 2008, 00:34:58 »
Вот насёрфил одну статейку по теме:
 
27 Апрель 2008 г.
FireWire+Ubuntu
Работа с FireWire в GNU/Linux

26.01.2008 от grinder
Сегодня цифровая видеокамера уже не является чем-то особенным и недоступным. Цены на такие устройства потребительского класса перестали кусаться, и все больше людей при покупке видеокамеры выбирая между аналоговым или цифровым вариантом, отдают предпочтение последнему варианту. Попробуем разобраться, как заставить работать такую камеру совместно с компьютером под управлением 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
[ 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
[ 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:
Как видите, установлен OHCI-совместимый адаптер, поэтому проблем в работе быть не должно. Смотрим, какие модули сейчас загружены.
$ lsmod
sbp2 24196 0
ohci1394 35124 0
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
Либо прописав их загрузку в /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!
Автор: Phaich на 14:05

Оффлайн Yura

  • Любитель
  • *
  • Сообщений: 99
  • От Ubuntu 5.04 до Ubuntu 14.04 LTS
    • Просмотр профиля
    • Я на ВКонтакте
Re: Как поднять Fire Wire (1394) ?
« Ответ #3 : 05 Ноябрь 2008, 17:56:46 »
Большое спасибо за отличную статью. У меня действительно юзер не был прописан в группу disk. Но почему-о в 7.04 проблем не было, да и в 8.04 не было проблем до последнего обновления. Видимо там в Убунте что-то недоглядели.
Кажется шило в заднице и есть мой жизненный стержень.

Оффлайн strudel

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #4 : 13 Ноябрь 2008, 18:52:48 »
статья чёткая только что все сделал как сдесь, последная крепость пала для моего полного перехода на  Ubuntu

Оффлайн Veter

  • Активист
  • *
  • Сообщений: 262
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #5 : 13 Ноябрь 2008, 19:02:42 »
предлагаю перенести в faq

Оффлайн machete

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #6 : 09 Январь 2009, 00:41:44 »

Господи! Благослови Ubuntu! :)

Воткнул обычную DV камеру Sony DCR-HC96 через экранированный провод в файрвайр ноута Acer Travel Mate 4150 под управлением Ubuntu 8.041.

На камере появилась надпись DV in i.LINK - мол снюхались.

Затем через "Установка и удаление приложений" поставил графическую прогу для редактирования и скачки видео - Kino.

Запустил ее с правами админа те: sudo kino (иначе не хотел коннектится к камере из-за замесов с правами доступа к файрвайру) и уже смог сливать видео и пользоватся практически всем функционалом.

Попробовал экспортировать видео в MPEG но вкладка оказалась неактивна - мол требуется библиотечка mjpegtools

Пошел в менеджер пакетов "System/Администрирование/Программа управления пакетами Synaptic" и скачал недостающую библиотеку mjpegtools. После чего, даже без перестартовки kino вкладка с экспортом активировалась и я стал счастливым обладателем файла с расширением .mpeg с моей мордой лица  :)

P.S. Признатся настраивался на многомесячное ковыряние с консолью, но потратив не более 5 мин на все остался приятно удивлен :)

Оффлайн MLozovskij

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #7 : 15 Январь 2009, 08:07:18 »
Огромное спасибо за такую статейку!

Вчера вечером подключал DV камеру, сразу ни чего не получилось.
Сделал как в статье - продвинулся в своей борьбе, теперь kino говорит, что нет устройств 1394, мол возможно нет поддержки в ядре 1394.
У меня ноутбук Compaq 6510b, стоит Ubuntu 8.10.
Вечером или на выходных попробую поковыряться в ядре, опыта нет по сборке, но думаю разберусь. :)

Очень странно, учитывая, что переносной винт работает через 1394 интерфейс.
И ещё "страннее" что работает только через короткий шнур 20 см, через 1,8 метровый не работает.
На большом брате все работает, но там windows.

Оффлайн Eugene_sev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #8 : 24 Январь 2009, 18:59:28 »
Из моего личного опыта : длинный неэкранированный кабель 1394 собирает кучу наводок на себя, как результат - частые дисконнекты.
У меня ноут и десктоп соединены в сеть постоянно при длине кабеля полтора метра. Стоит комуто включить свет в соседней комнате - сразу дисконект. И еще: бойтесь использовать интегрированные в материнку сетевые карты 1394 - часто выгорают чипы у меня вот недавно сгорел, обошлось простым выпаиванием горелой микросхемы (не давала запустить компьютер). Опять же ИМХО ибо все зависит от особенностей материнских плат а также от специфики чипов в ней.

Оффлайн proger77

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ?
« Ответ #9 : 15 Март 2009, 12:35:25 »
Вчера вечером подключал DV камеру, сразу ни чего не получилось.
Сделал как в статье - продвинулся в своей борьбе, теперь kino говорит, что нет устройств 1394, мол возможно нет поддержки в ядре 1394.
Вечером или на выходных попробую поковыряться в ядре, опыта нет по сборке, но думаю разберусь. :)
Ответь, получилось что-нить, у меня такая же ситуация.
У меня ноут Dell Inspiron 1525 стоит kubunta 8.10, подключаю камеру Sony DCR-HC28
« Последнее редактирование: 15 Март 2009, 19:36:54 от proger77 »

Lidlencom

  • Гость
Re: Как поднять Fire Wire (1394) ? РЕШЕНО
« Ответ #10 : 30 Апрель 2009, 23:44:39 »
 :D :D :D Спасибо огромное!

Оффлайн Borisowich

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ? РЕШЕНО
« Ответ #11 : 04 Август 2009, 17:21:15 »

И находим такие строчки, говорящие о том, что устройство найдено и драйвера загружены.
[ 31.049087] ieee1394: Initialized config rom entry `ip1394′
[ 31.111700] ohci1394: $Rev: 1313 $ Ben Collins
[ 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
[ 52.399263] ieee1394: sbp2: Driver forced to serialize I/O (serialize_io=1)
[ 52.399270] ieee1394: sbp2: Try serialize_io=0 for better performance

А что делать, если нет этих строк???

Оффлайн gralexey

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ? РЕШЕНО
« Ответ #12 : 01 Январь 2010, 16:50:42 »
ребят, а как подключить через firewire внешний плеер? для копирования файлов, устройство обнаруживается, но ничего дальше происходит, не монтирует

Оффлайн gralexey

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ? РЕШЕНО
« Ответ #13 : 04 Январь 2010, 00:18:42 »
ап

Оффлайн vetallkvn

  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
Re: Как поднять Fire Wire (1394) ? РЕШЕНО
« Ответ #14 : 23 Февраль 2010, 15:34:36 »
ieee1394: SelfIDs failed root check
[  752.284020] ieee1394: Error in SelfID stage, resetting
[  752.284221] ieee1394: SelfIDs failed root check
[  752.284224] ieee1394: Error in SelfID stage, resetting
[  752.297189] ieee1394: SelfIDs failed root check
[  752.297193] ieee1394: Error in SelfID stage, resetting
[  752.297390] ieee1394: SelfIDs failed root check
[  752.297393] ieee1394: Error in SelfID stage, resetting
[  752.297593] ohci1394: fw-host1: Error in reception of SelfID packets [0x80800000/0x007f4385] (count: 0)
[  752.297681] ohci1394: fw-host1: SelfID received, but NodeID invalid (probably new bus reset occurred): 0800FFC0


И как тут быть???

 

Страница сгенерирована за 0.06 секунд. Запросов: 23.