云网牛站
所在位置:首页 > Linux教程 > Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

2018-08-14 20:51:24作者:feiquan稿源:LINUX站

本文演示在CentOS 7系统中安装Tenda U12 USB无线网卡驱动,先后测试了数次,测试好几个Linux内核版本终于搞定了,现在分享下安装经验。原本是在CentOS 7最小化后安装驱动的,没想到遇到这么多问题,只能现在图形化界面先进行调试,完了再最小化安装。

 

安装环境:

U12驱动官方下载

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

我的CentOS 7系统内核:3.10.0-327.el7.x86_64(满足2.6.18~4.4内核)

 

错误:

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

大意是:编译时报错,IEEE80211_BAND_2GHZ未定义,如之前分析,这是由于U12基于linux无线框架,需要内核中包含cfg80211和mac80211模块,所以需要重新编译内核。以下为安装全过程,也是解决错误的办法。

 

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

驱动下载

内核下载

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

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

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

yum install usbutils

然后使用lsusb命令:

lsusb

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

这个就是TendaU12的设备信息:

Bus 001: 指明设备连接到哪(哪条总线)

Device 002: 表明这是连接到总线上的第二台设备

ID: 设备的ID

Broadcom Corp. Bluetooth Controller :生产商名字和设备名

 

2.编译内核

在编译之前,如果你是最小化安装,你需要先安装gcc、bc 编译器

yum install gcc*,bc -y

2.1.解压内核到/usr/src/kernels/

tar -zxvf linux-4.1.8.tar.gz -C /usr/src/kernels/

2.2.进入解压的/usr/src/kernels/linux-4.1.8下,拷贝原有的配置文件

cp /boot/config-3.10.0-327.el7.x86_64  .config

2.3.使用make menuconfig时检查下cfg80211和mac80211是否有编译到

make menuconfig

这里可能会报错:

In file included from scripts/kconfig/lxdialog/checklist.c:24:0:

scripts/kconfig/lxdialog/dialog.h:31:20: fatal error: curses.h: 没有那个文件或目录

#include CURSES_LOC

^

compilation terminated.

make[2]: *** [scripts/kconfig/lxdialog/checklist.o] 错误 1

make[1]: *** [menuconfig] 错误 2

make: *** [menuconfig] 错误 2

原因:这是因为CentOS7系统中缺少一个套件 ncurses-devel

yum install ncurses-devel -y

注册后,重新执行进入图形化界面:

在“networking support”-》“wireless”下。如果没有按下“M”表示编译成模块,然后保存。如果已经有了这两个模块也要保存,否则接下来make时,没法编译。

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

2.4.开始编译内核

make ; make modules_install ; make install ;

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

2.5.设置默认启动内核为4.1.8

查看启动项 cat /boot/grub2/grub.cfg | grep 3.10.69

设置默认启动项 grub2-set-default "CentOS Linux (3.10.69) 7 (Core)"

查看默认启动项 grub2-editenv list

生成配置 grub2-mkconfig -o /boot/grub2/grub.cfg

2.6.重启系统,安装相关模块,并编译无线驱动:

insmod /lib/modules/4.1.8/kernel/net/rfkill/rfkill.ko

insmod /lib/modules/4.1.8/kernel/net/wireless/cfg80211.ko 

insmod /lib/modules/4.1.8/kernel/net/mac80211/mac80211.ko

insmod 8812au.ko

先注册前3个模块,之后的8812au.ko 模块如果没有,在执行驱动下的install.sh文件时会自动注册。

 

3.安装驱动

这时候如果你直接执行install.sh文件,会没有上面的错误,但是结尾还会有2个errors .这是它在驱动中没有添加网卡的ID值。

3.1.添加网卡ID

选用任意编辑器,打开os_dep/linux/usb_intf.c,在其中加入上面lsusb结果:

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

找到CONFIG_8812A, 在下面加入如图所示字段。如果你们的lsusb结果与此不同,请加入自己lsusb看到的vendor id 和 device id。

例如,我这里lsusb会发现插上usb网卡后出现 ID 2604:0012,这就是对应的vendor id 和device id. 把这个id插入usb_intf.c

3.2.执行网卡驱动 install.sh或者直接在驱动目录下执行make ;make install;

如果你要是执行./install.sh 那么,你需要将原始的驱动包删除,然后将修改后的文件重新打包,但是文件名要相同。因为在install.sh 中会对这个驱动压缩包解压,解压后会将你就修改的文件又替换为原文件。

删除后重行打包:

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

打包:

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

./install.sh

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

如果你直接在驱动目录下执行:

make ;make install;

则没有上述重行打包要求。

3.3.如果在执行install.sh后还有报错的信息,那么不用管,它之后又重行注册了8812au.ko。

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

此时,如果你是图形化界面,那么在网络管理中就会有wifi的标识,执行ifconfig可以看到自己网卡的名字;如果你是最小化安装时,则建议先安装第5步,之后使用iwconfig查看:

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

 

4.wpa_supplicant配置

在执行完上述的步骤后,你如果点击你要的热点后,并输入正确的密码的密码显示无法连接,那么你就需要进行wpa_supplicant配置。

新建文件(如果没有) /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=wheel

network={

ssid="T你要连接的wifi名"

psk="密码"

}

我这里是:

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

 

5.安装wireless_tools

之后我们会使用iwconfig,wpa* 等命令 ,所以先注册一下:

进入驱动目录下的wireless_tools解压后:

执行:

make;make install;

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

 

6.无线扫描

6.1.先安装工具iw:

yum install iw -y

6.2.iw dev(非必要步骤)

查看无线网口,interface后面即为无线网口号

phy#0

Interface wls35u1

ifindex 3

wdev 0x1

addr a4:db:30:84:4b:1c

type managed

如果连接成功会多出下面的两行,显示 SSID 和信道。

ssid CMCC

channel 11 (2462 MHz), width: 40 MHz, center1: 2452 MHz

6.3.ip link set wls35u1 up(必要)

激活无线网络接口

6.4.ip link show wls35u1(非必要步骤)

检验接口是否激活成功

wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000

link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff 

<BROADCAST,MULTICAST,UP,LOWER_UP> 中的UP 表明该接口激活成功,后面的 state DOWN 无关紧要。

6.5.iw wls35u1 link(非必要步骤)

查看无线网络连接情况(刚开始是没有连接的,不用管)

6.6.iwlist wls35u1 scan | grep SSID(如果知道 Wifi 名字,就不需要)

扫描可连接的wifi(这里有个问题,网上好多是iw,其实这里应该使用 iwlist,不然没结果)

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

 

7.连接wls35ul到网络,并以daemon方式运行

方法一:编写配置文件

wpa_supplicant -B -i wls35u1 -c /etc/wpa_supplicant/wpa_supplicant.conf

-B Background 在后台以daemon 运行

-i interface 

-c 配置文件

注意:此时如果重新执行此命令,则需要使用kill命令杀死对应的wpa*进程后。然后再执行

执行以上命令后,执行ifconfig就可以看到无线网卡,这在之前是看不到的,而且此时,U12的指示灯开始亮起,表示开始工作。

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

方法二:不编写配置文件

wpa_supplicant -B -i wls35u1 -c <(wpa_passphrase "ssid" "psk")

连接指定的SSID,将ssid 替换为实际的网络名称,psk 替换为无线密码,请保留引号。

 

8.ip获取

8.1.用dhcp 获得 IP 分配:

# dhclient wls35ul

测试是否成功地从路由器获取了ip(重要)

# ip addr  show wls35ul

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

如果分配有ip,即可上网,也可以有ping直接测试

8.2.如果你要使用静态的IP配置,使用nmcli命令来配置

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

 

9.相关命令

关闭连接

wpa_cli terminate

连接状态

wpa_cli status

 

18.上网试试

如果没有问题就像下图一样,成功连网。(有桌面图形化界面的试试):

Centos 7系统安装Tenda U12 USB无线网卡驱动的方法

 

相关主题

CentOS7.3虚拟机双网卡配置

精选文章
热门文章