Portál AbcLinuxu, 8. května 2025 01:42
Softwarový modem, jinak winmodem, je noční můrou většiny linuxových začátečníků. Přečtěte si, jak je to s podporou těchto modemů, kde hledat ovladače a jeden příklad z praxe.
Softwarový modem, jinak winmodem, je noční můrou většiny linuxových začátečníků. Modemy všeobecně se dají rozdělit na hardwarové - s těmi v Linuxu nebývají problémy, jelikož modem se postará o vše potřebné, a softwarové - zde skoro veškerou práci odvádí procesor. Pokud tedy nemáme ovladač, který procesoru řekne, co má dělat, máme po legraci. Softwarový modem poznáme snadno, jelikož ke svému chodu vyžaduje většinou nejméně Pentium 133 a také je o mnoho levnější. Z hlediska umístění mluvíme buď o modemech interních - ty můžeme mít buď v ISA (hlavně staré 486, tyto modemy jsou bezproblémové), PCI, AMR či CNR slotu nebo externích - ty bývají zapojeny buď přes USB, PCMCIA nebo sériový port. V poslední době se dá již poměrně mnoho těchto softwarových kousků zprovoznit i pod Linuxem.
Samozřejmě nějaký počítač s Linuxem a s winmodemem, rootovská práva a k tomu nějaký program na vytáčené připojení. Doporučuji nainstalovat jak program kppp
tak wvdial
. Pravděpodobně budeme potřebovat i zdrojáky jádra.
Prvním krokem každého uživatele by mělo být zjištění, jaký čipset vlastní. Každý modem se sice nějak jmenuje (kromě modemů v laptopech - tam se všechny jmenují "interní modem" a je opravdovým bojem vytáhnout z prodejce něco navíc), ale nás zajímá, co je uvnitř. Pomocí
lspci -v
a lspci -n
zjistíme detaily o svém modemu (více man lspci
). V mém případě (Laptop Toshiba Satellite Pro A10) jsem obdržel
# lspci -v
|
Pokud použijete lspci -vv
, obdržíte maximální množství informací. Nevím jestli může nastat případ, že lspci
nenajde vůbec nic - rozhodně další metodou jak zjistit více o modemu,
je nakouknutí do jeho vlastnosti pod Windows, či otevření počítače.
Máme potřebné informace o modemu a můžeme začít hledat ovladače. První kroky by měly vést na web výrobce (dovozce či dodavatele) modemu, jestli náhodou nenabízí ovladače ke stažení. Někteří z nich je totiž nabízejí na internetu, např. ovladače pro Well modemy (HSF/HCF) jsou na www.joyce.cz.
Pokud ne, naše další kroky by měly vést na http://www.linmodems.org. Této stránce byste měli věnovat velkou pozornost, je to zajímavé čtení - základní rozcestník pro linuxového uživatele modemu. Nejjednodušší postup je stáhnout si odtud utilitu scanModem
. Ta zčásti udělá již provedenou detekci zařízení, ale hlavně poradí, jaké ovladače byste měli zkusit.
Po spuštění uloží na disk následující soubory:
ModemData.txt
- zde jsou veškeré nalezené informace o vašem modemu s eventuální nápovědou, jaké ovladače byste měli zkusit. Tento soubor je vhodné distribuovat s případnými dotazy ohledně modemu.ModemData.txt.2
- zde jsou všeobecné informace o podporovaných modemech, ovladačích.ModemDriverCompiling.txt
- zde je velmi dobře popsaná instalace ovladačů pro začátečníky. Posledně jmenovaný soubor je "povinná četba". Předtím než budete klást jakékoliv dotazy, je nutností a také slušností k odpovídajícím projevit trochu vlastní iniciativy a tento soubor prostudovat.Nyní ještě stručný výčet čipsetů pro winmodemy (čerpáno z ModemData.txt.2
). Tyto informace oceníte v případě nákupu nového winmodemu.
Vyhněte se následujícím čipsetům:
Následující čipsety jsou podporovány:
slmodem-2.9.n
ovladače (podle mých zkušeností také smldm-2.7.10
) fungují s většinou ostatních modemů pracující pod AC'97/MC97 (prý takto fungují i některé Lucent AMR winmodemy).serial.o
a je tedy podporován.slmodem-2.9.n
.PCI_IDs 11c1:048
ještě nezačala, pravděpodobně začne někdy v roku 2004.Další postup už je zřejmý. Stáhneme doporučené ovladače, přečteme README
k těmto ovladačům a instalujeme. Pokud existuje již předkompilovaný rpm či deb balíček pro váš systém, je třeba stáhnout ten se shodnou verzí vámi používaného jádra (verzi jádra můžeme zjistit pomocí uname -r
).
Velmi pravděpodobně si budete muset ovladače sami zkompilovat. K tomu je nutné mít nainstalované zdrojáky vašeho jádra (v Mandrake je to balíček kernel-sources
). Vše potřebné by mělo být vysvětleno v dokumentaci u zdrojových kódů ovladače modemu. Pokud existuje více verzí ovladače, není na škodu po prvním neúspěšném pokusu vyzkoušet i další verze (nejnovější verze neznamená vždy nejlepší). Předchozí verzi je třeba řádně odinstalovat - více znovu v dokumentaci k ovladačům, obvykle pomocí make uninstall
.
Vyplatí se také vyzkoušet Google. Zde jsem po několikadenním hledání nalezl hack, jak zprovoznit můj modem.
Můj výše popsaný modem jsem nakonec zprovoznil s ovladačem smldm-2.7.10
(není to poslední verze ovladače, ale v mém případě asi jediná funkční) po aplikování následujícího hacku. Řádek 75 souboru amrmo_init.c
jsem podle nalezeného návodu přepsal z:
#define PCI_DEVICE_ID_ICH3 0x2486
|
na:
#define PCI_DEVICE_ID_ICH3 0x24C6
|
Zároveň jsem našel na internetu, že tento modem by mohl fungovat s ovladači od PCtelu (přesněji verze 0.9.6) po aplikování dalšího hacku. V souboru src/ptserial/ptserial-2.4.7.c
přepsat řádek 312 z:
#define PCI_DEVICE_ID_845 0x2486
|
na:
#define PCI_DEVICE_ID_845 0x24C6
|
Chtěl bych upozornit vlastníky AMR modemů založené na čipu Lucent pracující pod AC'97/MC97, že ačkoliv oficiálně podporavané nejsou, během několikadenního brouzdání po internetu jsem objevil, že některé z nich fungují pomocí výše zmíněných ovladačů smlink a PCtel. Navíc databáze dalších skoro 250 modemů je na fóru PCtelu zde.
Ovladač je nainstalován, co dále? První věcí je zkontrolování symbolického odkazu. Ačkoliv se měl vytvořit během instalace, není na škodu si pomocí
ls -l /dev/modem
ověřit, jestli opravdu ukazuje tam, kam má (opět by to mělo být uvedeno v dokumentaci k ovladačům).
Nyní potřebujeme natáhnout moduly pro modem. To provedeme pomocí modprobe ovladač
. Pomocí lsmod
ověříme, že ovladač je opravdu natažen.
Ovladače vyzkoušíme buď tak, že v kppp
klikneme na "Dotázat se modemu", či pomocí příkazu (připojuji i výpis z mého počítače):
# wvdialconf /etc/wvdial.conf
|
Pokud bude wvdialconf
úspěšný, bude soubor
/etc/wvdial.conf
obsahovat následující:
[Dialer Defaults]
|
Nyní je potřeba dobře nastavit program kppp
(klikací návod v angličtině zde) nebo wvdial
(něco o nastavení zde). O tom jak nastavit konzolové ppp
byl tento článek na root.cz.
Předpokládám, že máme dobře nastaven program pro vytáčené připojení. Zavřeme veškeré prohlížeče a abychom eliminovali možnost špatného routování, 'sundáme síť' např. pomocí ifconfig eth0 down
. Vše je připraveno a můžeme zkusit první vytáčení.
Tam k tomu není nic moc co dodat. Snad jen to, že není třeba natahovat ovladače ručně, ale měly by se po restartu systému natahovat při používání internetu samy (pokud je v pořádku /etc/modules.conf
). Pokud nastavíte dobře kppp
či wvdial
a zaroveň přidáte do /etc/ppp/options
na nový řádek slovo 'defaultroute
' není třeba před připojením shazovat síť.
Pokud se připojení nezdařilo, přečtěte si logy použitého programu a zkuste zjistit, co se vlastně stalo. Některé ovladače se dají spouštět s parametrem určujícím zemi, více bude opět v dokumentaci k ovladačům. Pomocí route -n
si ověřte routování. Pokud vám stále běží eth0
a zároveň už jste vytočili vašeho providera, zkuste změnit routování pomocí route add default ppp0
.
ultra5> ls ker* kernel-2.4.22.26mdk-1-1mdk.i586.rpm kernel-enterprise-2.4.22.26mdk-1-1mdk.i586.rpm kernel-i686-up-4GB-2.4.22.26mdk-1-1mdk.i586.rpm kernel-p3-smp-64GB-2.4.22.26mdk-1-1mdk.i586.rpm kernel-secure-2.4.22.26mdk-1-1mdk.i586.rpm kernel-smp-2.4.22.26mdk-1-1mdk.i586.rpm kernel-source-2.4.22-26mdk.i586.rpmupdaty taham z ftp.linux.cz/pub/linux/mandrake/updates/9.2/RPMS/
ls - l /dev/modem lrwxrwxrwx 1 root root 11 Jan 21 09:17 /dev/modem -> /dev/ttyLT0 lsmod lt_modem 472507 0 (autoclean) [lt_serial] wvdialconf /etc/wvdial.conf Scanning your serial ports for a modem.
- teraz to otestuje vstky porty od ttyS0 - ttyS1, ircomm0-3
Sorry, no modem was detected! Is it in use by another program?
A co teraz? A ako mam postupovat, ked chcem mat nakonfigurovany modem len pre fax a nie pre pripojenie k internetu? Atd.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.