Jak zatrzymać zrywanie połączenia sieciowego Ethernet?

16

Moje połączenie sieciowe oparte na sieci Ethernet nie utrzymuje się konsekwentnie. Uruchamiam polecenie ping przeciwko bramie, która:

  • Pracuj przez minutę
  • Zatrzymaj, przekrocz limit czasu lub podaj wielosekundowe czasy reakcji
  • Powtarzać

Jeśli utknie, a ja wyłączę / włączę sieć za pośrednictwem apletu menedżera sieci, wszystko znowu będzie działać przez minutę. Po przesłaniu 280 pakietów otrzymuję 41% utraty pakietów. Próbowałem innego kabla i połączenia z bramą, ale to nie miało żadnego efektu. Odległość do bramy wynosi około 3 stóp.

Wygląda na to, że działa dobrze, jeśli przejdę na system Windows, ale Ubuntu jest moim głównym systemem operacyjnym i nie mogę go nawet teraz używać, ponieważ jestem zależny od sieci.

Moja konfiguracja ...

  • System operacyjny: Ubuntu 11.04, podwójny rozruch systemu Windows 7
  • Mobo: Gigabyte Z68X-UD4-B3
  • Procesor: Intel Core i7 2600K

Edytować

Trochę wyjaśnienia ... Network Manager wciąż pokazuje mnie jako podłączonego, ale nie jestem w stanie dotrzeć do bramki ani niczego poza nią. W żadnym momencie NM nie sugeruje, że połączenie zostało utracone, a wywołanie ifconfig pokazuje, że nadal mam adres IP.

Próbowałem połączyć się z inną bramą za pomocą innego kabla i pojawia się ten sam problem.

Zgodnie z prośbą:

lspci | grep -i eth
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

dmesg | tail -f
[   14.024709] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,commit=0
[   14.026443] EXT4-fs (sda7): re-mounted. Opts: commit=0
[   14.176101] hda-intel: IRQ timing workaround is activated for card #2. Suggest a bigger bdl_pos_adj.
[   23.917731] eth0: no IPv6 routers present
[  726.109697] r8169 0000:07:00.0: eth0: link up
[  733.169494] r8169 0000:07:00.0: eth0: link up
[  753.930119] r8169 0000:07:00.0: eth0: link up
[  880.787332] r8169 0000:07:00.0: eth0: link up
[ 1159.161283] r8169 0000:07:00.0: eth0: link up
[ 1406.623550] r8169 0000:07:00.0: eth0: link up

Edytować

@ roland-taylor: Sieć jest zawsze dostępna w systemie Windows. Pingi nie przekroczą limitu czasu, aplikacje nie narzekają na brak dostępności sieci, duże pobieranie nie jest przerywane ani spowalniane.

Sean Hill
źródło
2
Teoretycznie możliwe jest, że problem dotyczy bramy. Czy próbowałeś użyć innej bramy?
Robin Green
2
Nie sądzę, żeby płyta główna lub procesor były tutaj bardzo interesujące. lspci | grep -i ethmoże być bardziej informacyjny, a który moduł jest załadowany, działa dhcp, co dmesg | tail -fznaczy od połączenia do zerwania połączenia.
użytkownik nieznany
Mówisz, że „wydaje się działać dobrze w systemie Windows”, ale czy naprawdę jesteś tego pewien?
RolandiXor

Odpowiedzi:

13

Pobierz oficjalny sterownik Realtek.

http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2

Następnie usuń moduł r8169 z jądra systemu Linux.

# rmmod r8169

<Quick install with proper kernel settings>
Unpack the tarball :
# tar vjxf r8168-8.aaa.bb.tar.bz2
Change to the directory:
# cd r8168-8.aaa.bb
If you are running the target kernel, then you should be able to do :
# ./autorun.sh (as root or with sudo)
You can check whether the driver is loaded by using following commands.
# lsmod | grep r8168
# ifconfig -a
If there is a device name, ethX, shown on the monitor, the linux
driver is loaded. Then, you can use the following command to activate
the ethX.
# ifconfig ethX up

Na koniec, czarna lista sterownika r8169 dodaje następujące pliki do /etc/modprobe.d/blacklist.conf:

#blacklist r8169 driver
blacklist r8169

Znalazłem go na http://www.rvdavid.net/how-to-get-gigabit-speeds-from-rtl81118168b-pci-express-gigabit-ethernet-controller-on-ubuntu-linux/ i działa. Teraz wszystko jest dobrze z prędkością netto.

koleś
źródło
To działało idealnie! Moje połączenie sieciowe jest teraz stabilne i mogłem kontynuować migrację ze starego pulpitu na ten. Głosowałbym za tobą, ale najwyraźniej potrzebuję więcej reputacji ... Rozumiem, ale wydaje się to dziwne, biorąc pod uwagę, że to moje pytanie.
Sean Hill
Dzięki temu pomogłem, ale nie mogę dostać się do Internetu po ponownym uruchomieniu. Wygląda na to, że występują potencjalne problemy z umieszczeniem modułu na czarnej liście. Więcej informacji w komentarzach do tego postu.
Drew
aby dostać się do Internetu po ponownym uruchomieniu , wykonałem kilka kroków stąd ubuntuforums.org/showthread.php?t=723569 , z wyjątkiem kompilacji ze źródła
koleś
Zaktualizowałem do gnome3 i straciłem nadpisywanie tego modułu, wygląda na to, że musisz wykonać te kroki dla każdej aktualizacji jądra. Nie jestem pewien, co robi initramfs, ale nie zrobiłem tego przed aktualizacją. Uruchomiłem go właśnie teraz i zaktualizowałem ramfsy rozruchowe dla bieżącego jądra, być może zaktualizuje się również dla nowych / kciuki
Drew
Czy używasz tego? Czy dostrzegasz te problemy? Tutaj są wskazówki na temat automatyzacji aktualizacji do nowych jąder za pomocą DKMS djlab.com/2010/10/fixing-rtl8111-8168b-driver-debian-ubuntu
Drew
8

Właśnie dlatego mogę znaleźć to następnym razem, gdy mój dysk SSD wysadzi się w powietrze. Oto instrukcje usuwania uszkodzonego r8169 i wstawiania r8168 w Ubuntu w / Linux Kernel 3.x.

Jądro 3.x

  • Pobierz r8168
  • Zastosuj tę poprawkę, jeśli nadal jest oznaczona jako nierozwiązana.
  • STOP : Jeśli planujesz korzystać z DKMS, przejdź teraz do sekcji DKMS.
  • Uruchom sudo ./autogen.sh, zbuduje moduł, usunie stary (jeśli chcesz, umieścisz go na czarnej liście) i zainstalujesz plik r8168.ko w katalogu / lib / modules / 'uname -r' / drivers / net /.

DKMS

DKMS zbuduje i zainstaluje moduł przy nowych instalacjach jądra. Będziesz także musiał umieścić na czarnej liście stary moduł.

Umieść stary moduł na czarnej liście, jeśli jeszcze tego nie zrobiłeś.

echo 'rmmod r8169' | sudo tee /etc/modprobe.d/blacklist.conf

Zainstaluj DKMS i gcc.

sudo apt-get install dkms gcc

Skopiuj pliki źródłowe modułu do trwałej lokalizacji, aby później nie usunąć ich przypadkowo.

sudo cp -R r8168-8.025.00 /usr/src

echo 'PACKAGE_NAME=r8168
PACKAGE_VERSION=8.025.00
MAKE[0]="make"
BUILT_MODULE_NAME[0]=r8168
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
AUTOINSTALL="YES"' | sudo tee /usr/src/r8168-8.025.00/dkms.conf

Następnie uruchomić,

dkms add -m r8168 -v 8.025.00
dkms build -m r8168 -v 8.025.00
dkms install -m r8168 -v 8.019.00
sudo update-initramfs -u
Rysował
źródło
1
+1 świetny post. możliwe, że brakuje Ci update-initramfspolecenia
bbaja42 17.10.11
Używałem tego wiele razy i nigdy nie widziałem różnicy, jesteś pewien, że jest to potrzebne do modułu sieciowego? Właściwie, po prostu dołączę to dla bezpieczeństwa. Napisałem przewodnik, gdy przechodziłem przez proces, aby upewnić się, że wszystko działa. Mogłem już to uruchomić, gdy moduł był budowany / instalowany / cokolwiek.
Drew,
Dzisiaj zamieniłem routery, po których RTL8111E na GA-Z68X-UD3H-B3 (z uruchomionym Kubuntu 11.10 64-bitowym) przestał działać: nawet jeśli można nawiązać połączenie sieciowe, żadne pakiety nie zostały przesłane ( pingdo routera nie powiodło się z „Hostem docelowym” Nieosiągalny"). Po make moduleswłożeniu modułu działało ponownie. Po rmmodwłożeniu nowego modułu i załadowaniu starego sieć znów działała. Dotyczy to również ponownego uruchomienia komputera. Nie jestem pewien, co pomogło w ponownym uruchomieniu tej karty sieciowej (nowy moduł rmmod / insmod vs. rmmod / insmod), ale mam nadzieję, że komuś to pomoże.
Lekensteyn,
0

to może być przydatne

problemy ze sterownikiem r8169 mogą wystąpić, jeśli system Windows uruchamia się podwójnie w niektórych systemach. Domyślnie system Windows wyłącza kartę sieciową podczas zamykania systemu Windows, aby wyłączyć funkcję Wake-On-Lan, a ta karta sieciowa pozostanie wyłączona do czasu następnego włączenia systemu Windows. Sterownik r8169 w jądrze nie wie, jak włączyć kartę sieciową z tego wyłączonego stanu; dlatego urządzenie nie zareaguje, nawet jeśli sterownik załaduje się i zgłosi, że urządzenie jest uruchomione. Aby obejść ten problem, po prostu włącz funkcję „Wake-on-lan po wyłączeniu”. Możesz ustawić te opcje za pomocą menedżera urządzeń Windows.

Edycja: Problem z podwójnym uruchomieniem systemu Windows występuje również w jądrze 2.6.19.5 i 2.6.20.8, więc można bezpiecznie założyć, że będzie dotyczył wszystkich jąder 2.6, dopóki programiści jądra nie zaktualizują sterowników RTL8168 do wersji, która będzie w stanie aby włączyć kartę sieciową ze stanu wyłączonego

koleś
źródło
0

Errata corrige:

echo 'blacklist r8169' | sudo tee /etc/modprobe.d/blacklist-r8169.conf
dkms add -m r8168 -v 8.025.00
dkms build -m r8168 -v 8.025.00
dkms install -m r8168 -v 8.025.00
sudo update-initramfs -u
sccplg
źródło
Czy możesz dodać wyjaśnienie, co robią te polecenia?