Fórum Root.cz
Hlavní témata => Hardware => Téma založeno: Robo99 16. 01. 2014, 16:06:35
-
Zdravím,
potreboval by som menšiu pomoc. Pred pár dňami som si zohnal dve sériové karty. Ide o veľmi, ale veľmi staré karty do PCI slotu. Boca Turbo 650. Sú z roku 1998. Primárne som ich kupoval s tým, že pôjdu na Linuxový stroj a nebude žiaden problém. Realita je iná a momentálne nemám absolútne tušenie, ako tieto karty uviesť do činnosti, s inými kartami som problém nikdy nemal.
Po zadaní príkazu lspci -v nájdem info o karte, názov chipu, ktorý je na samotnej karte, priradené prerušenie IRQ11. Takže karta je určite funkčná.
07:05.0 Communication controller: Tiger Jet Network Inc. Tiger100APC ISDN chipset
Subsystem: Device 00c0:0003
Flags: medium devsel, IRQ 11
I/O ports at a000 [size=256]
Memory at fd101000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 1
Výpis #dmesg | grep ttyS*
[ 0.000000] console [tty0] enabled
[ 1.814402] 00:09: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
To ttyS2 s tou kartou nemá samozrejme nič spoločné. Takže po mojej karte/kartách ani stopa.
Výpis #cat /proc/tty/driver/serial:
serinfo:1.0 driver revision:
0: uart:unknown port:000003F8 irq:4
1: uart:unknown port:000002F8 irq:3
2: uart:16550A port:000003E8 irq:4 tx:0 rx:0
3: uart:unknown port:000002E8 irq:3
4: uart:unknown port:00000000 irq:0 (tento riadok sa opakuje az do cisla 31:)
Po intenzÍvnom googleni som narazil na túto stránku:
http://cateee.net/lkddb/web-lkddb/MISDN.html
Na konci prvého zoznamu je spomenutý moj chip na tej karte "Tiger 100APC" Podľa toho usudzujem, že tá vec musí mať nejakú podoru alebo niečo. Pravdepodobne je ale nad moje schoptnosti to dať nejak celé do kopy. Ak by mal niekto nejaké nápady ako to spojazdniť, bol by som vďačný. Ďakujem :).
-
Nooo, pokud se budeš snažit rvát několik sériových portů na jedno IRQ, tak to asi nebude fungoval nikdy.
-
No to je jasné, ale možno som to nenapísal práve najštastnejšie v prvom poste. Ide o dve fyzické karty a každá z nich má na sebe dva porty. Ak vrazím do PC len jednu kartu, ako nastaviť to, aby každý z tých dvoch portov dostal iné IRQ? Lebo mi to akosi vôbec nie je jasné momentálne.
-
"veľmi, ale veľmi staré karty" se sériovými porty na sobě obvykle mají velmi, ale velmi staré jumpery sloužící k nastavení toho IRQ. :D
P.S: Pokud nejsou popsané jednotlivé polohy, tak hodně štěstí při Googlení. ;D
-
Ďakujem za info. Toto ma nenapadlo. Našiel som na nej 3 piny označené ako J3, čo bude ten jumper samozrejme. Dokumentácia... veškerá žádna.... tak som skúšal kombinatoriku, ale bez úspechu, stále to isté. Našiel som nejaký text o tom UARTe čo je na tej karte a v Linuxe by mal mať ofiko podporu, takže mi ostáva len skúšať a hľadať. Ak by niekoho osvietilo, budem rád, ak napíše nejaký nápad :D. Dik.
-
No, ještě pamatuju karty, kde se nabootovala jakási utilita v DOSu z diskety a IRQ se přepínalo tam... Tady taky nezbývá než popřát hodně štěstí při hledání. ;D Je tohle (http://ps-2.kev009.com/bocaresearch/pdf/specs/domestic/IOPPAR.pdf) ono? Y2K compatible, wow! ;D
Jinak, s tou kompatibilitou, no nevím... našel jsem akorát jednoho evidentně neúspěšného zoufalce...
http://www.linuxmisc.com/5-linux-hardware/b14f2df4574671b1.htm
http://www.groupsrv.com/linux/about17901.html
-
JJ, to je presne ono! Ten plagát je jediný dokument, ktorý som našiel o tom. Dik za pomoc ;)
-
Tvrzeni, ze vice ruznych zarizeni na stejnem IRQ nefunguje bylo pravda v dobach DOSu a mozna VXD-based driveru pro Windows (tj. 3.x az ME), na PCI-based systemu je spise pravidlem, ze naprosto odlisna zarizeni sdili stejne IRQ a drivery se s tim musi nejak vyrovnat (s vyjimkou opravdu blbe navrzeneho HW to neni problem, u tech klasickych PC UARTu to HW problem neni). Na PCI karte pomerne logicky zadne jumpery na nastaveni IRQ nebudou (protoze se takove veci softwarove a dela to BIOS/OS celkem transparentne sam) a ani byt nemuzou (na PCI sbernici koncept PC-style ocislovanych IRQ vubec neni, namisto toho jsou tam 4 draty pojmenovane INTA az INTD, ktere se pak na motherboardu nejak mapuji na nejaka preruseni, obvykle vcetne toho ze jsou vselijak spojene paralerne k sobe, jak se da zjistit treba z ACPI).
Tak bych odhadl, ze v tomto pripade je problem v tom, ze pro to driver proste neexistuje (podle toho, ze to ma jakysi MMIO region tak bych usuzoval, ze to spousta 16550 na jedne karte opravdu neni), ten MISDN je sice pro neco co se podobne jmenuje, ale mam podezreni, ze je neco vyznamne jineho.
-
Je to PCI karta, tam bude jen jedno IRQ! A linuxu to v ničem nevadí, aby víc sériových portů sdílelo jedno IRQ (pokud v kompilaci kernelu bylo povoleno sdílené IRQ pro sériové porty).
Podle popisu to vypadá, že karta má na sobě 2 ks normálních 16c650 sériových brouků. Pokud je jednoduché konstrukce a přímo je přemapovává na I/O porty na PCI, tak by měla jít ručně nastavit pomocí setserial. Pokud je mapuje do pamětového regionu, tak potřebuje speciální driver. Je vidět z lspci, že tam je I/O blok od adresy 0xa000, takže bych si zkusil pohrát nějak jako:
setserial /dev/ttyS2 port 0xa000 uart 16550A irq 11 baud_base 115200
setserial /dev/ttyS3 port 0xa008 uart 16550A irq 11 baud_base 115200
Případně adresy dál v kroku 8. Má mít rychleší hodiny, tka je pak případně vhodné to poladit s baud_base 460800. Ale to bych řešil, až když se karta chytne.
-
Ďakujem za info.
Vyzerá, že tie dva príkazy kusok pomohli.
Výstup z /proc/tty/driver/serial
0: uart:16550A port:000003F8 irq:4 tx:48 rx:236 CTS (integrovaný serial na matičnej na ktorý je prave pripojený nejaký catalyst switch)
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0
2: uart:16550A port:0000B000 irq:10 tx:0 rx:0 RTS|DTR (/dev/ttyS2 kde je pripojený dalsí catalyst switch)
3: uart:16550A port:0000B008 irq:10 tx:0 rx:0
V debiane to mám už na IRQ 10 a 0xb000, preto je to inak ako si mi písal príkazy.
RTS a DTR mi tam síce svieti, chýba CTS, takže prenos dát žiadny. Vo výpise dmesg sa ani ttyS2 ani ttyS3 nenachádzaujú.
Btw prečo práve 16550A, keď aj podľa výrobcu ide o 16c650?
-
Janě, musíš použít blok adres a IRQ dle toho, co ti hlásí aktuálně lspci.
Pokud máš novější kernel a setserial, tak tam bude i podpora pro 16650 chipset.
Možná to zkusit i v režimu:
setserial /dev/ttyS2 port 0xb000 irq 10 autodetect
To by mělo zkusit poznat, co je tam za brouk. Pokud ti ho nahlásí správně, tak ses trefil.
Ještě je bod, zda je inicializováno na dané PCI kartě, aby byl ten I/O region živý. Viz:
http://tldp.org/HOWTO/Modem-HOWTO-6.html#pci_enabled
dmesg už nic neukáže, tne vypíše jen co to našlo při bootu kernelu. Také by blyo vhodné zkusit ten port otevřít (třeba minicomem), aby opravdu proběhl pokus o komunikaci, pak uvidíš, zda to ne/ožije.
-
RTS a DTS to vypíše iba v tedy, ak sa na to snažím napojiť Minicomom. I/O+ je nastavené.
Pravdepodobne ste mysleli príkaz autoconfig, autodetect nepoznal. Nepomohlo to, nenašiel vôbec nič. Skúšal som aj auto_irq, ani to nepriradil. Celé je to akosi divné.