Как мне остановить подключение к сети Ethernet?

16

Мое сетевое соединение на основе Ethernet не работает постоянно. Я запускаю пинг против шлюза, и он будет:

  • Работа за минуту
  • Заморозить, тайм-аут или дать время ответа в несколько секунд
  • Повторение

Если он застрял, и я отключил / включил сеть через апплет менеджера сети, все снова будет работать нормально на минуту. После передачи 280 пакетов я получаю 41% потерь пакетов. Я пробовал другой кабель и подключение к шлюзу, но это не имело никакого эффекта. Расстояние до ворот составляет всего около 3 футов.

Кажется, работает нормально, если я переключаюсь на Windows, но Ubuntu - моя основная ОС, и я даже не могу использовать ее сейчас, так как я зависим от сети.

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

  • ОС: Ubuntu 11.04, двойная загрузка Windows 7
  • Мобо: Gigabyte Z68X-UD4-B3
  • Процессор: Intel Core i7 2600K

редактировать

Небольшое уточнение ... Сетевой менеджер по-прежнему показывает мне, как подключен, но я не могу добраться до шлюза или чего-то еще. NM ни в коем случае не предполагает, что соединение потеряно, и вызов ifconfig показывает, что у меня все еще есть 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говорит от соединения до сброса соединения.
пользователь неизвестен
Вы говорите, что "кажется, работает хорошо в Windows", но вы действительно уверены в этом?
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/ и он работает. Теперь все хорошо с чистой скоростью.

чувак
источник
Это сработало отлично! Мое сетевое соединение теперь стабильно, и я смог продолжить миграцию со старого компьютера на этот. Я бы проголосовал за тебя, но, видимо, мне нужно больше репутации ... Я бы понял, но это странно, учитывая, что это был мой вопрос.
Шон Хилл
Спасибо, это помогло, я не могу войти в Интернет после перезагрузки, хотя. Кажется, есть потенциальные проблемы с занесением в черный список модуля. Theres больше информации в комментариях к этому сообщению.
Дрю
чтобы попасть в интернет после перезагрузки, я выполнил несколько шагов отсюда ubuntuforums.org/showthread.php?t=723569 , кроме компиляции из источника
чувак,
Я обновил до gnome3 и потерял переопределение этого модуля, похоже, вам нужно пройти через эти шаги для каждого обновления ядра. Я не уверен, что делает initramfs, но я не делал этого до обновления. Я только что запустил его, и он обновил загрузочные ramfs для текущего ядра, может быть, он тоже обновится и для новых / cross finger
Дрю
Вы используете это? Вы замечаете эти проблемы? Здесь есть подсказки об автоматизации обновления до новых ядер с помощью DKMS djlab.com/2010/10/fixing-rtl8111-8168b-driver-debian-ubuntu
Дрю
8

Просто чтобы я мог найти это в следующий раз, когда мой SSD взорвется. Вот инструкции по удалению сломанного r8169 и вставке r8168 в Ubuntu с Linux Kernel 3.x.

Ядро 3.x

  • Загрузить r8168
  • Примените этот патч, если он все еще помечен как неразрешенный.
  • STOP : если вы планируете использовать DKMS, перейдите к разделу DKMS.
  • Запустите sudo ./autogen.sh, он соберет модуль, удалит старый (внесите его в черный список) и установите r8168.ko в / lib / modules / 'uname -r' / drivers / 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 (под управлением Kubuntu 11.10 64-bit) перестал работать: даже если сетевое соединение могло быть установлено, пакеты не были переданы ( pingна маршрутизатор не удалось с помощью «Destination Host») недоступен "). После make modulesи вставив модуль, он снова заработал. После rmmodустановки нового модуля и загрузки старого, сеть снова заработала. Это также верно после перезагрузки. Я не уверен, что помогло заставить этот сетевой адаптер работать снова (rmmod / insmod vs rmmod / insmod новый модуль), но, надеюсь, это кому-нибудь пригодится.
Лекенштейн
0

это может быть полезно

у вас могут возникнуть проблемы с драйвером r8169, если вы используете двойную загрузку Windows на некоторых системах. Windows по умолчанию отключает сетевой адаптер во время завершения работы Windows, чтобы отключить Wake-On-Lan, и этот сетевой адаптер останется отключенным до следующего включения Windows. Драйвер r8169 в ядре не знает, как включить сетевой адаптер из этого отключенного состояния; поэтому устройство не будет отвечать, даже если драйвер загружается и сообщает, что устройство работает. Чтобы обойти эту проблему, просто включите функцию «Wake-on-lan после завершения работы». Вы можете установить эти параметры через диспетчер устройств Windows.

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

чувак
источник
0

и еще одна вещь - чтобы сделать изменения с драйвером постоянными и предотвратить запуск r8169 после перезагрузки, я использовал это:

http://ubuntuforums.org/showthread.php?t=723569

чувак
источник
0

Ошибочные исправления:

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
источник
Не могли бы вы добавить объяснение того, что делают эти команды?