前些天由于工作需要装上了RHEL5.4,但是安装完之后ifconfig没有显示任何物理网卡,初步断定是因为网卡太新,系统自带驱动不支持的原因。
以下是我的网卡型号:
网卡 鈺硕 AR8132 PCI-E Fast Ethernet Controller 制造商 华硕
无线网卡 Atheros AR9285 Wireless Network Adapter 制造商 Azurewave
打算先弄无线网卡驱动Google一番,试过Madwifi神马的没弄好,甚至下载最新内核进行编译,一阵折腾终以失败告终,最后还是老老实实弄有线网卡。
又google一番,找到AR81Family-linux-v1.0.1.14.tar.gz,貌似支持AR8132网卡,解压-make,但是出错了,然后又找了一个AR81Family-linux-v1.0.1.19.tar.gz,这个版本make成功(具体见下文)
将生成的目标代码文件copy到/lib/modules/<KERNEL VERSION>/kernel/drivers/net/目录下(按照原文#insmod arl1e.o 出现模块格式错误),然后再ifconfig就ok了,不过物理网卡名称显示为eth1(可以修改,但是懒得改了)
注意:make前一定确保系统安装了内核源码kernel-source,否则驱动编译错误,无法继续。
安装过程参考文章《CentOS 5.5安装Atheros AR8132网卡驱动》:http://blog.csdn.net/conhen/article/details/6747131
以下是原文节选:
首先下载"AR81Family-linux-v1.0.0.10.tar.gz", 解压后安装"Readme" 中的提示步骤安装。
我操作的时候,遇到一个报错:
kcompat.h: 1561: error: redefinition of 'stuct napi_struct'
提示数据结构"napi_struct"重复定义,Google一下后,找到解决办法,将重复定义部分进行注释即可。
用编辑器打开"kcompat.h",找到1561的位置,注释掉如下的预编译代码:
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) )
/* NAPI API changes in 2.6.24 break everything */
struct napi_struct {
/* used to look up the real NAPI polling routine */
int (*poll)(struct napi_struct *, int);
int weight;
};
还有对应的"endif"部分:
endif /* < 2.6.24 */
清除一切的编译记录,再次make,就发现正常编译通过了。
最后进入目录:/lib/modules/<KERNEL VERSION>/kernel/drivers/net/arl1e
安装模块:
insmod arl1e.o
4. 配置网卡
此时,用"ifconfig" 命令就可以查看到eth0了,网卡以及被系统识别。
在目录 /etc/sysconfig/network-scripts/ 中配置, ifcfg-eth0 的ip和网关。
在 /etc/resolv.conf 中配置域名。
重启网络服务
service network restart
自此,安装过程结束。