xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 IT之家 2019-12-12 16:21 的文章
当前位置: 新濠国际登录平台 > IT之家 > 正文

支持linux的驱动程序包是,最小化后安装驱动的

前几天买下了Tenda U12 USB 无线网卡 ,想连接上无线玩玩,可惜买下折腾了一周才解决他它驱动问题,前后在VMware上装了十多次,测试了好几个内核版本才搞定,好了废话不多说,分享下我安装过程的经验:

centos7 无线网卡驱动的安装及无线网络的配置

CentOS 6.4编译安装无线网卡驱动

为什么要使用无线网络呢?

  原本是在CentOS7 最小化后安装驱动的,没想到遇到这么多问题,只能现在图形化界面先进行调试,完了再最小化安装。

我的无线网卡的型号是:水星MERCURY

 

因为无线网络使用比较方便,使用无线网络我们不必使用那些乱糟糟的网线就能实现上网,现在无线网络比较普及,尤其在那些不方便布线的地方(山区、河流、机场、横跨马路、机场、工厂车间等)更是盛行。

安装环境:

支持linux的驱动程序包是:RTL8188eus_USB_linux_v3.4.4_4749.20121105

       刚开始接触CentOS,下载了DVD1镜像刻录的系统盘;为了能够尽快熟悉CentOS,安装的时候选择了以minimal形式安装;系统安装成功后,首先要解决的问题便是网络问题,机子所处的网络环境是以无线网络,所以让无线网卡跑起来成了首要任务。下面便是编译安装网卡驱动的过程。 

我呢,最近为了玩linux将我的电脑装成了linux操作系统,由于先前没有做好功课,装上系统后,我要哭了,发现我的电脑没有办法使用我们宿舍的无线上网,在网上找了好久发现我的电脑集成的无线网卡并没有支持linux的驱动程序。可是我又不想换回原来的系统啊,于是我就,买了个usb无线网卡(附带有linux驱动我才买的哦)。然后我就迫不及待的去尝试着去安装驱动喽,试了好几次终于成功了,这里就给大家分享一下下哦。

  U12驱动官方下载:

1.首先查看网卡的信息lsusb

 

我的无线网卡的型号是:Realtek 8176

 新濠国际登录平台 1

新濠国际登录平台 2

一,编译驱动 

支持linux的驱动程序包是:RTL8192xC_USB_linux_v3.4.4_4749.20121105

  我的CentOS7内核:

2.解压驱动

       由于是最小化安装,在编译之前要先把gcc, linux的头文件等都装上,这些软件包都在刻录的光盘里;可以通过rpm来安装,但这样比较麻烦,因为有些包的安装要依赖其他包的安装,要根据rpm的提示依次安装;快捷的话还是使用yum工具,这之前要先修改下/etc/yum.d/CentOS6.4-Media.repo 中的bashrc到光盘的挂载路径,或者Packages所在的路径,(要是把光盘中的Packages拷贝到本地的话,同时要拷贝repo.data文件);然后以 #yun --disablerepo=* --enablerepo=c6-media install  **安装,这个在CentOS6.4-Media.repo文件中有说明。 

当然,如果你的usb无线网卡你不知道是什么型号的话,你可以插入你的linux主机,待系统识别后通过lsusb查看你的无线网卡型号,可以根据型号去网上找相应的驱动,这个命令是不是很有用处哦!

3.10.0-327.el7.x86_64(满足2.6.18~4.4内核)
tar zxvf rtl8188eu.tar.gz

 

下面就是详细的安装过程,大家伙可要看仔细哦!

错误:

新濠国际登录平台 3

编译驱动的话,一般不会出问题,有问题的话也是linux头文件的包含

要想安装驱动,你得把驱动程序包弄到电脑里吧,不用说大家伙也知道不是:

直接执行安装目录下的install时,在执行到make命令时报错:

3.進入rtl8188eu/rtl8188eu-master

路径问题等小问题;我遇到的问题是不完全类型,也就是类型未定义:tx_power_setting;看了下驱动的源码,发现是与linux内核版本有关,到包含的linux头文件中发现定义的是 nl802_tx_power_setting;注释掉相关#if #else的编译控制宏,最后编译通过。 

新濠国际登录平台 4

  由于字数限制,错误的详细信息:链接 密码:tcrj

切換root權限,執行make和make iinstall

 

接着,使用unzip将驱动包解压到当前目录,解压完成后进入解压的目录:

关键错误信息:

一般linux内核会自动加载新安装的模块,此处发现并没有加载,那是什么原因呢?原因是这样的,当系统重新安装了驱动模块后,系统一般会在重新启动后加载,如果不能加载,我们可以使用指令:insmod +具体路径和模块或者直接使用modprobe不需指明路径或将生成的8188eu.ko复制到/lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/net/wireless。

这时最好 strip -g 一下,把调试信息去掉;然后把*.ko拷贝到/lib/.../kernel/modules/net/wireless/下 具体路径忘了,反正这个路径下有cfg802.ko ,可以find -name cfg802找到这个路径;然后depmod ,(我接着执行 modprobe,但,没挂载成功,不知道什么原因,恳请大牛明示,不知道是不是与启动过程中未载入某些文件有关,因为kernel-devel是后来装的),最后reboot,让他自己挂载;reboot的后lsmod了后发现挂载成功;然后ifconfig wlan0 iwlist ...等,不再多说。 

新濠国际登录平台 5

新濠国际登录平台 6新濠国际登录平台 7

下面我们重启后,看看系统能否自动加载模块(下圖已加載):

 

那我们首先安装驱动动程序,进入driver目录:

/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:87:13: 错误:‘IEEE80211_BAND_2GHZ’未声明(不在函数内)
   .band   = IEEE80211_BAND_2GHZ,  
             ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:145:2: 附注:in expansion of macro ‘CHAN2G’
  CHAN2G(1, 2412, 0),
  ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:96:13: 错误:‘IEEE80211_BAND_5GHZ’未声明(不在函数内)
   .band   = IEEE80211_BAND_5GHZ,  
             ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:162:2: 附注:in expansion of macro ‘CHAN5G’
  CHAN5G(34, 0),  CHAN5G(36, 0),
  ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:162:2: 错误:初始值设定元素不是常量

新濠国际登录平台 8

二, wpa_supplicant的配置 

新濠国际登录平台 9

View Code

4.用ifconfig查看若沒有用 ifconfig -a查看(PS:这是为什么呢?原来是ifconfig查看的是已激活的网卡,ifconfig -a 查看的所有的,此时我们只需要将wlp0s29u1u6激活;激活用ifconfig wlp0s29u1u6 up)

           现在的无线网一般都是以WPA方式加密,这个需要wpa_supplicant服务的支持,这个软件包在DVD1光盘中又,rpm一把就ok了;接下来就是对他的配置了。 

我们发现这些都是源代码,我们需将它拆解到/usr/local/src目录:

大意就是说:

新濠国际登录平台 10

现在,假设你要连接的AP服务器的SSID为 “wl" 密码为 ”123456“, 

tar -zxvf rtl8188C_8192C_usb_linux_v3.4.4_4749.20121105.tar.gz-C /usr/local/src/

  编译时报错,IEEE80211_BAND_2GHZ未定义,如之前分析,这是由于U12基于linux无线框架,需要内核中包含cfg80211和mac80211模块,所以需要重新编译内核。

5.進入rtl8188eu/wireless_tools

step 1: 修改wpa_supplicant的配置文件/etc/wpa_supplicant/wpa_supplicant.conf;执行: 

然后进入解压后的目录:

 

我们再次将包拆解到/usr/local/src目录下

# wpa_passphrase wl  123456 >> /etc/wpa_supplicant/wpa_supplicant.conf ; 

新濠国际登录平台 11

解决办法:

新濠国际登录平台,tar -zxvf wireless_tools.30.rtl.tar.gz -C /usr/local/src/进入到拆解的目录

这个命令其实就是将wl和密码加密一把记录在wpa_supplicant的配置文件中,当然你也可以手动修改,但那样的话,你的密码是以明文方式记录在文件中,当然使用的时候wpa还是会在加密处理一般的。 

进行make和make install来生成linux模块(注意在linux下所有的驱动都是以模块的形式存在的)

1.下载驱动和一会要编译的内核(我这里选择的是4.1.8):

切換root權限,執行make和make iinstall

 

新濠国际登录平台 12

  驱动下载:  

我们进入/usr/local/sbin目录下:

step2: 修改/etc/wpa_supplicant文件,这个文件是告诉wpa_supplicant 要使用哪个无线网卡和驱动类型,驱动类型的话你可以 执行以下 man wpa_supplicant再根据你编译的驱动相关信息填写相应的值。 

新濠国际登录平台 13

  内核下载:

新濠国际登录平台 14

step3 : 开启wpa_supplicant服务,#service wpa_supplicant start ; 使用static ip,用iwconfig 或ifconfig配置一把;动态ip的话,执行 #dhclient wlan0(运行的网卡代号)来获取ip地址就可以了。

一般linux内核会自动加载新安装的模块,此处发现并没有加载,那是什么原因呢?原因是这样的,当系统重新安装了驱动模块后,系统一般会在重新启动后加载,如果不能加载,我们可以使用指令:insmod +具体路径和模块或者直接使用modprobe不需指明路径。

  新濠国际登录平台 15

6.接着我们使用iwlist scanning 列出周围的无线网络:

 

下面我们重启后,看看系统能否自动加载模块:

  1.1确保你的网卡已经插上并识别:

新濠国际登录平台 16

6.4编译安装无线网卡驱动 刚开始接触CentOS,下载了DVD1镜像刻录的系统盘;为了能够尽快熟悉CentOS,安装的时候选择了以minimal形式安装...

新濠国际登录平台 17

  如果你数最小化安装,请先注册lsusb命令

7.当然光搜素到无线网络是没有用处的,因为这些无线网络都是加密的,我们必须要验证工具来进行密钥验证,下面我们进入到rtl8188eu/wpa_supplicant_hostapd目录

但是为了完成网卡和模块的对应关系,我们必须修改/etc/modprobe.conf文件,否则网卡无法获取到ip地址哦:

yum install usbutils

解压  wpa_supplicant_hostapd-0.8_rtw_20120803.zip 进入到/wpa_supplicant_hostapd-0.8/wpa_supplican 执行make和make install

新濠国际登录平台 18

  然后使用lsusb命令:

新濠国际登录平台 19

一旦模块加载完成,网卡就被驱动起来了,我们可以使用ifconfig查看是否显示出来wlan0:

本文由新濠国际登录平台发布于IT之家,转载请注明出处:支持linux的驱动程序包是,最小化后安装驱动的

关键词: