Opis sterowników do PCMCIA Autor: David Hinds, dhinds@hyper.stanford.edu v1.105, 9 Wrze¶nia 1997 WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll v2.0, 13 Grudnia 1997 Dokument ten opisuje jak zainstalowaæ i u¿ywaæ Card Services PCMCIA w Linux-ie oraz odpowiada na niektóre czêsto zadawane pytania. Najnowsz± wersjê orygina³u tego dokumentu mo¿na zawsze znale¼æ pod adresem hyper.stanford.edu. Wersja HTML znajduje siê pod adresem hyper.stanford.edu/HyperNews/get/pcmcia/home.html <http://hyper.stan ford.edu/HyperNews/get/pcmcia/home.html> Dokument ten zosta³ napisany w standardzie ISO-8859-2. Nowsza wersja zawiera uaktulanione wskaza nia na katalog zawieraj±cy j±dro na ftp.icm.edu.pl. Kolejna wersja jest uaktualnieniem do obecnej wersji orygina³u. ______________________________________________________________________ Table of Contents: 1. Informacje ogólne i wymagania sprzêtowe. 1.1. Wprowadzenie. 1.2. Prawa autorskie i Disclaimer. 1.3. Jaka jest najnowsza wersja i sk±d mogê j± wzi±æ ? 1.4. Jakie systemy s± obs³ugiwane ? 1.5. Jakie karty PCMCIA s± obs³ugiwane? 1.6. Kiedy moja nowa karta bêdzie obs³ugiwana ? 1.7. Listy dyskusyjne. 2. Kompilacja, instalacja i konfiguracja. 2.1. Wymagania i ustawienia j±dra. 2.2. Instalacja. 2.3. Post-instalacja dla systemów u¿ywaj±cych skryptów inicjacyjnych a'la BSD. 2.4. Post-instalacja dla systemów u¿ywaj±cych skryptów inicjacyjnych a'la SYS V. 2.5. Opcje konfiguracji specyficzne dla danego systemu. 2.6. Problemy podczas ³adowania modu³ów j±dra. 2.7. Problemy z przerwaniem zmiany statusu karty. 2.8. Problemy z identyfikacj± karty. 2.9. Dlaczego nie dystrybujesz binariów do PCMCIA ? 2.10. Dlaczego ten pakiet jest taki wielki ? 3. Stosowanie i zalety. 3.1. Narzêdzia do monitorowania urz±dzeñ PCMCIA. 3.2. Przegl±d skryptów konfiguracyjnych PCMCIA. 3.3. Adaptery sieciowe PCMCIA. 3.3.1. Wybór transceiver-a. 3.3.2. Komentarze na temat konkretnych kart. 3.3.3. Diagnozowanie problemów z kartami sieciowymi. 3.4. Urz±dzenia szeregowe i modemy PCMCIA. 3.4.1. Diagnozowanie problemów z urz±dzeniami szeregowymi. 3.5. Adaptery PCMCIA SCSI. 3.5.1. Diagnozowanie problemów z kartami SCSI. 3.6. Karty pamiêci PCMCIA. 3.6.1. U¿ywanie kart pamiêci "flash". 3.7. Karty PCMCIA napêdów ATA/IDE. 3.7.1. Diagnozowanie problemów z adapterami ATA/IDE. 3.8. Karty wielofunkcyjne. 3.9. Kiedy mo¿na bezpiecznie w³o¿yæ albo wyj±æ kartê PCMCIA ? 3.10. Card Services i Advanced Power Management. 3.11. Jak mam wy³±czyæ kartê PCMCIA bez wyjmowania jej ? 3.12. Jak usuwam sterowniki PCMCIA z pamiêci ? 4. Zaawansowane tematy. 4.1. Alokoacja zasobów dla urz±dzeñ PCMCIA. 4.2. Jak zrobiæ dwie ró¿ne konfiguracje urz±dzeñ do domu i pracy ? 4.3. Startowanie z urz±dzenia PCMCIA. 4.3.1. Skrypt-pomocnik pcinitrd. 4.3.2. Tworzenie dyskietki startowej z initrd. 4.3.3. Instalacja obrazu initrd na napêdach bez Linux-a. 5. Jak radziæ sobie z nieobs³ugiwanymi kartami. 5.1. Konfiguracja nieobs³ugiwanych kart. 5.2. Jak mam dodaæ obs³ugê dla karty kompatybilnej z NE2000 ? 5.3. Interfejs PCMCIA do dyskietek. 5.4. Co jest z obs³ug± kart Xircom ? 6. Wskazówki do ¶ledzenia (debugging) i informacje do programowania. 6.1. Jak mogê wys³aæ pomocny list o b³êdzie ? 6.2. Informacje na temat niskopoziomowego ¶ledzenia PCMCIA. 6.3. Jak mam napisaæ sterownik Card Services dla nowej karty ? 6.4. Wskazówki dla autorów sterowników klientów PCMCIA. 6.5. Od t³umacza. ______________________________________________________________________ 11.. IInnffoorrmmaaccjjee ooggóóllnnee ii wwyymmaaggaanniiaa sspprrzzêêttoowwee.. 11..11.. WWpprroowwaaddzzeenniiee.. Card Services dla Linux-a to kompletny pakiet obs³uguj±cy PCMCIA. Zawiera on zestaw ³adowalnych modu³ów j±dra, które tworz± wersjê aplikacji interfejsowych dla PCMCIA Card Services, zestaw sterowników klientów dla specyficznych kart, oraz demona-mened¿era do kart, który mo¿e reagowaæ na wk³adanie kart i ich wyjmowanie poprzez ³adowanie i usuwanie odpowiednich modu³ów. Obs³uguje on tak¿e tzw. "gor±ce wymiany" kart PCMCIA, tak ¿e karty mog± byæ wk³adane i wyjmowane w ka¿dej chwili. Oprogramowanie to jest w ci±g³ym rozwoju. Zawiera przypuszczalnie b³êdy i nale¿y go u¿ywaæ ostro¿nie. Zrobiê co w mojej mocy, ¿eby poprawiæ b³êdy zg³aszane do mnie, ale je¶li nie powiesz mi o takim, to mogê siê o nim nigdy nie dowiedzieæ. Je¶li ju¿ u¿yjesz tego oprogramowania, mam nadziejê, ¿e wy¶lesz mi swoje do¶wiadczenia, z³e czy dobre ! Je¶li masz jakie¶ sugestie na temat polepszenia tego dokumentu, daj mi znaæ dhinds@hyper.stanford.edu. 11..22.. PPrraawwaa aauuttoorrsskkiiee ii DDiissccllaaiimmeerr.. Copyright (c) 1996, 1997 David A. Hinds Dokument tez mo¿e byæ reprodukowany lub dystrybuowany bez mojej wyra¼nej zgody. Wersje zmodyfikowane, w³±czaj±c t³umaczenia na inne jêzyki, mog± byæ wolno dystrybuowane, zak³adaj±c, ¿e s± jasno identyfikowane jako takie, i ta uwaga o prawach autorskich jest w nich zawarta. Dokument ten mo¿e byæ zawarty w dystrybucjach komercyjnych bez mojej wyra¼nej zgody. Poniewa¿ nie jest to wymagane chcia³bym byæ powiadomiony o takowych dzia³aniach. Je¶li zamierzasz rozprowadzaæ ten dokument jako pracê wydawan±, skontaktuj siê ze mn±, aby upewniæ siê, ¿e masz najnowsz± wersjê. Dokument ten jest rozprowadzany "takim jakim jest", bez wyra¼nych czy wynikaj±cych gwarancji. U¿ywaj informacji zawartych tutaj na swoje w³asne ryzyko. 11..33.. JJaakkaa jjeesstt nnaajjnnoowwsszzaa wweerrssjjaa ii sskk±±dd mmooggêê jj±± wwzzii±±ææ ?? Bie¿±c± g³ówn± wersj± Card Services jest wersja 2.9, a pomniejsze uaktualnienia czy poprawki b³êdów s± numerowane jako 2.9.1, 2.9.2 itd. Kod ¼ród³owy najnowszej wersji jest dostêpny pod adresem hyper.stanford.edu. Nazywa siê _p_c_m_c_i_a_-_c_s_-_2_._9_._?_._t_a_r_._g_z. Bêdzie tam przewa¿nie kilka wersji. Z regu³y trzymam najnowsz± podwersjê wersji g³ównej. Nowe wersje g³ówne mog± zawieraæ wzglêdnie nieprzetestowany kod, tak wiêc trzymam tak¿e najnowsz± wersjê poprzedniej wersji g³ównej jako wzglêdn± stabiln± wersjê, do której mo¿na siê cofn±æ; bie¿±c± tak± wersj± jest 2.8.23. To ju¿ zale¿y od ciebie czy zdecydujesz siê na wersjê najnowsz± z 2.9.x czy na 2.8.23; w pliku _C_H_A_N_G_E_S znajduj± siê najwa¿niejsze ró¿nice. Adres hyper.stanford.edu jest mirrorowany pod adresem sunsite.unc.edu w katalogu /pub/Linux/kernel/pcmcia. [Od t³umacza.]Serwer ten z kolei jest mirrorowany w Polsce pod adresem ftp.icm.edu.pl. Postaram siê te¿ umieszczaæ g³ówne wersje na tsx-11.mit.edu w katalogu /pub/linux/packages/laptops/pcmcia teraz i pó¼niej. Je¶li nie czujesz siê na si³ach, ¿eby skompilowaæ sterowniki do PCMCIA, w wersji bie¿±cej s± zawarte pre-kompilowane sterowniki w najpopularniejszych dystrybucjach: Slackware, Red Hat, Caldera i Yggdrasil, miêdzy innymi. 11..44.. JJaakkiiee ssyysstteemmyy ss±± oobbss³³uuggiiwwaannee ?? Kod ten powinien dzia³aæ na prawie wszystkich laptopach nadaj±cych siê do Linux-a. Obs³ugiwane s± wszystkie popularne kontrolery PCMCIA w³±czaj±c w to Intel, Cirrus, Vadem, VLSI, Ricoh i Databook. Kontrolery ustawiane u¿ywane w IBM i Toshiba-ch tak¿e s± obs³ugiwane. Doki (docks) kart PCMCIA dla systemów typu desktop tak¿e powinny dzia³aæ tak d³ugo, dopóki s± tego typu, ¿e wk³ada siê je bezpo¶rednio do szyny ISA, ni¿ poprzez kontrolery SCSI-PCMCIA czy IDE-PCMCIA. Kontroler Motorola 6AHC05GA u¿ywany w niektórych laptopach Hyundaia nie jest obs³ugiwany. Kontrolery ustawiane w HP Omnibook 600 nie s± obs³ugiwane. Kontroler mostka PCI-CardBus (od SMC, Ricoh-a, Cirrus-a i TI) jest obecnie obs³ugiwany tylko w przypadku trybu 16-bitowego, a i tak obs³uga ta jest ci±gle trochê eksperymentalna. 11..55.. JJaakkiiee kkaarrttyy PPCCMMCCIIAA ss±± oobbss³³uuggiiwwaannee?? Wersja obecna zawiera sterowniki dla ró¿nych kart ethernetowych, sterownik do modemu, kart portów szeregowych, niektórych kontrolerów SCSI, sterownik do kart ATA/IDE oraz sterowniki do kart pamiêci które powinny obs³ugiwaæ wiêkszo¶æ kart SRAM i niektóre karty flash. Plik _S_U_P_P_O_R_T_E_D_._C_A_R_D_S zawarty w ka¿dej wersji Card Services zawiera wszystkie karty jakie dzia³aj± w przynajmniej jednym w³a¶ciwym systemie. Prawdopodobieñstwo tego, ¿e karta nie wymieniona w tym pliku bêdzie dzia³aæ zale¿y od typu tej karty. Zasadniczo wszystkie modemy powinny dzia³aæ z zawartym sterownikiem. Niektóre karty sieciowe mog± dzia³aæ je¶li s± wersjami OEM karty obs³ugiwanej. Inne typy kart IO (bufory ramkowe, karty d¼wiêkowe itd.) nie bêd± dzia³aæ dopóki kto¶ nie napisze odpowiednich sterowników. 11..66.. KKiieeddyy mmoojjaa nnoowwaa kkaarrttaa bbêêddzziiee oobbss³³uuggiiwwaannaa ?? Niestety, nikt mi z regu³y nie p³aci za pisanie sterowników, tak wiêc je¶li chcesz mieæ sterownik do swojej ulubionej karty, bêdziesz przypuszczalnie musia³ zrobiæ czê¶æ roboty na w³asn± rekê. W wersji idelanej, chcia³bym siê kierowaæ w stronê modelu zbli¿onego do j±dra Linux-a, gdzie bêdê g³ównie odpowiedzialny za "rdzeñ" kodu do PCMCIA a inni autorzy pisaliby sterowniki do konkretnych urz±dzeñ. W pliku SUPPORTED.CARDS wspomniane s± niektóre karty, dla których sterownik jest w trakcie pisania. Bêdê siê stara³ pomóc gdzie tylko mogê ale miej na uwadze, ¿e ¶ledzenie (debugging) sterowników do urz±dzeñ w j±drze poprzez e-mail nie jest zbytnio efektywne. Producenci zainteresowani pomoc± w tworzeniu obs³ugi ich urz±dzeñ mog± siê ze mn± skontaktowaæ w sprawie konkretów. 11..77.. LLiissttyy ddyysskkuussyyjjnnee.. Kiedy¶ zajmowa³em siê baz± danych i list± dyskusyjn± na temat u¿ytkowników Linux-a na PCMCIA. Ostatnio zmieni³em swoj± stronê WWW z informacjami na temat PCMCIA w stronê "HyperNews", ze zbiorem wiadomo¶ci na temat PCMCIA w Linux-ie. S± listy na temat instalacji i konfiguracji, na temat ró¿nych typów kart oraz na temat programowania i ¶ledzenia (debug) pod PCMCIA. Strona z informacjami na temat PCMCIA jest pod adresem http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html <http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html>. U¿ytkownicy mog± ustawiæ sobie opcjê informowania poprzez email o nowych odpowiedziach na konkretne pytania, albo o wszystkich nowych wiadomo¶ciach w danej kategorii. Mam nadziejê, ¿e stanie siê to u¿ytecznym archwium informacji dla pytañ, które wychodz± poza tre¶æ tego HOWTO. Jest lista dyskusyjna, której tematem jest Linux na laptopie - lista "linux-laptop". Aby uzyskaæ wiêcej informacji, wy¶lij list zawieraj±cy s³owo "help" na adres majordomo@vger.rutgers.edu. Aby zapisaæ siê na tê listê, wy¶lij list zawieraj±cy ³añcuch "subscribe linux-laptop" na ten sam adres. Lista ta mo¿e byæ dobrym forum dyskusyjnym na temat Linux-a na PCMCIA. Na Stronie Domowej Linux-a na Laptopy http://www.cs.utexas.edu/users/kharker/linux-laptop znajduje siê wiele odwo³añ do adresów, na których s± informacje na temat konfigurowania Linux-a na konkretnych typach laptopów. Jest tak¿e przeszukiwalna baza danych na temat konfiguracji systemu. 22.. KKoommppiillaaccjjaa,, iinnssttaallaaccjjaa ii kkoonnffiigguurraaccjjaa.. 22..11.. WWyymmaaggaanniiaa ii uussttaawwiieenniiaa jj±±ddrraa.. Zanim zaczniesz, powiniene¶ pomy¶leæ czy rzeczywi¶cie musisz samemu skompilowaæ pakiet PCMCIA. Wszyskie popularne dystrybucje Linux-a s± dostarczane wraz z pakietami zawieraj±cymi skompilowane sterowniki dla PCMCIA. Ogólnie musisz tylko zainstalowaæ od nowa sterowniki je¶li potrzebujesz jakiej¶ nowej cechy obecnych sterowników albo je¶li zaktualizowa³e¶ czy przekonfigurowa³e¶ j±dro tak, ¿e przesta³o byæ kompatybilne ze sterownikami przychodz±cymi z dystrybucj±. Chocia¿ kompilacja pakietu PCMCIA nie jest trudna technicznie, to wymaga jednak pewnego obycia z Linux-em. Nastêpuj±ce elementy powinny byæ zainstalowane w twoim systemie zanim zaczniesz instalowaæ PCMCIA: · Jedno z nastêpuj±cych j±der: 1.2.8 do 1.2.13, 1.3.30, 1.3.37, 1.3.39 do 1.3.99, 1.99.* (czyli, pre-2.0), 2.0.* lub 2.1.*. · Bie¿±ca wersja pakietu z modu³ami i narzêdziami do nich. · (Opcjonalnie) "Forms" - interface dla u¿ytkownika pod X11. Wersja najnowsza wymaga j±dra w wersji 1.2.8 lub wy¿szej, albo j±dra z serii testowych 1.3.30 lub wy¿sze, 1.3.38 jest definitywnie popsute, a 1.3.31 do 1.3.36 nie s± przetestowane. Wymaga tak¿e wzglêdnie ¶wie¿ej wersji narzêdzi do modu³ów. Nie ma ³at na j±dro specyficznych dla PCMCIA. Musiz mieæ pe³ne drzewo ¼róde³ j±dra, nie tylko aktualny obraz j±dra, aby skompilowaæ pakiet PCMCIA. Modu³y PCMCIA zawieraj± niektóre odwo³ania do plików ze ¼róde³ j±dra. O ile ty mo¿esz chcieæ skompilowaæ nowe j±dro, ¿eby usun±æ niepotrzebne sterowniki, instalacja PCMCIA nie wymaga tego. Bie¿±ce stabilne wersje ¼róde³ j±dra oraz ³aty do niego s± dostêpne pod adresem ftp://ftp.icm.edu.pl/pub/Linux/kernel/v2.0. Bie¿±ca wersja narzêdzi jest pod tym samym adresem w pliku modules-2.0.0.tgz. J±dra w wersji rozwojowej znajduj± siê pod adresem ftp://ftp.icm.edu.pl/pub/Linux/kernel/v2.1. W pliku Documentation/Changes znajduj± siê opisy wersji wszystkich rodzajów innych sk³adników systemu, które s± wymagane dla tej wersji j±dra. Mo¿esz sprawdziæ tê listê i upewniæ siê czy twój system jest aktualny, szczególnie je¶li ostatnio uaktualnia³e¶ j±dro. Je¶li u¿ywasz j±dra 2.1, upewnij siê, ¿e u¿ywasz poprawnej kombinacji bibliotek dzielonych i narzêdzi do modu³ów. Najnowsze wersje narzêdzi do modu³ów, tak samo jak wersje dla starszych j±der mo¿na znale¼æ pod adresem http://www.pi.se/blox/modules. Je¶li planujesz u¿ywanie karty ethernetowej PCMCIA podczas konfigurowania twojego j±dra powiniene¶ w³±czyæ obs³ugê sieci, ale wy³±cz obs³ugê zwyk³ych kart sieciowych, w³±czaj±c w to "pocket and portable adapters". Sterowniki do kart sieciowych PCMCIA s± zaimplementowane jako ³adowalne modu³y. Jakiekolwiek sterowniki wkompilowane w twoje j±dro bêd± tylko zabieraæ miejsce. Je¶li chcesz u¿ywaæ SLIP-a, PPP czy PLIP-a musisz albo skonfigurowaæ twoje j±dro z w³±czonymi tymi opcjami, albo u¿yæ modu³ów ³adowalnych tych sterowników. Niestety w j±drze w wersji 1.2.X nie mo¿na skompilowaæ pewnych opcji jako modu³y ³adowalne (jak np. kompresja SLIP-a) wiêc najlepiej bêdzie je¶li wkompilujesz ten sterownik do j±dra je¶li go potrzebujesz. Je¶li chcesz u¿ywaæ kontrolera Token Ring do PCMCIA, musisz wkompilowaæ obs³ugê Token Ring do swojego j±dra - "Token Ring driver support", ale powiniene¶ wy³±czyæ CONFIG_IBMTR. Je¶li chcesz u¿ywaæ kontrolera IDE PCMCIA, musisz w³±czyæ opcjê CONFIG_BLK_DEV_IDE_PCMCIA, w j±drach w wersji 1.3.72 do 2.1.7. Starsze j±dra nie obs³uguj± urz±dzeñ IDE. nowsze j±dra nie wymagaj± specjalnych ustawieñ. Je¶li bêdziesz u¿ywa³ kontrolera SCSI PCMCIA, powiniene¶ w³±czyæ opcjê CONFIG_SCSI podczas konfiguracji j±dra. W³±cz tak¿e wszelkie sterowniki "top level" (dyski SCSI, ta¶my, CD-ROM-y, generic), których spodziewasz siê u¿ywaæ. Wszystkie sterowniki "low level" dla konkretnych kontrolerów powinny byæ wy³±czone, poniewa¿ bêd± tylko zajmowaæ miejsce. Je¶li chcesz zmodularyzowaæ sterownik, który jest potrzebny do urz±dzenia PCMCIA, musisz zmodyfikowaæ plik /etc/pcmcia/config, aby podaæ, które modu³y maj± byæ za³adowane dla których typów kart. Na przyk³ad, je¶li sterownik szeregowy jest zmodularyzowany, wtedy móg³by¶ zmieniæ definicjê urz±dzenia szeregowego na: device "serial_cs" class "serial" module "misc/serial", "serial_cs" Pakiet ten zawiera narzêdzie do podawania statusu karty oparte na X11 - cardinfo. Narzêdzie to jest oparte na wolno dystrybuowanym interfejsie zwanym "Forms Library", które bêdziesz musia³ zainstalowaæ przed stworzeniem cardinfo. Dystrybucja binarna jest na hyper.stanford.edu. S± tam wersje a.out oraz ELF. Bêdziesz tak¿e musia³ mieæ wszystkie normalne pliki nag³ówkowe pod X i biblioteki. 22..22.. IInnssttaallaaccjjaa.. Oto streszczenie procesu instalacji: · Rozpakuj pcmcia-cs-2.9.?.tar.gz w /usr/src. · Uruchom make config w nowym katalogu pcmcia-cs-2.9.? · Uruchom make all, potem make install. · Ustaw skrypty startowe dla PCMCIA i pliki opcji w /etc/pcmcia odpowiednio dla twojego systemu. Je¶li planujesz zainstalowaæ jakie¶ dodatkowe sterowniki klienta nie zawarte w dystrybucji PCMCIA, rozpakuj ka¿dy z nich w g³ównym katalogu ¼róde³ PCMCIA. Potem postêpuj zgodnie z normalnymi instrukcjami kompilacji. Dodatkowe sterowniki zostan± skompilowane i zainstalowane automatycznie. Uruchomienie make config zapyta o kilka opcji konfiguracyjnych i sprawdzi twój system, aby zweryfikowaæ czy spe³nia on wszystkie wymagania instalacji obs³ugi PCMCIA. W wiêkszo¶ci przypadków, bêdziesz po prostu akceptowa³ wszystkie domy¶lne opcje. Upewnij siê, ¿e dok³adnie sprawdzi³e¶ komunikaty wyj¶ciowe w razie b³êdów. Je¶li kompilujesz zestaw PCMCIA do instalacji na inn± maszynê, podaj alternatywny katalog docelowy kiedy zostaniesz zapytany przez skrypt konfiguracyjny. Powinna to byæ ¶cie¿ka bezwzglêdna. Wszystkie narzêdzia do PCMCIA zostan± zainstalowane wzglêdem tego katalogu. Bêdziesz móg³ nastêpnie "zarchiwizowaæ" ten katalog poleceniem tar i skopiowaæ go na maszynê docelow±, a nastêpnie rozpakowaæ wzglêdem jej katalogo g³ównego, aby zainstalowaæ wszystko we w³a¶ciwym miejscu. Je¶li "cross-kompilujesz" na innej maszynie, mo¿esz podaæ alternatywne nazwy kompilatora i linkera. Mo¿e to byæ tak¿e pomocne na systemach z pomieszan± architektur± a.out i ELF. Skrypt zapyta tak¿e o dodatkowe opcje ¶ledzenia dla kompilatora. Niektóre z narzêdzi wspieraj±cych (cardctl i cardinfo) mog± byæ skompilowane w formie "safe" (bezpiecznej) lub "trusting" (ufaj±cej). Forma bezpieczna nie pozwala u¿ytkownikom innym ni¿ root na modyfikacjê konfiguracji karty. Forma ufaj±ca pozwala zwyk³emu u¿ytkownikowi na zawieszenie, odwieszenie i reset karty oraz na zmianê bie¿±cej konfiguracji. Skrypt konfiguracyjny zapyta ciê czy chcesz skompilowaæ narzêdzia jako "safe" czy "trusting"; warto¶ci± domy¶ln± jest "safe". Jest kilka opcji konfiguracji j±dra które maj± wp³ywa na narzêdzia do PCMCIA. Skrypt konfiguracyjny mo¿e je wywnioskowaæ z dzia³aj±cego j±dra (najpopularniejszy przypadek). Alternatywnie, je¶li kompilujesz do instalacji na inn± maszynê mo¿e przeczytaæ konfiguracjê z drzewa ¼róde³ j±dra, albo ka¿da opcja mo¿e byæ podana interaktywnie. Uruchomienie make all a potem make install stworzy i nastêpnie zainstaluje modu³y do j±dra i programy narzêdziowe. Modu³y do j±dra s± instalowane w /lib/modules/<wersja>/pcmcia. Programy cardmgr i cardctl s± instalowane w /sbin. Je¶li tworzony jest cardinfo, to instalowany jest on w /usr/bin/X11. Pliki konfiguracyjne zostan± zainstalowane w /etc/pcmcia. Je¶li instalujesz na starej wersji, twoje stare pliki konfiguracyjne zostan± zarchiwizowane przed skasowaniem ich. Zachowanym skryptom zostan± nadane rozszerzenia w stylu *.~1~, *.~2~. Je¶li nie wiesz jakiego typu jest twój kontroler, to mo¿esz u¿yæ narzêdzia probe z podkatalogu cardmgr, aby go wykryæ. S± dwa g³ówne typy: Databook TCIC-2 i kompatybilne z Intel i82365SL. Demon na poziomie u¿ytkownika obs³uguje w³o¿enie i wyjêcie karty. Nazywa siê on cardmgr. Jest podobny w funkcjonowaniu do wcze¶niejszej wersji pcmciad Barry'ego Jaspana. Cardmgr czyta plik konfiguracyjny opisuj±cy znane karty PCMCIA z /etc/pcmcia/config. W pliku tym zawarte jest jakie zasoby mog± byæ zaalokowane dla u¿ycia przez urz±dzenia PCMCIA, i mog± byæ zmodyfikowane dla twojego systemu. Zobacz stronê w podrêczniku systemowym "man" na temat pcmcia, aby dowiedzieæ siê wiêcej na temat tego pliku. 22..33.. PPoosstt--iinnssttaallaaccjjaa ddllaa ssyysstteemmóóww uu¿¿yywwaajj±±ccyycchh sskkrryyppttóóww iinniiccjjaaccyyjjnnyycchh aa''llaa BBSSDD.. Niektóre dystrybucje Linux-a, w³±czaj±c Slackware, u¿ywaj± systemu skryptów a'la BSD. Je¶li istnieje plik /etc/rc.d/rc.M, to twój system zalicza siê do tej grupy. Skrypt rc.pcmcia, zainstalowany w /etc/rc.d kontroluje startowanie i wy³±czanie systemu PCMCIA. make install u¿yje polecenia probe, aby wykryæ typ twojego kontrolera i odpowiednio zmodyfikowaæ rc.pcmcia. Powiniene¶ dodaæ do skryptu startowego /etc/rc.d/rc.M liniê, która wywo³uje skrypt startowy PCMCIA, np. tak: /etc/rc.d/rc.pcmcia start W³a¶ciwie nie ma znaczenia, gdzie umie¶cisz ten plik, tak d³ugo jak sterowniki PCMCIA s± startowane po syslogd. 22..44.. PPoosstt--iinnssttaallaaccjjaa ddllaa ssyysstteemmóóww uu¿¿yywwaajj±±ccyycchh sskkrryyppttóóww iinniiccjjaaccyyjjnnyycchh aa''llaa SSYYSS VV.. Red Hat, Caldera i Debian maj± ten w³a¶nie system. Je¶li masz katalog /etc/init.d albo /etc/rc.d/init.d, to twój system jest w tej grupie. Skrypt rc.pcmcia zostanie zainstalowany jako /etc/rc.d/init.d/pcmcia, lub /etc/init.d/pcmcia. Nie ma potrzeby edytowania ¿adnego skryptu startowego, aby w³±czyæ PCMCIA: zostanie to zrobione automatycznie. Je¶li istnieje katalog /etc/sysconfig, wtedy zostanie utworzony oddzielny plik konfiguracyjny /etc/sysconfig/pcmcia z opcjami startowymi. Je¶li musisz zmieniæ jakiekolwiek opcje modu³ów (jak PCIC= czy PCIC_OPTS=) modyfikuj raczej ten plik konfiguracyjny ani¿eli w³a¶ciwy skrypt startowy PCMCIA. Plik ten nie zostanie skasowny przez kolejne instalacje. Niektóre wcze¶niejsze wersje u¿ywa³y katalogu /etc/sysconfig/pcmcia- scripts zamiast /etc/pcmcia na tych platformach. Wersja bie¿±ca natomiast u¿ywa /etc/pcmcia dla wszystkich systemów, a istniej±cy /etc/sysconfig/pcmcia-scripts przeniesie do /etc/pcmcia. 22..55.. OOppccjjee kkoonnffiigguurraaccjjii ssppeeccyyffiicczznnee ddllaa ddaanneeggoo ssyysstteemmuu.. Pakiet Card Services powinien automatycznie zapobiegaæ alokacji portów IO i przerwañ, które s± ju¿ u¿ywane przez inne urz±dzenia. Spróbuje on tak¿e wykryæ konflikty z nieznanymi urz±dzeniami, ale nie jest to w pe³ni godne zaufania. W niektórych przypadkach, muisz wyra¼nie podaæ zasoby, które maj± byæ niedostêpne dla danego urz±dzenia w pliku /etc/pcmcia/config.opts. Oto niektóre ustawienia zasobów dla specyficznych typów laptopów. · W AMS SoundPro wy³±cz IRQ 10. · W niektórych modelach TravelPro 5300 u¿yj adresów pamiêci 0xc8000-0xcffff. · W BMX 486DX2-66 wy³±cz IRQ 5 i 9 · W Chicony NB5 u¿yj adresów pamiêci 0xda000-0xdFFFF. · Na Compaq Presario 1020, wy³±cz porty 0x2F8-0x2FF, IRQ 3 i IRQ 5. · W HP Omnibook 4000C wy³±cz porty 0x300-0x30F. · Na Micron Millenia Transport, wy³±cz IRQ 5, IRQ 9. · W NEC Versa M, wy³±cz IRQ 9 i porty 0x2E0-2FF. · W NEC Versa P/75 wy³±cz IRQ 5 i 9. · W NEC Versa S wy³±cz IRQ 9 i 12. · W NEC Versa seria 6000 wy³±cz porty 0x300-0x33f, IRQ 9 i 10. · W ProStar 9200, Altima Virage i Acquiline Hurricane DX4-100 wy³±cz IRQ 5 i porty 0x330-0x35f. U¿yj mo¿e adresów pamiêci 0xd8000-0xdffff. · W Siemens Nixdorf SIMATIC PG 720C u¿yj adresów pamiêci 0xc0000-0xcffff i portów 0x300-0x3bf. · W TI TravelMate 5000 u¿yj adresów pamiêci 0xd4000-0xdffff. · W Toshiba T4900 CT wy³±cz IRQ 5, porty 0x2E0-0x2E8 i 0x330-0x338. · W Twinhead 5100, HP 4000, Sharp PC-8700 i PC-8900 wy³±cz IRQ 9 (d¼wiêk) i 12 · W MPC seria 800 wy³±cz IRQ i porty 0x300-0x30f dla CD-ROM-u. Niektóre kontrolery PCMCIA maj± opcjonalne zalety, które mog± byæ zaimplementowane w danym systemie, ale nie musz±. Generalnie jest niemo¿liwe dla sterownika gniazdka (socket driver), aby wykryæ czy te zalety s± zaimplementowane. Sprawd¼ stronê w podrêczniku systemowym na temat swojego sterownika, aby zobaczyæ jakie opcjonalne zalety mog± byæ w³±czone. W kilku przypadkach polecenie probe nie bêdzie w stanie wykryæ automatycznie typu twojego kontrolera. Je¶li masz system Halikan NBD 486, to jego kontroler TCIC-2 znajduje siê w niezwyk³ym miejscu: bêdziesz musia³ zmodyfikowaæ rc.pcmcia, aby za³adowaæ modu³ tcic oraz ustawiæ PCIC_OPTS na tcic_base=0x2C0. Sterowniki gniazda typu "low level" tcic i i82365 maj± liczne parametry do timing-ów szyny, które mo¿e bêdzie trzeba ustawiæ dla systemów ze szczególnie szybkimi procesorami. Symptomy problemów z timing-ami zawieraj± problemy z wykryciem karty, zawi¶niêcia przy du¿ym za³adowaniu systemu, du¿e ¶rednie b³êdów, albo z³a wydajno¶æ urz±dzeñ. Sprawd¼ odpowiednie strony w podrêczniku systemowym, aby dowiedzieæ siê wiêcej szczegó³ów. A tu jest krótkie podsumowanie: · Kontrolery Cirrus maj± liczne konfigurowalne parametry timing-ów. Najwa¿niejszy wydaje siê byæ cmd_time, który okre¶la d³ugo¶æ cyklu szyny PCMCIA. Szybkie systemy 486 (np. DX4-100) wydaj± siê zwiêkszaæ wydajno¶æ przy zwiêkszeniu tego parametru z domy¶lnej warto¶ci 6 na 12 czy 16. · Kontroler Cirrus PD6729 PCI ma parametr fast_pci, który powinien byæ ustawiony je¶li szybko¶æ szyny PCI jest wiêksza ni¿ 25 MHz. · W kontrolerach Vadem VG-468 i Databook TCIC-2 parametr async_clock zmienia wzglêdne taktowanie szyny PCMCIA i cykle szyny host. Ustawienie tego parametru spowoduje dodanie stanów oczekiwania na niektóre operacje. Chocia¿ jeszcze nie s³ysza³em o jakim¶ laptopie, który by tego potrzebowa³. · Modu³ pcmcia_core posiada parametr cis_speed, który zmienia prêdko¶æ pamiêci u¿ywan± dla dostêpu do Card Information Structure (CIS). Na niektórych systemach z szybkimi zegarami szynowymi, zwiêkszanie tego parametru (czyli zwalnianie dostêpu do kart) mo¿e przynie¶æ po¿ytek przy problemach z rozpoznaniem karty. · To nie jest sprawa timing-ów, ale je¶li masz wiêcej ni¿ jeden kontroler PCMCIA w twoim systemie, albo jakie¶ dodatkowe gniazda w stacji dokowania (docking station), powiniene¶ za³adowaæ modu³ i82365 z parametrem extra_sockets ustawionym na 1. Wszystkie te opcje powinny byæ skonfigurowane przez modyfikowanie pocz±tku pliku /etc/rc.d/rc.pcmcia. Na przyk³ad: # Albo i82365 albo tic PCIC=i82365 # Wstaw tu parametry timing-ów dla sterownika gniazd PCIC_OPTS="cmd_time=12" # Wstaw tu opcje pcmcia_core CORE_OPTS="cis_speed=500" Oto niektóre ustawienia timing-ów dla specyficznych sytemów: · W ARM Pentium-90 albo Midwest Micro Soundbook Plus u¿yj freq_bypass=1 cmd_time=8. · W Midwest Micro Soundbook Elite u¿yj cmd_time=12. · W Gateway Liberty spróbuj cmd_time=16. W niektórych systemach u¿ywaj±cych kontrolera Cirrusa, w³±czaj±c NEC Versa M, BIOS ustawia kontroler w specyficzny stan zawieszenia podczas startu systemu. W tych systemach, polecenie probe nie powiedzie siê. Je¶li tak siê zdarzy, zmodyfikuj plik /etc/rc.d/rc.pcmcia rêcznie tak: # Wstaw tu parametry timing-ów dla sterownika gniazd PCIC=i82365 # Wstaw tu opcje pcmcia_core PCIC_OPTS="wakeup=1" 22..66.. PPrroobblleemmyy ppooddcczzaass ³³aaddoowwaanniiaa mmoodduu³³óóww jj±±ddrraa.. Skrypt konfiguracyjny normalnie upewni siê czy modu³y PCMCIA s± kompatybilne z twoim j±drem. Tak wiêc, problemy podczas ³adownia modu³ów wskazuje z regu³y na to, ¿e u¿ytkownik ingerowa³ w jaki¶ sposób w normalny proces instalacji. Niektóre z tych problemów s± wysy³ane bezpo¶rednio na konsolê Linux-a. Inne b³êdy s± zapisywane w pliku "log-file", zwykle jest to /usr/adm/messages albo /var/log/messages. W zale¿no¶ci od konfiguracji twojego syslogd, niektóre komunikaty mog± byæ zapisane do innych plików, które zwykle znajduj± siê tak¿e w /usr/adm czy var/log. Aby wy¶ledziæ problem, upewnij siê, ¿e sprawdzi³e¶ obie lokalizacje. Niektóre modu³y PCMCIA wymagaj± serwisów j±dra, które mog±, ale nie musz± byæ obecne, zale¿nie od konfiguracji j±dra. Na przyk³ad, sterowniki kart SCSI wymagaj± skonfigurowanej obs³ugi SCSI w j±drze, a sterowniki sieci wymagaj± skonfigurowania sieci w j±drze. Je¶li w j±drze brakuje potrzebnego serwisu insmod mo¿e twierdziæ, ¿e s± niezdefiniowane symbole i nie za³adowaæ modu³u. Je¶li insmod zwraca b³±d "wrong version", oznacza to, ¿e modu³ by³ skompilowany dla innej wersji j±dra ni¿ to, które akurat dzia³a. Mo¿e to siê pojawiæ je¶li modu³y skompilowane na jednej maszynie s± kopiowane na drug± z inn± konfiguracj±, albo je¶li j±dro jest rekonfigurowane po tym, jak pakiet PCMCIA zosta³ zainstalowany. Innym ¼ród³em b³êdów podczas ³adowana modu³ów mo¿e byæ to, ¿e modu³y i j±dra by³y skompilowane z ró¿nymi ustawieniami CONFIG_MODVERSIONS. Je¶li modu³ z wkompilowanym sprawdzaniem wersji jest ³adowany do j±dra bez sprawdzania wersji, insmod zwróci b³±d "undefined symbols". Ostatecznie, wzglêdnie nowe wersje binutils s± niekompatybilne ze starszymi wersjami narzêdzi do modu³ów, i mog± powodowaæ, ¿e s± zwracane takie w³a¶nie b³êdy. Najczêstszym symptomem jest b³±d o niezdefiniowaniu gcc_compiled. Je¶li masz takie b³êdy, od¶wie¿ narzêdzia do modu³ów do najnowszej wersji, dostêpnych z ftp.icm.edu.pl. 22..77.. PPrroobblleemmyy zz pprrzzeerrwwaanniieemm zzmmiiaannyy ssttaattuussuu kkaarrttyy.. W wiêkszo¶æi wypadków sterownik do gniazd (i82365 albo tcic) automatycznie wykryje i wybierze odpowiednie przerwanie, aby sygnalizowaæ zmiany statusu karty. Automatyczne wyszukiwanie przerwania nie dzia³a na niektórych kontrolerach kompatybilnych z Intel-em, w³±czaj±c Cirrus-a i niektóre IBM ThinkPad. Je¶li urz±dzenie nie jest aktywne w czasie sprawdzania, jego przerwanie mo¿e tak¿e pojawiæ siê jako niedostêpne. W takich przypadkach sterownik gniazd mo¿e wybraæ przerwanie które jest u¿ywane przez inne urz±dzenie. W sterownikach i82365 i tcic mo¿na u¿ywaæ opcji irq_list aby ograniczyæ ilo¶æ wyszukiwanych przerwañ. Lista ta ogranicza zbiór przerwañ, które mog± byæ u¿yte przez karty PCMCIA oraz do monitorowania zmian statusu karty. Opcja cs_irq mo¿e byæ u¿yta, aby wyra¼nie okre¶liæ przerwanie, którego nale¿y u¿yæ do monitorowania zmian statusu karty. Je¶li nie mo¿esz znale¼æ numeru przerwania, które dzia³a, jest jeszcze tryb statusu "polled": oba - i82365 i tcic zaakceptuj± opcjê poll_interval=100, aby sprawdzaæ zmiany statusu karty raz na sekundê. Opcja ta powinna byæ tak¿e u¿ywana je¶li w twoim systemie brakuje dostêpnych przerwañ dla kart PCMCIA. Szczególnie w systemach z wiêcej ni¿ jednym kontrolerem PCMCIA, nie ma zbytnio sensu w przeznaczaniu przerwañ na monitorowanie zmian statusu kart. Wszystkie te opcje powinny byæ ustawiane w linii PCIC_OPTS= w pliku /etc/rc.d/rc.pcmcia albo /etc/sysconfig/pcmcia zale¿nie od twojego systemu. 22..88.. PPrroobblleemmyy zz iiddeennttyyffiikkaaccjj±± kkaarrttyy.. Domy¶lnie, sterowniki PCMCIA alokuj± okna pamiêci w przestrzeni 0xC0000-0xFFFFF, po sprawdzeniu czy nie ma w niej jakich¶ konfliktów z ROM-em czy innymi urz±dzeniami. To okno pamiêci jest podane w pliku /etc/pcmcia/config.opts. Sprawdzanie ma miejsce przy pierwszej próbie skonfigurowania nowej karty. Procedura sprawdzania nie jest idioto- odporna, wiêc mo¿liwe jest niezidentyfikowanie konfliktu. Je¶li obszar ten jest u¿ywany przez inne urz±dzenia w twoim systemie, karty mog± nie zostaæ zidentyfikowane poprawnie. Przy uk³adach które to obs³uguj±, konflikt mo¿e te¿ powstawaæ przy przes³anianiu tego obszaru pamiêci. Klasycznym symptomem problemu z konfiguracj± okna pamiêci jest zidentyfikowanie wszystkich kart jako karty pamiêci. W nadzwyczajnych przypadkach konflikt taki mo¿e powstaæ z jakim¶ krytycznym serwisem systemowym, co mo¿e powodowaæ zawieszenia czy restarty. Je¶li podejrzewasz taki konflikt, sprawd¼ najpierw czy wy³±czone jest przes³anianie ROM-u w ustawieniach twojego sprzêtu. Znalezienie dobrego okna mo¿e wymagaæ trochê eksperymentów. Kilka alternatywnych okien to: 0xD0000-0xDFFFF, 0xC9000-0xCFFFF i 0xD8000-0xDFFFF. Je¶li masz sterowniki DOS-owe do PCMCIA, mo¿esz zobaczyæ jakich obszarów pamiêci one u¿ywaj±. Zauwa¿, ¿e adresy pamiêci w DOS-ie s± czêsto podawane w formie segmentów, która to obcina ostatni± cyfrê szesnastkow± (tak, ¿e adres bezwzglêdny 0xD0000 by³by podany jako 0xD000. Upewnij siê, ¿e doda³e¶ tê jedn± cyfrê kiedy wpisywa³e¶ warto¶æ do pliku /etc/pcmcia/config.opts. Je¶li problem z identyfikacj± karty nie zosta³ rozwi±zany dopasowywaniem okien pamiêci, to prawdopodobnie jest to problem z "timing-ami" 22..99.. DDllaacczzeeggoo nniiee ddyyssttrryybbuujjeesszz bbiinnaarriióóww ddoo PPCCMMCCIIAA ?? Dla mnie, dystrybucja binariów jest bardzo niewygodna. Jest to sprawa skomplikowana poniewa¿ niektóre zalety mog± byæ podane dopiero w czasie kompilacji, oraz dlatego, ¿e modu³y PCMCIA s± zale¿ne od "poprawnej" konfiguracji j±dra. Wiêc musia³bym przypuszczalnie dystrybu³owaæ prekompilowane modu³y wraz z odpowiednimi wersjami j±der. Id±c dalej, prekompilowane modu³y s± najbardziej potrzebne kiedy instalujemy Linux-a od pocz±tku. To z regu³y wymaga ustawienia PCMCIA tak, ¿eby mo¿na jej by³o u¿yæ w procesie instalacji dla konkretnej dystrybucji Linux-a. Ka¿da dystrybucja Linux-a ma w³asn± procedurê, i nie jest dla mnie wykonalnym udostêpniaæ dyskietki "boot" i "root" chcocia¿by tylko dla tych najbardziej popularnych kombinacji sterowników i dystrybucji. PCMCIA jest teraz czê¶ci± wiêkszo¶ci wa¿niejszych dystrybucji, w³±czaj±c Red Hat, Caldera, Slackware, Yggdrasil, Craftworks oraz Nascent Technology. 22..1100.. DDllaacczzeeggoo tteenn ppaakkiieett jjeesstt ttaakkii wwiieellkkii ?? No có¿, po pierwsze, to on wcale nie jest taki wielki. Wszystkie modu³y sterowników razem wziête zajmuj± jakie¶ 200k. Programy narzêdziowe dodaj± jeszcze jakie¶ 70k, a rzeczy w /etc/pcmcia zajmuj± jakie¶ 30k. Podczas dzia³ania, rdzeñ modu³ów PCMCIA zabiera oko³o 48k pamiêci systemowej. Demon cardmgr z regu³y jest wyswapowywany oprócz momentów kiedy karty s± wsadzane lub wyjmowane. Ca³kowita objêto¶æ pakietu nie wiele ró¿ni siê od implementacji Card Services pod DOS-a. W porównaniu z DOS-owymi "w³±cznikami", mo¿e siê to wydawaæ trochê przesadzone, szczególnie dla ludzi, którzy nie planuj± u¿ywaæ tych wszystkich zalet jakie posiada PCMCIA, jak np. zarz±dzanie zasilaniem czy "gor±ce wymiany". "W³±czniki" mog± byæ malutkie poniewa¿ generalnie obs³uguj± one ograniczon± ilo¶æ kontrolerów PCMCIA. Je¶li kto¶ mia³by napisaæ autentycznie "ogólny" "w³±cznik" do modemu, skoñycz³oby siê na tym, ¿e pojawi³aby siê tam wiêkszo¶æ funkcji z Card Services, aby obs³u¿yæ karty od ró¿nych sprzedawców oraz pe³ny zakres ró¿nych wariantów kontrolerów PCMCIA. 33.. SSttoossoowwaanniiee ii zzaalleettyy.. 33..11.. NNaarrzzêêddzziiaa ddoo mmoonniittoorroowwaanniiaa uurrzz±±ddzzeeññ PPCCMMCCIIAA.. Demon cardmgr normalnie wydaje sygna³ d¼wiêkowy (beep) kiedy karta jest wsadzana, a ton tego d¼wiêku informuje nas o statusie nowo w³o¿onej karty. D¼wiêk wysoki a po nim niski informuje, ¿e karta zosta³a zidentyfikowana, ale z jakiego¶ powodu nie mog³a zostaæ skonfigurowana. Jeden d¼wiêk niski informuje, ¿e karta nie mog³a zostaæ zidentyfikowana. Je¶li wszystkie modu³y s± poprawnie za³adowane, polecenie lsmod daje mniej wiêcej taki wynik (bez w³o¿onych kart): Module: #pages: Used by: ds 2 i82365 3 pcmcia_core 7 [ds i82365] Wszystkie modu³y PCMCIA oraz demon cardmgr wysy³aj± komunikaty o statusie do systemowego programu loguj±cego. Bêdzie to z regu³y /var/log/messages albo /usr/adm/messages. Powinno to byæ pierwsze miejsce, do którego nale¿y zajrzeæ kiedy co¶ nie dzia³a. Kiedy wysy³asz mi wiadomo¶æ o jakim¶ b³êdzie, zawsze do³±cz zawarto¶æ tego pliku. Je¶li nie mo¿esz znale¼æ komunikatów z twojego systemu, to sprawd¼ konfiguracjê w pliku /etc/syslogd.conf, aby zobaczyæ do jakich plików s± one zapisywane. Cardmgr tak¿e zapisuje niektóre bie¿±ce informacje o urz±dzeniach dla ka¿dego gniazda w pliku /var/run/stab. Oto przyk³adowa zawarto¶æ tego pliku: Socket 0: Adaptec APA-1460 SlimSCSI 0 scsi aha152x_cs 0 sda 8 0 0 scsi aha152x_cs 1 scd0 11 0 Socket 1: Serial or Modem Card 1 serial serial_cs 0 ttyS1 5 65 W liniach opisuj±cych urz±dzenia, pierwsze pole jest gniazdem, drugie - klas± urz±dzenia, trzecie - nazw± sterownika, czwarte jest u¿ywane, aby numerowaæ urz±dzenia z³o¿one (multiple devices) zwi±zane z tym samym sterownikiem, pi±te - nazw± urz±dzenia, a ostatnie dwa pola s± liczb± g³ówn± i poboczn± dla danego urz±dzenia (je¶li jest dostêpne). Polecenie cardctl mo¿e s³u¿yæ do sprawdzenia statusu gniazda, albo jego konfiguracji. Oto przyk³adowy rezultat polecenia "cardctl config": Socket 0: Socket 1: Vcc = 5.0, Vpp1 = 0.0, Vpp2 = 0.0 Card type is memory and I/O IRQ 3 is dynamic shared, level mode, enabled Speaker output is enabled Function 0: Config register base = 0x0800 Option = 0x63, status = 0x08 I/O window 1: 0x0280 to 0x02bf, auto sized I/O window 2: 0x02f8 to 0x02ff, 8 bit Je¶li masz uruchomione X-y, to narzêdzie cardinfo wy¶wietla informacje o statusie wszystkich gniazd PCMCIA, podobn± w zawarto¶ci do "cardctl config". 33..22.. PPrrzzeeggll±±dd sskkrryyppttóóww kkoonnffiigguurraaccyyjjnnyycchh PPCCMMCCIIAA.. Ka¿de urz±dzenie PCMCIA jest przyporz±dkowane jakiej¶ klasie, która opisuje jak powinno ono zostaæ skonfigurowane i jak nim zarz±dzaæ. Klasy s± zwi±zane ze sterownikami urz±dzeñ w /etc/pcmcia/config. Jest w tej chwili piêæ klas urz±dzeñ IO (sieæ, SCSI, CD-ROM, dyski fixed i szeregowe) oraz dwie klasy urz±dzeñ zwi±zanych z pamiêci± (pamiêæ i FTL). Dla ka¿dej klasy s± dwa skrypty w /etc/pcmcia/config: g³ówny skrypt konfiguracyjny (/etc/pcmcia/scsi dla urz±dzeñ SCSI), i skrypt z opcjami (/etc/pcmcia/scsi.opts). Skrypt g³ówny dla danego urz±dzenia zostanie wywo³any, aby skonfigurowaæ to urz±dzenie kiedy karta jest wk³adana, i ¿eby wy³±czyæ dane urz±dzenie kiedy karta jest wyjmowana. Dla kart, z którymi jest zwi±zane kilka urz±dzeñ, skrypt zostanie wywo³any dla ka¿dego urz±dzenia. Skrypty konfiguracyjne zaczynaj± od wyci±gniêcia pewnych informacji o danym urz±dzeniu z pliku /var/run/stab. Ka¿dy skrypt konstruuje "adres urz±dzenia" w zmiennej ADDRESS, który jest unikatowy dla urz±dzenia, które ma byæ skonfigurowane. Jest to przekazywane do skryptu *.opts, który powinien zwróciæ informacjê o tym, jak dane urz±dzenie z podanego adresu powinno zostaæ skonfigurowane. Dla niektórych urz±dzeñ, adres ten jest po prostu numerem gniazda. Dla innych, zawiera on dodatkowe informacje, które mog± byæ przydatne do zadecydowania jak skonfigurowaæ dane urz±dzenie. Na przyk³ad, urz±dzenia sieciowe przekazuj± swój adres Ethernet-owy jako czê¶æ swojego "adresu urz±dzenia", tak ¿eby skrypt network.opts móg³ tego u¿yæ, aby wybraæ z kilku ró¿nych konfiguracji. Pierwsz± czê¶ci± wszystkich adresów urz±dzeñ jest bie¿±cy schemat PCMCIA. Parametr ten jest u¿ywany do obs³ugi z³o¿onych zbiorów konfiguracji urz±dzeñ opartych na pojedynczej zewnêtrznej zmiennej podanej przez u¿ytkownika. Jeden ze sposobów u¿ycia schematów to posiadanie schematu domowego, i schematu roboczego, który zawiera³by ró¿ne zbiory parametrów konfiguracji sieci. Schemat bie¿±cy jest wybierany przy pomocy polecenia cardctl. Domy¶lnym schematem, je¶li ¿aden nie jest podany, jest "default". Jako zasada ogólna podczas konfiguracji Linux-a na laptopa, urz±dzenia PCMCIA powinny byæ konfigurowane tylko przy pomocy skryptów do urz±dzeñ PCMCIA. Nie próbuj konfigurowaæ urz±dzenia PCMCIA w ten sam sposób co urz±dzenie do³±czone na sta³e. 33..33.. AAddaapptteerryy ssiieecciioowwee PPCCMMCCIIAA.. Normalnie interfejsy sieciowe typu Ethernet na Linux-ie maj± nazwy eth0, eth1 itd. Kontrolery Token-Ring s± obs³ugiwane podobnie, chocia¿ nazywane s± tr0, tr1 itd. Polecenie ifconfig jest wywo³ywane, aby zobaczyæ albo zmodyfikowaæ stan urz±dzenia sieciowego. W³asno¶ci± Linux-a jest to, ¿e interfejsy sieciowe nie maj± odpowiednich plików w katalogu /dev, wiêc nie b±d¼ zaskoczony, ¿e nie mo¿esz ich znale¼æ. Kiedy zostanie wykryta karta Ethernet-owa PCMCIA, zostanie jej przydzielona pierwsza wolna nazwa interfejsu, któr± bêdzie przypuszczalnie eth0. Cardmgr wykona skrypt /etc/pcmcia/network, aby skonfigurowaæ ten interfejs. Nie konfiguruj swojej karty Ethernet-owej w /etc/rc.d/rc.inet1 poniewa¿ karty mo¿e nie byæ kiedy skrypt ten jest wykonywany. Wstaw w komentarz wszystko, oprócz urz±dzenia "loopback" w rc.inet1. Je¶li twój system ma automatyczn± procedurê konfiguracji sieci powiniene¶ zwykle wskazaæ, ¿e nie masz zainstalowanej karty sieciowej. W zamian, zmodyfikuj plik /etc/pcmcia/network.opts, tak aby odpowiada³ twojej lokalnej konfiguracji sieci. Skrypty network i network.opts zostan± wykonane tylko je¶li twoja karta Ethernet-owa jest obecna. Adres urz±dzenia przekazany do network.opts sk³ada siê, z czterech pól oddzielonych przecinkami: schematu, numeru gniazda, numeru urz±dzenia i sprzêtowego adresu karty Ethernet. Numer urz±dzenia jest u¿ywany do numerowania urz±dzeñ dla kart, które maj± kilka interfejsów sieciowych, tak wiêc zwykle bêdzie to 0. Je¶li masz kilka kart sieciowych u¿ywanych do ró¿nych celów, jedn± z opcji by³oby skonfigurowanie kart oparte na numerze gniazda, jak tu: case "$ADDRESS" in *,0,*,*) # definicje dla karty sieciowej w gnie¼dzie 0 ;; *,1,*,*) # definicje dla karty sieciowej w gnie¼dzie 1 ;; esac Alternatywnie mog³yby one byæ skonfigurowane u¿ywaj±c ich adresów sprzêtowych, jak tu: case "$ADDRESS" in *,*,*,00:80:C8:76:00:B1) # definicje dla karty D-Link ;; *,*,*,08:00:5A:44:80:01) # definicje dla karty IBM esac Aby automatycznie zamontowaæ i odmontowaæ system plików NFS, najpierw dodaj te wszystkie systemy do /etc/fstab, ale w opcjach podaj _n_o_a_u_t_o. W network.opts wpisz katalogi, w których maj± byæ zamontowane systemy plików NFS w zmiennej MOUNTS. Jest tu szczególnie wa¿ne, aby u¿yæ albo cardctl albo cardinfo, aby wy³±czyæ kartê sieciow± kiedy montowanie z NFS jest w ten sposób skonfigurowane. Nie jest mo¿liwe czyste odmontowanie systemu plików NFS je¶li karta sieciowa jest po prostu wyrzucana bez ostrze¿enia. Dodatkowo oprócz zwyk³ych parametrów konfiguracyjnych dla sieci, skrypt network.opts mo¿e podawaæ inne akcje, które maj± mieæ miejsce po tym jak interfejs zosta³ skonfigurowany, albo przed zamkniêciem interfejsu. Je¶li w network.opts zdefiniowana jest funkcja start_fn, zostanie ona wywo³ana przez skrypt sieciowy po skonfigurowaniu interfejsu, a nazwa interfejsu zostanie przekazana do tej funkcji jako pierwszy i jedyny argument. Podobnie je¶li funkcja stop_fn jest zdefiniowana, to zostanie ona wywo³ana przed zamkniêciem interfejsu. 33..33..11.. WWyybbóórr ttrraannsscceeiivveerr--aa.. Typ transceiver-a mo¿na wybraæ w network.opts przy pomocy ustawienia IF_PORT. Mo¿e to byæ zarówno warto¶æ numeryczna jak we wcze¶niejszych wydaniach PCMCIA, jak i s³owo kluczowe identyfikuj±ce typ transceiver- a. Warto¶ciami domy¶lnymi we wszystkich sterownikach sieciowych s±: wykrywanie automatyczne interfejsu je¶li jest to mo¿liwe, a w przeciwnym razie - 10baseT. Przy pomocy polecenia ifport mo¿na sprawdziæ lub ustawiæ bie¿±cy typ transceiver-a. Np.: # ifport eth0 10base2 # # ifport eth0 eth0 2 (10base2) Obecne wersje sterownika 3c589 próbuj± automatycznie wykryæ po³±czenie sieciowe, ale nie jest to jeszcze w pe³ni funkcjonalne. Aby automatyczne wykrywanie dzia³a³o, kabel sieciowy powinien tkwiæ w karcie podczas jej konfiguracji. Alternatywnym rozwi±zaniem jest zmuszenie sterownika do sprawdzenia po³±czenia przy pomocy polecenia: ifconfig eth0 down up 33..33..22.. KKoommeennttaarrzzee nnaa tteemmaatt kkoonnkkrreettnnyycchh kkaarrtt.. · Przy kartach IBM CCAE i Socket EA musisz wybraæ typ transceiver-a (10base2, 10baseT, AUI) gdy urz±dzenie sieciowe jest ju¿ skonfigurowane. Upewnij siê, ¿e typ transceiver-a zapisany w logach jest zgodny z rzeczywistym. · Sterowniki dla kart SMC, Megahertz, Ositech i 3Com powinny automatycznie wykryæ typ do³±czonej sieci (10base2 lub 10baseT). Ustawienie typu transceiver-a kiedy sterownik jest ju¿ za³adowany ma na celu zdefiniowanie pierwszej warto¶ci sprawdzanej przez sterownik. · Karta Farallon EtherWave jest w³a¶ciwie zbudowana na bazie 3Com 3c589 ze specjalnym transceiver-em. Pomimo, i¿ EtherWave u¿ywa po³±czeñ 10baseT jej transceiver wymaga, ¿eby 3c589 by³a skonfigurowana na tryb 10base2. · Je¶li masz problemy z kartami IBM CCAE, NE4100, Thomas Conrad czy Kingston - spróbuj zwiêkszyæ czas dostêpu do pamiêci opcj± mem_speed=# dla modu³u pcnet_cs. Przyk³ad jak to zrobiæ znajdziesz w standardowym pliku config.opts. Wypróbuj prêdko¶ci do 1000 nanosekund. · Na niektórych systemach przy karcie New Media Ethernet mo¿liwe, ¿e trzeba zwiêkszyæ czas dostêpu do portów IO opcj± io_speed=# podczas ³adowania modu³u pcmcia_core. Aby ustawiæ tê opcjê zmodyfikuj linijkê CORE_OPTS w skrypcie startowym. · Obs³uga muticastingu w sterowniku dla New media Ethernet nie jest pe³na. Najnowszy sterownik bêdzie dzia³a³ z j±drem skompilowanym do multicastingu, ale bêdzie ignorowa³ takie pakiety. Tryb "promiscuous" powinien dzia³aæ poprawnie. · Wygl±da na to, ¿e sterownik u¿ywany przez karty IBM i 3Com token ring zachowuje siê bardzo ¼le je¶li karty nie s± po³±czone z pier¶cieniem podczas inicjalizacji. Zawsze pod³±czaj te karty do sieci kiedy s± uruchamiane. Sterownik ten wymaga tak¿e wolnych portów w obszarze 0xA20-0xA27. Na niektórych systemach, automatyczne sprawdzanie konfliktów w¶ród portów IO b³êdnie okre¶li ten obszar jako niedostêpny. W tym wypadku, sprawdzanie mo¿e zostaæ wy³±czone poprzez za³adowanie modu³u pcmcia_core z opcj± probe_io=0. · Nowsze karty Linksys i D-Link maj± swój unikalny sposób wybierania typu transceiver-a, który nie jest obs³ugiwany przez sterowniki Linux-owe. Jednym ze sposobów na obej¶cie tego jest wystartowaæ DOS-a i u¿yæ narzêdzia dostarczonego przez sprzedawcê, aby wybraæ transceiver i potem wystartowaæ Linux-a na "ciep³o". Szukam beta- testerów do narzêdzia na Linux-a, które by umo¿liwia³o tak± funkcjê. · Jean Tourrilhes (jt@hplb.hpl.hp.com napisa³ HOWTO <http://www- uk.hpl.hp.com/people/jt/Linux/Wavelan.html> na temat bezprzewodowych kart sieciowych WaveLAN. 33..33..33.. DDiiaaggnnoozzoowwaanniiee pprroobblleemmóóww zz kkaarrttaammii ssiieecciioowwyymmii.. · Czy twoja karta jest rozpoznawana jako karta etnernetowa? Sprawd¼ logi systemowe i upewnij siê, ¿e cardmgr identyfikuje twoj± kartê poprawnie i startuje jeden ze sterowników sieciowych. Je¶li nie, to twoj± kartê mo¿na wci±¿ u¿yæ je¶li jest ona kompatybilna z jak±¶ obs³ugiwan±. Najpro¶ciej jest to zrobiæ je¶li karta "twierdzi", ¿e jest kompatybilna z NE2000. · Czy karta jest poprawnie skonfigurowana? Je¶li u¿ywasz obs³ugiwanej karty i zosta³a ona rozpoznana przez cardmgr, ale wci±¿ nie dzia³a, to mo¿liwy jest konflikt z przerwaniami lub portami. Zobacz jakich zasobów u¿ywa karta (z logów systemowych) i spróbuj wy³±czyæ je w /etc/pcmcia/config.opts, aby zmusiæ kartê do u¿ycia innych. · Je¶li twoja karta wydaje siê byæ skonfigurowana poprawnie, ale czasami siê zawiesza, szczególnie przy du¿ym obci±¿eniu systemu, mo¿liwe, ¿e musisz spróbowaæ zmieniæ paramtery "timing-owe" gniazda dla sterownika. Wiêcej informacji znajdziesz w sekcji ``2.3''. · Je¶li masz komunikaty w stylu "network unreachable" kiedy próbujesz dostaæ siê do sieci, to przypuszczalnie b³êdnie ustawi³e¶ parametry w /etc/pcmcia/network.opts. Jednak z drugiej strony b³êdnie skonfigurowane karty z regu³y nie zainicjuj± siê i nie wy¶wietl± przy tym ¿adnych komunikatów · Aby sprawdziæ problemy z /etc/pcmcia/network.opts, zacznij od próby ping-owania innych systemów w tej samej podsieci uzywaj±c ich adresów IP. Potem spróbuj ping-owaæ swój gateway, i maszyny w innych podsieciach. Ping-uj maszyny po ich adresach tylko po zrobieniu tych prostych testów. · Upewnij siê, ¿e twój problem to naprawdê problem z PCMCIA. Sprawdzenie, czy karta dzia³a pod DOS-em ze sterownikiem od sprzedawcy mo¿e pomóc. Sprawd¼ dwa razy modyfikacje w skrypcie /etc/pcmcia/network.opts. Upewnij siê, ¿e twoje kable, wtyczka "T", terminator itp. dzia³aj±. 33..44.. UUrrzz±±ddzzeenniiaa sszzeerreeggoowwee ii mmooddeemmyy PPCCMMCCIIAA.. Linux-owe urz±dzenia szeregowe s± dostêpne poprzez specjalne pliki /dev/cua* i /dev/ttyS*. Urz±dzenia ttyS* s± dla po³±czeñ przychodz±cych, jak np. bezpo¶rednio pod³±czone terminale. Urz±dzenia cua* s± dla po³±czeñ wychodz±cych, jak np. modemy. Ka¿dy fizyczny port szeregowy ma plik urz±dzenia ttyS i cua: to ju¿ zale¿y od ciebie jaki plik wykorzystasz w swojej aplikacji. Konfiguracja urz±dzenia szeregowego mo¿e byæ sprawdzana i modyfikowana poprzez polecenie setserial. Kiedy zostanie wykryta karta szeregowa lub modemowa PCMCIA, zostanie jej przypisany pierwszy dostêpny slot urz±dzenia szeregowego. Bêdzie to zwykle /dev/ttyS1 (cua1) albo /dev/ttyS2 (cua2) w zale¿no¶ci od ilo¶ci wbudowanych portów szeregowych. Urz±dzenie ttyS* jest raportowane w pliku /var/run/stab. Domy¶lny skrypt z opcjami dla urz±dzenia szeregowego /etc/pcmcia/serial.opts pod³±czy odpowiedni w ramach udogodnienia plik urz±dzenia cua* do /dev/modem. Nie próbuj u¿ywaæ /etc/rc.d/rc.serial do konfiguracji modemu PCMCIA. Skrypt ten powinien byæ u¿ywany tylko do konfiguracji urz±dzeñ zainstalowanych na sta³e. Modyfikuj /etc/pcmcia/serial.opts je¶li chcesz jakich¶ specjalnych ustawieñ dla swojego modemu. Nie próbuj tak¿e zmieniaæ portu IO czy IRQ szeregowego urz±dzenia PCMCIA programem setserial. Poinformowa³oby to sterownik szeregowy, ¿e karta jest w innym miejscu, ale nie zmieni³oby ustawieñ sprzêtowych karty. Skrypt konfiguracyjny pozwala na podanie innych opcji setserial jak rownie¿ to czy linia dla tego portu powinna zostaæ dodana do /etc/inittab. Adres urz±dzenia przekazywany do serial.opts ma trzy pola odzielone przecinkami: pierwsze jest schematem, drugie - numerem gniazda, trzecie - numerem urz±dzenia. Numer urz±dzenia mo¿e przyjmowaæ kilka warto¶ci dla kart, które obs³uguj± wieloportowe karty szeregowe, ale dla kart jednoportowych bêdzie to zawsze 0. Je¶li zwykle u¿ywasz wiêcej ni¿ jednego modemu PCMCIA, mo¿esz podaæ ró¿ne ustawienia oparte na numerze gniazda, jak tu: case "$ADDRESS" in *,0,*) # Opcje dla modemu w gnie¼dzie 0 LINK=/dev/modem0 ;; *,1,*) # Opcje dla modemu w gnie¼dzie 1 LINK=/dev/modem1 ;; esac Je¶li modem PCMCIA jest ju¿ skonfigurowany gdy Linux startuje, mo¿e zostaæ ¼le zidentyfikowany jako zwyk³y wbudowany port szeregowy. Jest to nieszkodliwe, chocia¿, kiedy sterowniki PCMCIA przejmuj± kontrolê nad modemem, bêdzie mu nadany inny slot. Najlepiej albo zmodyfikowaæ /var/run/stab albo u¿yæ /dev/modem ni¿ liczyæ na to, ¿e modem PCMCIA bêdzie zawsze mia³ przypisane to samo urz±dzenie. Je¶li skonfigurujesz twoje j±dro, aby ³adowa³o podstawowy sterownik do portów szeregowych jako modu³, musisz zmodyfikowaæ /etc/pcmcia/config, aby wskazaæ, ¿e ten modu³ ma byæ ³adowany. Zmieñ pozycjê urz±dzenia szeregowego tak: device "serial_cs" class "serial" module "char/serial", "serial_cs" 33..44..11.. DDiiaaggnnoozzoowwaanniiee pprroobblleemmóóww zz uurrzz±±ddzzeenniiaammii sszzeerreeggoowwyymmii.. · Czy twoja karta jest rozpoznawana jako modem? Sprawd¼ log systemowy i upewnij siê, ¿e cardmgr identyfikuje kartê poprawnie i startuje sterownik serial_cs. Je¶li nie, to mo¿liwe, ¿e musisz dodaæ jeszcze jedn± pozycjê do swojego pliku /etc/pcmcia/config tak, ¿e zostanie ona poprawnie zidentyfikowana. Wiêcej szczegó³ów w sekcji ``3.6''. · Czy modem zosta³ poprawnie skonfigurowany przez serial_cs? Znowu, sprawd¼ logi systemowe i poszukaj komunikatów pochodz±cych od sterownika serial_cs. Je¶li zobaczy¶ "register_serial() failed()", to mo¿esz mieæ konflikt portów IO. Inn± wskazówk± na konflikt jest zg³oszenie urz±dzenia 8250; wiêkszo¶æ nowoczesnych modemów PCMCIA powinna byæ identyfikowana jako UART 16550A. Je¶li s±dzisz, ¿e masz do czynienia z konfliktem portów, zmodyfikuj /etc/pcmcia/config.opts i wy³±cz obszar portów, który zosta³ zaalokowany dla modemu. · A mo¿e jest konflikt przerwañ? Je¶li log systemowy wygl±da na dobry, ale modem po prostu nie dzia³a, to spróbuj u¿yæ setserial, aby zmieniæ IRQ na 0 i sprawd¼ czy modem dzia³a. Wywo³anie takie wymusza na sterowniku u¿ycie wolniejszego trybu "_p_o_l_l_e_d" zamiast u¿ycia przerwañ. Je¶li to naprawia problem, to ca³kiem mo¿liwe, ¿e jakie¶ inne urz±dzenie w twoim systemie u¿ywa przerwania wybranego przez serial_cs. Powiniene¶ dodaæ liniê do pliku /etc/pcmcia/config.opts wy³±czaj±ce to przerwanie. · Je¶li modem zdaje siê dzia³aæ, ale bardzo, bardzo wolno, to jest prawie pewne, ¿e jest konflikt przerwañ. · Upewnij siê, ¿e twój problem, to rzeczywi¶cie problem z PCMCIA. Pomocne mo¿e byæ sprawdzenie, czy karta dzia³a pod DOS-em u¿ywaj±c sterownika dostarczonego przez sprzedawcê. Nie testuj tak¿e karty w skomplikowanych warunkach jak SLIP czy PPP dopóki nie jeste¶ pewnien, ¿e mo¿esz nawi±zywaæ proste po³±czenia. Je¶li proste rzeczy dzia³aj± a SLIP - nie, to problem jest ze SLIP-em, a nie PCMCIA. · Je¶li otrzymujesz komunikaty od j±dra wskazuj±ce na to, ¿e modu³ serial_cs nie mo¿e byæ za³adowany, to znaczy, ¿e j±dro nie ma obs³ugi dla urz±dzeñ szeregowych. Je¶li skompilowa³e¶ sterownik szeregowy jako modu³, to musisz zmodyfikowaæ /etc/pcmcia/config, aby zaznaczyæ, ¿e modu³ serial powinien byæ za³adowany przed serial_cs. 33..55.. AAddaapptteerryy PPCCMMCCIIAA SSCCSSII.. Wszystkie obecnie obs³ugiwane karty PCMCIA SCSI s± podobne w dzia³aniu do jednej z nastêpuj±cych kart: Qlogic, Adaptec AHA-152X albo Future Domain TMC-16x0. Sterowniki PCMCIA s± stworzone przez do³±czanie czê¶ci specyficznego dla PCMCIA kodu (w qlogic_cs.c, toaster_cs.c albo fdomain_cs.c) do normalnego sterownika SCSI dla Linux-a. Kiedy wykryty zostanie nowy kontroler SCSI, sterowniki do SCSI bêd± szukaæ urz±dzeñ. Sprawd¼ logi systemowe, aby upewniæ siê, ¿e twoje urz±dzenia zosta³y wykryte poprawnie. Nowym urz±dzeniom SCSI zostanie przypisany pierwszy wolny plik urz±dzenia SCSI. Pierwszy dysk SCSI bêdzie /dev/sda, pierwsza ta¶ma SCSI bêdzie /dev/st0, a pierwszy CD- ROM SCSI bêdzie /dev/scd0. Rdzeniowe sterowniki PCMCIA s± w stanie dowiedzieæ siê od j±dra 1.3.X i pó¼niejszego, które urz±dzenia SCSI s± pod³±czone do karty. Bêd± one wymienione w /var/run/stab, a skrypt konfiguracyjny SCSI /etc/pcmcia/scsi bêdzie wywo³any jeden raz dla ka¿dego do³±czonego urz±dzenia, aby je albo skonfigurowaæ albo wy³±czyæ. Skrypt domy¶lny nie robi nic, aby skonfigurowaæ urz±dzenia SCSI, ale poprawnie odmontuje systemy plików z urz±dzeñ SCSI kiedy karta zostanie usuniêta. Sterowniki PCMCIA z j±drem w wersji 1.2.X nie potrafi± automatycznie wykryæ , które urz±dzenia s± przypisane konkretnemu sterownikowi. W zamian za to, je¶li masz jedn± normaln± konfiguracjê urz±dzenia SCSI, mo¿esz wymieniæ te urz±dzenia w /etc/pcmcia/scsi.opts. Na przyk³ad: je¶li normalnie masz dysk i CD-ROM SCSI, u¿y³by¶: # Dla j±dra 1.2: lista urz±dzeñ do³±czonych SCSI_DEVICES="sda scd0" Adresy urz±dzeñ przekazywane do scsi.opts s± skomplikowane, z powodu du¿ej ilo¶ci urz±dzeñ, które mog± byæ do³±czone do kontrolera SCSI. Adresy sk³adaj± siê albo z sze¶ciu albo z siedmiu pól oddzielonych przecinkami: bie¿±cy schemat, typ urz±dzenia, numer gniazda, kana³ SCSI, ID, numer logicznej jednostki i opcjonalnie numer partycji. Typ urz±dzenia bêdzie jednym z: "sd" dla dysków, "st" dla ta¶m, "sr" dla CD-ROM-ów i "sg" dla ogólnych urz±dzeñ SCSI. W wiêkszo¶ci ustawieñ, kana³ SCSI oraz numer logicznej jednostki bêdzie 0. Dla urz±dzeñ dyskowych z kilkoma partycjami, scsi.opts zostanie najpierw wywo³any dla ca³ego urz±dzenia, z piêciopolowym adresem. Skrypt ten powinien ustawiæ w zmiennej PARTS listê partycji. Potem, scsi.opts zostanie wywo³any dla ka¿dej partycji, z d³u¿szymi - siedmiopolowymi adresami. Na przyk³ad: oto skrypt do konfiguracji urz±dzenia dyskowego pod SCSI ID = 3 z dwiema partycjami oraz CD-ROM pod SCSI ID = 6: case "$ADDRESS" in *,sd,*,0,3,0) # To urz±dzenie ma dwie partycje... PARTS="1 2" ;; *,sd,*,0,3,0,1) # Opcje dla partycji nr 1: # zaktualizuj /etc/fstab i zamontuj system plików ext2 na /usr1 DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y" FSTYPE="ext2" OPTS="" MOUNTPT="/usr1" ;; *,sd,*,0,3,0,2) # Opcje dla partycji nr 2: # zaktualizuj /etc/fstab i zamontuj system plików ext2 na /usr2 DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y" FSTYPE="msdos" OPTS="" MOUNTPT="/usr2" ;; *,sr,*,0,6,0) # Opcje dla CD-ROM-u ID = 6 PARTS="" DO_FSTAB="y" ; DO_FSCK="n" ; DO_MOUNT="y" FSTYPE="iso9660" OPTS="ro" MOUNTPT="/cdrom" ;; esac Je¶li twoje j±dro nie posiada sterownika "_t_o_p_-_l_e_v_e_l" (do dysku, ta¶my itp.) dla konkretnego urz±dzenia SCSI, wtedy urz±dzenie to nie zostanie skonfigurowane przez sterownik PCMCIA. Jako efekt uboczny, nazwa urz±dzenia w /var/run/stab bêdzie wygl±daæ mniej wiêcej tak: "sd#nnnn", gdzie "nnnn" jest czterocyfrow± liczb± szesnastkow±. Zdarza siê to, je¶li cardmgr nie jest w stanie przet³umaczyæ ID urz±dzenia SCSI na odpowiadaj±c± mu nazwê urz±dzenia Linux-owego. Mo¿liwe jest zmodularyzowanie sterowników "top-level" do SCSI, tak aby by³y ³adowane tylko wtedy kiedy zostanie wykryty kontroler SCSI. Aby tak zrobiæ, musisz zmodyfikowaæ /etc/pcmcia/config, aby poinformowaæ cardmgr, które dodatkowe modu³y musz± byæ za³adowane kiedy dany kontroler jest konfigurowany. Na przyk³ad: device "aha152x_cs" class "scsi" module "scsi/scsi_mod", "scsi/sd_mod", "aha152x_cs" Taka zawarto¶æ pliku spowodowa³aby za³adowanie rdzennego modu³u SCSI oraz modu³u sterownika "_t_o_p_-_l_e_v_e_l" do dysków przed ³adowaniem normalnego modu³u sterownika PCMCIA. Skrypt Configure nie wykryje automatycznie zmodularyzowanych sterowników SCSI, tak wiêc bêdziesz musia³ w³±czyæ obs³ugê SCSI rêcznie u¿ywaj±c opcji konfiguracyjnych. Zawsze w³±czaj swoje urz±dzenia przed w³±czeniem laptopa, albo przed w³o¿eniem karty kontrolera, tak aby szyna SCSI zosta³a poprawnie zakoñczona podczas konfiguracji kontrolera. B±d¼ tak¿e bardzo ostro¿ny przy wyjmowaniu kontrolera SCSI. Przed wyjêciem karty upewnij siê, ¿e wszystkie urz±dzenia do niej przydzielone zosta³y odmontowane i wy³±czone. Najlepiej przed wyjêciem karty skorzystaæ z programu cardctl albo cardinfo i za¿±daæ usuniêcia karty z systemu. W chwili obecnej wszystkie urz±dzenia SCSI powinny byæ w³±czane przed w³o¿eniem karty sterownika SCSI i powinny pozostaæ pod³±czone do momentu wyjêcia karty sterownika lub wy³±czenia laptopa. Korzystanie z tych kart niesie za sob± potencjalne komplikacje nieznane w przypadku korzystania ze zwyk³ych sterowników ISA. Szyna SCSI przenosi sygna³ "termination power" niezbêdny do prawid³owego dzia³ania zwyk³ych pasywnych terminatorów SCSI. Sterowniki SCSI standardu PCMCIA nie dostarczaj± sygna³u "power termination", je¶li jest on wymagany musi zostaæ dostarczony przez urz±dzenie zewnêtrzne. Niektóre zewnêtrzne urz±dzenia SCSI mog± zostaæ skonfigurowane w taki sposób, aby dostarcza³y wspomnianego sysgna³u. Inne, jak np. Zip Drive czy Syquest EZ-Drive u¿ywaj± aktywnych terminatorów, przez co nie s± zale¿ne od sygna³u podawanego na szynie SCSI. W niektórych przypadkach mo¿e okazaæ siê konieczne skorzystanie ze specjalnego bloku terminatora, np. APS SCSI Sentry 2, który posiada niezale¿ne, zewnêtrzne ¼ród³o zasilania. Konfiguruj±c ³añcuch urz±dzeñ SCSI musisz sobie zdawaæ sprawê, które z nich wymagaj± lub dostarczaj± sygna³ "power termination". Kontroler Adaptec APA-460 SlimSCSI nie jest obs³ugiwany. Kartê tê sprzedawano oryginalnie pod nazw± Trantor, a kiedy Adaptec po³±czy³ siê z Trantor-em, kontynuowano sprzeda¿ Trantora z nazw± Adaptec. APA-460 nie jest kompatybilny z jakimkolwiek istniej±cym sterownikiem Linux-owym. Nie jestem pewien jak trudno by³oby napisaæ sterownik; nie s±dzê, ¿eby kto¶ by³ w stanie wyci±gn±æ jakiekolwiek informacje od Adaptec-a. (Nieobs³ugiwany) Trantor SlimSCSI mo¿e zostaæ zidentyfikowany nastêpuj±co: Trantor / Adaptec APA-460 SlimSCSI FCC ID: IE8T460 Shipped with SCSIworks! driver software (Obs³ugiwany) Adaptec SlimSCSI mo¿e zostaæ zidentyfikowany nastêpuj±co: Adaptec APA-1460 SlimSCSI FCC ID: FGT1460 P/N: 900100 Shipped with EZ-SCSI driver software 33..55..11.. DDiiaaggnnoozzoowwaanniiee pprroobblleemmóóww zz kkaarrttaammii SSCCSSII.. · Przy sterowniku aha152x_cs (u¿ywanym przez Adaptec-a, New Media i kilka innych) ¼ród³em czêstych problemów w napêdach ta¶m wydaje siê byæ obs³uga od³±czania/pod³±czania SCSI. Aby wy³±czyæ, tê w³a¶ciwo¶æ dodaj nastêpuj±c± liniê do pliku /etc/pcmcia/config.opts: module "aha152x_cs" opts "reconnect=0" · Je¶li skompilowa³e¶ obs³ugê SCSI jako modu³ (CONFIG_SCSI to "m"), podczas konfiguracji PCMCIA, musisz wyra¼nie zaznaczyæ, ¿e chcesz, aby sterownik zosta³ skompilowany. Musisz zmodyfikowaæ plik /etc/pcmcia/config, aby ³adowaæ modu³ SCSI przed odpowiednim sterownikiem *_cs. 33..66.. KKaarrttyy ppaammiiêêccii PPCCMMCCIIAA.. Sterownik memory_cs obs³uguje wszystkie typy kart pamiêci, jak równie¿ dostarcza bezpo¶redniego dostepu do obszaru adresowego pamiêci PCMCIA dla kart, które maj± inne funkcje. Po za³adowaniu tworzy kombinacjê urz±dzeñ znakowych i blokowych. Przeczytaj stronê podrêcznika na temat modu³ów, aby dowiedzieæ siê wiêcej o schemacie nazewnictwa urz±dzeñ. Urz±dzenia blokowe s± u¿ywane do dostêpu a'la dysk (tworzenie i montowanie systemów plików itp.) Urz±dzenia znakowe s³u¿± do bezpo¶redniego (raw) niebuforowanego czytania i pisania do jakiego¶ miejsca. Adres urz±dzenia przekazany do memory.opts sk³ada siê z dwóch pól: schematu i numeru gniazda. Opcje odnosz± siê do pierwszej zwyk³ej partycji pamiêci na odpowiedniej karcie pamiêci. Oto przyk³ad skryptu, który automatycznie montuje karty pamiêci w zale¿no¶ci od z³±cza, w które zostan± karty w³o¿one: case "$ADDRESS" in *,0,0) # Zamontuj systemy plików, ale nie uaktualniaj /etc/fstab DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y" FSTYPE="ext2" ; OPTS="" MOUNTPT="/mem0" ;; *,1,0) # Zamontuj systemy plików, ale nie uaktualniaj /etc/fstab DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y" FSTYPE="ext2" ; OPTS="" MOUNTPT="/mem0" ;; esac Niektóre starsze karty pamiêci i wiêkszo¶æ prostych statycznych kart RAM nie posiadaj± "Card Information Structure" (CIS), która jest schematem u¿ywanym przez karty PCMCIA do identyfikowania siê. Normalnie cardmgr za³o¿y, ¿e ka¿da karta, w której brakuje owej struktury jest prost± kart± pamiêci i za³aduje sterownik memory_cs. I tak, czêstym skutkiem ubocznym ogólnego identyfikowania kart jest identyfikacja innego typu kart jako karty pamiêci. Sterownik memory_cs u¿ywa heurystyki, aby zgadn±æ pojemno¶æ tych kart. Heurystyka nie dzia³a jednak dla kart zabezpieczonych przed zapisem i mo¿e czyniæ b³êdy tak¿e w innych przypadkach. Je¶li karta zosta³a ¼le zidentyfikowana, jej rozmiar powinien byæ wyra¼nie podany podczas u¿ywania takich poleceñ jak dd czy mkfs. 33..66..11.. UU¿¿yywwaanniiee kkaarrtt ppaammiiêêccii ""ffllaasshh"".. Adres urz±dzenia przekazywany do ftl.opts sk³ada siê z trzech lub czterech pól: schematu, numeru gniazda, numeru regionu i opcjonalnie numeru partycji. Wiêkszo¶æ kart "flash" ma tylko jeden region pamiêci "flash", wiêc numerem regionu zwykle bêdzie zero. Aby u¿yæ karty pamiêci "flash" jako zwyk³ego urz±dzenia blokowego jak dysk, stwórz najpierw partycjê "flash translation layer" na tym urz±dzeniu poleceniem ftl_format: ftl_format -i /dev/mem0c0c Zauwa¿, ¿e polecenie to uzyskuje dostêp do karty przez bezpo¶redni interfejs pamiêci karty. Raz sformatowana karta mo¿e byæ u¿ywana jako zwyk³e urz±dzenie blokowe przy pomocy sterownika ftl_cs. Na przyk³ad: mke2fs /dev/ftl0c0 mount -t ext2 /dev/ftl0c0 /mnt Nazewnictwo dla urz±dzeñ FTL jest trochê pokrêcone. Poboczne liczby urz±dzeñ maj± trzy czê¶ci: numer karty, numer regionu na tej karcie i opcjonalnie partycjê w tym regionie. Region mo¿e byæ traktowany jako pojedyncze urz±dzenie blokowe bez tablicy partycji (jak dyskietka) albo mo¿na go podzieliæ na partycje tak jak dysk twardy. Urz±dzenie "ftl0c0" jest kart± 0 o numerze regionu 0 i ca³ym regionem. Urz±dzenia od "ftl0c0p1" do "ftl0c0p4" s± g³ównymi partycjami 1 do 4 je¶li region zosta³ podzielony. S± dwa g³ówne formaty dla kart pamiêci flash: styl "flash translation layer", i styl "Microsoft Flash File System". Format FTL jest ogólnie bardziej elastyczny poniewa¿ pozwala na u¿ycie ka¿dego zwyk³ego wysokopoziomowego systemu plików (ext2, ms-dos itp.) na kartach pamiêci "flash" tak jakby by³y one na zwyk³ym urz±dzeniu dyskowym. FFS jest ca³kiem odmiennym systemem plików. Linux nie umie w tej chwili ob³ugiwaæ kart sformatowanych w tym systemie. 33..77.. KKaarrttyy PPCCMMCCIIAA nnaappêêddóóww AATTAA//IIDDEE.. Obs³uga napêdów ATA/IDE wymaga jadra 1.3.72 lub nowszego. Specyficzna dla PCMCIA czê¶æ sterownika to fixed_cs. Pamiêtaj ¿eby u¿ywaæ cardctl albo cardinfo do wy³±czania karty ATA/IDE przed wyjêciem jej, poniewa¿ sterownik nie jest odporny na "gor±ce zmiany". Adresy urz±dzenia przekazywane do fixed.opts sk³adaj± siê z trzech albo czterech pól: bie¿±cy schemat, numer gniazda, numer seryjny napêdu i opcjonalny numer partycji. Tak samo jak w przypadku urz±dzeñ SCSI, fixed.opts jest najpierw wywo³ywany dla ca³ego urz±dzenia. Je¶li fixed.opts zwróci listê partycji w zmiennej PARTS, skrypt zostanie wtedy wywo³any dla ka¿dej partycji. Oto przyk³ad pliku fixed.opts, który montuje pierwsz± partycjê jakiejkolwiek karty ATA/IDE na /mnt. case "$ADDRESS" in *,*,*) PARTS="1" ;; *,*,*,1) DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y" FSTYPE="msdos" OPTS="" MOUNTPT="/mnt" ;; esac Zauwa¿, ¿e domy¶lny plik fixed.opts posiada te linie, ale s± one w komentarzu. Je¶li chcesz, mo¿esz mieæ oddzielne konfiguracje dla konkretnych kart oparte na ich numerach seryjnych. Aby odszukaæ numer seryjny napêdu, u¿yj narzêdzia ide_info. Wtedy czê¶æ fixed.opts mo¿e wygl±daæ tak: case "$ADDRESS" in *,*,Z4J60542) # To s± moje rzeczy DOS-owe PARTS="1" ;; *,*,Z4J60542,1) DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y" FSTYPE="msdos" OPTS="" MOUNTPT="/mnt" ;; esac 33..77..11.. DDiiaaggnnoozzoowwaanniiee pprroobblleemmóóww zz aaddaapptteerraammii AATTAA//IIDDEE.. · Niektóre napedy IDE zaburzaj± specyfikacjê PCMCIA przez ¿±danie d³u¿szego czasu na "_r_o_z_k_r_ê_c_e_n_i_e _s_i_ê" ni¿ maksymalny dozwolony czas na setup. Aby u¿ywaæ tych kart za³aduj modu³ pcmcia_core z opcj±: CORE_OPTS="unreset_delay=400" · Aby u¿ywaæ urz±dzenia ATA/IDE CD-ROM, twoje j±dro musi byæ skompilowane z w³±czon± opcj± CONFIG_BLK_DEV_IDECD. Bêdzie to zwykle przypadek dla standardowych j±der, chocia¿ jest to co¶ o czym¶ powiniene¶ wiedzieæ je¶li kompilujesz j±dro z w³asn± konfiguracj±. 33..88.. KKaarrttyy wwiieellooffuunnkkccyyjjnnee.. Od j±dra w wersji 1.3.73 pojedyncze przerwanie mo¿e byæ dzielone miêdzy kilka sterowników jak sterownik szeregowy i ethernetu. Je¶li u¿ywasz wielofunkcyjnej karty z nowszym j±drem, to wszystkie funkcje tej karty s± dostêpne bez potrzeby prze³adowywania sterowników. Symultaniczne u¿ycie dwóch funkcji karty wymaga trochê sprytu i ró¿ni sprzedawcy sprzêtu zaimplementowali dzielenie przerwañ na swój, niekompatybilny (i czasem nieudokumentowany) sposób. Sterowniki do niektórych kart (Ositech Jack of Diamonds, 3Com 3c562, Linksys) udostêpniaj± poprawnie symultaniczno¶æ, ale inne (szczególnie Megahertz) - nie. Wcze¶niejsze j±dra nie obs³ugiwa³y dzielenia przerwañ pomiêdzy ró¿ne sterowniki urz±dzeñ, wiêc jest niemo¿liwe skonfigurowanie kart modemu i ethernetu do dzia³ania symultanicznego. Sterowniki ethernetowy i modemowy s± ³adowane jednocze¶nie automatycznie. Chocia¿ sterownik ethernetowy przejmuje przerwanie domy¶lnie. Aby u¿yæ modemu mo¿esz usun±æ sterownik ethernetowy z pamiêci i zrekonfigurowaæ port szeregowy czym¶ takim: ifconfig eth0 down rmmod 3c589_cs setserial /dev/modem autoconfig auto_irq setserial /dev/modem Drugie polecenie setserial powinno zweryfikowaæ czy port zosta³ skonfigurowany tak, aby u¿yæ przerwania poprzednio u¿ywanego przez sterownik ethernetowy. 33..99.. KKiieeddyy mmoo¿¿nnaa bbeezzppiieecczznniiee ww³³oo¿¿yyææ aallbboo wwyyjj±±ææ kkaarrttêê PPCCMMCCIIAA ?? Teoretycznie mo¿esz wk³adaæ i wyjmowaæ karty PCMCIA w ka¿dym momencie. Chcocia¿, generalnie dobrze jest nie wyjmowaæ karty je¶li jest ona akurat u¿ywana przez jak±¶ aplikacjê. J±dra starsze ni¿ 1.1.77 czêsto zawiesza³yby siê podczas wyjmowania kart szeregowych lub modemowych, ale to powinno ju¿ byæ naprawione. 33..1100.. CCaarrdd SSeerrvviicceess ii AAddvvaanncceedd PPoowweerr MMaannaaggeemmeenntt.. Pakiet Card Services mo¿e zostaæ skompilowany z obs³ug± APM (Advanced Power Management) je¶li zainstalowa³e¶ ten pakiet w swoim systemie. APM jest do³±czony do j±der 1.3.46 i nowszych. Opiekunem tego pakietu jest obecnie Rick Faith (_f_a_i_t_h_@_c_s_._u_n_c_._e_d_u), a narzêdzia do APM mo¿na uzyskaæ z ftp.cs.unc.edu. Modu³y PCMCIA zostan± skonfigurowane automatycznie pod wzglêdem APM je¶li na twoim systemie zostanie wykryta wersja kompatybilna. Aby poprawnie zakoñczyæ dzia³anie i ponownie wystartowaæ karty PCMCIA, mo¿esz wykonaæ cardctl suspend przed zawieszeniem twojego laptopa i cardctl resume po przywróceniu go do pracy bez zmian w APM. Niezadzia³a to jednak z modemem PCMCIA, który jest w³a¶nie u¿ywany, poniewa¿ sterownik szeregowy nie jest w stanie zachowaæ i odtworzyæ parametrów operacyjnych modemu. APM wydaje siê byæ niepewne na niektórych systemach. Je¶li masz problemy z APM i PCMCIA w twoim systemie, spróbuj zawêziæ problem do jednego albo drugiego pakietu zanim wy¶lesz list z raportem o b³êdzie. Niektóre sterowniki, szczególnie sterowniki PCMCIA SCSI, nie mog± siê odtworzyæ ze stanu zawie¶/odtwórz. Kiedy u¿ywasz karty PCMCIA SCSI, u¿yj cardctl eject zanim zawiesisz system. 33..1111.. JJaakk mmaamm wwyy³³±±cczzyyææ kkaarrttêê PPCCMMCCIIAA bbeezz wwyyjjmmoowwaanniiaa jjeejj ?? U¿yj polecenia cardctl albo cardinfo. Polecenie cardctl suspend # zawiesi jedno gniazdo, i wy³±czy jego zasilanie. Odpowiednie polecnie resume obudzi kartê w stan poprzedni. 33..1122.. JJaakk uussuuwwaamm sstteerroowwnniikkii PPCCMMCCIIAA zz ppaammiiêêccii ?? Aby usun±æ ca³y pakiet PCMCIA, uruchomrc.pcmcia tak: /etc/rc.d/rc.pcmcia stop Uruchomienie tego skryptu zajmie kilka sekund, poniewa¿ daje on czas wszystkim sterownikom-klientom na poprawne zakoñczenie dzia³ania. Je¶li jakie¶ urz±dzenie PCMCIA jest akurat u¿ywane, zakoñczenie bêdzie niekompletne, i niektóre modu³y j±dra mog± nie zostaæ usuniête. Aby tego unikn±æ u¿yj cardctl eject, aby zamkn±æ wszystkie gniazda przed uruchomieniem rc.pcmcia. Status wyj¶ciowy polecenia cardctl okre¶li czy jakie¶ gniazdo nie mog³o byæ zamkniête. 44.. ZZaaaawwaannssoowwaannee tteemmaattyy.. 44..11.. AAllookkooaaccjjaa zzaassoobbóóww ddllaa uurrzz±±ddzzeeññ PPCCMMCCIIAA.. Teoretycznie nie powinno mieæ znaczenia które przerwanie jest alokowane dla którego urz±dzenia tak d³ugo jak dwa urz±dzenia nie s± skonfigurowane, aby u¿ywaæ tego samego przerwania. W pliku /etc/pcmcia/config.opts znajdziesz miejsce na wy³±czenie przerwañ, które s± u¿ywane przez inne urz±dzenia ni¿ PCMCIA. Podobnie, nie ma sposobu, aby bezpo¶rednio podaæ adresy IO, które maj± byc u¿ywane przez karty PCMCIA. Plik /etc/pcmcia/config.opts pozwala na podanie obszaru portów dostêpnego dla wszystkich sterowników PCMCIA, albo wy³±czyæ obszary, które powoduj± konflikty. Po zmodyfikowaniu pliku /etc/pcmcia/config.opts mo¿esz zrestartowaæ cardmgr poleceniem "kill -HUP". Przerwanie u¿ywane do monitorowania statusu zmian karty jest wybierane przez modu³ sterownika niskiego poziomu (i82365 lub tcic) przed zinterpretowaniem pliku /etc/pcmcia/config przez cardmgr, wiêc plik ten nie ma wp³ywu na wybór tego w³a¶nie przerwania. Aby ustawiæ to przerwanie u¿yj opcji cs_irq= podczas ³adowania sterownika gniazd, przez ustawienie zmiennej PCIC_OPTS w pliku /etc/rc.d/rc.pcmcia. Wszystkie sterowniki kart klientów maj± parametr irq_list do podawania, które przerwania mog± próbowaæ one zaalokowaæ. Te opcje powinny byæ ustawione w pliku /etc/pcmcia/config. Np.: device "serial_cs" module "serial_cs" opts "irq_list=8,12" ... wymusi³oby u¿ycie tylko przerwañ IRQ 8 i 12. Nie zale¿nie od usatwieñ irq_list, Card Services nigdy nie zaalokuje przerwania, które jest ju¿ u¿ywane przez inne urz±dzenie albo przerwania, które jest wy³±czone w pliku konfiguracyjnym. 44..22.. JJaakk zzrroobbiiææ ddwwiiee rróó¿¿nnee kkoonnffiigguurraaccjjee uurrzz±±ddzzeeññ ddoo ddoommuu ii pprraaccyy ?? Jest to ca³kiem proste u¿ywaj±c schematów PCMCIA. U¿yj dwóch schematów konfiguracyjnych o nazwie "dom" i "praca". Oto przyk³ad skryptu network.opts z konkretnymi ustawieniami dla ró¿nych schematów: case "$ADDRESS" in praca,*,*,*) # definicje dla kart sieciowych w pracy ... ;; dom,*,*,*|default,*,*,*) # definicje dla kart sieciowych w domu ... ;; esac Pierwsz± czê¶ci± adresu urz±dzenia PCMCIA jest zawsze schemat konfiguracyjny. W tym przyk³adzie, drugi przypadek w "case" wybierze oba schematy: domowy i domy¶lny. Wiêc je¶li schemat nie jest ustawiony, domy¶lnym bêdzie schemat domowy. Teraz, aby wybraæ pomiêdzy tymi dwoma ustawieniami uruchom albo: cardctl scheme dom albo cardctl scheme praca Polecenie cardctl wy³±cza wszystkie twoje karty i inicjuje je ponownie. Polecenie to mo¿e byæ bezpiecznie u¿ywane, nie zale¿nie od tego czy system PCMCIA jest za³adowany czy nie, ale polecenie to mo¿e siê nie powie¶æ je¶li u¿ywasz innych urz±dzeñ PCMCIA w tym samym czasie (nawet je¶li ich konfiguracje nie ró¿ni± siê wyra¼nie od ustawieñ schematów). Aby zobaczyæ bie¿±ce ustawienia schematu PCMCIA uruchom: cardctl scheme 44..33.. SSttaarrttoowwaanniiee zz uurrzz±±ddzzeenniiaa PPCCMMCCIIAA.. Posiadanie g³ównego systemu plików na urz±dzeniu PCMCIA jest trochê k³opotliwe, bo system PCMCIA na Linux-a nie zosta³ przystosowany do w³±czenia do j±dra. G³ówne sk³adniki, ³adowalne modu³y i uruchamiany w trybie u¿ytkownika demon cardmgr, zale¿± od ju¿ dzia³aj±cego systemu. Mo¿liwo¶æ startu przy pomocy "initrd" pozwala obej¶æ ten problem pozwalaj±c Linux-owi wystartowaæ u¿ywaj±c tymczasowego ramdysku jako minimalnego obrazu katalogu g³ównego, za³adowaæ sterowniki i potem ponownie zamontowaæ inny system plików jako katalog g³ówny. Tymczasowy katalog g³ówny mo¿e skonfigurowaæ urz±dzenia PCMCIA i potem zamontowaæ urz±dzenie PCMCIA jako katalog g³ówny. Niektóre dystrybucje Linux-a pozwalaj± na instalacjê na urz±dzeniu pod³±czonym do kontrolera SCSI PCMCIA, jako niezamierzony skutek uboczny mo¿liwo¶ci instalacji z CD-ROM-ów pod³±czonych do SCSI PCMCIA. Aczkolwiej w tej chwili ¿adne narzêdzie instalacyjne dla Linux-a nie pozwala na konfiguracjê odpowiedniego "initrd" do startu z g³ównym systemem plików na PCMCIA. Dlatego te¿ konfiguracja takiego systemu wymaga u¿ycia drugiego Linux-a, aby stworzyæ obraz "initrd". Je¶li nie masz dostêpu do drugiego Linux-a, to inn± mo¿liwo¶ci± jest tymczasowe zainstalowanie minimalnego Linux-a na napêdzie nie bêd±cym urz±dzeniem PCMCIA, stworzenie obrazu initrd i zainstalowanie na PCMCIA. W Bootdisk-HOWTO znajduj± siê ogólne informacje jak zrobiæ dyskietki startowe, ale nic konkretnego na temat initrd. G³ówny dokument opisuj±cy initrd zawarty jest w ostatnich ¼ród³ach j±dra Linux-a w katalogu linux/Documentation/initrd.txt. Zanim zaczniesz powiniene¶ to przeczytaæ. Pomocna jest te¿ znajomo¶æ lilo. U¿ycie initrd wymaga tak¿e w³±czonych opcji CONFIG_BLK_DEV_RAM i CONFIG_BLK_DEV_INITRD w j±drze. 44..33..11.. SSkkrryypptt--ppoommooccnniikk ppcciinniittrrdd.. Skrypt pcinitrd tworzy podstawowy obraz initrd do startowania z g³ównej partycji na PCMCIA. W obrazie tym zawarte s±: minimalna struktura katalogów, potrzebne pliki urz±dzeñ, kilka programów, biblioteki dzielone i zbiór sterowników-modu³ów PCMCIA. Podczas uruchamiania pcinitrd podajesz sterowniki-modu³y, które maj± byæ zawarte w obrazie. G³ówne sk³adniki PCMCIA, pcmcia_core i ds s± do³±czane automatycznie. Na przyk³ad powiedzmy, ¿e twój laptop u¿ywa kontrolera PCMCIA kompatybilnego z i82365 i chcesz startowaæ Linux-a z g³ównym systemem plików na dysku twardym przy³±czonym do kontrolera Adpatec SlimSCSI. Mo¿esz stworzyæ odpowiedni obraz przy pomocy; pcinitrd -v initrd pcmcia/i82365.o pcmcia/aha152x_cs.o Aby ustawiæ sobie start initrd wedle swojego uznania, mo¿esz zamontowaæ obraz u¿ywaj±c urz±dzenia "loopback" poleceniem: mount -o loop -t ext2 initrd /mnt i potem zmodyfikuj skrypt linuxrc. Pliki konfiguracyjne PCMCIA zostan± zainstalowane w obrazie w katalogu /etc i tak¿e mog± byæ ustawione wedle w³asnego uznania. Wiêcej informacji znajdziesz w podrêczniku 'man pcinitrd'. 44..33..22.. TTwwoorrzzeenniiee ddyysskkiieettkkii ssttaarrttoowweejj zz iinniittrrdd.. Po stworzeniu obrazu skryptem pcinitrd, mo¿esz stworzyæ dyskietkê startow± kopiuj±c j±dro, skompresowany obraz initrd i kilka pomocniczych programów dla lilo na czyst± dyskietkê. W nastêpuj±cym przyk³adzie zak³adamy, ¿e g³ówny system plików znajduje siê na /dev/sda1: mke2fs /dev/fd0 mount /dev/fd0 /mnt mkdir /mnt/etc /mnt/boot /mnt/dev cp -a /dev/fd0 /dev/sda1 /mnt/dev cp [j±dro] /mnt/vmlinuz gzip < [obraz-initrd] > /mnt/initrd Stwórz /mnt/etc/lilo.conf z tak± zawarto¶ci±: boot=/dev/fd0 compact image=/vmlinuz label=linux initrd=/initrd read-only root=/dev/sda1 Na koñcu uruchom: lilo -r /mnt Je¶li lilo uruchomione jest z parametrem -r, wszystkie akcje wykonywane s± z podanym katalogiem jako g³ówny system plików. Powodem utworzenia plików urz±dzeñ w /mnt/dev by³o to, ¿e lilo nie bêdzie w stanie u¿yæ plików w /dev kiedy bêdzie uruchomione z alternatywnym katalogiem g³ównym. 44..33..33.. IInnssttaallaaccjjaa oobbrraazzuu iinniittrrdd nnaa nnaappêêddaacchh bbeezz LLiinnuuxx--aa.. Jednym z popularnych zastosowañ initrd s± systemy gdzie wewnêtrzny dysk twardy jest dedykowany dla innego systemu operacyjnego. J±dro Linux-a i obraz initrd mog± zostaæ umieszczone na partycji bez Linux-a a lilo lub LOADLIN mog± zostaæ skonfigurowane, aby ³adowa³y Linux-a z tych obrazów. Zak³±daj±c, ¿e twoje j±dro jest skonfigurowane na odpowiednie urz±dzenie z g³ównym systemem plików i masz stworzony obraz initrd na innym Linux-ie, najprostszym sposobem aby zacz±æ, to wystartowanie Linux-a u¿ywaj±c LOADLIN-a w ten sposób: LOADLIN <kernel> initrd=<initrd-image> Jak ju¿ mo¿esz wystartowaæ Linux-a na swojej maszynie, mo¿esz wtedy zainstalowaæ lilo aby umo¿liwiæ startowanie Linux-a bezpo¶rednio. Na przyk³ad powiedzmy, ¿e /dev/hda1 jest partycj± bez Linux-a i /mnt mo¿na u¿yæ jako katalog do montowania. najpierw utwórz podkatalog na partycji docelowej dla plików Linux-a: mount /dev/hda1 /mnt mkdir /mnt/linux cp [obraz-j±dra] /mnt/linux/vmlinuz cp [obraz-initrd] /mnt/linux/initrd W tym przyk³adzie, powiedzmy, ¿e /dev/sda1 jest partycj± na której ma siê znale¼æ g³ówny system plików, dysk twardy SCSI zamontowany przez kontroler SCSI PCMCIA. Aby zainstalowaæ lilo, stwórz plik lilo.conf z tak± zawarto¶ci±: boot=/dev/hda map=/mnt/linux/map compact image=/mnt/linux/vmlinuz label=linux root=/dev/sda1 initrd=/mnt/linux/initrd read-only other=/dev/hda1 table=/dev/hda label=windows Linia boot= informuje, ¿eby zainstalowaæ program ³aduj±cy system do Master Boot Record podanego urz±dzenia. Linia root= identyfikuje konkretny g³ówny system plików, który ma zostaæ u¿yty po za³adowaniu obrazu initrd, parametr ten mo¿e byæ niepotrzebny je¶li j±dro jest ju¿ skonfigurowane w ten sposób. Sekcja other= u¿ywana jest do opisania innego systemu operacyjnego zainstalowanego na /dev/hda1. Aby zainstalowaæ lilo w tym przypadku u¿yj: lilo -C lilo.conf Zauwa¿, ¿e w tym przypadku plik lilo.conf u¿ywa scie¿ek absolutnych, które zawieraj± /mnt. Zrobi³em tak w przyk³adzie poniewa¿ docelowy system plików mo¿e nie umieæ tworzyæ urz±dzeñ Linux-a dla parametrów boot= i root=. 55.. JJaakk rraaddzziiææ ssoobbiiee zz nniieeoobbss³³uuggiiwwaannyymmii kkaarrttaammii.. 55..11.. KKoonnffiigguurraaccjjaa nniieeoobbss³³uuggiiwwaannyycchh kkaarrtt.. Zak³adaj±c, ¿e twoja karta jest obs³ugiwana przez istniej±cy sterownik, wszystko co trzeba zrobiæ, to dodaæ pozycjê do /etc/pcmcia/config, która poinformuje cardmgr jak zidentyfikowaæ kartê i który(e) sterownik(i) do³±czyæ do tej karty. Wiêcej informacji na temat formatu pliku konfiguracyjnego na stronie podrêcznika "man" na temat pcmcia. Je¶li w³o¿ysz nieznan± kartê, to cardmgr z regu³y zapisze trochê informacji identyfikacyjnych w logu systemowym, który mo¿e zostaæ u¿yty do konfiguracji. Oto przyk³ad raportu cardmgr w /usr/adm/messages na temat nieznanej karty: cardmgr[460]: unsupported card in socket 1 cardmgr[460]: version info: "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM" Odpowiadaj±ca pozycja konfiguracyjna w /etc/pcmcia/config wygl±da³oby tak: card "Megahertz XJ2288 V.34 Fax Modem" version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM" bind "serial_cs" Mo¿esz u¿yæ "*", aby oznaczyæ ³añcuchy, które nie musz± siê dok³adnie zgadzaæ, jak np. numery wersji. Kiedy robisz now± pozycjê konfiguracyjn±, zwróæ uwagê na to, ¿eby dok³adnie skopiowaæ ³añcuchy, zachowuj±c wszelkie du¿e i ma³e litery oraz przerwy (spacje). Upewnij siê tak¿e, ¿e pozycja konfiguracyjna ma tak± sam± ilo¶æ ³añcuchów jak to stwierdzono w logach. Po tym jak zmodyfikujesz /etc/pcmcia/config, mo¿esz poinformowaæ cardmgr, aby prze³adowa³ plik konfiguracyjny: kill -HUP `cat /var/run/cardmgr.pid` Je¶li uda ci siê ustawiæ jak±¶ pozycjê konfiguracyjn± dla nowej karty, przy¶lij mi kopiê proszê, tak ¿ebym móg³ j± do³±czyæ do standardowego pliku konfiguracyjnego. 55..22.. JJaakk mmaamm ddooddaaææ oobbss³³uuggêê ddllaa kkaarrttyy kkoommppaattyybbiillnneejj zz NNEE22000000 ?? Najpierw sprawd¼, czy karta nie zosta³a ju¿ rozpoznana przez cardmgr. Niektóre karty nie wymienione w SUPPORTED.CARDS s± wersjami OEM kart obs³ugiwanych. Je¶li znajdziesz taka kartê, daj mi znaæ, ¿ebym móg³ j± dodaæ do listy. Je¶li twoja karta nie zosta³a rozpoznana, postêpuj zgodnie z instrukcjami w sekcji ``3.6'', aby stworzyæ pozycjê konfiguracyjn± dla twojej karty oraz powi±¿ swoj± kartê ze sterownikiem pcnet_cs. Zrestartuj cardmgr, aby u¿yæ nowego zaktualizowanego pliku konfiguracyjnego. Je¶li sterownik pcnet_cs twierdzi, ¿e nie mo¿e okre¶liæ adresu sprzêtowego twojej karty ethernet-owej, to zmodyfikuj nowy plik konfiguracyjny, aby powi±zaæ kartê ze sterownikiem karty pamiêci - memory_cs. Zrestartuj cardmgr, aby u¿yæ nowego zaktualizowanego pliku konfiguracyjnego. Bêdziesz musia³ znaæ adres sprzêtowy swojej karty sieciowej. Adres ten jest seri± dwucyfrowych szesnastkowych liczb, czêsto wydrukowanych na karcie. Je¶li go tam nie ma, mo¿esz u¿yæ sterownika DOS-owego, aby go wy¶wietliæ. W ka¿dym razie, jak go ju¿ znasz to uruchom: dd if=/dev/mem0a count=20 | od -Ax -t x1 i poszukaj linijki z twoim adresem. Tylko parzyste bajty s± zdefiniowane, wiec zignoruj bajty nieparzyste w wyniku. Zapisz szesnastkowy offset pierwszego bajtu adresu. Teraz wyedytuj modules/pcnet_cs.c i znajd¼ strukturê hw_info. Bêdziesz musia³ utworzyæ now± pozycjê dla twojej karty. Pierwsze pole jest offsetem pamiêci. Nastêpne trzy pola to pierwsze trzy bajty adresu sprzêtowego. Ostatnie pole zawiera flagi dla konkretnych cech karty; na pocz±tek spróbuj ustawiæ tu 0. Po edycji pcnet_cs.c, skompiluj i zainstaluj nowy modu³. Zmodyfikuj jeszcze raz /etc/pcmcia/config i zmieñ powi±zania karty z memory_cs na pcnet_cs. Postêpuj zgodnie z instrukacjami dla prze³adowywania pliku konfiguracyjnego i wszystko powinno byæ ustawione. Przy¶lij mi proszê kopie twoich nowych pozycji konfiguracyjnych i hw_info. Je¶li nie mo¿esz znale¼æ adresu sprzêtowego swojej karty w formie szesnastkowej, ostateczn± metod± mo¿e okazaæ siê jawne podanie adresu w czasie inicjacji modu³u pcnet_cs. Popraw plik /etc/pcmcia/config dodaj±c opcjê hw_addr=: module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03" Oczywi¶cie zamiast podanego adresu podaj adres swojej karty w odpowiednim miejscu. 55..33.. IInntteerrffeejjss PPCCMMCCIIAA ddoo ddyysskkiieetteekk.. Pakiet ten nie obs³uguje jeszcze interfejsów u¿ywanych przez Compaq Aero i kilka innych laptop-ów. Kruczkiem w obs³udze dyskietek w Aero jest to, ¿e Aero wydaje siê u¿ywaæ ustawianego kontrolera PCMCIA, aby obs³ugiwaæ DMA dla dyskietek. Nie wiedz±c jak to jest dok³adnie robione, nie ma sposobu, aby zaimplementowaæ to w Linux-ie. Je¶li kontroler dyskietek jest obecny podczas startowania Aero, BIOS Aero skonfiguruje kartê i Linux zidentyfikuje j± jako normaln± stacjê dyskietek. Kiedy za³adowane s± sterowniki Linux-owe PCMCIA, zauwa¿±, ¿e karta jest ju¿ skonfigurowana i skojarzona ze sterownikiem Linux- owym i zostawi± to gniazdo w spokoju. Tak wiêc napêd mo¿e byæ u¿ywany je¶li jest obecny podczas startu, ale nie mo¿e byæ wymieniany podczas pracy (hot swapping). 55..44.. CCoo jjeesstt zz oobbss³³uugg±± kkaarrtt XXiirrccoomm ?? Dziêki pracy Wernera Kocha w aktualnej wersji pakietu PCMCIA zawarty jest sterownik do kart ethernetowej i ethernet/modem firmy Xircom. Specjalnie dla dyskusji na temat rozwoju sterownika Xircom ustawi³em forum HyperNews pod adresem hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html <http://hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html>. Przez d³ugi czas karty Xircom nie by³y obs³ugiwane poniewa¿ Xircom mia³ tak± zasadê, ¿eby nie ujawniaæ technicznych informacji o swoich kartach. Jednak trochê zmienili zasady i teraz rozprowadzaj± informacje o sterowniku. 66.. WWsskkaazzóówwkkii ddoo ¶¶lleeddzzeenniiaa ((ddeebbuuggggiinngg)) ii iinnffoorrmmaaccjjee ddoo pprrooggrraammoowwaanniiaa.. 66..11.. JJaakk mmooggêê wwyyss³³aaææ ppoommooccnnyy lliisstt oo bb³³êêddzziiee ?? Najlepszym sposobem na zg³aszanie b³êdów jest u¿ycie listy komunikatowej na HyperNews-ach na stronie dotycz±cej PCMCIA na Linux- ie. W ten sposób inni tak¿e mog± ¶ledziæ bie¿±ce problemy (i poprawki czy obej¶cia je¶li s± dostêpne). Oto rzeczy, które powinny byæ zawarte w ka¿dym li¶cie na temat b³êdu: · Typ twojego systemu i wynik polecenia probe. · Jakich kart PCMCIA u¿ywasz. · Wersja twojego j±dra i wersja PCMCIA. · Jakiekolwiek zmiany, jakie zrobi³e¶ w pliku /etc/pcmcia albo rc.pcmcia. · Wszystko co jest zwi±zane z kartami PCMCIA z log-ów systemowych. Przed wys³aniem listu o b³êdzie, upewnij siê proszê, ¿e u¿ywasz najnowszej wersji sterowników do PCMCIA. Szczerze powiem, ¿e czytanie o czym¶, co ju¿ naprawi³em nie jest najbardziej konstruktywnym sposobem na spêdzanie czasu. Je¶li twój problem zwi±zany jest tak¿e z nag³ym przerwaniem dzia³ania j±dra, podczas którego wy¶wietlane s± zawarto¶ci rejestrów, to zawarto¶æ ta jest przydatna tylko wtedy je¶li mo¿esz wskazaæ adres EIP. Je¶li jest on w g³ównym j±drze, sprawd¼ ten adres w System.map, aby zidentyfikowaæ funkcjê, która by³a w tym momencie wykonywana. Je¶li przerwa nast±pi³a podczas dzia³ania jakiego¶ modu³u ³adowalnego, jest to trochê trudniejsze do prze¶ledzenia. W bie¿±cej wersji narzêdzi do modu³ów program ksyms -m wy¶wietli adres podstawowy ka¿dego modu³u. We¼ modu³, który zawiera podane EIP, i odejmij jego adres podstawowy od EIP, aby otrzymaæ w ten sposób offset w module. Uruchom wtedy gdb z tym modu³em jako parametr i sprawd¼ otrzymany offset poleceniem list. Zadzia³a to tylko wtedy kiedy dany modu³ by³ skompilowany z opcj± -g, czyli z informacjami dla debugger-a. Je¶li nie masz dostêpu do WWW, informacje o b³êdach mo¿na wysy³aæ do mnie na adres dhinds@hyper.stanford.edu. Chocia¿ wolê, aby informacje takie by³y wysy³ane na mojej stronie WWW, tak ¿eby inni tak¿e mogli je widzieæ. 66..22.. IInnffoorrmmaaccjjee nnaa tteemmaatt nniisskkooppoozziioommoowweeggoo ¶¶lleeddzzeenniiaa PPCCMMCCIIAA.. Modu³y PCMCIA zawieraj± du¿o warunkowo skompilowanego kodu ¶ledzenia. Wiêkszo¶æ tego kodu jest pod kontrol± definicji preprocesora PCMCIA_DEBUG. Je¶li jest to niezdefiniowane, to kod do ¶ledzenia nie zostanie wkompilowany. Je¶li jest utawione na 0, kod ten jest wkompilowany, ale nieaktywny. Im wiêksze poziomy tym wiêcej informacji. Ka¿dy modu³ stworzony ze zdefiniowanym symbolem PCMCIA_DEBUG bêdzie mia³ parametr typu _I_n_t_e_g_e_r, pc_debug, który kontroluje ilo¶æ pojawiaj±cych siê informacji. Mo¿e to byæ ustawiane wtedy, kiedy modu³ jest ³adowany, tak wiêc wyj¶cie mo¿e byæ kontrolowane, na zasadzie "dla ka¿dego modu³u" bez potrzeby przekompilowywania. Jest kilka narzêdzi do ¶ledzenia w podkatalogu debug_tools/ w dystrybucji PCMCIA. Narzêdzia dump_tcic i dump_i365 generuj± kompletny zrzut rejestrów kontrolera PCMCIA i dekoduj± du¿o informacji z rejestrów. S± najbardziej po¿yteczne wtedy, gdy masz dostêp do schematu danych konkretnego uk³adu scalonego kontrolera. Narzêdzie dump_tuples wy¶wietla CIS-y (Card Information Structure) danej karty i dekoduje niektóre z najwa¿niejszych bitów. A narzêdzie dump_cisreg wy¶wietla rejestry lokalnej konfiguracji karty. Sterownik memory_cs do karty pamiêci jest tak¿e czasami przydatny do ¶ledzenia. Mo¿e on zostaæ powi±zany z ka¿d± kart± PCMCIA i nie wp³ywa to negatywnie na inne sterowniki. Mo¿e on zostaæ u¿yty do bezpo¶redniego dostêpu do pamiêci atrybutowej karty albo zwyk³ej pamiêci. 66..33.. JJaakk mmaamm nnaappiissaaææ sstteerroowwnniikk CCaarrdd SSeerrvviicceess ddllaa nnoowweejj kkaarrttyy ?? Najlepsz± dokumentacj± dla interfejsu PCMCIA dla Linux-a jest "The Linux PCMCIA Programmer's Guide". Najnowsza wersja jest zawsze dostêpna z hyper.stanford.edu albo na WWW - hyper.stanford.edu/HyperNews/get/pcmcia/home.html <http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html>. Dla urz±dzeñ, które s± wzglêdnie podobne do normalnych urz±dzeñ kart ISA, bêdziesz móg³ przypuszczalnie u¿yæ fragmentów sterowników Linux- a, które ju¿ istniej±. W niektórych przypadkach, najwiêkszym problem bêdzie takie przerobienie ju¿ istniej±cego sterownika, aby móg³ on sobie poradziæ z wk³adaniem i wyjmowaniem danej karty. W bie¿±cej wersji, sterownik do karty pamiêci jest jedynym sterownikiem, który nie zale¿y od ¿adnej czê¶ci innego sterownika, który wykonywa³by za niego brudn± robotê. Napisa³em szkielet sterownika z du¿± ilo¶ci± komentarzy, które wyja¶niaj± jak sterownik siê komunikuje z Card Sevices; znajdziesz ten szkielet w dystrybucji ¼ród³owej PCMCIA w podkatalogu modules/skeleton.c. 66..44.. WWsskkaazzóówwkkii ddllaa aauuttoorróóww sstteerroowwnniikkóóww kklliieennttóóww PPCCMMCCIIAA.. Zdecydowa³em, ¿e nie jest rozs±dne dla mnie, abym rozprowadza³ wszystkie sterowniki klientów PCMCIA jako czê¶æ pakietu PCMCIA. Ka¿dy nowy sterownik czyni g³ówny pakiet trudniejszym do utrzymania i, co mo¿na by³o przewidzieæ, do³±czenie sterownika przenosi trochê pracy opiekuna z autora na mnie. W zamian za to, zdecydujê osobno dla ka¿dego przypadku (case by case) czy w³±czyæ czy nie sterowniki pisane przez osoby trzecie, w zale¿no¶ci od ¿±dañ u¿ytkowników jak i mo¿liwo¶ci utrzymywania. Sugerujê, ¿eby autorzy sterowników, które nie dosta³y siê do g³ównego pakietu, zaadoptowali nastêpuj±cy schemat przy przygotowywaniu ich sterowników do dystrybucji. Pliki sterownika powinny byæ u³o¿one w takiej samej strukturze katalogów jak w g³ównej dystrybucji, tak, ¿eby mo¿na by³o rozpakowaæ sterownik ten w g³ównym katalogu ¼róde³ g³ównej dystrybucji. Sterownik powinien posiadaæ pliki ¼ród³owe (w Katalog g³ówny powinien zawieraæ tak¿e plik README. W katalogu g³ównym powinien siê tak¿e znajdowaæ makefile, ustawiony w taki sposób, ¿e "make -f ... all" i "make -f ... install" skompiluje sterownik i zainstaluje wszystkie potrzebne pliki. Je¶li plik ten posiada rozszerzenie .mk, to zostanie on automatycznie wykonany przez g³ówny pliku Makefile dla celów all i install. Oto przyk³ad jak taki plik móg³by byæ skonstruowany. # Przyk³adowy Makefile dla sterowników pisanych przez osoby trzecie FILES = sample_cs.mk README.sample_cs \ modules/sample_cs.c modules/sample_cs.h \ etc/sample etc/sample.opts man/sample_cs.4 all: $(MAKE) -C modules MODULES=sample_cs.o install: $(MAKE) -C modules install-modules MODULES=sample_cs.o $(MAKE) -C etc install-clients CLIENTS=sample $(MAKE) -C man install-man4 MAN4=sample_cs.4 dist: tar czvf sample_cs.tar.gz $(FILES) Plik ten u¿ywa celów install zdefiniowanych w pakiecie PCMCIA 2.9.10 i pó¼niejszych. Zawiera on tak¿e cel "dist" dla wygody autora sterownika. Przypuszczalnie bêdziesz chcia³ dodaæ numer wersji do ostatecznego pakietu (np. sample_cs-1.5.tar.gz). Pe³na dystrybucja mog³aby wygl±daæ tak: sample_cs.mk README.sample_cs modules/sample_cs.c modules/sample_cs.h etc/sample etc/sample.opts man/sample_cs.4 Z takim uk³adem katalogów, po rozpakowaniu sterownik staje siê czê¶ci± g³ównej dystrybucji. Mo¿e korzystaæ z plików nag³ówkowych PCMCIA, tak jak i z mo¿liwo¶ci sprawdzania konfiguracji systemu u¿ytkownika i automatycznego sprawdzania zale¿no¶ci tak samo jak "normalny" sterownik klienta. Bêdê akceptowa³ sterowniki przygotowane zgodnie z t± specyfikacj± i umieszcza³ je w katalogu /pub/pcmcia/contrib na moim serwerze FTP - hyper.stanford.edu. Plik README w tym katalogu bêdzie opisywa³ jak rozpakowaæ sterownik pisany przez trzeci± osobê. Interfejs sterownika PCMCIA nie zmieni³ siê wiele przez ten czas i prawie zawsze zachowywa³ wsteczn± kompatybilno¶æ. Sterownik klienta nie bêdzie musia³ byæ aktualizowany dla pobocznych wersji w pakiecie g³ównym PCMCIA. Spróbujê powiadamiaæ autorów sterowników o zmianach, które wymagaj± uaktualnienia ich sterowników. 66..55.. OOdd tt³³uummaacczzaa.. T³umaczenie to jest chronione prawami autorskimi © Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny. Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne, sk³adniowe, techniczne to pisz do mnie: B.Maruszewski@jtz.org.pl A mo¿esz tu znale¼æ do¶æ du¿o mo¿e nie b³êdów, ale konstrukcji, które nie s± podobne do jêzyka polskiego. Ale to wszystko dlatego, ¿e jest trochê ciê¿ko przet³umaczyæ zdanko z angielskiego je¶li jest obok siebie 4 czy czasami nawet 6 rzeczowników ;) Je¶li zauwa¿ysz taki stwór i wpadniesz na lepsze okre¶lenie, napisz. Je¶li bêdzie to w miarê sensowne, to napewno tego nie zignorujê. Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/ Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem ftp.jtz.org.pl w katalogu /JTZ/. Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej stronie WWW. <http://www.jtz.org.pl/bartek/tlumaczenie.html> S± tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej. Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to wy¶lij list o tre¶ci subscribe jtz Imiê Nazwisko na adres listproc@ippt.gov.pl Zmiany w tym dokumencie wprowadzone przez t³umacza to odwo³ania do polskich serwerów ftp.