Firewire + ieee1394 + kino a podobně ...

Nové jádra neobsahují podporu ieee1394. Takže pokud chci zachytit video do aplikace jako je kino nebo kdenlive, mám (podle mne) tři možnosti:

  • přeložit kernel se zapnutou podporou ieee1394

  • aktualizovat systém z repa ezplanet-updates (nainstaluje modifikaci kernelu s podporou ieee1394, kterou dělá nějaký “dobrovolník”)

  • nainstalovat do systému z repa atrpms moduly ieee1396 a ieee1394-kmdl (a dát do blacklistu firewire_core a firewire_ohci)

  • a samozřejmě doinstalovat nějakou verzi knihovny libraw1394, která “to umí postaru” (třeba zase z ezplanet-updates)

Zkusil jsem všechny a zatím jsem dal pro “ostrý běh” přednost třetí možnosti. Tak nějak se mně ale nezdá a nelíbí, že by tlupa vývojářů řekla “konec ieee1394 a odteď už jen firewire_core” ještě dříve než jsou aplikace, které by na to nové rozhraní byly portované. Jak s tím kdo tedy zápasíte?

Ooops … zřejmě z naprostého vyčerpání z řešení popsaného problému jsem tohle téma “prdnul” do nesprávného fóra … omlouvám se adminům …

pravě ted to řeším. Zatím bez výsledně.aktualizovat systém z více repozitářú se mě moc nechce.

Nemusí jít o ucelenou aktualizaci systému z více repozitářů. Proto je dobré alternativní repa nechat disabled (enabled=0). Stačí do některého jen sáhnout pro něco docela užitečného. Tento postup mně připadá tak nějak nejšetrnější:

!!! ověřeno na kernelech 2.6.22.1-41.fc7, 2.6.22.4-65.fc7 na architektuře i686

  • nainstalovat repozitáře atrpms a ezplanet-updates:

$ sudo gedit /etc/yum.repos.d/atrpms.repo

  • a vepsat:
    [atrpms]
    name=Fedora Core $releasever - $basearch - ATrpms
    baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable
    gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
    gpgcheck=1
    enabled=0

$ sudo gedit /etc/yum.repos.d/ezplanet-updates.repo

  • a vepsat:
    [ezplanet-updates]
    name=Fedora EzPlanet Updates $releasever - $basearch
    baseurl=http://ftp.ezplanetone.com/pub/updates/fedora/$releasever/$basearch/
    enabled=0
    gpgcheck=0

  • nainstalovat (zaktualizovat) potřebné balíčky (zaveditelné moduly pro vytvoření zařízení raw1394 a knihovny, které s nimi umí pracovat):

$ sudo yum -y install --enablerepo=atrpms ieee1394 ieee1394-kmdl-$(uname -r)
$ sudo yum -y install --enablerepo=ezplanet-updates libraw1394* libavc1394*

  • zakázat původní drivery:

$ sudo gedit /etc/modprobe.conf

  • a dopsat na konec:
    blacklist firewire_ohci
    blacklist firewire_core

  • teď raději ještě pustit zaktualizování závislostí mezi drivery (nemyslím si že je to nezbytně nutné, ale neuškodí to) a reboot:

$ sudo /sbin/depmod -a
$ reboot


Po případné další aktualizaci distribučního kernelu se vám zřejmě smažou balíčky ieee1394. Znovu je vrátíte takto:

$ sudo yum -y install --enablerepo=atrpms ieee1394 ieee1394-kmdl-$(uname -r)

  • a pak raději zase:

$ sudo /sbin/depmod -a
$ reboot


Pokud by bylo zapotřebí vrátit vše do původního stavu, lze postupovat následovně:

  • odstranit balíčky ‘odjinud’:

$ sudo yum -y remove ieee1394*
$ sudo rpm -e --nodeps libraw1394 libavc1394
$ sudo rpm -e --nodeps libraw1394-devel libavc1394-devel

  • doinstalovat původní knihovny:

$ sudo yum -y install libraw1394* libavc1394*

  • vrátit modprobe.conf do původní podoby:

$ sudo gedit /etc/modprobe.conf

  • a smazat tyto řádky:
    blacklist firewire_ohci
    blacklist firewire_core

  • teď už jen zase raději depmod a restart:

$ sudo /sbin/depmod -a
$ reboot

Ma tento problem uz nejaky zaznam v bugzille?

Viděl jsem jen, že ubunťáci to řeší třeba zde: https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.15/+bug/10193.
Mně to ale spíše přijde o nějaké komunikační nesynchronitě mezi tvůrci kernelu, tvůrci modulů pro rozhraní ieee1394 a tvůrci sw jako je třeba kino. Podle mne by bylo nejlepší, kdyby se kernely zase překládaly se zapnutou volbou ieee1394 a kdyby se tvůrci ieee1394 s tím jejich firewire_core dočasně poslali do temných končin.

Pokud to ovsem v F7 v kernelech 2.6.21 fungovalo a v aktualizovanych 2.6.22 nefunguje je to chyba, ktere si spravci jadra ve fedore zrejme nevsimli. Podle me nejde uprostred zivotnosti distribuce zmenit typ ovladace nejakeho zarizeni a stary nepodporovat. Doporucuji to nahlasit - pokud mi poskytnete dostatek udaju nahlasim to i sam.

Rekl bych se ten kdo hlasil tuto chybu:
https://bugzilla.redhat.com/show_bug.cgi?id=250696
ma stejny problem.

Chjo. Nějaký člověk si tam stěžuje, že na jednom PC mu to běží, na druhém ne, popisuje jaký je to hw, jaká chipová vybavenost a t.d. A přitom se tam jen na okraj někdo jiný zmiňuje, že by to možná mohlo být tím, že ta funkční sestava má kernel 2.6.21 a tam kde to nefunguje je kernel 2.6.22 (s problematickým firewire_core).

Buďte tedy pls tak hodný a založte tam hlášení o problému shrnující tohle:

  • pro komunikaci se zařízeními typu dv kamery se používá sw jako kino, kdenlive, dvgrab a pod.; tyhle softwary obvykle potřebují komunikovat přes zařízení /dev/raw1394
  • kernel 2.6.22 je ale překládán nově s podporou ovladače firewire_core, ale tento ovladač nedokáže vytvořit funkční zařízení /dev/raw1394 (na stránkách projektu kino je napsáno, že to nějak snad i jde obejít nějakým druhem překladu knihoven libraw1394, ale že se stejně pak grabování z kamery divně škube)
  • pokud se kernel přeloží s podporou ieee1394 namísto podpory firewire_core, zařízení /dev/raw1394 se (po připojení třeba dv kamery) objeví, ale zase není funkční, protože k němu nepasují knihovny libraw1394 a libavc1394
  • úplným řešením je jen překlad kernelu s původní podporou ieee1394 (nebo instalace zaveditelných modulů pro ieee1394) a následný překlad potřebných knihoven (nebo jejich stažení - viz příspěvky výše)

Zdravím. Děkuji za tento popis. Dostal jsem se do situace, kdy jsem rychle potřeboval zprovoznit kameru. U FC6 vše fungovalo ale u F7 jsem se nemohl hnout z místa. Nakonec jsem postupoval podle Vašeho popisu, ale nakonec jsem obdržel při spouštění aplikace kino toto:

kino: symbol lookup error: /usr/lib64/libavcodec.so.51: undefined symbol: faacDecDecode

Používám F7 / 64
Děkuji za každou radu.

Tak jsem to vyřešil. Omlouvám se za zbytečný dotaz. Byla to chyba v závislostech. V systému zůstal po upgradu baláčekFC6 (konkrétně faad2-2.0-19.20050131.lvn6FC6 :-()