Modulačná tragédia: TBS6104 DVB-T Quad Modulator Card

hardwareové záležitosti, mašiny, prdičky a také srandičky, hw hacking, fyzické reversuvačky a inakšé
Post Reply
User avatar
šňupať kýbel Offline
Site Admin
Posts: 38
Joined: Fri Jun 21, 2024 7:53 pm
Description: keď je to posrate icte sa sťažuvať na lampareň

Žuja je zakon!

Modulačná tragédia: TBS6104 DVB-T Quad Modulator Card

Post by šňupať kýbel »

Modulačná tragédia
TBS6104 DVB-T Quad Modulator Card
Pojednávaný objekt
Pojednávaný objekt
tbs6104-dvbt_p.png (16.71 KiB) Viewed 3505 times
V lete roka 2023 som sa dostal k tomuto modulátoru aby som ho rozbehal s cílom moduluvať kanály ze SATu prenášané po IP do DVB-T. Strčil som PCIe kartu do mašiny, nainštaluval tragický dodávaný soft (o tom po tom), zapal, našteluval, zapojil do televízora a naladil, ísť to síce išlo ale nebolo tam EPG, sťel som to vytroubleshootuvať tak som zapojil USB tuner neh sa kuknem, či je tam namuxuvané EIT. No a vtedy som došól na problém.
Daný problém:
Tuner som používal klasiku RTL2832U (čil skór známejší jak SDR), nastavil som frekvenciu a dal skenuvať. No a né a né to naladiť, vyzeralo to takto:
Pokus o naladení USB tunerom
Pokus o naladení USB tunerom
Signál a kvalita občas naskakovali, ale tuner sa na signál nikdy nezalockuval. Na inom DVB-T zdroji (napríklad ze vzduchu) chodil tuner normálne.
No ništ, skusím set top box, obyčajný levný nezaujímavý, tam to vyzíralo takto:
Stav na set top boxe
Stav na set top boxe
Signál 100, kvalita ništ, setobox též inde funguval. Též som si všimol že zakedy Samsung televízor ide, ale nenaladí vždy, nekedy trebalo skusiť navácrazy

Čo čil? Z mójho pohladu som už nemal čo ináč spraviť, tak som napísal číňanom na podporu. Boli síce ze začátku ochotný pomócť, to nie že nie. Lenže niš nevyríšili. Poposílali mi voláke iné verzie binárky čo muxuvala a komunikuvala s modulátorom, kázali mi meniť gain, ale niš nepomáhalo. Nakonec to zvalili na to že príjmače čo mám su staré. (a že chipset v setoboxe je taiwanský...) Neveďác jak sa pohnúť, vysral som sa na to a nehal to tak. V takomto stave to bolo nespolahlivé a nepoužitelné.
Dané ríšení:
V roku 2025 som sa s tým rozhodol serkať znovu, póvodný účel využiťá sa síce už zavrhol, ale ležalo to tu a padal mi na to zrak.

Hneď jak prvé som zistil, že ovládače na to su open source. To som zezačátku voláko prehliadol, z dóvodu že daná karta tam nebola v zozname podporuvaných, v skutočnosti tam ale je. Celý čas som si myslel že jediný čo je je ten dodávaný binárny. Ovládače som teda sťáhol a vybuilduval, karta sa objavila v /dev, aspoň voláke pozitívum.

Zistení 2: Pri hladaní záležitostí som narazil na toto repo, je to síce od iného zariadenia, ale šimol som si tam header dvbmod.h, takýto istý sa nachádzal aj v ovládačoch k mojej karte! Že by mali jennaké API v systéme? V tomto repe sa nachádzal aj sendts.c, testuvací kód na tlačení transport streamu do modulátora.
Reku povedal som si, že to sprobujem, zmenil som cestu k /dev na /dev/tbsmod0/mod0, vykompiluval, pustil, a cez pipe tam natlačil testuvací MPTS celého muxu z TSDuck stream repa
Zapojil som televízor, naladil, a išlo to. Komplet ze šeckým, aj s EPG (čiže ten ich soft to tam nemuxuval).

Čiže máme open source driver (na výrobu kerého sa asi inšpiruvali hentým druhým) aj sample kód na posílaní streamu a nastavuvaní parametrov signálu, celkom pekné, aspoň to už neni uzavretý systém kerý nevíme jak funguje. No ale hlavný problém nezmizol, stále to nešlo inde naladiť.

Začal som si kukať priamo tbsmod.c kód, prekvapivo sa odťál dalo vyzistiť jaké komponenty tá karta používa a kopa fyzických parametrov modulácie sa nastavovala z driveru, neboli tam napevno vypálené, že by tam bola šanca?
VEĽMI PRIBLIŽNÝ náčrt HW konceptu
VEĽMI PRIBLIŽNÝ náčrt HW konceptu
Z driveru móžeme videť že karta sa skladá z týchto komponentov: Najvác parametrov ovládač nastavuje na AD9789 DACu, šecky SPI registre su aj pekne popísané v datasheete, lenže čo s tým keď já sa tomu nerozumím...

Dal som sa teda do kontaktu s číňanmi zas, špecificky som spomínal títo veci z ovládača, ale zas sme sa dostali nikam. Rozhodov som sa teda vácmenej naslepo tam meniť veci na vlastnú päsť.

Keďže som nevedel čo tak som do toho zapojev aj AL kerý vyhalucinuval plnú riť zmien keré nepomohli (nespravilo to buď ništ alebo to potom neišlo, našťastí som to neodpálil), ale medzi tým šeckým spomenul volačo aj s invertuvaním signálu. Potom jak som si len tak zas prechádzal datasheet som tam uvidel toto:
Screenshot 2025-02-10 at 17.40.16.png
Našov som v kóde de to je nastavené, bolo to 0, prehodil som na 1 a...a zázrak sa stal

Finále
Čo teda konkrétne treba spraviť aby sme to napravili? V súbore tbsmod.c na rádku 1821 zmeniť buff[0] = 0; na buff[0] = 1;
tak aby to bolo takto

Code: Select all

static void AD9789_Configration_dvbt(struct tbs_pcie_dev *dev)
{
	...
	buff[0] = 1;
	ad9789_wt_nBytes(dev, 1, AD9789_SPEC_SHAPING, buff);
	...
}
Objav som číňanom oznámil, do repa ho ešte nedali, uvidíme či vóbec daju
Adendum dodatek
Ten ich build systém na ovládače je tragický a builduje kopu vecí čo netreba aj sa lúbi zesrať, pokál potrebujete ovládače len na túto jennu kartu, pripravil som zjennodušený spósob
tbsmod.zip
(52.16 KiB) Downloaded 16 times
stačí rozbaliť, dať make a vybuilduje vám to tbsmod.ko, ten stačí nainsmoduvať, na vybuilduvaní by mali stačiť jadrové hlavice :vibuch: (kernel headers)
nainštaluvaní do systému nehávam jak domácu úlohu každému záujemcovi (bov som hnilý to tam dať :trol: )

Ak máte verziu jadra 6.4.0 a vačšú, tak treba urobiť v tbsmod.c takúto zmenu na rádku 3619:

Code: Select all

mod_cdev_class = class_create(THIS_MODULE, "tbsmod");
zmeniť na

Code: Select all

mod_cdev_class = class_create("tbsmod");
Ten oficiálny soft dostupný tu je taká tragédia, distribuované to je jak archív kerý treba vyextrahuvať nad rootfs volákeho starého centosu alebo ubuntu + su tam aj binárne ovládače takže jadro mosí sedeť (čo je síce čil jenno lebo aj tak ten ovládač treba prerábať), asi by som sa to ani nesnažil použiť, to už radšej voláky iný soft čo ví do udp tlačiť MPTS a pipeuvať to cez ten sendts.c kus kódu

Okrem hentoho je tá karta oficiálne podporuvaná aj v ich Kylone systéme, zas platí že driver treba prekompiluvať a vymeniť, to už je celkom pekný systém, i keď má svoje nedostatky, má to pekný interface a celkom to funguje
Ve finále chválim:
  • TBS že predávaju rozmrdany produkt oprav si sám
  • Linux že sa s tym treba drbať jak ždy
  • AL
Image
Image
Image
Post Reply