PCMCIA HOWTO pl 4 (2)


Opis sterowników do PCMCIA: Zaawansowane tematy. Następna strona Poprzednia strona Spis treści 4. Zaawansowane tematy. 4.1 Alokoacja zasobów dla urządzeń PCMCIA. 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. 4.2 Jak zrobić dwie różne konfiguracje urządzeń do domu i pracy ? 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 4.3 Startowanie z urządzenia PCMCIA. 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. Skrypt-pomocnik pcinitrd. 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'. Tworzenie dyskietki startowej z initrd. 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. Instalacja obrazu initrd na napędach bez Linux-a. 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=. Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
PCMCIA HOWTO pl 5 (2)
PCMCIA HOWTO pl 1 (2)
PCMCIA HOWTO pl (2)
PCMCIA HOWTO pl
pcmcia howto pl 3
pcmcia howto pl 2
PCMCIA HOWTO pl (3)
PCMCIA HOWTO pl 6 (2)
bootdisk howto pl 8
PPP HOWTO pl 6 (2)
NIS HOWTO pl 1 (2)
cdrom howto pl 1
jtz howto pl 5
Keystroke HOWTO pl (2)
PostgreSQL HOWTO pl 14
printing howto pl 5
debian apt howto pl
Kernel HOWTO pl 12 (2)
XFree86 HOWTO pl (3)

więcej podobnych podstron