解决Ubuntu系统不能使用技嘉(GA)主板内置网卡(芯片R8168)的问题

最近新配了一台服务器,因为用了技嘉主板,安装Ubuntu系统之后,发现根本无法使用网络。后经查发现是驱动的问题,,必须要更换系统自带的网卡驱动。

Ubuntu 11.04(其他版本也一样)自带了r8169这个驱动,我们必须把它换成RealTeck官方的网卡驱动。具体操作步骤见下文:

注意:如果里面的驱动源码无法下载,可以在下面的地址下载r8168-8.024.00.tar.bz2

免费下载地址在

用户名与密码都是

具体下载目录在 /pub/2011/08/14/解决Ubuntu系统不能使用技嘉(GA)主板内置网卡(芯片R8168)的问题/

The Linux driver r8169 for the Realtek network chip in the EQ servers does not work correctly in CentOS 5.x, Ubuntu 9.04, OpenSUSE 11.1 and Debian Lenny. Timeouts and state changes to link down may occur. The solution is to use the official Realtek r8168 driver. Unfortunately this driver is not yet included in any distribution. For CentOS it can be installed from 3rd party repositories. For Debian and Ubuntu it must be compiled by the user.

This article describes how to setup the network driver.

Inhaltsverzeichnis[Verbergen]1 Using kmod-r8168 from elrepo.org on CentOS2 Using r8168-kmp from the OpenSUSE 11.1 NIC drivers repo3 Installation from source 3.1 Prerequisites 3.1.1 CentOS3.1.2 Debian/Ubuntu3.2 Getting the sources3.3 Compiling the driver3.4 Activating the new driver 3.4.1 CentOS3.4.2 Debian Lenny / Ubuntu 9.04

Using kmod-r8168 from elrepo.org on CentOSELRepo is a RPM repository for Enterprise Linux packages. ELRepo supports Red Hat Enterprise Linux and its derivatives (CentOS, Scientific Linux and others). It is the easiest way to get the r8168 driver for the standard upstream kernels.

NOTE: If you are using a special kernel like Virtuozzo, OpenVZ or something similar. You MUST compile the module yourself!

To install ELRepo for RHEL5, CentOS-5 or SL5:

rpm -Uvh Import the public key:

rpm –import To install kmod-r8168 Realtek r8168 driver:

yum –enablerepo=elrepo install kmod-r8168After reboot the new driver is used. It stays active even after kernel upgrades.

Due to the inadvertent application of an erroneous patch upstream, the updating of kmod packages is currently broken for CentOS 5.5 (el5.5).A workaround is explained at

Using r8168-kmp from the OpenSUSE 11.1 NIC drivers repo OpenSUSE offers prebuilt Kernel module packages (kmp). You just have to add the repository to zypper and install the matching package. In the example the -default kernel is assumed

cd /etc/zypp/repos.d wget :/nic/openSUSE_11.1/drivers:nic.repo zypper install r8168-kmp-defaultBefore rebooting, the r8169 must be blacklisted.

echo “blacklist r8169” >> /etc/modprobe.d/blacklistAfter the reboot only the r8168 module should show up in ‘lsmod’

Installation from source Prerequisites Please make sure you are running the latest kernel available with yum or apt-get.

CentOS On CentOS the packages ‘kernel-devel’ and ‘kernel-headers’ will install headers only for the newest kernel. The following packages need to be installed via the package manager:

yum install gcc gcc-c++ kernel-devel kernel-headersDebian/Ubuntu On Ubuntu the name of the header package depends on the selected kernel. It can be for example ‘linux-headers-generic’ or ‘linux-headers-server’. Both will install headers only for the newest kernel. The following package will install everything required for compilation (as root):

aptitude install build-essential linux-headers-`uname -r`

Getting the sources cd /tmp wget tar xjf r8168-8.019.00.tar.bz2Compiling the driver cd r8168-8.019.00 make allActivating the new driver CentOS The file /etc/modprobe.conf needs to be edited. Change the line

alias eth0 r8169to

alias eth0 r8168To activate the new driver, we create a simple shell script that does the necessary steps.

echo “rmmod r8169” > /tmp/r8168 echo “depmod -a” >> /tmp/r8168 echo “modprobe r8168” >> /tmp/r8168 echo “service network restart” >> /tmp/r8168 echo “service ipaliases restart” >> /tmp/r8168Execute that script:

sh /tmp/r8168After several seconds the server should be back online using the new network driver. Our working directory can now be removed:

rm -rf /root/r8168Debian Lenny / Ubuntu 9.04 After installing the driver, update the module dependencies.

depmod -aFirst the r8169 network driver needs to be blacklisted in order to prevent the kernel from loading it. Note If additional NICs are installed in the server, the module must not be blacklisted.

Ubuntu: echo “blacklist r8169” >> /etc/modprobe.d/blacklist.conf Debian: echo “blacklist r8169” >> /etc/modprobe.d/blacklistThen we force the kernel to include the driver in the initrd. This also ensures, that the new r8168 module is loaded before the r8169 module.

echo “r8168” >> /etc/initramfs-tools/modulesAnd rebuild the initrd

update-initramfs -v -u -k `uname -r`Now you can reboot to activate the driver.

After a kernel update the driver might need to be recompiled.]]

总有一天,我会丢下我所有的疲倦和理想,

解决Ubuntu系统不能使用技嘉(GA)主板内置网卡(芯片R8168)的问题

相关文章:

你感兴趣的文章:

标签云: