看上面的图片就知道接下来要说的内容,没错就是教大家如何在 Linux 系统中安装网卡驱动。很多时候我们装完一个 CentOS 系统或者是 Ubuntu 系统,又或者是其他什么类 UNIX 系统的时候,会发现竟然没有网卡信息,一般情况这就表示网卡驱动不配置,但服务器通信只要就是靠网络来进行数据传输,所以解决方法就是重新安装系统的网卡驱动。关于网卡驱动安装的思路这里分享给大家:
-
首先可以着手从我们的硬件进行检查,检查网卡本身的是否存在异常;
-
完成了第一步,那么接下来就是需要检查网卡芯片的型号,我们平时比较常见的网卡芯片有 Intel RC82545EM、Realtek 8139D、 Broadcom NetXtreme、3Com 3C940、SIS900、VIA VT6105L 等等。可以通过
lspci
来查看本机的网卡芯片信息。 -
第三步就是查看当前系统是否包含对应型号的网卡驱动,查看的目录:
/lib/modules/release/kernel/drivrs/net
-
最后一步需要检查网卡驱动是否加载
-
lsmod
这个命令可以查看当前系统已经加载到的所有模块信息 -
如果网卡没有被加载的话,那么需要使用
modprobe
后面跟上模块文件的名字来进行加载modprobe
命令的语法:modprobe [选项] 模块文件
modprobe
命令的选项相关介绍:选项 选项说明 -r,–remove 这个选项的作用就是指定一个模块进行卸载操作 -l,–list 列出所有可用的模块 -c,–show-conf 显示出所有模块的设置信息 -K,–autoclean 将指定的模块设置为 autoclean 自动清除的模式 -a,–all 加载一组匹配的模块 -n,–show 只是显示即将要执行的操作,但是实际上并不进行执行 -v,–verbose 在执行命令时显示详细的输出信息 -q,–quiet 使用这个选项便不会显示错误信息
-
以上介绍了关于网卡驱动安装的一些思路,接下来我们就说下编译安装网卡的两种方式,分别是使用 RPM 包进行安装和使用源码包进行安装,那咱们话不多说,直接为大家演示安装方法吧。
方法一:RPM/Source RPM驱动包安装方式
这里我们就以 IBM X3650 服务器上的 Broadcom NetXtreme II 网卡为例进行安装。
-
首先我们需要在 IBM 的官网里面下载对应服务器型号的网卡驱动程序,然后利用 U 盘或者其他工具传到我们的 Linux 服务器上,然后接着就是进行编译了。
$ rpm -ivh bnx2-
.src.rpm
$ cd /root/rpmbuild
$ rpmbuild -bb SPECS/bnx2.spec -
第二步就是编译好刚才下载的驱动包
$ cd /root/rpmbuild/RPMS/X86_64
$ rpm -ivh bnx2-.x86_64.rpm
安装成功后会它们显示在这个路径:
/lib/modules//extra/bnx2.ko
复制生成的模块文件到目录:
/lib/modules//kernel/drivers/net -
接着就是加载驱动程序了
$ insmod
$ modprobe bnx2
以上两种方法任选其一 -
加载好之后,查看网卡驱动的加载情况
$ lsmod | grep bnx2
执行这个命令,如果命令的输出中有包含 bnx2 模块,则表示网卡驱动编译是成功的 -
对网卡进行激活,并查看网卡状态
$ ifconfig eth0 up
中间的是网卡设备名,这里以 eth0 为例
$ ifconfig -a
查看网卡的信息
方式二:源代码驱动包安装方式
这块我们就以安装 Realtek RTL8168/8111 网卡为例进行实验说明。
-
首先需要从 Realtek 的官网上下载源码,然后上传到 Linux 系统上,接着再创建一个目录,并把源码解压到此目录下。
$ mkdir /temp
$ cd /temp
$ tar jxvf r8168-8.aaa.bb.tar.bz2 -
进行编译安装源码
$ cd r8168.aaa.bb
$ make clean modules
$ make install
$ depmod -a
这步是用来检查模块之间的依赖关系
$ insmod ./src/r8168.ko
加载 r8168 模块
$ lsmod | grep r8168
最后再检查一下 8168 模块是否加载
以上就是关于安装网卡驱动的两种方法。Linux 大多数都用来做服务器,所以对于网络的需求是非常重要的。在 Linux 中,网络分为两个层,分别是网络堆栈协议支持层和设备驱动程序层,网络堆栈是硬件里独立出来的一个部分,主要是用来支持 TCP/IP 等协议的,而网络设备驱动层则是连接网络推展层和网络硬件的中间层。