因工作需要,在电脑中安装CentOS,采用双系统模式。安装CentOS 5.5后,发现看不到网卡启动的迹象,用"ifconfig" 查看,发现没有物理网卡显示,用 "dmesg | grep eth0" 做进一步确认,发现eth0的信息依旧为空。判断原因是缺少网卡驱动导致,这从安装过程中也能观察到,如果系统支持当前网卡,会在安装时提示IP配置,不支持当前网卡,安装时不会有配置网卡的步骤。后来尝试通过"System" -> "Administration" -> "Network" 来新建一个网卡设备,但是依旧失败,这样就确定了只能通过安装Atheros AR8132的驱动来解决问题了。
解决方法
准备工作
因为安装电脑的U口不可用,为了方便将安装文件导入Linux,我先将文件存在Windows分区下,希望通过挂载分区的方法拷贝文件。不过希望落空了,CentOS 5.5安装的默认内核是2.6.18-194.el5,不支持ntfs的文件系统的挂载,这能用别的方法了。后来试了几个在Windows下识别Ext3文件系统的软件,但是能够成功写的不多,最后找到一款合适的软件"Ext2Fsd", 能成功对Ext3的文件系统读写。这样文件互访就问题了。接下来下载2.6.18-194.el5的源码包,gcc的安装包,Atheros AR8132的驱动源文件。
安装步骤
1. 安装gcc
安装时,采用rpm编译包的方式进行、不用采用源码包安装,因为新系统内没有C的编译器,安装时需要找各种其它资源,如CC Compiler,过程很繁琐,所以直接用rpm安装。在CentOS的系统安装盘的"CentOS"的文件夹中找到以下文件, 并在Linux中安装:
rpm -ivh cpp-4.1.2-48.el5.i386.rpm
rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm
rpm -ivh glibc-headers-2.5-49.i386.rpm
rpm -ivh glibc-devel-2.5-49.i386.rpm
rpm -ivh libgomp-4.4.0-6.el5.i386.rpm
rpm -ivh gcc-4.1.2-48.el5.i386.rpm
顺便也可以安装g++:
rpm -ivh libstdc++-devel-4.1.2-48.el5.i386.rpm
rpm -ihv gcc-c++-4.1.2-48.el5.i386.rpm
2. 安装Kernel Source Code
设备驱动安装需要有内核源码包,但不要下载整个源码包,到安装盘中拷贝安装"kernel-headers", "Kernel-devel"的rpm包即可。需要注意的是源码内核版本必须与当前系统内核版本一致,可以用"uname -r"查看当前CentOS的内核版本。
rpm -ivh kernel-2.6.18-194.el5.i686.rpm
rpm -ihv kernel-devel-2.6.18-194.el5.i686.rpm
说明一下,安装盘中的源码编译包是i686的,没有找到i386的。
3. Atheros AR8132驱动安装
首先下载"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
自此,安装过程结束。