eth0 nie "wstaje" po w

Masz problemy z siecią bądź internetem? Zapytaj tu
Sajgoniarz
Posty: 5
Rejestracja: 22 października 2013, 12:42

eth0 nie "wstaje" po włączeniu serwera - edycja konfiguracji sprzętowej

Post autor: Sajgoniarz »

Witam!
Stworzyłem sobie mały serwer, jednak mam problem z kartą sieciową, która pomimo tego, że ma sterowniki w jądrze, to nie ładują się one poprawnie, przez co nie mogę uzyskać połączenia na eth0.

Poszukałem trochę i okazało się, że wprowadzenie tych poleceń rozwiązuje mój problem.

Kod: Zaznacz cały

mii-tool eth0 -F 10baseT-FD
rmmod 8139too
modprobe 8139too
jednorazowo.

Niestety, znam się bardzo słabo na Linuksie i chciałbym się dowiedzieć co, gdzie muszę zmienić, aby ten interfejs był raz na zawsze poprawnie ustawiony. Dodałem te polecenia do pliku rc.local, jednak chyba występuje on przed /etc/network/interfaces, przez co polecenia umieszczone tam nie wywołują porządanego efektu.

Z góry bardzo dziękuję za pomoc.
Pad19
Posty: 29
Rejestracja: 11 listopada 2010, 11:32

Post autor: Pad19 »

W /etc/init.d/ utwórz plik np. o nazwie ,,eth0-fix''.

W jego zawartość wklej:

Kod: Zaznacz cały

#! /bin/sh

### BEGIN INIT INFO
# Provides:        eth-fix
# Required-Start:    
# Required-Stop:    
# Default-Start:    2 3 4 5
# Default-Stop:        
# Short-Description:    Auto add eth0 fix
### END INIT INFO

mii-tool eth0 -F 10baseT-FD
 rmmod 8139too 
modprobe 8139too
Nadaj plikowi prawa do uruchomienia.
Wykonaj polecenie:

Kod: Zaznacz cały

update-rc.d eth0-fix defaults
Powinno to się wykonać po każdym restarcie.
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Te polecenia raczej w odwrotnej kolejności.

Kod: Zaznacz cały

mii-tool eth0 -F 10baseT-FD
na końcu.

Ustawio tryb karty na:

Kod: Zaznacz cały

full duplex 10Mbit
rc.local jest wczytywany na samym końcu. Najpierw wykonuje skrypty w /etc/rc2.d, potem uruchamia w rc.local.

Aby podnieść interfejs w rc.local musiałbyś:

Kod: Zaznacz cały

rmmod 8139too
modprobe 8139too
mii-tool eth0 -F 10baseT-FD
ifconfig eth0   twój_ip netmask twoja_maska up
route add default gw twoja brama
Sajgoniarz
Posty: 5
Rejestracja: 22 października 2013, 12:42

Post autor: Sajgoniarz »

Właśnie próbowałem w konsoli wpisywać w innej kolejności (dla eksperymentu) ale metoda działała tylko przy podanej kolejności. Przetestuję wasze metody, ale niestety póki co serwer "padł" - nawet nie wiem czy uruchamia się po tych zmianach?

A laptop, na którym jest, ma wyrwaną matrycę z obudową, a dysk jest na IDE, więc nie mam go jak wpiąć do swojego komputera, ale rozglądam się za adapterem, więc póki co nic nie mogę sprawdzić.
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

No wiesz nie inaczej. Jedno polecenie usuwa sterownik, drugie je ładuje, kolejne negocjuje połączenie sieciowe na 100 Mbit full dulpex, kolejne podnosi interfejs, a ostatnie tworzy trasę do bramy...

Bo co z tego, to że zrobisz odwrotnej kolejności, jak sterownik nie będzie wczytany, to nie podniesie interfejsu/ nie przydzieli ip tej karcie sieciowej. "człowiek też najpierw się rodzi, a potem umiera, a nie odwrotnie."

Serwer padł, bo jak nie wpisałeś podnoszenia interfejsu podczas startu, to te polecenia działają tylko do czasu wyłączenia. Więc po wyłączeniu nie możesz się z nim połączył. Musisz fizycznie podejść do niego, podnieść interfejs, ustawić, aby uruchamiał się przy starcie i jużź wszystko.
Sajgoniarz
Posty: 5
Rejestracja: 22 października 2013, 12:42

Post autor: Sajgoniarz »

O zgrozo, padł bo miał błędy na montowanej partycji i musiałem uruchomić program fdisc jako root i nacisnąć 1000x y. Przeniosłem wszystko na Ext4 i usunąłem montowanie tego NTFS-a. Zaraz wezmę się za Twój skrypt.

Edycja:
Yampress
, po dodaniu tych poleceń do rc.local "eth0" znika z wyniku ifconfig.

Edycja2:
Jestem bliżej rozwiązania. Okazało się, że inna kolejność nie działa, jednak mam problem, bo gdy z rc.local wywołuje się modprobe, nie ładuje on sterownika.
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Jakby coś nie działało to negocjacje połączenia dajesz na końcu mii-tool. Bo tu nie jestem pewny, czy zrobi to na nie podniesionym interfejsie czy dopiero na podniesionym.
Sajgoniarz
Posty: 5
Rejestracja: 22 października 2013, 12:42

Post autor: Sajgoniarz »

Negocjacja połączenia równa się mii-tool? Bo dawałem ją chyba na końcu, ale nic nie dawała, dopiero jak dałem ją jako pierwszą, potem wyłącz i włącz sterownik i wtedy działało. Przynajmniej na włączonym systemie, a nie startującym.

W każdym razie mam o jedną skrętkę w domu za mało i nie mam jak przetestować do rana tego mii-tool na końcu. Że tez mnie teraz na robienie kopii zapasowej wzięło
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Teraz to już nie pamiętam. Robiłem to z 10 lat temu, kiedy na skrętce kolega w rj45 w złej kolejności zacisnął kabelki i połączenie chodziło tylko na 10 Mbit a nie na 100, więc musiałem negocjować 10x słabsze połączenie bo wtedy tak chodziło ( i nie wiem jeszcze czy tylko to szło na half duplex/ czy na full duplex) .... aż dopóki kolega odkrył, że kolejność kolorów jest ważna i na 100 sieć poszła :D
Sajgoniarz
Posty: 5
Rejestracja: 22 października 2013, 12:42

Post autor: Sajgoniarz »

Nie wiem już o co chodzi? Jak ustawię w rc.local żeby najpierw usunął moduł, a potem go wczytał, to olewa modprobe, nawet jak uruchomię skrypt z rc w dowolnym momencie.

Zaczyna mnie ten serwer coraz bardziej irytować. Błąd na błędzie. Udało mi się znaleźć, że to błąd modułów ładownych do jądra, bo jądro ma sterowniki do drugiej wersji mojej karty.

Problem w tym, że gdy najpierw spróbuje się uruchomić zły moduł, a potem dobry, to karta zgłasza błędy i nie działa. Więc zrobiłem sobie plik do /etc/modprobe.d/8139cp.conf, z czarną listą modułu, próbuję zrobić:

Kod: Zaznacz cały

depmod -ae
to wyskakuje, że muszę użyć -E lub -F?

A potem gdy próbuję:

Kod: Zaznacz cały

update-initramfs -u
to:

Kod: Zaznacz cały

update-initramfs: Generating /boot/initrd.img-3.2.0-4-686-pae/var/tmp/mkinitramfs_LmWHaQ/scripts/init-bottom/udev: 35: /var/tmp/mkinitramfs_LmWHaQ/scripts/init-bottom/udev: Syntax error: "(" unexpected
Nie mam żadnych pomysłów?

Teraz to już nie wiem jak się nazywam. Po tym błędzie wyświetla błąd initramfs przy uruchamianiu i system się zatrzymał. Wykonuję reset i:

Kod: Zaznacz cały

kernel panic
Poirytowany doszczętnie, próbuję uruchomić system z live cd. Wszystko by było fajnie, ale gdy system próbuje się załadować wyświetla mi się błąd:

Kod: Zaznacz cały

 fixing recursive fault but reboot is needed 
i nie potrafi przejść dalej. Instaluję Windows XP, zobaczymy co on na to. Chcę zainstalować Linuksa i odzyskać pliki, które tam miałem.
ODPOWIEDZ