博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS——自己安装网卡驱动
阅读量:4362 次
发布时间:2019-06-07

本文共 2423 字,大约阅读时间需要 8 分钟。

前言

前几个星期,自己攒了一台电脑,主板是Gigabit的Z77-DS3H,系统装了CentOS 6.4。郁闷的是,这个系统不支持主板自带点的网卡。没办法,自己一个人折腾了好久,终于被我解决了,在此过程中各种碰壁,故特此记录。

正文

问题出现

如图:

这是我刚安装好系统之后的截图。在终端可以发现只有一个lo连接而没有eth0,而在右上角,联网图标下面的提示上显示了“No network device availabal”。由此判断,是系统没有合适的驱动所致。

查看设备

使用以下命令查看网卡信息:

1 lspci | grep -i eth

 显示的结果为:

02:00.0 Ethernet controller: Atheros Communications Inc. AR8161 Gigabit Ethernet (rev 10)

在上找了一下,发现了。在#6的回复里面,我找到了可行的解决方案。

 之前试过了无数次,简直是个噩梦。。。

在那则回复里面,作者要我们去下载驱动。

我这里直接给出文件的链接,大家可以用wget或者其他下载工具直接下载:

下载下来的文件名是alx-linux-v2.0.0.6.rar

根据您在看这则文章时使用的操作系统:

Windows系统

建议安装7Z这个压缩软件,他可以将文件夹或多个文件打包并压缩为tar.gz/bz2格式,(当然也支持rar格式,而且和rar不同,他是免费软件。。。这里当成是对7Z的推广好了)当然也支持将tar.gz/bz2等文件解压缩。

这样一来,如果你下载的是rar文件,也可以将其解压后重新压缩为tar格式,然后用U盘之类的存储器转移到Linux下进行编译安装。不然,Linux一般是解压不了rar文件的,但是网上大部分的压缩文件都是rar格式了。

Linux系统

可能是有其他网卡,所以还能联网,还能看到这篇文章。或者就是两台Linux主机,用其中一台可以上网的来下载。

下载到tar之类的格式的不用担心,下载到rar格式的,用yum搜索一下rar好了。

啊,悲剧了,下载来的文件是rar格式的。我是在windows下下载的,所以用7Z解压再压缩,然后用手机转移过去(因为没有U盘Orz...)

  编译和安装

编译前提

你要安装了kernel-headers 和 kernel-devel。当然,还有gcc。

不过悲剧的是,CentOS默认是没有安装好gcc的。如果你不确定是否有安装gcc的话,请直接在终端里输入gcc,如果没有安装,就会提示bash: gcc: comman not found。

要是真的悲剧了,gcc没有安装怎么办?我是插入一张bin DVD,然后更改了yum的配置文件,让yum的软件源变成本地的光盘。这个方法有机会以后再介绍。

要安装kernel-headers 和 kernel-devel,你需要以下两条命令:

1 sudo yum install kernel-headers2 sudo yum install kernel-devel

 以上两个只需要安装一次,以后编译其他驱动就不用再安装了。

编译

将下载下来的压缩包解压后,出现一个目录(alx-linux-v2.0.0.6),我们进入这个目录之后,直接执行make就可以了。

之后,我们再进入当前目录的src目录,用ls可以发现,有一个叫做alx.ko的文件,这个就是我们要用的网卡驱动了。

安装驱动

执行一下pwd,我们应该是在xxxx/alx-linux-v2.0.0.6/src目录下。接下来,我们只要再把那个alx.ko复制到指定目录下就可以了。

这里直接上图:

只要按照上面显示的步骤来,马上就会有效果了——请看此图右上角,从原来的红叉叉变成绿圈圈了。

命令:

1 sudo mkdir /lib/modules/$(uname -r)/kernrl/net/wireled        #这里的$(uname -r)会替换成系统当前的版本号2 sudo cp alx.ko /lib/modules/$(uname -r)/kernrl/net/wireled    #将驱动文件拷贝到指定位置3 sudo depmod -a                                                #检测模块的相依性,lib下驱动文件改变后最好执行一下4 sudo modprobe alx                                             #在默认位置上加载了alx.ko

至于lsmod | grep alx是为了查看该驱动是加载成功。如果该驱动没有被加载的话,那么就什么都不显示。

在上图,执行modprobe之前和之后有明显不同。

显示:alx             90654   0  说明该驱动成功被载入了。

重启之后,该驱动也还在。所以,不用像那个论坛里那个人写的那么麻烦了。

解决问题

好了,用不管是用ifconfig看,还是用右上角的图标看,问题似乎都完全解决了。接下来,就随你怎么配置网卡了。我是配置了拨号连接。

后记

  •  如果载入驱动成功后,使用ifconfig还无法看到eth0的话,使用:
    1 ifconfig -a                #这样就可以发现eth0了(eth0是第一个,如果你有其他网卡,就会有eth1,2,3...)2 sudo ifconfig eth0 up      #根据上面看到的替换eth0,一般是eth0

     

  • 要想编译驱动之类的东西,必须先安装kernel-headers 和 kernel-devel

  • 查看设备信息,使用:
    1 lspci #加上 -v 选项更完整

     

转载于:https://www.cnblogs.com/along0715/p/3207379.html

你可能感兴趣的文章
ubuntu下如何查找某个文件的路径
查看>>
es6常用基础合集
查看>>
关于数据库表的“记录”与“字段”
查看>>
Huffman树学习
查看>>
获取用户地理位置
查看>>
kubernetes cpu限制参数说明
查看>>
SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
查看>>
Linux 常用命令二 pwd cd
查看>>
Axis通过wsdd部署Web Service
查看>>
【SQL】sql版Split函数。用于拆分字符串为单列表格
查看>>
HashMap实现原理分析
查看>>
第一冲刺阶段工作总结02
查看>>
Python操作Redis(转)
查看>>
Xshell 基本使用方式 (1) -- 使用Xshell 连接 VMware下的linux系统
查看>>
[BZOJ1726][Usaco2006 Nov]Roadblocks第二短路
查看>>
Bundle Identifier
查看>>
node--更新数据库问题
查看>>
《JavaScript权威指南》学习笔记 第二天 下好一盘大棋
查看>>
PHP 进程详解
查看>>
51nod 1278 相离的圆
查看>>