Dnes opäť nepoteším pokročilých "linuxákov" novinkami, ani filozofiou práce driverov :-). Avšak začiatočníci, ktorí si kladú otázky typu: "Linux mám tri dni a neviem, ako mám rozbehať internet cez môj modem", tu nájdu dúfam tie pravé informácie. Snažil som sa podať ich, pokiaľ možno, čo "najpolopatistickejšie"...
Dôvody, prečo sú niektoré ovládače zavádzané ihneď pri inštalácii systému a iné nie, sú rozoberané a aj vysvetlené na tomto fóre, preto sa tu nimi nebudeme zaoberať do hĺbky. Rovnako tu nebudeme vysvetľovať princípy fungovania ovládačov. Nájdeme tu však návod, ako nainštalovať ovládače winmodemu na distribúciu Mandriva/Mandrake Linux 2006.0. Takmer rovnaký postup fungoval aj v Mandrake 10.1. Postupy uvedené v článku však môžeme často použiť aj pri inštalácii iných ovládačov. Neslávne známy Vigor 318 však odskúšaný nemám.
Winmodem a ovládače
Ak sa pripájame na internet pomocou dial-upu, teda vytáčaného pripojenia, máme niekoľko možností na výber zariadenia na "MOduláciu/DEModuláciu" dát z telefónnej linky. Najmenej problémové a najviac odporúčané je pripojenie pomocou "routera". Nasleduje pripojenie pomocou externých, tzv. "plnohodnotných", hardvérových, modemov. To sú modemy pripájané k počítaču káblom. Obsahujú všetky potrebné obvody, tj. čipy na samostanú prevádzku. Na týchto zariadeniach v drvivej väčšine nemusíme nastavovať absolútne nič. Ich jedinou väčšou nevýhodou je to, že sú drahšie.
Ak si zvolíme najlacnejšie riešenie pripojenia, tj. kúpu interného modemu (po inštalácii je vo vnútri počítača), riskujeme, že sa nám nepodarí na internet z Linuxu pripojiť. Nie, že by to bolo nemožné, ale momentálne nie sú v Linuxe podporované všetky takéto modemy. Problém je v tom, že niektoré funkcie zariadenia, ktoré by normálne mal vykonávať samotný modem, sú nahrádzané prácou operačného systému (odtiaľ "winmodem"). Preto sa stále oplatí pred kúpou takéhoto modemu informovať, či je v Linuxe podporovaný. Žiadny linuxový vývojár totiž nemá populárnu "kryštáľovú guľu", aby vedel, aké ovládače zariadenie potrebuje. Ak ešte aj výrobca mlčí o špecifikáciách HW, je skutočne veľmi namáhavé vytvoriť funkčné ovládače pre Linux. Tu sťažovanie sa na "linuxákov" nepomôže. Pre veľa winmodemov však ovládače existujú a na nás ostáva iba ich inštalácia :-).
Ovládače slúžia na komunikáciu hardvérového zariadenia, napr. winmodemu, s jadrom operačného systému. Ako to celé funguje, nájdeme na stránkach: http://www.linuxzone.cz, alebo http://www.cpress.cz/knihy/linux/linux_4.pdf. V Linuxe sa hovorí, že ovládače sú "moduly" a jadro OS sa nazýva "kernel". Všetko, čo teda potrebujeme, je zaviesť (natiahnuť) do jadra (kernelu) potrebné moduly ;-).
Inštalujeme
Celý proces pozostáva zo štyroch fáz:
- Presné určenie zariadenia (winmodemu)
- Stiahnutie modulov (ovládačov)
- Príprava jadra
- Inštalácia a zavedenie modulov
- Pripojenie na internet
Presné určenie zariadenia
Na každej kúpenej krabici s HW síce nájdeme množstvo reklamných informácií, ale málokedy skutočne presné inoformácie o ňom, predovšetkým typ a výrobcu čipu. Tie si musíme zistiť sami :-). Ak máme nainštalovaný aj Win*, môžeme pohľadať vo vlastnostiach modemu (pripojenia). V Linuxe si postup ukážeme v prostredí KDE.
Z menu spustíme Systém -> Nastavenie -> Hardvér -> HardDrake (vyžiada si rootovské heslo), kde nájdeme podrobnosti o modeme. V prípade, že tam nebudú, v nastaveniach zapneme Autodetekcia modemov a spustíme ho opäť. ((K)Ubuntu má podobné grafické zobrazenie informácií.) Po stránke rozpoznávania winmodemov je vynikajúca práve Mandriva Linux 2006.0, SUSE a Ubuntu, ale napríklad aj "prekliato malý Linux"- DamnSmallLinux. Existuje však aj kvalitný nástroj na detekciu winmodemov, nazývaný scanmodem
. Spúšťame ho príkazom (ako root) ./scanmodem
.
Univerzálny postup na zistenie informácií o PCI zariadeniach je podstatne jednoduchší. Spustíme si program konqueror
(klikneme na ikonku "Domov"). Stlačíme kláves F4, napíšeme: su
a zadáme rootovské heslo. Práve sme sa prihlásili na rootovský účet s neobmedzenými právami. (Toto dnes budeme používať často). Teraz napíšeme príkaz: lspci -vv
a stlačíme Enter. Ten nám vypíše všetky informácie o našich PCI zariadeniach... Nás teraz zaujíma iba modem. Príklad:
Tento modem teda Mandriva 2006.0 identifikovala bez problémov. V prvom riadku (Communication controller) nájdeme výrobcu čipu, tj. firma Agere. Typ je LT WinModem (LT ako Lucent). (Výrobcom tohto modemu je pritom D-com...). Všimneme si aj číslo zariadenia (02:01.0). Pozrieme sa aj na iné dôležité údaje, pre prípad, že by sme museli hľadať typ a výrobcu na internete. Tu je výpis z príkazu lspci -vvn
:
Nájdeme si "naše" číslo zariadenia (02:01.0). V prvom riadku je 11c1:044c. To znamená, že kód výrobcu je 11c1 a typ je 044c. Všetky podporované nájdeme na stránke: http://pci-ids.ucw.cz/iii/. Z týchto výpisov vyčítame veľa bez toho, aby sme museli rozoberať počítač. Zlé skúsenosti mám napr. s winmodemom 11c1:048f, predávaný firmou Microcom pod názvom "InPorte Home" (bez prívlastkov) "Internal 56K Modem". To je presne ten problémový "týpek", chýba mu totiž DSP čip. Za približne rovnakú cenu zoženieme aj iné, funkčné winmodemy (D-com, ale aj iné zn. Microcom)... Vieme si teda zistiť všetko podstatné o modeme (aj iných zariadeniach) a ideme na sťahovanie modulov.
Stiahnutie modulov (ovládačov)
Všetky existujúce ovládače na winmodemy (ak nie sú na webe výrobcu), nájdeme na stránke pomenovanej linmodems.org :-). Ovládače pre LT modem sú na stránke (pre jadrá 2.6.*) http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6. Sú tam rôzne verzie, špeciálny kit pre Mandrivu (obsahuje *.mdk.rpm), Ubuntu (presná verzia_jadra.deb), ale aj zdrojové kódy (tar.bz2, resp. tar.gz). Teraz je dôležité zistiť, akú verziu jadra máme. Napíšeme v rovnakej konzole príkaz: uname -r
. Odpoveďou je presná verzia nášho jadra, budeme ju potrebovať. Pre Mandrivu/Mandrake si môžeme stiahnuť pripravený "kit" a použiť rpm balíky z tohto balíčka. Ušetríme si tak čas, ale fungovať to nemusí.
Stiahnutie
"Najjednoduchšie" je rozdeliť si (Okno- > Rozdeliť ...) konqueror na 2 časti, do adresného riadku napíšeme adresu stránky, potom si súbor "pretiahneme" do nášho domovského adresára (~/váš_účet
).
Rozbalenie archívu
Klikneme naň pravým tlačidlom myši a vyberieme si Rozbaliť-> Rozbaliť sem. Fanúšikovia príkazového riadku používajú tar xzf subor.gz
resp. tar xjf subor.bz2
.
RPM a DEB
Inštalácia binárnych ovládačov vo forme RPM resp. DEB balíčkoch je jednoduchá, ale nezaručuje správny výsledok. Nájdeme v rozbalenom archíve balíčky*.rpm
. Otvoríme rootovskú konzolu a napíšeme rpm -Uvh --test *.rpm
(stačí aj poklikať, ale toto je rýchlejšie). Ak sa nevypíšu chyby, príkaz zopakujeme bez --test
. Podrobný návod na inštaláciu nájdeme v balíku.
Podobne v Ubuntu spustíme príkaz:
dpkg -i *.deb
Lenže, čo ak máme špeciálne jadro (napr. 2.6.12-12mdksmp, vidíme to podľa písmen za mdk) a nebude to fungovať? (Toto je jedna z vlastností Mandrivy - snaží sa nainštalovať najvhodnejšie jadro pre váš HW). Potom si musíme skompilovať moduly sami. Stiahneme si najnovší balíček, t.č. s názvom ltmodem-2.6-8alk.tar.bz2. Rovnako rozbalíme, prepneme sa doň. Prihlásime ako root. Presvedčíme sa, či máme nainštalovaný prekladač: whereis gcc
. Cesta za dvojbodkou ukáže jeho umiestnenie. V prípade, že je prázdna, napíšeme: urpmi gcc
a vložíme požadované CD/DVD. V Ubuntu:
apt-get install gcc
Príprava jadra
Inštalácia zdrojových kódov jadra
Tento krok je pri inštalácii niektorých (väčšiny) ovládačov nevyhnutný. Zdrojové kódy jadra sú totiž potrebné na inštaláciu modulov. Stále ako root napíšeme: urmpi kernel-source
. Pozrieme sa, či je to rovnaká verzia (to sa týka hlavne tých, ktorí si už pridávali vlastné zdroje softvéru): ls /usr/src/
Dostaneme niečo také:
lrwxrwxrwx 1 root root 18 apr 2 15:43 linux -> linux-2.6.12-12mdk/
drwxr-xr-x 3 root root 4096 dec 25 18:52 linux-2.6.12-12mdk/
Skontrolujeme 2 veci: či sedí číslo verzie jadra s bežiacim jadrom (pamätáme sa na uname -r
?), a či je tam linux->
. Ak nie, musíme si vytvoriť link príkazom ln -s /usr/src/linux* /usr/src/linux
.
Úprava
Spustíme príkaz kwrite /usr/src/linux/Makefile
. (Budeme používať editor kwrite. Môžeme použiť aj iný: vi
, emacs
, gedit
a pod.). Nájdeme riadok EXTRAVERSION = -12mdkcustom
a zmeníme ho na (napríklad) na EXTRAVERSION = -12mdksmp. Musí to sedieť s našou verziou bežiaceho jadra, teda tým, čo je za mdk
. Uložíme a ukončíme editor. Spustíme príkaz:
uname -m
Vráti sa nám názov architektúry nášho počítača, ten použijeme v ďalšom príkaze. Ak je to jeden z radu i386 až i686, použijeme i386, inak "tú našu". Prepneme sa do adresára: cd /usr/src/linux/arch/i386
a ls
. Nájdeme si súbor, ktorý má v názve aj meno nášho jadra (napr. smp). Skopírujeme ho príkazom
cp defconfig-smp /usr/src/linux/.config
a potvrdíme prepísanie starého.
Vytvorenie cieľového adresára
Jadro máme pripravené, ešte si pripravíme miesto na inštaláciu modulov. cd /lib/modules/2.6.12-12mdksmp/
a ls -la
. Mali by sme tam mať linky s názvom build
a source
odkazujúce na zdrojáky jadra. V prípade, že chýbajú, vytvoríme si ich príkazmi:
ln -s /usr/src/linux/ build
ln -s /usr/src/linux source
Na záver si vytvoríme adresár príkazom mkdir other
. Samozrejme, že ak máme inú verziu jadra, čísla adresára a pod. si upravíme.
Inštalácia a zavedenie modulov
V Konquerore sa prepneme do rozbaleného balíka s modulmi do adresára docs
. A teraz ako root skopírujeme súbor ltmodem.rules
takto:
cp ltmdem.rules /etc/udev/rules.d/
Preklad zdrojového kódu do binárneho súboru, nazývaný aj kompilácia, začneme príkazmi cd ..
a teraz to podstatné: make clean
a potom make
. Ak všetko prebehne v poriadku, spustíme ls
. Mali by sme tam mať vytvorené súbory ltmodem.ko
a ltserial.ko
. Toto sú naše ovládače. Skopírujeme ich do pripraveného adresára príkazom:
cp *.ko /lib/modules/2.6.12-12mdksmp/other/
Nasleduje veľmi dôležitý príkaz: depmod -a
v Mandrive (v Ubuntu mu zodpovedá sudo update-modules
).
Ak používame Mandrake 10.1 spustíme ešte predtým rpm -e devfs
. Teraz zavedieme moduly modprobe ltserial
. Nemali by nastať žiadne komplikácie, ak áno, treba overiť správnosť postupu s článkom resp. dokumentáciou k ovládačom.
Overenie
V konzole ako root spustíme príkaz lsmod
. Mali by tam byť moduly ltserial
a ltmodem
. Ak napíšeme ls /dev/ttyLTM0
resp. ls /dev/modem
mala by byť odpoveď bez chyby. Toto je teda náš modem :-) (/dev/ttyLTM0 je zariadenie, /dev/modem je link naň). Teraz ešte zabezpečíme spustenie modulov hneď po štarte systému.
Automatické spúšťanie modulov po štarte
Spustíme kwrite /etc/modprobe.preload
a na jeho koniec dopíšeme ltserial
. Uložíme a ukončíme. V Mandrake 10.1 potrebujeme podobne upraviť súbor /etc/modprobe.conf
. Musíme doň vložiť nasledujúce:
install winmodem /sbin/modprobe ltserial; /bin/true
alias /dev/modem ltserial
alias char-major-62 ltserial
alias /dev/ttyLT0 ltserial
Pripojenie na internet
Na pripojenie je najlepšou voľbou začiatočníka program "kppp". Ak máte Ubuntu, vyskúšajte "gnome-ppp", čo je niečo podobné. Nainštalujeme si ho ako root v Mandrive príkazom urpmi kppp
. Nastavenie je jednoduché, väčšinu naznačujú screenshoty. Pred prvým pripojením môžeme stlačiť "Terminál", ktorý pošle modemu pár základných príkazov, ktoré prezradia, či je nájdený a nastavený. Veľmi dôležité je však vypnutie voľby: "Čakať na oznamovací tón", a v príkazoch modemu musíme mať "ATX3". Potom už stačí iba vyplniť naše nastavenia poskytnuté providerom a internet nám otvára svoje brány :-). V Mandrive však existuje v Kontrolnom centre (príkaz mcc
) sprievodca pripojenia, môžete ho tiež vyskúšať, veľa ľudí je s ním spokojných.
Problémy
Môžu sa samozrejme vyskytnúť, dokonca je to dosť možné. Dajú sa rozdeliť na dva podstatné:
Ak po spustení pripájania počujete "vytáčanie" modemu a nedá sa pripojiť k serveru, problém asi nebude v zavedení modulu, alebo inom HW probléme (nezapojený kábel atď. ;-), ale v nastavení pripojenia. A naopak... Ak sa vôbec nedarí systému nájsť winmodem, problém je oveľa vážnejší. Riešenie bude podstatne zložitejšie, ak vôbec existuje. Je totiž možné, že ste natrafili na nepodporovaný winmodem. Skúšajte rôzne postupy, ktoré sa dajú na webe nájsť. Kopírujte si chybové hlášky a "kŕmte" nimi google. Drvivú väčšinu riešiteľných a už zodpovedaných problémov nájdete na tomto fóre. Pohľadajte aj na stránke abclinuxu.cz, resp. na google.com/linux, jyxo.cz je tiež skvelý.
Buďte aktívni v hľadaní, nečakajte, že vám niekto v priebehu niekoľkých minút odpovie na problém, ktorý sa už vyriešil pred dvoma dňami... Môžeme si byť takmer istí, že rovnaký problém, ako máme my, sa nevyskytol na svete prvýkrát. A pri troche trpezlivosti odpoveď nájdeme určite rýchlo...
LT modem a Ubuntu
V Ubuntu inštalujeme balík ovládačov tak, že napíšeme dpkg -i *.deb
. Presný postup nájdeme na stránkach http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/Ubuntu/ubuntu-install.html. Kppp v Kubuntu nainštalujeme príkazom: apt-get install kppp
a v Ubuntu nahradíme kppp
balíkom gnome-ppp
. Po reštarte si už iba skontrolujeme, či sa vytvorilo zariadenie /dev/LTM0
a pripojíme sa.
Záver
Tento článok vznikol ako reakcia na stále rovnaké, opakujúce sa otázky na inštaláciu "winmodemov". Iba dodám, že držím palce pri výbere správneho modemu a distribúcie. A dúfam, že dnešný článok prinesie Linuxu v budúcnosti aspoň niekoľko nových spokojných používateľov :-).
Zdroje a zaujímavé adresy:
- http://www.linuxzone.cz/index.phtml?ids=29&idc=167 - informácie o jadre a moduloch
- http://linmodems.technion.ac.il/linmodem-howto/ - linmodems- howto
- http://linmodems.technion.ac.il/resources.html - niečo o rôznych výrobkoch
- http://start.at/modem - ďalšia stránka o winmodemoch
- http://www.linuxant.com/drivers/ - modem linuxant
- http://linmodems.technion.ac.il/ - inšpirácia, ako na to
- http://pctelcompdb.sourceforge.net/ - databáza winmodemov, t.č. nefunkčná
- http://www.heby.de/ltmodem - ďalšia stránka s ovládačmi
- http://www.abclinuxu.cz/hardware/dir/148 - niekoľko modemov a ich stav v Linuxe
- https://wiki.ubuntu.com/DialupModemHowto?action=show&redirect=WinModemLucent - kompletný sprievodca winmodemom a pripojením v Ubuntu
- http://www.rsw.sk/linux/adsl/index_sk.html - Inštalujeme Vigor 318
kdenetwork-kppp
. Pravdepodobne ho najdete na CD s vasou distribuciou, alebo na inom mieste, odkial ste instalovali KDE. V Madrive napriklad aj hladanim v programerpmdrake
./etc/modprobe.conf
. Presné prostriedky zistíte pomocou rôznych programov napr.setserial
, s ktorého pomocou sa dajú nastaviť sériové porty atď. Alebo hoci aj priamo vo Win*. Potom si to treba podobne ako je to opísané v článku zapísať do spomínaného súboru. No predovšetkým, skúste si modem detekovať pomocouscanmodem
. Jeho výsledky sú dosť podrobné. V dokumentácii, priloženej k modemu nájdete dosť podrobných postupov, ako pokračovať.skúsil som všetko podľa návodu no pri kompilácii sa vyskytla nasledujúca chyba :
[root@localhost ltmodem-2.6-alk-8]# make
make -C /lib/modules/`uname -r`/build SUBDIRS=/home/miro/Stiahnuť/microcom/ltmodem-2.6-alk-8 modules
make[1]: Entering directory `/usr/src/linux-2.6.17-5mdv'
WARNING: Symbol version dump /usr/src/linux-2.6.17-5mdv/Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] /home/miro/Stiahnuť/microcom/ltmodem-2.6-alk-8/lt_modem.o
/home/miro/Stiahnuť/microcom/ltmodem-2.6-alk-8/lt_modem.c:123: error: expected ‘)’ before string constant
/home/miro/Stiahnuť/microcom/ltmodem-2.6-alk-8/lt_modem.c:125: error: expected ‘)’ before string constant
/home/miro/Stiahnuť/microcom/ltmodem-2.6-alk-8/lt_modem.c:130: error: expected ‘)’ before string constant
make[2]: *** [/home/miro/Stiahnuť/microcom/ltmodem-2.6-alk-8/lt_modem.o] Error 1
make[1]: *** [_module_/home/miro/Stiahnuť/microcom/ltmodem-2.6-alk-8] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.17-5mdv'
make: *** [module] Error 2
[root@localhost ltmodem-2.6-alk-8]#
skúsil som tie riadky odpoznámkovať kompilácia potom prebehla no moduly asi neskompilovalo správne nakoľko mi po reštarte nechcel naskočiť os.
prosím poraďte dík miro
Skús to znovu, od začiatku, ale najprv daj
make clean
. Ak máš všetko ako treba (aj upravené makefile), pomôže asi iba iná verzia ovládačov (alebo jadra :-( ). Mimochodom, sa mi zdá, že sa zastavuje ich vývoj. Už sú však k dispozícii aj iné balíky, ale neviem momentálne, ako sa volajú- sú však na rovnakej stránke.Pre novšie jadrá treba stiahnuť na tom istom mieste ako je udávané v tomto článku len v podpriečinku martian súbor "martian-full-20061203.tar.gz " poprípade novší a ísť podľa návodu v súbore Compile.Example.html ktorý je v tom istom priečinku.
Všetko je OK pre modem DeskPort 56K Internal/L
tak ahoj