A PCMCIA-ról részletesenA PCMCIA-ról részletesen

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:

  1. 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

  2. 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):

    1. Meghatározza a kártya típusát.

    2. Rákapcsolja a megfelelő tápfeszültséget.

    3. I/O- és memóriatartományokat, valamint megszakításokat (IRQ) rendel a kártyához.

    4. Elindítja a kártya vagy eszköz inicializálását a megfelelő kártyaillesztő program hozzárendelésével.

    5. Egyes kártyák esetében a kártyainformációs struktúrát (Card Information Structure, CIS) fel kell tölteni.

  3. 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.

Híd inicializálásaHíd inicializálá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:

  1. A hotplug generál egy PCI-eseményt.

  2. 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.

  3. Új hotplug-események generálódnak (PCMCIA-csatlakozónként egy).

  4. Az alábbi lépések kimaradnak, ha csak CardBus-kártyákat használ:

    1. 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.

    2. Az /etc/pcmcia/config.opts fájlban megadott összes I/O- és memóriatartomány a csatolóhoz rendelődik.

    3. 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.

Kártya inicializálásaKártya inicializálása

A PCMCIA-kártya behelyezésének hatására végbemenő események rövid összefoglalása:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Csatoló beállításaCsatoló beállítása

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.