kupi externi modem koji je 101% hardwerskispree82 je napisao(la):zasto se svaki put kompjuter ukoci pri inicijalizovanju i biranju broja modema .......Lucent winmodem je u pitanju, win98/xp, epox, via kt133 maticna, 128ram, 1GHz Tbird, KAKO DA SE RESIM TOGA?
unapred hvala
Pod linuxom ne secka? Onda su definitivno sugavo uradjeni drajveri FX. A moguce je i da je MS kriv jer se drajveri za comm/modem naslanjaju dosta na vec postojece MS-ove FXDusaN je napisao(la):Instaliraj Linux![]()
gojkos je napisao(la):... taj cip sigurno rasterecuje CPU, a sto nije idealan verovatno i za to postoji realan razlog (da se ustedi koji $).
Nisam mislio da blokada nastupa zbog zagusenja PCI magistrale, nego ako je drajveru potrebno da odredjeni period PRATI nekakav port. Kad drajver dobije kontrolu onda on ima masinu za sebe. On bi onda trebao da sto brze odradi sta ima i da vrati kontrolu windowsu. Medjutim, posto nije sigurno kad ce sledeci put dobiti svojih 5 minuta (tj milisec), drajver moze da odluci da ne vraca uopste kontrolu windows-u dok ne zavrsi svoj posao. I zato sve stane.
silverglider je napisao(la):Rasterecenje ovde nije u pitanju, razlog sam vec pomenuo - softver. Dosta softvera (bilo kompletnih programa, bilo komunkacionih biblioteka) pokusava da ocita UART kao hardver - tu nije bilo druge, nego je moralo hardverski. Tesko da mozes da izbacis neko parce hardvera i odjednom pola softvera ne radiTa velika baza postojeceg softvera je i blagoslov i prokletstvo.
Hm da, ali drajver ne upravlja celim sistemom da bi ga on blokirao. Kernel upravlja drajverima, a sam kernel slusa interapt kontroler da bi mogao da deli CPU time izmedju vise procesa - i samih drajvera. Sistem je napravljen tako da tajming interapt kontrolera zavisi i od komunikacije NorthBridgea i SouthBrigdea - na kojem lezi PCI Bridge, kao host tom kontroleru. Dakle, interapt kontroler ne sme da dozvoli (hardverski) da jedan uredjaj 'zatrpa' propusni opseg busa (u ovom slucaju PCI), pa ce zato nakon kratkog intervala dati i drugim uredjajima da kazu svoje i okinuti interapt; tada kernel stopira doticni drajver i daje sansu drugome da obavi svoj posao.
Ako se i nekada desi greska koju je prouzrokovao drajver (BSOD), to je zbog kilavo napisanog kernela, koji bi morao da se snadje u tom trenutku i odrzi kontrolu nad sistemom. Ukratko, tu je neki drugi OS jaci.
gojkos je napisao(la):Pa zar se nismo slozili da je port/uredjaj lako (ili da kazem sasvim moguce) emulirati potpuno softverski tako da ga sav softver vidi kao pravi?
Naravno, govorim o windows-u i eventualno DOS prompt-u. Pod pravim DOS-om ionako nijedan WinModem nece raditi upravo zato jer ne postoji drajver da emulira UART, a koji za DOS nije ni moguce napraviti AFAIN.
Prvo, da, realno bi trebalo da bude tako, ali prakticno sam se uverio da drajveri mogu vrlo efikasno da zalede masinu ako upadnu u neku mrtvu petlju pri servisiranju callback-ova (zasto je to tako, nisam dublje ulazio u to). I da se ogranicim na VxD drajvere i Win9x. Nisam siguran za NT-based sisteme, odnosno, NT kernel mode drajvere i WDM (Windows Driver Model) drajvere, ali ocigledno je, cim se dogadjaju ovakve stvari (seckanje misa), da bar mogu da uzmu max prioritet i da pojedu vreme ostalim procesima.
Drugo, ako se npr u interrupt handler-u uradi jedan CLI, tj. zabrane interrupti, tu je kraj price - nema vise ni jednog interrupt-a, totalni freeze systema.
magick je napisao(la):Rezime rešenja:
1) probaj prvo softverski, tj druge verzije modemskog drajvera i 4in1
2) promeni modem
3) uzmi ploču sa nForce čipsetom ( mačka u džaku ) ili pređi na Intel platformu, što ne verujem da podrazumevaš pod razumnim rešenjem.![]()
Ako je za utehu, isti zastoj postoji i kod ISDN adaptera (Elsa) koji takodje emulira neki COM port...To je jednostavno karakteristika Win modema...
Uh ti sad ode u extremesilverglider je napisao(la):Pa mi smo se manje-vise slozili da je to tehnicki moguce - ali oni ocigledno nisu Da mogu to da odrade sve softverski, na kartici modema ne bi postojao ni jedan chip, nego sam konektor za modemski kabl.
Hm, mislim da u real modu nema exeptions-a na i/o read i write, tj. CPU mora da radi u protected modu da bi mogao da hvata in/out instrukcije, tako da nista od emulacije u DOS-u.Ako je vec moguce sve to uraditi softverski tako glatko, postojao bi drajver i za dos. Naravno, morao bi se napraviti u real86 modu, ali UART valjda nije toliko komplikovana spravica da bi protected mod bio must, right ?
Nije mi tu nesto jasno pa imam jedno pitanje. Sta pokrece task schleduler ili kako se zvase (verovatno sam pogresno spelovaoWindows kernel ima isti mehanizam (interrupt pool) u ovom slucaju - on proverava interruptID da vidi da li je obrada gotova - ukoliko nije gotova, tj. interrupt handler jos uvek 'radi nesto', kernel ga izdvaja na poseban thread, ocekujuci sledeci event. Drajveri se pisu tako da rade u kernel adresnom prostoru, ne u standardnom aplikacijskom prostoru i tu prioritet threadova ne moze tek tako da se 'zamrlja'. Bar ne bi smeo
Cek, cek, mislis verovatno da interrupt handler moze biti prekinut i pre IRET ako se desi interrupt viseg nivoa? Za to se slazem. Ja rekoh ako se uradi CLI. To zabranjuje SVE interrupte, osim NMI (non maskable interrupts) za koje se BTW ne secam bas cemu sluzePaaa... ne bas. Interapti se dele na tri grupe i jos u njima po prioritetima, tako da interrupt handler moze da blokira samo neke interapte i to samo one nizeg prioriteta od svog (kao i svoj nivo). Uz cinjenicu da se neki interapti ne mogu blokirati.
Hm, pa nije bas dostupna svima, samo drajverima jer rade u ring-u 0. A drajvere ne instalira bas svako (il nebi trebaoloNaravno da drajver ne moze imati vec i prioritet od kernela. Mislim, jesu ovi iz MS-a krelci ponekad, ali nisu tolikiZar bi ti dozvolio da jedna komandica, dostupna svima moze tako da freezuje sve ? To bi bio suvise otvoren sistem da bi bio iole siguran (od unutrasnjih i spoljasnjih uticaja).
Pa dobro, moguce je i da je neki hardverski problem. Ne verujem da je u pitanju bug jer bi vec bio ispravljen do sada. Ali ja ipak mislim da je drajverElem, da skratim pricu; ne bih smeo da tvrdim da se to sve moze svesti na problem preuzimanja prioriteta - cak i MS bi mogao to da resi jednim apdejtom na nivou kernela, kao glavnog dispecera. Pre bih rekao da do tih 'excesnih' situacija sa drajverima dolazi zbog nekog buga u samom kernelu - koncept im i nije toliko los (mislim, "njihov" koncept - to je generalni koncept OSova). Stvari do kojih dolazi imaju uzroke i u hardverskoj podlozi - pomenuti bug VIA-e sa PCI latencijom, ili nesto slicno sta se desilo sa i850/860 cipsetovima kod veceg saobracaja na nekom busu - dogadjaji se desavaju u realnom vremenu, bafer (za event queue) je ogranicenog kapaciteta, hardver (ove u primeru implementacija cipseta) okine break, loop se prekine (ili dodje do buffer overflowa) i jedan deo dogadjaja sa hardvera je "popapala maca". Jedan deo hardver (ni to nije savrseno), drugi deo softver.
Odosmo mi od winmodema ...![]()
A taj no-name Agere, koje drajvere koristi? Ove "generic" lucentove?drapin je napisao(la):Nema nikakve veze sa platformom, odnosno cipsetom...
Presao sam upravo sa VIA na Intel i modem se apsolutno isto ponasa.
To je jednostavno karakteristika Win modema, mozda ne svih, cak ne ni svih Lucenta - npr. moj stari Lucent od pre dve godine prouzrokuje to zastajkivanje dok jedan noviji takodje no name sa Agere cipom to ne radi.
Inace to nije nista strasno, samo malo nervira ako bas insistirate da radite jos nesto drugo dok modem bira broj...
Ne, Win ga ne prepoznaje kao Lucent WinModem, vec trazi svoje drajvere sa CD-a i onda se prijavi kao Agere Systems PCI modem - dosta cudna situacijagojkos je napisao(la):A taj no-name Agere, koje drajvere koristi? Ove "generic" lucentove?
Jel imas mozda neku oznaku za bas te Agere drajvere koji idu na te Agere modeme koji se ne odazivaju na svoje Lucent poreklomikis je napisao(la):Neki Agere modemi koje sam ja instalirao NE RADE sa lucentovim drajverima (v8.20 sam probao), zahtevaju svoje (Agere). Lucent drajveri se instaliraju ali ne prepoznaju modem.
magick je napisao(la):Vidim da ste se vi već lepo ispričali i ne zamerite ako ne kažem ništa novo, priznajem da nisam imao živaca da sve detaljno isčitavam.
gojkos je napisao(la):Uh ti sad ode u extremepa ne moze telefonska linija direktno da se spoji na PCI magistralu, mora da ima bar ADC/DAC
Salu na stranu, verujem da su oni i odradili sto god vise moze softverski, a da opet ne bude preterano opterecen CPU.
Hm, mislim da u real modu nema exeptions-a na i/o read i write, tj. CPU mora da radi u protected modu da bi mogao da hvata in/out instrukcije, tako da nista od emulacije u DOS-u.
Cek, cek, mislis verovatno da interrupt handler moze biti prekinut i pre IRET ako se desi interrupt viseg nivoa? Za to se slazem. Ja rekoh ako se uradi CLI. To zabranjuje SVE interrupte, osim NMI (non maskable interrupts) za koje se BTW ne secam bas cemu sluze. A koja je treca grupa?
Hm, pa nije bas dostupna svima, samo drajverima jer rade u ring-u 0. A drajvere ne instalira bas svako (il nebi trebaolo). Aplikacije (user level, ring 3) naravno ne mogu to da urade. Moja iskustva su, kazem, sa 98-ice gde je vrrrlo lako zalediti sistem. Jedan pogresan korak i freeze. Moguce je da su stvari malo drugacije na NT platformama. Sad nemam pri ruci neki 9x da bih proverio tu neke stvari u praksi jer nisam ja napisao ni previse drajvera, a i nikad se nisam trudio da zaledim sistem (nisam ni morao
) vec da sve radi sto glatkije moguce.
P.S. Da li imas neki link gde se precizno opisuje ovaj problem sa soft modemima (ono o el.kolu za simulaciji UART-a i praznjenju FIFO bafera )? Ja sam nesto google-tao al' nalazim samo objasnjenja tipa: "to je winmodem - to mora tako".
Hm, kolko se ja secam, poruke kao "General protection fault..." zbog brljanja po memoriji smo poceli da vidjamo tek sa pojavom DOS ekstendera koji su radili u protected modu i koji su zato mogli da iskoriste sve te fault mogucnosti 386 procesora. Mozda moze i drugacije da se odradi i/o fault ali nisam bas siguran kako.silverglider je napisao(la):Razlika izmedju protected i real (ili V86) moda se manje vise svodila na alokaciju i segmentaciju memorije, (ne)mogucnost multitaskinga i, ono sto je ovde interesantno - razlicite Interrupt Desktriptor tabele (za isti hardver).
E sad, in/out je postojao, naravno, i za 8088/8086, a signalizacija greske je mogla da se odradi i na drugi nacin, cak i NMI-jem.
Pa generalno su se gurali u NMI, zatim masked i softverske, iliti one koje generise procesor, a ne ostali 'ardver.
NMI klasa interapta se i koristi bas u svrhe kada treba CPU prekinuti, cak i kada si startovao "ignorisanje" okidanja interapta.
Kod grupisanje po prioritetima sam mislio i na sledece;
- najnizi su prioriteti softverskih servisa, kao sto je pomenuti int21h
- prioriteti hardverskih interapta kako ih rasporedjuje njihov int.kontroler. E tu je vec malo drugacija situacija; po starom XT standardu, opostojao je samo jedan PIC sa interaptima 0-7 i definisao je njihove prioritete kao 0-najveci, 7-najmanji. Kada je kasnije dodan i drugi PIC (Master-Slave), interapti ovog drugog (8-15) su mapirani preko irq2 linije ovog prvog, tako da prioriteti sad idu 0,1,(8,9,10,11,12,13,14,15),3,4,5,6,7 i kod dodele i kod okidanja (uz ogradu da su neki unapred rezervisani pre dodele, recimo 8 i 13)
- najveci prioritet, NMI koji prolazi svuda kao kroz sirac![]()
Hm, nije samo za drajvere u ringu 0. Mislim, dostupnost CLI-ja. U 99% slucajeva CLI i STI se pozivaju kada hoces da preuzmes interrupt vektor, tj registrujes svoj interrupt handler - cli, registracija, sti. To, naravno, ne mora da bude drajver - svaki tsr to radi, na primer.
Elem, to je jako kratko - baci registre i ostalo na stek, registruj, vrati stanje - ne vidim nekog osnova da bi trebalo toliko dugo da traje (jos manje za realno vreme). Uostalom, toliko se buke diglo oko toga, da su cak i ovi iz Lucenta culi za to - valjda bi i u njihovom interesu bilo da to oprave, pa da se ide glatko
Novije drajvere su izbacivali, problem ostao.
Evo ga jedan fini link ovde.
Ne znam, sta se desava? Pod win-om sistem preuzima na sebe IRQ sharing, a drajver moze samo da se izjasni dal dozvoljava il ne da njegov IRQ bude sharable. Windows nekako zna odakle je realno dosao interrupt i poziva odgovarajuci handler.Da, i na kraju nagradno pitanje - sta ako je ta PCI karta (nazovimo to "modemom") trenutno ukljucena u IRQ sharing ?
![]()
gojkos je napisao(la):Hm, kolko se ja secam, poruke kao "General protection fault..." zbog brljanja po memoriji smo poceli da vidjamo tek sa pojavom DOS ekstendera koji su radili u protected modu i koji su zato mogli da iskoriste sve te fault mogucnosti 386 procesora. Mozda moze i drugacije da se odradi i/o fault ali nisam bas siguran kako.
A ne vidim ni ja osnova zasto bi modem drajveru trebalo toliko vremena i max proiritet ali izgleda da mu treba.
Ne znam, sta se desava? Pod win-om sistem preuzima na sebe IRQ sharing, a drajver moze samo da se izjasni dal dozvoljava il ne da njegov IRQ bude sharable. Windows nekako zna odakle je realno dosao interrupt i poziva odgovarajuci handler.
drapin je napisao(la):Jel imas mozda neku oznaku za bas te Agere drajvere koji idu na te Agere modeme koji se ne odazivaju na svoje Lucent poreklo??? (RE: moj prethodni post
)
OK, sa ovom (tu i tamo neodredjenom) dijagnozom mogu da se slozim (slozio bih se i u startusilverglider je napisao(la):Pa eto, rekose ljudi iz AT&T da je to u ovom slucaju zbog jeftinih komponenti. Tj. one prouzrokuju kurslus na relaciji drajver-kernel.
Follow along with the video below to see how to install our site as a web app on your home screen.
Napomena: this_feature_currently_requires_accessing_site_using_safari