手动编译安装Linux网卡驱动
时间:2014-11-30 20:44 来源:linux.it.net.cn 作者:IT
以D-Link530的网卡进行模块的编译.
由于Linux的默认内核已经建立很多网卡驱动程序模块,所以在编译网卡模块之前就要确认网卡芯片是否被支持,如果被支持,就不需要编译模块.
D-Link530的网卡的芯片组是有名的via-rhine(有时也写成viarhine),先找找有没有这块网卡的模块,如果有,你的网卡已经被支持,可以跳过编译过程,直接进行模块的加载.
1.先查看内核版本,因为不同版本的模块放置的路径不同
uname -r
2.内核模块的路径
cd /lib/modules/`uname -r`/kennel/drivers/net
以上为2.4版的路径
cd /lib/modules/`uname -r`/net
以上为2.2版的路径
3.查询模块
ls -l via*
如果自己不知道网卡被Linux检测到,可以用以下方法来测试:
dmesg | grep eth
如果检测到,就不需要编译内核模块.万一检测不到,就必须进行编译工作了.
1.下载网卡驱动程序模块.
2.确定存在所需要的包:由于驱动程序需要配合内核来编译,就会用到kernel source或kernel header的数据,此外也需要编译器的帮助,先确定Linux中是否已经存在下面的包(以Red Hat 9为例):
kernel-source-2.4.20-18.9
kernel-2.4.20-18.9
gcc-3.2.2-5
make-3.79.1-17
如果没有以上的包,就要拿出光盘,将他们安装到Linux中.
注意:由于很多内核模块默认都是由/usr/src/linux这个kernel source的目录来取得所需信息,但偏偏目前很多的Linux都是使用/usr/src/linux-2.4这个目录来链接,所以很多时候就会发现找不到文件的错误信息. 因此,可以使用下面的方式来链接目录:
cd /usr/src
ln -s linux-2.4.20-18.9 linux
3.编译下载的模块
下载完整的驱动程序源代码,如文件名为:dlkfet-4.24.tar.gz
1.将取得的文件放置到/tmp下,并解压文件
cp dlkfet-4.24.tar.gz /tmp
cd tmp
tar -zxvf dlkfet-4.24.tar.gz
cd dlkfet-4.24
2.开始编译
make
会产生一个文件模块:rhinefet.o,将它移动到模块放置的目录后,执行depmod -a即可.
cp rhinefet.o /lib/modules/`uname -r`/kennel/drivers/net
depmod -a
4.模块测试
内核模块编译完成后,就要测试能否正常运行,因为我们已经运行depmod -a,所以直接以modprobe进行模块的加载.
1.加载模块测试
modprobe rhinefet.o
注意,不要写完整的名称,.o不需要写.rhinefet就是刚刚编译出来的rhinefet.o.
lsmod
2.设置开机加载摸块
就是编辑/etc/modules.conf
vi /etc/modules.conf
在文件中加入下面一行:
alias eth0 rhinefet
3.重新启动,看是否正常启动模块
sync;sync;reboot
上面我们使用的是rhinefet模块,如果不是这个名称,就请依你的实际情况来修改.接下来就是测试这个网卡是否正常工作.
(责任编辑:IT)
以D-Link530的网卡进行模块的编译.
由于Linux的默认内核已经建立很多网卡驱动程序模块,所以在编译网卡模块之前就要确认网卡芯片是否被支持,如果被支持,就不需要编译模块. D-Link530的网卡的芯片组是有名的via-rhine(有时也写成viarhine),先找找有没有这块网卡的模块,如果有,你的网卡已经被支持,可以跳过编译过程,直接进行模块的加载.
2.内核模块的路径 cd /lib/modules/`uname -r`/kennel/drivers/net 以上为2.4版的路径 cd /lib/modules/`uname -r`/net 以上为2.2版的路径 3.查询模块 ls -l via* 如果自己不知道网卡被Linux检测到,可以用以下方法来测试: dmesg | grep eth 如果检测到,就不需要编译内核模块.万一检测不到,就必须进行编译工作了. 1.下载网卡驱动程序模块. 2.确定存在所需要的包:由于驱动程序需要配合内核来编译,就会用到kernel source或kernel header的数据,此外也需要编译器的帮助,先确定Linux中是否已经存在下面的包(以Red Hat 9为例):
kernel-source-2.4.20-18.9 如果没有以上的包,就要拿出光盘,将他们安装到Linux中. 注意:由于很多内核模块默认都是由/usr/src/linux这个kernel source的目录来取得所需信息,但偏偏目前很多的Linux都是使用/usr/src/linux-2.4这个目录来链接,所以很多时候就会发现找不到文件的错误信息. 因此,可以使用下面的方式来链接目录:
cd /usr/src 3.编译下载的模块
下载完整的驱动程序源代码,如文件名为:dlkfet-4.24.tar.gz 2.开始编译 make 会产生一个文件模块:rhinefet.o,将它移动到模块放置的目录后,执行depmod -a即可.
cp rhinefet.o /lib/modules/`uname -r`/kennel/drivers/net 4.模块测试 内核模块编译完成后,就要测试能否正常运行,因为我们已经运行depmod -a,所以直接以modprobe进行模块的加载. 1.加载模块测试 modprobe rhinefet.o 注意,不要写完整的名称,.o不需要写.rhinefet就是刚刚编译出来的rhinefet.o. lsmod 2.设置开机加载摸块
就是编辑/etc/modules.conf 在文件中加入下面一行: alias eth0 rhinefet 3.重新启动,看是否正常启动模块 sync;sync;reboot
上面我们使用的是rhinefet模块,如果不是这个名称,就请依你的实际情况来修改.接下来就是测试这个网卡是否正常工作. |