碰到了最不愿碰到的问题,Linux的内核与当前主板网卡不兼容。
该死的映泰A780G偏偏集成该死的RTL8168网卡模块。。
1.先确定不能上网的原因:输入命令mii-tool 如果显示有no support的字样,可以肯定是网卡没有驱动了。也可以通过dmesg | grep eth 判断是否是网卡没有驱动导致的。
2.检查主板型号,并在主板的官方网站上找到该板集成的网卡模块。(与Linux不兼容的多是RTL8111系列或者RTL8168)
3.节省时间,直接去网卡模块提供商的官网http://www.realtek.com.tw/ ,搜索你的网卡型号。(注意选择是unix/linux)
4.检查系统内核版本:uname -r (我的是2.6.18-92.e15)
5.安装主要的编译环境包,我是通过挂载光盘获得rpm的包。(通过光盘安装的好处是版本保持一致)
安装关于gcc的所有包(用不到的也装)---------------> rpm -ivh gcc* --nodeps
安装kernel-headrs --------------------------------------> rpm -ivh kernel-headers --nodeps
安装kernel-devel ----------------------------------------> rpm -ivh kernel-devel --nodeps
kernel-devel会在你的/usr/src目录下生成一个kernels文件夹,不用管他。直接进入驱动目录执行第6步。
6.在Realtek的官网上找到了驱动,下载后,进入网卡文件的目录执行(根据网卡的安装说明)命令:
编译之前先查找并删除系统自带的网卡驱动模块,以防会有驱动冲突问题。(我的系统自带的是r8169)
#lsmod | grep r81*
删掉显示的驱动模块
#rmmod r8169
开始编译并安装
# make clean modules
# make install
# depmod -a
# insmod ./src/r8168.ko ------------------------->src是在下载的驱动目录下面。
主要的错误如报“build”目录不存在,没有r8168.ko文件等,基本都是因为缺少编译环境造成的。所以一定要耐下心来,尤其是gcc,kernel.devel ,kernel.headers这三个类包一定要安装。