Як зупинити відключення мого мережевого з'єднання Ethernet?


16

Моє мережеве з'єднання на базі Ethernet не працює постійно. Я запускаю пінг проти шлюзу, і він:

  • Попрацюйте хвилину
  • Заморожте, вимкніть або задайте багатосекундний час відповіді
  • Повторіть

Якщо він застряг, і я відключаю / вмикаю мережу через аплет мережевого менеджера, все буде працювати нормально протягом хвилини. Після передачі 280 пакетів я отримую 41% втрати пакету. Я спробував інший кабель і з'єднання з шлюзом, але це не мало ефекту. Відстань до шлюзу становить близько 3 футів.

Здається, добре працює, якщо я перейду на Windows, але Ubuntu - це моя основна ОС, і я не можу навіть зараз її використовувати, оскільки залежу від мережі.

Моя настройка ...

  • ОС: Ubuntu 11.04, подвійне завантаження Windows 7
  • Mobo: Гігабайт Z68X-UD4-B3
  • Процесор: Intel Core i7 2600K

Редагувати

Трохи роз’яснення ... Менеджер мережі все ще показує мене як підключеного, але я не в змозі дістатися до шлюзу чи нічого іншого. У жодному разі НМ не припускає, що з'єднання втрачено, і дзвінок, якщоconfig показує, що я все ще маю IP-адресу.

Я спробував підключитися до іншого шлюзу за допомогою іншого кабелю, і виникає та сама проблема.

Як вимагалось:

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

Редагувати

@ roland-taylor: Мережа завжди доступна під Windows. Пінг не закінчується, програми не скаржаться на відсутність мережі, великі завантаження не перериваються і не сповільнюються.


2
Теоретично можливо, що проблема полягає у шлюзі. Ви намагалися використовувати інший шлюз?
Робін Грін

2
Я не думаю, що материнська плата чи процесор тут не представляють особливого інтересу. lspci | grep -i ethможе бути більш інформативим, і який модуль завантажений, працює dhcp, що dmesg | tail -fговорить від підключення до припинення з'єднання.
користувач невідомий

Ви кажете, що це «здається, працює добре у вікнах», але ви справді впевнені в цьому?
RolandiXor

Відповіді:


13

Завантажте офіційний драйвер realtek.

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

Потім вийміть модуль r8169 з ядра 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

Нарешті, у чорний список драйвера r8169 додати /etc/modprobe.d/blacklist.conf:

#blacklist r8169 driver
blacklist r8169

Я знайшов це за адресою http://www.rvdavid.net/how-to-get-gigabit-speeds-from-rtl81118168b-pci-express-gigabit-ethernet-controller-on-ubuntu-linux/ і він працює. Тепер це все добре з чистою швидкістю.


Це спрацювало чудово! Моє мережеве з'єднання стабільно, і я зміг продовжити перехід зі свого старого робочого столу на цей. Я проголосував би за вас, але, мабуть, мені потрібна більше репутація ... Я б зрозумів, але це здається дивним, враховуючи це моє питання.
Шон Хілл

Завдяки цьому допомогло, я не можу потрапити в Інтернет після перезавантаження. Здається, можливі проблеми з чорним списком модуля. Є більше інформації в коментарях до цього повідомлення.
Дрю

щоб потрапити в Інтернет після перезавантаження, я дотримувався деяких кроків звідси ubuntuforums.org/showthread.php?t=723569 , за винятком компіляції з джерела
чувак

Я оновив до gnome3 і втратив цей модуль, замінивши, схоже, вам потрібно пройти ці кроки для кожного оновлення ядра. Я не впевнений, що робить initramfs, але я не робив цього до оновлення. Я запустив його лише зараз, і він оновив завантажувальні рамки для поточного ядра, можливо, оновиться і для нових / перехрещені пальці
Дрю

Ви використовуєте це? Ви помічаєте ці проблеми? Тут є підказки щодо автоматизації оновлення до нових ядер за допомогою DKMS djlab.com/2010/10/fixing-rtl8111-8168b-driver-debian-ubuntu
Drew

8

Просто я можу знайти це наступного разу, коли мій SSD підірветься. Ось інструкції щодо видалення зламаного r8169 та вставки r8168 на Ubuntu w / Linux Kernel 3.x.

Ядро 3.x

  • Завантажити r8168
  • Застосуйте цей виправлення, якщо він все ще позначений невирішеним.
  • СТОП : Якщо ви плануєте використовувати DKMS, перейдіть до розділу DKMS зараз.
  • Запустіть sudo ./autogen.sh, він створить модуль, видалить старий (чорний список, якщо хочете) та встановить r8168.ko в / lib / module / 'uname -r' / driver / net /.

DKMS

DKMS створить і встановить модуль при нових встановленнях ядра. Вам також знадобиться в чорний список старого модуля.

Чорний список старого модуля, якщо ви ще цього не зробили.

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

Встановіть DKMS та gcc.

sudo apt-get install dkms gcc

Скопіюйте вихідні файли модуля на постійне місце, щоб потім не випадково їх видалити.

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

Тоді біжи,

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

1
+1 чудовий пост. можливо, вам не вистачає update-initramfsкоманди
bbaja42

Я використовував це багато разів і ніколи не бачив різниці, ви впевнені, що це потрібно для мережевого модуля? Насправді я просто включу його, щоб бути безпечним. Я написав посібник, коли переходив процес, щоб переконатися, що все працює. Я, можливо, раніше запускав це під час побудови / встановлення модуля / що б там не було.
Дрю

Сьогодні я обмінявся маршрутизаторами, після чого RTL8111E на GA-Z68X-UD3H-B3 (64-розрядна версія Kubuntu 11.10) перестав працювати: навіть якщо мережеве з'єднання не вдалося встановити, пакети не передавались ( pingмаршрутизатору не вдалося виконати "Destination Host Недоступні "). Після make modulesта вставлення модуля він знову працював. Після rmmodвикористання нового модуля та завантаження старого мережа знову працювала. Це справедливо і після перезавантаження. Я не впевнений, що допомогло змусити цей NIC знову працювати (rmmod / insmod vs rmmod / insmod новий модуль), але, сподіваємось, це комусь корисно.
Лекенштейн


0

які можуть бути корисними

у вас можуть виникнути проблеми з драйвером r8169, якщо ви подвійно завантажуєте Windows в деяких системах. Windows за замовчуванням вимикає NIC під час відключення Windows, щоб відключити Wake-On-Lan, і цей NIC залишатиметься відключеним до наступного ввімкнення Windows. Драйвер r8169 в ядрі не знає, як увімкнути NIC з цього відключеного стану; отже, пристрій не реагує, навіть якщо драйвер завантажує та повідомляє, що пристрій працює. Щоб вирішити цю проблему, просто увімкніть функцію "Будильник на ланцюзі після відключення". Ви можете встановити ці параметри через диспетчер пристроїв Windows.

Редагувати: Проблеми з подвійним завантаженням у Windows існують також у ядрах 2.6.19.5 та 2.6.20.8, тому можна припустити, що це стосуватиметься всіх ядер 2.6, поки розробники ядра не оновлять драйвери для RTL8168 до версії, яка зможе увімкнути NIC з відключеного стану



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

Не могли б ви додати пояснення того, що роблять ці команди?
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.