Az alábbi szakaszokban áttekintjük, mi is történik a Linux-rendszeren belül, amikor behelyeznek egy PCMCIA-eszközt a gépbe. Számos komponens működik ilyenkor együtt, és bizonyos feltételeknek teljesülniük is kell ahhoz, hogy a rendszer támogassa a PCMCIA-eszközt.
Nagyon röviden így néz ki a PCMCIA inicializálási folyamata Linux alatt:
A PCMCIA-hidat (vagy -csatlakozót) helyesen be kell állítani (26.2.1. szakasz - Híd inicializálása). Ennek előfeltételei:
Megfelelő illesztőprogram a hídhoz
További I/O- és memóriatartományok a PC-kártyák számára
Ha a híd helyesen van beállítva, akkor a híd illesztőprogramja felismeri a kártya jelenlétét és elindítja annak inicializálását (26.2.2. szakasz - Kártya inicializálása):
Meghatározza a kártya típusát.
Rákapcsolja a megfelelő tápfeszültséget.
I/O- és memóriatartományokat, valamint megszakításokat (IRQ) rendel a kártyához.
Elindítja a kártya vagy eszköz inicializálását a megfelelő kártyaillesztő program hozzárendelésével.
Egyes kártyák esetében a kártyainformációs struktúrát (Card Information Structure, CIS) fel kell tölteni.
Végül magát a csatolót is beállítja, ami ezután már használható is. Ennek részletei: 26.2.3. szakasz - Csatoló beállítása.
A legtöbb PCMCIA-híd PCI-eszköz és ennek megfelelően is kezeli őket a rendszer. A híd inicializálási folyamata röviden így néz ki:
A hotplug generál egy PCI-eseményt.
Az udev meghívja az /sbin/hwup-t az illesztőprogram betöltéséhez. Az /sbin/hwup keres az /etc/sysconfig/hardware
fájlban már meglévő eszközbeállításokat. Ha megtalálja a megfelelő konfigurációt, akkor azt használja. Ellenkező esetben az /sbin/hwup meghívja a modprobe parancsot a kernel által biztosított modalias
karaktersorozattal az illesztőprogram-modul betöltéséhez.
Új hotplug-események generálódnak (PCMCIA-csatlakozónként egy).
Az alábbi lépések kimaradnak, ha csak CardBus-kártyákat használ:
A pcmcia_socket
események aktiválják az udev-et, hogy hívja meg az /sbin/hwup programot és töltse be a pcmcia
kernelmodult.
Az /etc/pcmcia/config.opts
fájlban megadott összes I/O- és memóriatartomány a csatolóhoz rendelődik.
A kernel kártyaszolgáltatásai fogják ellenőrizni ezeket a tartományokat. Ha az /etc/pcmcia/config.opts
fájl memóriatartományai helytelenek, akkor ez a lépés a gép összeomlásához vezethet. A probléma azonosításával és kijavításával kapcsolatban a 26.3.1. szakasz - A gép összeomlik a PCMCIA használatakor rész tartalmaz további információt.
Ha az összes lépést sikerült elvégezni, a híd inicializálása kész. Ezután a kártyát magát kell inicializálni, az alábbi részben leírt módon.
A PCMCIA-kártya behelyezésének hatására végbemenő események rövid összefoglalása:
Egy hotplug-esemény generálódik. PC-kártyák esetében ez egy pcmcia
esemény. CardBus-kártyák esetében ez egy pci
esemény.
Akármelyik fajta eseményről is legyen szó, az udev meghívja az /sbin/hwup programot, hogy töltsön be egy illesztőprogram-modult. A modul neve vagy az /etc/sysconfig/hardware
könyvtár hwcfg*
fájljában van megadva, vagy a modprobe modalias parancson keresztül.
Ha szükséges, az eszköz inicializálása egy firmware hotplug eseményt generál. Ez megkeresi a firmware-t és betölti.
Az eszköz illesztőprogramja bejegyzi a csatolókat.
E lépések elvégzése után a rendszer a csatoló beállításával folytatja (ennek leírását lásd lejjebb).
Ha a kártya PC-kártya, akkor szükség lehet az /etc/sysconfig/pcmcia
néhány paraméterére az alábbiak közül ahhoz, hogy teljeskörű legyen a támogatás és tökéletesen működjön:
PCMCIA_LOAD_CIS
A PC-kártyák firmware-ét szokták CIS (Card Information Structure, kártyainformációs struktúrát) néven is emlegetni. Ez a kártya implementációjával kapcsolatos további részleteket is tartalmaz. A hwup ellenőrzi a kártyába beépített CIS integritását, és ha úgy találja, hogy hibás, akkor megpróbál új CIS-t tölteni a kártyára. Az alapértelmezett beállítás a yes
. Ha le akarja tiltani a CIS lemezről betöltését, állítsa no
értékre.
PCMCIA_ALLOW_FUNC_MATCH
A linuxos eszköz-illesztőprogramoknak része egy eszközazonosító táblázat, amely megmondja az illesztőprogramoknak, hogy mely eszközöket kezeljék. Ez azt jelenti, hogy csak azok az eszközök támogatottak, amelyek azonosítóit a kernel ismeri. Az olyan kártyák támogatásához, amelyeknek az eszközazonosítója nincs felsorolva, funkcióillesztést (function matching) kell használni. Ez azt jelenti, hogy az illesztőprogramot nem azonosító, hanem a kártya funkciója (pl. hálózati kártya) alapján választja a rendszer, és ez az illesztőprogram lesz felelős minden hasonló funkciójú PC-kártyáért (a jelen esetben a hálózati kártyákért). Az alapértelmezett beállítás a yes
. A funkcióillesztés tiltásához állítsa a változót a no
értékre.
PCMCIA_COLDPLUG_REINSERT
A rendszerindítás előtt behelyezett kártyák felismerése néha nem sikerül. Ennek megakadályozására, ha a PCMCIA_COLDPLUG_REINSERT
változót a yes
értékre állítja, egy szoftveres kiadás és behelyezés történik. Az alapértelmezett beállítás a no
.
A kártya típusától függően az inicializálás sikeres végrehajtása után különféle csatolók regisztrálódnak. A csatolók regisztrációját az udev hotplugja végzi. További részletek az udev és hotplug programokról: 21. fejezet - Dinamikus kerneleszköz-felügyelet az udev segítségével.