|
FAQ #3
8. Sprzęt: Karty sieciowe
8.1 Kontakt z autorem
Autorem tej sekcji jest Konrad
Stępień i z nim się kontaktujcie, jak coś nie działa :-). Dzięki,
Konrad!
8.2 Jak zainstalować pod Linuxem kartę sieciową xx ?
W chwili obecnej każda dystrybucja Linuxa jest przygotowana tak, żeby obsłużyć
niemal każdy popularny sprzęt. Jądro dostarczane wraz z dystrybucją posiada
skompilowane do modułów sterowniki większości popularnych kart sieciowych
takich jak wszelkiego rodzaju NE-1000/2000, 3Com, SMC
itd. Aby sprawdzić, jakie karty są wkompilowane wystarczy obejrzeć zawartość
katalogu /lib/modules/x.y.z/net/. Bardzo popularne głównie ze
względu na niskie ceny, są karty NE-2000, dlatego dalszy opis będzie
dotyczył tego typu kart.
Istnieje spora szansa, że Linux sam sobie wykryje i zainstaluje kartę
sieciową na etapie instalacji. Aby się o tym przekonać należy wydać
polecenie lsmod. Jako efekt jego działania otrzymujemy na ekranie
listę podobną do tej:
Module: #pages: Used by:
ip_alias
1 1 (autoclean)
ne
2 1 (autoclean)
^^^^^^^^^^^^^^^^^^^^^^^^
8390
2 [ne] 0 (autoclean)
Jeśli jedna z linii zawiera ne, to znaczy, że nasza karta jest już
widziana przez jądro i należy jedynie skonfigurować sieć (nadać adres IP,
ustawić routing). Jeśli posiadamy np. kartę 3Com-509, zamiast ne będzie
3c509. Podobnie z innymi typami.
Jeżeli system nie rozpoznał karty w czasie startu, należy spróbować załadować
moduł ręcznie, pisząc modprobe ne (lub np. modprobe 3c509)
Jeśli wyświetli się komunikat typu:
loading device 'eth0'...
ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
NE*000 ethercard probe at 0x300: 00 80 48 eb f2 11
eth0: NE2000 found at 0x300, using IRQ 10.
...to karta została zainstalowana.
8.3 modprobe nie chce załadować modułu, lub moduł jest ale
karta nie działa
Nie zawsze autodetekcja działa poprawnie, czasem system nie jest w stanie
znaleźć karty, albo znajduje ją źle. Należy wtedy dokładniej zapoznać się
z konfiguracją systemu. Przede wszystkim sprawdzić należy na ustawienia karty
(port i przerwanie czyli I/O i IRQ). Może się zdarzyć, że karta używa tych
samych zasobów co inne urządzenia, wtedy należy zmienić konfigurację karty
lub konfliktowego urządzenia.
Jeśli wszystko jest w porządku, ponawiamy próbę załadowania modułu,
podając dodatkowe informacje o adresie i przerwaniu wydając polecenie modprobe
ne io=0x300 irq=10
8.4 Jak zrobić, żeby Linux ładował kartę przy starcie?
W pliku /etc/conf.modules zapisuje się konfigurację modułów
jądra. Należy dopisać tam linie odpowiadające konfiguracji naszej karty
Przykładowy taki plik może wyglądać następująco
options eth0 io=0x300 irq=10
alias eth0 ne
Jeśli to nie zadziała, (bardzo rzadkie przypadki), trzeba dopisać
odpowiednie komendy (insmod, modprobe) do któregoś z
plików startowych znajdujących się w /etc/rc.d/. Pliki te mogą
się znacznie różnić z zależności od dystrybucji.
8.5 Mam chyba coś nietypowego, co z tym zrobić?
Po pierwsze, trzeba sprawdzić wszystkie parametry, a także czy na pewno ładujemy
odpowiedni moduł. Np. niektóre karty SMC (EZ-Card) są to faktycznie NE-2000 i
tak należy je instalować. Sporo problemów sprawiały też klony NE-2000 działające
na szynie PCI. Oyrginalnie NE-2000 były wyłącznie kartami ISA (wtedy zresztą
nie było PCI). Pełna obsługa kart NE-2000 na szynie PCI pojawiła się w jądrze
2.0.31. Wcześniejsze jądra mogą mieć problemy. Najlepszym wyjściem jest
zainstalowanie (naj)nowszego jądra. Jeśli karta jest nowa/nietypowa, można
jeszcze poszukać różnych nieoficjalnych łat (patchy) na jądro. Zawsze warto
też zajżeć na http://cesdis.gsfc.nasa.gov/linux/drivers/
8.6 Moja karta jest typu bezzworkowa lub PnP. Jak ją ustawić?
Do takich kart najczęściej dołączona jest dyskietka zawierająca różne
sterowniki oraz program konfiguracyjny. Programy takie na ogół działają pod
DOS-em. Jeśli można wyłączyć PnP na karcie lepiej to zrobić, a następnie
ustawić wszystkie parametry i zapisać w pamięci karty.
W przypadku kart typowo PnP możliwe są trzy drogi.
- Zobaczyć na jakich ustawieniach "domyślnie" budzi się karta,
i użyć tych ustawień w konfiguracji Linuxa. Ma to kilka wad, ale jest
najprostsze.
- Zainstalować pod linuxem pakiet isapnptools i przy jago pomocy
konfigurować kartę. Należy pamiętać, żeby wywołanie isapnp następowało
przed inicjalizacją sieci. Prawdopodobnie trzeba będzie wtedy konfigurować
sieć własnym skryptem.
- Startować komputer w DOS-ie, konfigurować kartę odpowiednim DOS-owym
programem, a do linuxa wchodzić przez loadlin-a.
8.7 Jak zmusić Linuxa żeby widział 2 karty sieciowe?
Najpierw należy doprowadić do sytuacji, w której można załadować ręcznie
sterowniki obu kart. Jeśli wywołanie 2 razy modprobe (na ogół
trzeba podać dodatkowe paremetry) nie zgłasza błędów. Oczywiście konieczne
jest takie skonfigurowanie obu kart, aby korzystały z innych zasobów. Jeśli
Linuxa da się "ręcznie" przekonać do działanie z dwoma kartami,
Dalej postępujemy podobnie jak w przypadku jednej. Przykładowy plik /etc/conf.modules
dla 2 kart NE-2000 powinien wyglądać mniej więcej tak:
options ne io=0x300,0x260 irq=5,10
alias eth0 ne
alias eth1 ne
8.8 Kiedy kompilować sterowniki w jądro i jak je konfigurować?
Kwestia czy kompilować jako moduł, czy w jądro jest mocno
"ideologiczna". Teoretycznie obsługa urządzenia wkompilowanego w jądro
może być nieznacznie szybsza. W zasadzie dobry sterownik powinien działać i
jako moduł i wkompilowany, jednak są sterowniki których nie można kompilować
do modułu, lub takie które nie bardzo chcą jako moduł pracować. Moduły są
jedynym wyjściem jeśli zachodzi potrzeba ładowania i usuwania sterownika w
trakcie pracy systemu, lub gdzy trzeba urządzenie jakoś dodatkowo inicjalizować
(np. PnP).
Parametry do driverów wkompilowanych przekazuje się przy starcie systemu
przez podanie komendy:
LILO: ether=IRQ,IO_ADDR,PARAM1,PARAM1,NAME (wszystkie parametry są
opcjonalne)
Żeby sobie zaoszczędić wpisywania, można dodać do lilo.conf:
append ether=5,0x300,eth0
W przypadku 2 kart podajemy ether=x,y,z,eth0 ethet=a,b,c,eth1
8.9 Od autora sekcji
To co napisałem wynika z moich doświadczeń z kartami Compex RL2000,
RL2000A RL2000 PCI, Genius GE-2000 kilka podwersji zworkowych i bez, a także
3Com 509 (ISA) i 590 (PCI), oraz SMC EZ-card.
Jeśli chodzi o karty PCI zgodne z NE, trenowałem to na mojej prywatnej
RL2000 na jądrach poniżej i powyżej 2.0.30
Wszystko pisałem przy założeniu, że obsługa karty skompilowana jest jako
moduł, bo tak są dostarczane "gotowe" dystrybucje
9. X Window System
9.1 Jak sprawić, by X Window System uruchamiały się domyślnie w trybie
16-bitowych kolorów?
W pliku XF86Config w sekcji Screen dopisz: DefaultColorDepth
16 Oczywiście można tam wpisać inną wartość spośród: 15, 16, 24,
32.
9.2 Jak sprawić by w X działał klawisz backspace?
W pliku .Xmodmap:
keycode 22 = 0xff08
9.3 Jak skonfigurować X Window System?
Jeśli nie chcesz edytować dość nieczytelnego dla początkujących pliku
konfiguracyjnego, możesz użyć skryptu XF86Setup dla X < 3.2, XConfigurator
dla RedHat lub XSetup dla X >= 3.2 (wymaga serwera VGA16). Jeśli po
uruchomieniu X obraz na ekranie jest nieodpowiednio ustawiony (np. przesunięty)
użyj programu xvidtune.
9.4 Jak przełączać się z X Window System na konsolę i z powrotem?
Z X na konsolę tak samo jak między konsolami, tylko zamiast alt+F* używasz
ctrl+alt+F*. Natomiast z powrotem należy się przełączyć na konsolę następną
po ostatniej uaktywnionej. Czyli, jeśli mamy 6 aktywnych konsoli wirtualnych
(tak domyślnie jest w RedHacie) to musimy nacisnąć alt+F7.
9.5 Jak uruchomić kde?
Do pliku ~/$HOME/.Xclients wpisujesz:
exec startkde
Do swojego pliku startowego (.profile, .bashrc czy
gdzie tam chcesz) dopisz:
KDEDIR=/opt/kde <--- lub gdzie jest kde jeśli jest gdzie indziej
PATH=$PATH:/opt/kde/bin <-- to samo
export KDEDIR
Jeśli chcesz mieć polską wersję językową, dodaj jeszcze:
LANG=pl
export LANG
Wyloguj się, zaloguj, i uruchom startx. Powinieneś mieć już
kde!
9.6 Kupiłem sobie Chipa z RedHatem i nie mogę odpalić X!
Napisz startx zamiast X.
:-))) Wybaczcie złośliwość!
|