Některé notebooky mají potíže s určitými kartami PCMCIA,
z čehož většinu lze odstranit pouhou důsledností.
Nejprve je třeba zjistit, zda se problém týká spíše karty nebo
základního systému PCMCIA. K tomu stačí nejprve spustit počítač
bez zasunuté karty. Pokud vše běží, pak teprve zasuneme kartu.
Všechna důležitá hlášení najdeme v souboru /var/log/messages.
Průběžné pozorování těchto informací umožňuje příkaz
tail -f /var/log/messages
Tímto způsobem lze určit typ chyby.
Pokud systém přestane komunikovat již při startu po hlášení PCMCIA: Starting services: nebo se chová podivně, zkuste potlačit spuštění PCMCIA při příštím startu zadáním NOPCMCIA=yes ze startovacího promptu zavaděče. K dalšímu vymezení problému je potřeba ručně spustit tři základní moduly. K tomu slouží příkazy modprobe -t pcmcia_core, modprobe -t pcmcia-external i82365 u externích PCMCIA, resp. modprobe -t pcmcia yenta_socket u jaderného PCMCIA modprobe -t ds. Kritické moduly jsou první a druhý.
Objeví-li se problém při zavedení modulu pcmcia_core,
pomůže nám pcmcia_core. Volby, které jsou tam popsány,
vyzkoušíme nejprve pomocí příkazu modprobe.
Jako příklad můžeme odpojit podporu APM pro modul PCMCIA,
protože s ním mohou být občas problémy.
Na to použijete volbu do_apm=0, která APM
deaktivuje:
modprobe -t pcmciacore do_apm=0
V případě úspěchu zapíšete do proměnné PCMCIA_CORE_OPTS
v souboru /etc/sysconfig/pcmcia:
PCMCIA_CORE_OPTS="do_apm=0"
Od této chvíle již APM nepracuje a pokud ho potřebujete obnovit, musíte zadat do_apm=1.
Rovněž může v ojedinělých případech dojít ke konfliktu některých komponent při testování volného rozsahu IO. To lze obejít volbou probe_io=0.
V případě více voleb použijeme k jejich oddělení mezery:
PCMCIA_CORE_OPTS="do_apm=0 probe_io=0"
Pokud se chyba objevuje při zavádění modulu i82365, pomůže nám i82365. Tato chyba je následkem konfliktu zdrojů resource conflict, tj. dvě zařízení si nárokují stejné přerušení, IO port nebo paměťový rozsah. Modul i82365 zdroje sice kontroluje, může však naneštěstí přestat reagovat právě při tom. Tak se stává, že u některých počítačů vede test IRQ 12 (zařízení typu PS/2) k zablokování myši, případně i klávesnice. V tomto případě pomáhá parametr irq_list=seznam_pripustnych_IRQ. Seznam by měl obsahovat všechny IRQ, které se smějí použít. Napíšeme tedy například
modprobe i82365 irq_list=5,7,9,10
nebo umístíme natrvalo do souboru /etc/rc.config řádku:
PCMCIA_PCIC_OPTS="irq_list=5,7,9,10"
Dále jsou zde soubory /etc/pcmcia/config a /etc/pcmcia/config.opts,
které používá Cardmanager. Nastavení v těchto souborech
se použijí pro zavádění modulů ovladačů karet PCMCIA.
V souboru /etc/pcmcia/config.opts lze rovněž přiřadit nebo zakázat
všechny IRQ, IO porty a paměťové rozsahy.
Rozdíl oproti volbě irq_list je ten, že zde zakázané zdroje
sice pak nepoužije karta PCMCIA, ale budou stále ještě kontrolovány modulem
i82365.
Zde jsou tři možnosti chyby: karta nebyla správně detekována, používá nedostupné zdroje nebo se nechová dle očekávání.
Pokud systém po vložení karty nereaguje a nepomůže ani ruční zadání příkazu
cardctl insert, může jít o špatnou alokaci přerušení PCI zařízení. Pokud jde o tento problém, mohou mít problémy i jiná zařízení např. síťová karta. V takovém případě může pomoci parametr jádra pci=noacpi.
Pokud nebyla karta detekována, najdete v souboru /var/log/messages hlášení
unsupported Card in Slot x. Toto hlášení znamená, že správce karet nebyl schopný k vaší kartě přiřadit žádný ovladač. Pro toto přiřazení je potřebný soubor /etc/pcmcia/config popř. /etc/pcmcia/*.conf. Databázi ovladačů lze snadno rozšířit existující položky, kterou použijete jako šablonu. Podrobnosti o své kartě zjistíte zadáním příkazu cardctl ident. Další informace o tomto tématu najdete v PCMCIA HOWTO (sekce 6) a manuálových stránkách pcmcia. Po editaci souborů obnovte přiřazení ovladačů příkazem rcpcmcia reload.
Jedním z důvodů této situace může být nekorektní záznam pro přiřazení ovladače v databázi. K tomu může dojít např. tehdy, pokud výrobccce použije jinou čipovou sadu u již vyráběného modelu. Některé karty pak mohou pracovat pouze s jiným než předzvoleným ovladačem. V takovém případě budete potřebovat podrobné infromace o své kartě. Někdy je užitečné požádat o pomoc v některé linuxové emailové koneferenci nebo si vyžádat rozšířenou podporu.
Pro CardBus karty musí být v souboru /etc/sysconfig/hotplug nastavena proměnná
HOTPLUG_DEBUG=yes.
Další možnou příčinou je konflikt při přidělení systémových prostředků. U většiny karet je jedno, s jakým IRQ, I/O portem a rozsahem paměti pracují, ale existují vyjímky. V takovém případě testujte systém vždy pouze s jednou zapojenou kartou a ostatní vyjměte (např. zvukovou kartu, IrDA modem, tiskárnu...). Přidělení systémových prostředků můžete sledovat jako uživatel root pomocí příkazu lsdev. Z výstupu můžete zjistit, jaké prostředky jsou používány. Použití jednoho IRQ několika PCI zařízeními je obyvkle bez problémů.
Řešením je nastavení vhodných parametrů ovladače. Seznam parametrů získáte příkazem modinfo
jmeno_ovladace. Pro většinu ovladačů jsou také k dispozici manuálové stránky.
Po nalezení vhodných parametrů proveďte nastavení systémových zdrojů v souboru
/etc/pcmcia/config.opts. Například pro modul pcnet_cs používající
IRQ 5 zadejte následující:
module pcnet_cs opts irq_list=5
Pokud dojde k chybnému nastavení rozhraní, překontrolujte nastavení rozhraní a jméno pomocí Ipříkazu getcfg. V souboru /etc/sysconfig/network/config nastavte proměnnou
DEBUG a v souboru /etc/sysconfig/hotplug proměnnou HOTPLUG_DEBUG na yes. Pokud tento postup nepomůže, zdajte do skriptu vykonávaného sprvcem karet nebo hotplugem řádku
set -vx.
Po tomto nastavení bude výstup skriptu zaznamenáván do systémového logu. Pokud naleznte kritickou sekci skriptu, otestujte příslušné příkazy v terminálu.