18 дек. 2012 г.

Сеть 1Gb (1000BaseT) на контроллерах RTL8111/8168B встроенных в материнскую плату

Недавно столкнулся с тем, что драйвер для  интегрированного в материнскую плату сетевого адаптера RealTek RTL8111/8168B/8169, идущий вместе с ОС Debian / Oracle Linux 6 ни в какую не хочет работать в режиме 1Gb.
Проблема эта решается установкой свежей версии драйвера.
В Debian 7 я эту проблему решил установкой драйвера из исходников:

1.  Переходим на сайт разработчика Realtek и качаем нужную нам версию (LINUX driver for kernel 3.x and 2.6.x and 2.4.x) с миррора поближе к нам. Ссылки там сделаны в виде жабаскриптов, потому из консоли мне скачать не удалось, да и не беда это. Скачиваем, затем по scp или ещё как копируем на сервер файлик r8168-8.034.00.tar.bz.

2. Распаковываем и переходим в директорию:

tar -xjvf r8168-8.034.00.tar.bz
cd r8168-8.034.00


3. Устанавливаем необходимые пакеты, если их еще нет:

aptitude install build-essential linux-headers-$(uname -r)
4. Запускаем скрипт инсталлятора - он всё сделает сам и в конце перезагружаем машину.

./autorun.sh
shutdown -r now

После ребута, если ваше сетевое оборудование поддерживает стандарт 1000baseT, то драйвер поднимет линк на этой скорости автоматически. Если нет, то выполняем команды:

ethtool -s eth0 speed 1000 duplex full
mii-tool -vv eth0

Для RedHEL-ов в этом случае попроще - ставим необходимую rpm-ку и ребутимся:

rpm -Uhv ftp://ftp.pbone.net/mirror/elrepo.org/elrepo/el6/x86_64/RPMS/kmod-r8169-6.017.00-1.el6.elrepo.x86_64.rpm
shutdown -r now