reklama

Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)

Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #120 kdy: 08. 05. 2019, 08:31:34 »
V mém případě "sehnat" znamená "do kterého skladu v práci šáhnout a na pár hodin půjčit nový hardware na základní test, pokud nenajdu něco v elektro-šrotu nebo odstaveného v interním IT, tak aby mě to stálo co nejmíň šroubování, papírování, vysvětlování a dalšího nepohodlí". Jasně že pokud bych to rovnou koupil, tak stačí nějaký momentálně mainstreamový plnotučný procesor (tuším SkyLake a výš) nebo ITX board s Apollo Lake ATOMem. Což je trochu mladý hardware na to, aby se nám válel ve šrotu :-)

reklama


Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #121 kdy: 08. 05. 2019, 09:57:37 »
Tak ctyrjadro Sandy/Ivy Bridge tam mas? To by to uz melo na FHD dat i softwarove

Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #122 kdy: 20. 09. 2019, 10:18:02 »
Omluva za exhumaci,
vypadá to, že "Evolveo Sigma T2" alias Mygica "T230C v2" (T230C2) bude mít konečně podporu ve vanilce 5.4 . A to v driveru dvbsky (nikoli cxusb).
Protlačil to jistý Jan Pieter van Woerkom - vyrobil patche a vytrvale inspiroval maintainery v linux-media at vger. Budu držet palce, aby se tam nerozbilo něco dalšího kolem - on ten hardware má své "špecifiká", tzn. doufám že některý dílčí patch nerozbije kompatibilitu s příbuznými modely. (Patch je součástí tohoto merge requestu. Související změny proběhly také v si2168.c/.h a cxusb.c)

Jinak koukám, že jsem tady posledně nenahlásil, že se mi podařilo rozchodit VDR s playbackem skrz vaapidevice - na kusu šrotu se Skylake CPU (Gemini Lake zatím nemám k dispozici). Optimálním skenerem kanálů pro VDR je jeho "wirbelscan" plugin, pokud dohledáte čerstvou verzi. Akorát jsem měl převážně rozsypané video z DVB-T programů (MPEG2 SD) - podle podrobností toho divného chování zřejmě nějaký problém s bufferingem / resetem bufferů při přepnutí kanálu. Odhadem spíš ve VAAPI kodeku pro MPEG2 nebo tam někde kolem, než v ovladačích okolo tuneru. Tuším jsem zahlédl nějaké patche (a revoky), které se kolem toho motaly... Taky jsem viděl střípek debaty o nějakém patchi právě okolo T230C2, kde šlo taky o nějaké resety bufferů naopak tuším v demodulátoru, kde výsledkem problému byly výpadky paketů (což by mohlo vysvětlovat divné chování ffplaye apod.) Obraz DVB-T2 (HEVC) se skrz VAAPI přehrával v pohodě. Stejně tak obraz DVB-T, kódovaný v H.264 SD. Přesněji: testovací full HD HEVC kanály na full HD displej jely jako víno, ale QHD materiál jakoby nepatrně "drhnul" - pohyb nebyl stoprocentně hladký. Nevím zda to přisuzovat nekvalitnímu streamu (zrovna běžela samá americká produkce, patrně konvertovaná z NTSC) nebo nedotaženému scalingu QHD matroše na full-HD výstup po HW dekódování HECV skrz VAAPI. Jako že HW dekodér HEVC je fajn, ale upscaler odfláknutý nebo softwarový nebo asynchronní nebo co. Taky jsem viděl v éteru jeden nebo dva full-HD programy z T2, kde se živý moderátor hejbal normálně, ale občas střihli třeba reklamu, která byla natočená zjevně ve full HD, ale nevhodnou snímkovou frekvencí, takže se po pár snímcích na zlomek sekundy "pauzovala"... uff! Jo a taky mám pocit, že když mi playback MPEG2 SD náhodou chodil (po prvním přepnutí z ne-MPEG2 programu na MPEG2) tak nefungoval řádně deinterlacing.
Prostě jsem viděl docela dost všelijakých podivností, a zatím mi není jasné, jestli "jsem to jenom moc pozoroval", a některé "vady ve vysílaném materiálu" bych zřejmě našel i v obrazu z běžného externího settop boxu, vs. co z toho mám přičítat jednoznačně své "testovací stolici" na bázi PC + Linux + VAAPI.

Jo a z nějakého důvodu mi nechodil audio výstup z VAAPI do HDMI audia (skrz softwarový ffplay bez problému).
Prostě si to doufám ještě trochu sedne. Někdy později na podzim mám v plánu to znovu otestovat = poaktualizovat všechny softwarové součástky.

Předběžně to vidím tak, že otestuju software na náhradním HW (do obýváku nepasuje), a ve chvíli, kdy to začne být trochu chodivé, a u nás střihem vypnou DVB-T a zapnou T2 na finálních frekvencích, tak stejně nebude k dispozici vhodný hardware pro "all in one HTPC", protože okamžitá dostupnost těch několika reálně vyráběných boardů od AsRocku s Gemini Lake ATOMem právě prošla nulou směrem k jihu :-( Možná jsem s nákupem zaváhal, možná ne... To ukáže až historie. Ohledně Intelových problémů s výrobní kapacitou to vidím tak, že za rok v létě by mohlo být jasněji - do té doby by mohly najet asi 3 nové nebo oprášené faby buď na 14 nm nebo spíš 10 nm, prostě by to mohlo celé trochu vybřednout...

Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #123 kdy: 20. 09. 2019, 12:03:42 »
Moc bych se divil jestli tady po tvých popisovaných problémech ještě zůstal nějaký člověk co by uvažoval o koupi Evolveo Sigma T2" alias Mygica "T230C v2" (T230C2) :) Potřeboval jsem koupit něco na LibreElec, takže problémy, které popisuješ na Debianu bych asi neměl, ale stejně jsi mě už na předchozí stránce dokonale odradil, takže jsem raději koupil DVBSky T330. :)

Zeptám se jako laik, který nikdy žádný fw nekompiloval. Proč nejde zkopírovat soubory *.fw pro T230C2 z LibreElecu https://github.com/LibreELEC/dvb-firmware/tree/master/firmware do Debianu? Výrobce DVBSky také radí jen zkopírovat fw z jeho stránek do adresáře Firmware a mělo by to šlapat, ale Debian nepoužívám, takže nevím.

Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #124 kdy: 20. 09. 2019, 13:04:36 »
Moc bych se divil jestli tady po tvých popisovaných problémech ještě zůstal nějaký člověk co by uvažoval o koupi Evolveo Sigma T2" alias Mygica "T230C v2" (T230C2) :) Potřeboval jsem koupit něco na LibreElec, takže problémy, které popisuješ na Debianu bych asi neměl, ale stejně jsi mě už na předchozí stránce dokonale odradil, takže jsem raději koupil DVBSky T330. :)

Že to někoho odradí, to mě vůbec neuráží - možná naopak, varování je taky užitečná informace. Jsem spíš technická podpora než apoštol. Prostě jenom podrobně popisuju, kam jsem se zatoulal a co jsem tam potkal. Pravda je, že se to snažím prošťouchnout v obecném Linuxu na x86, nesahám po hotovkách typu LibreELEC = moje blbost. VDR je zřejmě dost "známka punku", většina lidí zřejmě potká dřív Kodi a MythTV. Ty jsem zjara taky zkoušel (v Debianu) a byl to na můj vkus dost bloatware, navíc zaměřený trochu jinam, než o co se snažím. Zatím je to v té rovině, že DVB-T2 je novinka na několika vrstvách, je potřeba sehnat co nejnovější verze relevantního softwaru, tzn. nezřídka kompilovat ze zdrojáků... (ušetřil jsem obecenstvo např. zábavných nuancí kompilace FFMPEGu, VAAPI a VDR ze zdrojáků - nemluvě o Kodi a MythTV).

Mimochodem většina těch mnou popsaných "problémů" souvisí spíš s VAAPI a obecně softwarem v oblasti přehrávání videa v Linuxu, než konkrétně s tunerem a jeho ovladači. Naopak bych řekl, že Tuner je ten malý dílek skládačky, který se už nějakou dobu dá uchodit poměrně v pohodě a má stabilní API pro user space. Potažmo jestli se jedná o T230C2 nebo T330, odhadem nebude hrát až takovou roli...

Zeptám se jako laik, který nikdy žádný fw nekompiloval. Proč nejde zkopírovat soubory *.fw pro T230C2 z LibreElecu https://github.com/LibreELEC/dvb-firmware/tree/master/firmware do Debianu? Výrobce DVBSky také radí jen zkopírovat fw z jeho stránek do adresáře Firmware a mělo by to šlapat, ale Debian nepoužívám, takže nevím.
Tady jsem se trochu ztratil :-) Proč se ptáte na firmware. Zrovna s firmwarem jsem neměl žádný problém, rozhodně nevím o tom, že bych ho kompiloval ze zdrojáků. Naopak, FW bloby se obvykle odněkud stáhnou nastojato. Zcela vyjímečně zahlédnu kus firmwaru někde ve formě zdrojáku.

Co je přibaleno v LibreElec nevím, pro T230C2 jsem použil dvouřádkový postup pro download firmwaru, který loni sepsal no_body (samotné OSMC repo s FW) a tady na rootu zveřejnil odkaz. (BTW od jeho patche se JP odpíchnul, resp. dohledal ještě zpátky nějaké předchozí zdroje informací).

reklama


Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #125 kdy: 20. 09. 2019, 14:15:54 »
Aha, tak to jsem si popletl. Nešlo o kompilaci firmware, ale o kompilaci kernelu od no_bodyho  + tvoje úpravy do vanilky 5.0.8

Moc mě to teda není jasné jak to funguje. Když přijde na trh nový HW (nemusí to být jen DVB-T2), tak nestačí když výrobce dodá fw soubory, ale ten daný produkt musí být navíc i v kernelu?

Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #126 kdy: 20. 09. 2019, 17:42:55 »
Aha, tak to jsem si popletl. Nešlo o kompilaci firmware, ale o kompilaci kernelu od no_bodyho  + tvoje úpravy do vanilky 5.0.8

To se odkazujete na historické verze, se kterými jsme my dva začínali.
Verze patche, co jde momentálně do Vanilky, je učesanější, bylo zohledněno několik námitek/hledisek maintainerů,
jak to přesně navlíknout, aby se změny pro T230C2 uplatnily skutečně jenom pro T230C2 - prostě to co sám no_body zmínil jako "todo".
Plus tam byl jeden-dva další drobné cleanupy dalších řešených quirků. Kromě toho quirku s resetem bufferů jsem snad zaslechl, že díky transplantaci patche do dvbsky.c namísto cxusb.c bude líp chodit podpora pro IR dálkáč.

Obecně to vypadá, že ovladač dvbsky.c je o kus dál v pečlivé strukturalizaci kódu (směrem k plug-n-play a code reuse pro různé příbuzné modely HW). On totiž ten USB dongle obsahuje hned několik čipů, které je zvenčí vidět. Konkrétně demodulátor s USB rozhraním, a skrz něj ještě skrz I2C ovladatelný tuner. (Už si nepamatuju, jestli třeba ještě nějaký třetí šváb v RF front-endu.) Různé konstrukce tunerů se liší kombinací těchto dvou-tří švábů, jejich zadrátováním a konfigurací, ale ti švábi se dost často opakují. Takže podle toho vypadá i struktura kódu ovladačů. Maintaineři se maximálně snaží, aby se neduplikoval zdrojový kód, a co se jednou napíše pro nějaký dongle a funguje to, tak aby se s tím svezl i další hardware, který už existuje nebo se v budoucnu objeví.

Zrovna u různých modelů/revizí Mygica se tuším řešilo, že někde je potřeba z tuneru do demodulátoru posílat payload s explicitními hodinami nebo bez, a jakou hodinovou frekvenci použít apod. Nebo že v jednom modelu je tuner vidět skrz I2C z demodulátoru na I2C řadiči A a na příbuzném na řadiči B... A že "T230C rev.2" vlastně nebyla formálně oznámena, ale vypadá to, že se prostě takový hardware objevil na trhu, a vyznačuje se určitým designovým bugem/odchylkou snad na plošáku, oproti klasické T230C, takže je potřeba (a lze to) ten bug obejít, ovšem vyžaduje to drobnou odchylku v chování ovladače, což výrobce po pár tisících prodaných kusů následně zohlednil změnou USB PID... prostě žůžo. Toto vše maintaineři zjišťují převážně pokus/omyl, reverzním inženýrstvím. A takovéhle modulární techtle se odehrávají v tom jednom pitomém donglíku, na plošáku velkém jak nehet...

Moc mě to teda není jasné jak to funguje. Když přijde na trh nový HW (nemusí to být jen DVB-T2), tak nestačí když výrobce dodá fw soubory, ale ten daný produkt musí být navíc i v kernelu?

Je dobrým zvykem, že na rozhraní USB (nebo třeba PCI) je konkrétní model hardwaru jednoznačně určen nějakými přidělenými identifikačními kódy: na USB Vendor ID a Product ID. Když postupně koupíte na různých místech v různém čase dvě hračičky, které mají stejné tyto kódy, měly by ty dvě hračičky fungovat se shodným softwarovým ovladačem na hostitelském počítači. K tomu jsou ty device-ID kódy dobré. (Nebudu radši mást výjimkami a příhodami z natáčení.)

Dnešní kus periferního HW, který z hostitelského stroje vidíte jako pár "USB endpointů" a IDček, obsahuje několik čipů (viz výše). Dost často tyhle čipy obsahují MCU jádra - nějaké prťavé ARMy, 80C51 apod. Aby ten USB dongle nemusel obsahovat ještě taky hejno EEPROMek/flashek, a taky kvůli pružnosti updatů, je nutné/vhodné, uploadnout do těch pidi MCU jader firmware při startu počítače/zařízení/ovladače. Tenhle firmware je k dispozici pouze v binární podobě, a často nikoli přímo od výrobce periferní hračky, ale ještě navíc ho autoři/maintaineři linuxových driverů museli v potu tváře vypárat z windowsího binárního ovladače... Zdrojáky k tomu firmwaru nejsou a navíc je to pro velmi různé CPU/MCU architektury, takže i kdyby zdrojáky byly, je nepravděpodobné, že by bylo zvladatelné, vláčet zdrojáky firmwaru jako součást vanilkového linuxového kernelu a cross-kompilovat je současně s vlastním kódem kernelu. Takže nakonec všichni přimhouřili oko (Linus i skladatelé distribucí) a mají většinu binárních firmwarů dostupných poměrně oficiálně v balíčkovacím systému. Firmwary žijí hezky na hromádce v /lib/firmware , víme o nich, nejde bez nich fungovat, takže se kromě skalních "free software" aktivistů nikdo moc nevzteká.

No a pak je strana toho hostitelského počítače. Kolem hardwaru je obalený kernel, ten je v dnešní době modulární, ovladače pro hardware mívají podobu kernelových modulů. A od kernelu máme zdrojáky, včetně zdrojáků ovladačů pro hardware. Zdrojáky ovladačů pro všelijaký hardware jsou součástí balíku zdrojáků vanilkového linuxového kernelu, který roste na www.kernel.org. Kernel je to co běží na Vašem procesoru (nějaké Core i3 apod.) - ovladače jsou modulární kusy tohoto kernelu.

Nad kernelem se vznáší jakýsi user space, počínaje libc, dál už to znáte.


Když se vrátím k Vašemu dotazu:
Pokud výrobce USB cetek uvede na trh novou cetku, má dvě možnosti:

A) nová cetka je natolik podobná předchozí generaci cetek, z hlediska ovládání skrz USB rozhraní (nebo PCI apod.), že může mít původní USB IDčka, a fungovat s původním ovladačem. Prostě zpětná kompatibilita hardwarového rozhraní vůči ovladači.

B) nová cetka je funkčně natolik odlišná, že by se starým ovladačem nefungovala. Proto dostane přiděleno nové USB ID a musí být vydána nová verze ovladače, která s touto novou revizí hardwaru bude fungovat.
Ovladač obsahuje tabulku USB IDček ve standardizovaném formátu, při natažení kernelového modulu si ji kernel standardním způsobem přečte, a pokud se následně na stromě USB sběrnice objeví takové zařízení (USB IDčka jsou shodná), kernel přes nějaké callbacky z této tabulky "ovladač nastartuje" pro danou instanci HW zařízení.

Verze firmwaru uvnitř v inteligentních cetkách se střídají jak ponožky - ale pokud se nemění HW rozhraní vůči hostitelskému ovladači, může zůstat původní hostitelský ovladač. Viz třeba RAIDové řadiče slušných značek.
V našem případě USB tuneru je ale ten firmware zřejmě dlouhá léta neměnný.

Pokud se nepletu, ty firmwarové bloby, které je potřeba kvůli DVB-T2 donglu odněkud stáhnout do /lib/firmware, ty se netýkají snad ani demodulátoru (USB slave bridge) ale konkrétně tuneru = té maličké "analogové" blechy, co je dostupná skrz I2C. (Ona vlastně asi analogová moc nebude, ale to je opět na delší povídání.) Čili pak tentýž blob může být potřeba pro různé DVB-T2 dongly, klidně s různými USB ID's?

Pozn.: s ohledem na toto názvosloví mi připadá poměrně dementní, označovat jako firmware to, čemu se dřív několik desítek let říkalo BIOS. Běží to na hostitelském CPU, tak to u mě není firmware - ať si marketingová oddělení Intelu, AMD, Applu a Microsoftu standardizují co chtějí :-) Košer firmware je kdyžtak ten malý blob, uložený v BIOSové flashce, který se při startu počítače pokradmu uploadne do AMT BMC parazita.

Kompatibilita HW rozhraní je dost pestré pole pro všelijakou tvorbu. Zařízení od různých výrobců s natolik shodným a standardizovaným rozhraním, přitom třeba relativně pružným, že na ně funguje generický ovladač. Vemte si SATA nebo IDE disky, nebo třeba vnitřní rozhraní "legacy IDE" nebo moderního AHCI na hostitelské sběrnici (PCI, PCI-e). Nebo třeba USB mass storage. Taky má univerzální class-based ovladač, přestože USB VID a PID se patrně model od modelu liší...

a DOST :-)

Re:Doporučte DVB-T2 USB tuner s podporou Linuxu (Debian)
« Odpověď #127 kdy: 20. 09. 2019, 23:10:33 »
Zřejmě jsem si myslel, že v kernelu je nějaký univerzální ovladač (nějaké nadefinované API) a firmware je nadstavba tohoto ovladače, který definuje HW vlastnosti a zajišťuje komunikaci mezi USB donglem a kernelem, ale tak jak to popisuješ se firmware jen natáhne do USB donglu a slouží pouze pro vnitřní potřebu donglu. Dík za vysvětlení.

Jestli teda většinu ovladačů HW na linuxu nedodává výrobce, ale musí to dělat programátoři ručně, tak to klobouk dolů. Asi si sebou pořád nesu zkušenost z windowsů, kde jsem byl zvyklý, že výrobce zařízení dodal i ovladače. "Nvidia F_ck you" znám, ale vypadá to, že stejná drbárna je i s tou spoustou USB dongů, klávesnic, myší co stojí pár korun. Teď si uvědomuji, že jsem měl problémy s 6-ti tlačítkovou myší Logitech - taky ty ovladače nebyly dotažené.

 

reklama