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 plpcmcia howto pl 3pcmcia howto pl 2PCMCIA HOWTO pl (3)PCMCIA HOWTO pl 6 (2)bootdisk howto pl 8PPP HOWTO pl 6 (2)NIS HOWTO pl 1 (2)cdrom howto pl 1jtz howto pl 5Keystroke HOWTO pl (2)PostgreSQL HOWTO pl 14printing howto pl 5debian apt howto plKernel HOWTO pl 12 (2)XFree86 HOWTO pl (3)więcej podobnych podstron