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ść!



 Copyright © 2000 SYSTEM. Wszystkie prawa zastrzeżone.
 Kopiowanie tekstów w całości lub we fragmentach bez zgody redakcji i autorów zabronione.