Dokumentáció/SL9.3/Rendszer/PCMCIA

Icon-pcmcia.png Ez a szakasz a noteszgépekben található PCMCIA-hardver és -szoftver speciális szempontjait taglalja. A PCMCIA a Personal Computer Memory Card International Association rövidítése, és a kapcsolódó hardver és szoftver összefoglaló neveként egyaránt használják. Az alábbi szakaszban leírt hardverjellemzők nem találhatók meg az IBM S/390 és zSeries gépekben. Éppen ezért az alábbi szakasz ezekre a platformokra nem vonatkozik.

Hardver

A legfontosabb összetevő a PCMCIA-kártya. PCMCIA-kártyából kétféle típus létezik:

PC Card kártyák
Ezek a kártyák a PCMCIA születése óta léteznek. 16 bites buszt használnak az adatátvitelhez, jellemzően olcsó eszközök. Előfordul, hogy egyes modern PCMCIA-hidaknak problémát jelent az ilyen kártyák érzékelése. Ha viszont érzékelik őket, akkor a kártyák utána probléma nélkül működnek.
CardBus-kártyák
Ez egy frissebb szabvány. 32 bites buszt használnak, ettől jóval gyorsabbak, viszont drágábbak is. A PCI-kártyákhoz hasonlóan integrálódnak a rendszerbe és szintén gond nélkül működnek.Ha a PCMCIA szolgáltatás aktív, akkor a cardctl ident parancs megjeleníti a behelyezett kártya típusát. A támogatott kártyák listája az /usr/share/doc/packages/pcmcia könyvtár SUPPORTED.CARDS fájljában olvasható. Ugyanebben a könyvtárban található meg a PCMCIA HOWTO legfrissebb változata.

A második fontos összetevő a PCMCIA-vezérlő, vagy más néven a PC Card vagy CardBus-híd, amely a kártya és a PCI-busz közötti kapcsolatot teremti meg. Minden szokásos modell támogatott. A vezérlő típusát a pcic_probe paranccsal lehet megállapítani. Ha PCI-eszköz, akkor az lspci -vt parancs további adatokat ír ki.

Szoftver

Az alábbi szakaszok a PCMCIA szoftverelemeit mutatják be. Megismerheti a releváns kernelmodulokat és a kártyakezelőt.

Alapmodulok

A szükséges kernelmodulok megtalálhatók a kernelcsomagokban. Ezenfelül a pcmcia és hotplug csomagokra van szükség. A PCMCIA-rendszer elindításakor a pcmcia_core, a yenta_socket és a ds modulok kerülnek betöltésre. Nagyon ritka esetekben a yenta_socket modul helyett a tcic modulra van szükség. Ezek a modulok inicializálják a meglévő PCMCIA-vezérlőket és biztosítják az alapfunkcionalitást.

Kártyakezelő (card manager)

Mivel a PCMCIA-kártyák a rendszer működése közben is kicserélhetők, figyelni kell, mi történik a kártyahelyeken. Ezt a feladatot az alapmodulban megvalósított kártyaszolgáltatások végzik. A behelyezett kártyák inicializálását (PC Card kártyák esetében) a kártyakezelő, illetve (CardBus-kártyák esetében) a kernel hotplug-rendszere végzi. A kártyakezelőt a PCMCIA-rendszer indító parancsfájlja indítja el az alapmodulok betöltése után. A hotplug-rendszer aktiválása automatikus.

Amikor egy kártya behelyezésre kerül, a kártyakezelő vagy a hotplug-alrendszer megállapítja annak típusát és betölti a megfelelő modulokat. A modulok sikeres betöltése után a kártyakezelő vagy a hotplug-alrendszer elindít bizonyos inicializáló parancsfájlokat, a kártya funkciójától függően. Az inicializáló parancsfájlok létrehozzák a hálózati kapcsolatot, csatlakoztatják a külső SCSI-merevlemezek partícióit, illetve egyéb hardverspecifikus feladatokat láthatnak el. A kártyakezelő parancsfájljai az /etc/pcmcia könyvtárban találhatók. A hotplug-alrendszer konfigurációs fájljai az /etc/hotplug könyvtárban találhatók. A kártyák eltávolításakor a kártyakezelő, illetve a hotplug-alrendszer ugyanezen parancsfájlokkal leállítja a kártya összes tevékenységét. Ezután a már szükségtelen modulok eltávolításra kerülnek.

A fenti műveleteket együtt hotplug-eseményekként szokás emlegetni. Ha merevlemezek vagy partíciók kerülnek felvételre (blokkesemények), akkor a hotplug-parancsfájlok a subfs segédprogram használatával biztosítják, hogy az új adathordozó azonnal elérhető legyen a /media könyvtár alatt. Ha az adathordozót régebbi PCMCIA-parancsfájlokkal kívánja felcsatolni, akkor a subfs segédprogramot le kell tiltani a hotplug-alrendszerben.

A PCMCIA-alrendszer indítása és a kártyaesemények egyaránt naplózásra kerülnek a rendszernaplóban (/var/log/messages). A betöltött modulok és a végrehajtott parancsfájlok feljegyzésre kerülnek a naplóban.

Elméletileg egy PCMCIA-kártyát minden további művelet nélkül el lehet távolítani. Hálózati, modem- és ISDN-kártyák esetében ez nem is jelent problémát, feltéve, hogy már nincsenek aktív hálózati kapcsolatok. Nem igaz ez azonban egy külső merevlemez felkapcsolt partíciói, illetve NFS-könyvtárak esetén. Az ilyen egységeket először szinkronizálni kell majd megfelelően csatolni. Természetesen ez nem lehetséges, ha a kártya már ki van véve. Ha nem biztos a dolgában, használja a cardctl eject parancsot a noteszgépben még benne található összes kártya deaktiválására. Ha csak egy kártyát akar leállítani, akkor adja meg a kártyahely számát, például így: cardctl eject 0.

Konfiguráció

A YaST futásiszint-szerkesztő segítségével határozza meg, hogy a PCMCIA-alrendszert el kell-e indítani a rendszer indítása során. A modul a RendszerFutásiszint-szerkesztő parancsokkal indítható.

Az /etc/sysconfig/pcmcia fájlban a következő három változó van definiálva:

PCMCIA_PCIC
Ez tartalmazza a PCMCIA-vezérlőt kezelő modul nevét. Alaphelyzetben az indító parancsfájl automatikusan megállapítja a modul nevét. Ha ez nem működne, akkor ide írhatja be a modul tényleges nevét. Ellenkező esetben ezt a változót üresen kell hagyni.
PCMCIA_CORE_OPTS
A változó célja, hogy tárolja a pcmcia_core modul paramétereit. Ezekre a paraméterekre azonban ritkán van szükség. A paraméterek a pcmcia_core(4) man oldalon vannak leírva. Mivel a kézikönyvoldal David Hinds pcmcia-cs csomagjának ugyanilyen nevű moduljára hivatkozik, több paramétert sorol fel, mint ahányat a kernelmodul ténylegesen támogat. Ilyenek például a cb_ betűkkel kezdődő paraméterek és a pc_debug.
PCMCIA_BEEP
Be- és kikapcsolja a kártyakezelő hangjelzéseit.Az /etc/pcmcia/config és /etc/pcmcia/*.conf fájlok írják le az illesztőprogramok és a PC Card kártyák összerendelését. Először a config fájl kerül beolvasásra, majd ábécérendben a *.conf fájlok. A kártyához a megtalált legutolsó bejegyzés kerül használatra. A fájlok szintaxisának leírása a pcmcia(5) man oldalon található.

Az /etc/sysconfig/hardware/hwcfg-<konfiguráció_neve> fájlok tartalmazzák az illesztőprogramok és a CardBus-kártyák összerendelését. Ezeket a fájlokat a YaST hozza létre egy kártya beállításakor. A konfigurációk neveiről további információ a /usr/share/doc/packages/sysconfig/README fájlban és a getcfg(8) man oldalon található.

Hálózati kártyák

Az Ethernet-, vezetéknélküli LAN- és Token Ring hálózati kártyák ugyanúgy állíthatók be a YaST segítségével, mint a normál hálózati kártyák. Ha a kártyát nem sikerült érzékelni, akkor a kártya típusának a PCMCIA lehetőséget válassza ki a hardverbeállításoknál. A hálózat beállításának egyéb részleteinek leírása: Hálózati kapcsolat beállítása a YaST segítségével.

ISDN

Hasonlóan a többi ISDN-kártyához, a PC Card kivitelű ISDN-kártyák is beállíthatók a YaST segítségével. Nem számít, hogy melyik PCMCIA ISDN-kártya van kiválasztva, a lényeg, hogy PCMCIA-kártya legyen. A hardver beállítása és a szolgáltató kiválasztása közben a működési mód mindig hotplug (és nem onboot) kell, hogy legyen. ISDN-modemek is léteznek PCMCIA-kártyák formájában. Ezek modemkártyák, vagy többfunkciós kártyák extra ISDN-csatlakozási lehetőséggel. A rendszer ugyanúgy kezeli őket, mint a modemeket.

Modem

Normális esetben a PC Card kivitelű modemeknek nincsenek külön, PCMCIA-specifikus beállításai. A modem behelyezés után azonnal elérhető a /dev/modem eszköznév alatt. Egyes PCMCIA-modemkártyák azonban szoftveres modemek, és a Linux nem támogatja őket. Amennyiben rendelkezésre állnak az ilyen kártyák illesztőprogramjai, akkor telepíteni kell őket a rendszerben.

SCSI és IDE

A megfelelő illesztőprogram-modult a kártyakezelő, illetve a hotplug-alrendszer tölti be. Egy SCSI- vagy IDE-kártya behelyezése után a csatlakoztatott eszközök azonnal használhatók. Az eszköznevek meghatározása dinamikusan történik. A rendelkezésre álló SCSI- és IDE-eszközökkel kapcsolatos információ a /proc/scsi és /proc/ide helyeket található.

A külső merevlemezeket, CD-olvasókat és hasonló eszközöket még azelőtt be kell kapcsolni, hogy a PCMCIA-kártyát behelyezné a bővítőhelybe. SCSI-eszközök esetén használjon aktív lezárást.

Icon-Caution.png SCSI- vagy IDE-kártyák eltávolítása

SCSI- vagy IDE-kártyák eltávolítása előtt a csatlakoztatott eszközök összes partícióját le kell kapcsolni az umount paranccsal. Ha ezt elfelejti, akkor az eszközöket legközelebb csak a rendszer újraindítása után fogja tudni elérni.

Segédprogramok

A feljebb már említett cardctl segédprogram a legfontosabb eszköz a PCMCIA-adatok kigyűjtéséhez és bizonyos műveletek elvégzéséhez. Részletes leírás a cardctl(8) man oldalon található. Az érvényes paraméterek a cardctl paranccsal írathatók ki. A cardinfo nevű grafikus program használható a cardctl legfontosabb funkcióinak vezérlésére. A grafikus program használatához a pcmcia-cardinfo csomagot kell telepíteni.

Az ifport, ifuser, probe és az rcpcmcia segédprogram, néhány másikkal együtt a pcmcia csomagban találhatók meg. Ezekre azonban ritkán van szüksége. Azt, hogy milyen fájlokat tartalmaz a pcmcia csomag, az rpm -ql pcmcia paranccsal lehet kiíratni.

Hibaelhárítás

A hordozható gépek és bizonyos kártyák PCMCIA-problémáinak nagy része azonosítható és megoldható szisztematikus hibakereséssel. Először is, ki kell deríteni, hogy a problémát a kártya vagy a PCMCIA-alaprendszer okozza-e. Ehhez indítsa el a számítógépet úgy, hogy egy kártya sincs behelyezve. Ha az alaprendszer megfelelően működik, helyezze be a kártyát. Minden üzenet a /var/log/messages fájlban kerül naplózásra. A probléma okának keresése közben figyelje ezt a fájlt a tail -f /var/log/messages paranccsal. Ily módon a probléma az alábbi két eset egyikére szűkíthető le.

A PCMCIA-alaprendszer nem működik

Ha a rendszer lefagy a PCMCIA üzenetnél, ha szokatlan dolgok történnek a szolgáltatások, vagy a rendszer indításakor, akkor indítsa újra a rendszert és tiltsa le a PCMCIA szolgáltatásokat: a rendszerindító promptnál írja be, hogy NOPCMCIA=yes. A hiba azonosításához kézzel, egyesével töltse be a PCMCIA-rendszer három alapmodulját.

A PCMCIA-modulok kézi betöltéséhez adja ki a modprobe pcmcia_core, a modprobe yenta_socket és a modprobe ds parancsokat, mint root felhasználó. Igen ritka esetekben a tcic, i82365 vagy i82092 használatára van szükség a yenta_socket helyett. Az elsőként betöltött két modul a kritikus fontosságú.

Ha a hiba a pcmcia_core betöltése közben jelentkezik, forduljon a pcmcia_core(4) man oldalhoz. A kézikönyvoldalon leírt paraméterek először kipróbálhatók a modprobe parancs segítségével. Tegyük fel például, hogy tesztelni kívánja a szabad I/O-területeket. Bizonyos esetekben ez a vizsgálat problémákat okozhat, ha megszakít más hardverkomponenseket. Ez elkerülhető a probe_io=0 paraméter használatával:

modprobe  pcmcia_core probe_io=0

Ha a kiválasztott paraméter működik, akkor állítsa be az /etc/sysconfig/pcmcia fájlban a PCMCIA_CORE_OPTS változót a probe_io=0 értékre. Több paraméter szóközökkel választható el:

PCMCIA_CORE_OPTS="probe_io=0 setup_delay=10"

A yenta_socket betöltésekor jelentkező hibák egyszerűbb problémákra utalnak, például az ACPI erőforrás-lefoglalására.

Az /etc/pcmcia/config és az /etc/pcmcia/config.opts fájlokat a kártyakezelő értelmezi. A bennük található beállítások részben a cardmgr indítására szolgálnak, részint a PC Card kártyák illesztőprogram-moduljainak betöltésére. IRQ-k, I/O-portok és memóriacímek az /etc/pcmcia/config.opts fájlban adhatók meg és tilthatók le. Ritka esetekben a hozzáférés egy érvénytelen I/O-területhez a rendszer összeomlását eredményezheti. Ebben az esetben korlátozza ezen területek elérését.

A PCMCIA-kártya nem működik helyesen

Általában háromféle hibával találkozhatunk: a kártya nem érzékelhető, az illesztőprogram nem tölthető be, illetve az illesztőprogram által biztosított csatoló helytelenül van beállítva. Fontos tudni, hogy a kártyát a kártyakezelő vagy a hotplug-alrendszer vezérli-e. A kártyakezelő a PC Card, a hotplug-alrendszer a CardBus-kártyákat kezeli.

Nem történik semmi a kártya behelyezésekor
Ha a rendszer nem reagál a kártya behelyezésére és a cardctl insert parancs kézi végrehajtása sem segít, akkor lehet, hogy helytelen a PCI-eszközök megszakítás-lefoglalása. Ebben az esetben más PCI-eszközök, például a hálózati kártya használata során is jelentkezhetnek problémák. Ebben az esetben a pci=noacpi rendszerindító paraméter, vagy más PCI-/ACPI-paraméterek lehetnek hasznosak.
A kártya nem ismerhető fel
Ha a kártya nem ismerhető fel, ehhez hasonló üzenet jelenik meg a /var/log/messages rendszernaplóban: Nem támogatott kártya az 1. bővítőhelyen. Ez az üzenet egyszerűen azt jelzi, hogy a kártyakezelő nem tud illesztőprogramot rendelni a kártyához. Az /etc/pcmcia/config vagy /etc/pcmcia/*.conf fájlok szükségesek a hozzárendeléshez. Az illesztőprogram-adatbázis könnyen kibővíthető a meglévő bejegyzéseket használva mintaként. A kártya adatainak kiderítéséhez adja ki a cardctl ident parancsot. További információ minderről a PCMCIA HOWTO dokumentumban (6. rész) és a pcmcia(5) kézikönyvoldalon található. Az /etc/pcmcia/config vagy /etc/pcmcia/*.conf fájl módosítása után töltse be újra az illesztőprogram-hozzárendeléseket az rcpcmcia reload paranccsal.
Az illesztőprogram nincs betöltve
Ennek az egyik oka az lehet, hogy az illesztőprogram-adatbázis helytelen hozzárendelést tartalmaz. Ez például akkor történhet, ha egy külsőre változatlan kártyamodellben a gyártó másik lapkát kezd el használni. Egyes modellek csak akkor működnek - vagy jobban működnek -, ha az automatikusan kiválasztott illesztőprogramtól eltérőt használ. Ehhez viszont alaposan ismerni kell a kártyát. Ha szükséges, a problémát megírhatja egy levelezőlistára, vagy forduljon a Kiemelt támogatás részleghez.
CardBus-kártyák esetében a HOTPLUG_DEBUG=yes sort kell beszúrni az /etc/sysconfig/hotplug fájlba. Ezután vizsgálja meg a rendszernaplót és keressen olyan üzenetet, amelyik arra utal, hogy az illesztőprogram betöltése megtörtént-e (sikeres volt-e).
A másik lehetséges ok az erőforrások ütközése. A legtöbb PCMCIA-kártya esetében mindegy, hogy melyik IRQ-t, I/O-portot vagy memóriaterületet használják, de lehetnek kivételek. Ebben az esetben egyesével tesztelje a kártyákat, és tiltsa le ideiglenesen az egyéb rendszerösszetevőket, mint a hangkártya, IrDA-vezérlő, modem és nyomtató. A rendszererőforrások lefoglalásának megjelenítéséhez adja ki az lsdev parancsot, mint root felhasználó. Az teljesen normális, hogy több PCI-eszköz ugyanazt az IRQ-t használja.
Az egyik lehetséges megoldás a kártyakezelő modul megfelelő paraméterének megkeresése. A paraméterek kiíratásához adja ki a modinfo illesztőprogram parancsot. A legtöbb modulhoz kézikönyvoldal is tartozik. Az rpm -ql pcmcia | grep man parancs kiírja a pcmcia csomag összes man oldalát. A paraméterek teszteléséhez kézzel kell a kártyák illesztőprogramjait leállítani.
Ha sikerült megoldást találni, akkor egy adott erőforrás használatát általában az /etc/pcmcia/config.opts fájl segítségével engedélyezheti vagy tilthatja le. Ebbe a fájlba írhatók be a kártya-illesztőprogramok paraméterei is. Ha például a pcnet_cs modult kizárólag az 5-ös IRQ-val kívánja használni, vegye fel a következő bejegyzést:
module pcnet_cs opts irq_list=5
Helytelenül beállított csatoló
Ebben az esetben gondosan ellenőrizze a csatoló konfigurációját és a konfiguráció nevét a getcfg paranccsal a beállítási hibák megszüntetéséhez. Az /etc/sysconfig/network/configDEBUG változóját és az /etc/sysconfig/hotplug fájl HOTPLUG_DEBUG változóját yes értékre kell állítani. Más kártyák esetében, vagy ha ez nem segít, felveheti a kártyakezelő vagy hotplug-alrendszer által végrehajtott parancsfájlba a set -vx sort (tekintse meg a /var/log/messages fájlt). Ilyenkor a parancsfájl minden egyes sora naplózásra kerül a rendszernaplóban. Ha talál kritikus szakaszt a parancsfájlban, akkor próbálja ki a megfelelő parancsokat egy terminálon.

További információ

Az egyes noteszgépekkel kapcsolatos gyakorlati tanácsok a Linux Laptop weboldalon találhatók (http://linux-laptop.net). Hasznos információ található a TuxMobil webhelyen is: http://tuxmobil.org/. Ezeken az oldalakon található egy noteszgép howto, egy IrDA howto, valamint egy sor egyéb érdekes információ. A http://portal.suse.com oldalon található támogatási adatbázis pedig több cikket is tartalmaz a Linux használatával kapcsolatban mobil eszközökön. A cikkek kikereséséhez írja be a notebook vagy laptop szavakat a keresési mezőbe.