OEL / RedHat linux 配置无线网络连接(含驱动安装)

本机环境:Thinkpad E440,Oracle Linux Server release 6.7(kernel 3.8.13-68.3.4.el6uek.x86_64)

本机无线网卡为RTL8723BE,若不知道自己的无线网卡类型,可使用以下的命令查看:

lspci | grep -i network

下面正式开始无线网络的配置。(本文介绍的是刚安装完系统,手边又没有网线的情况下直接配置无线网络的情况,因此可能有些步骤在已经配置好有线网络连接的情况下是不需要的)


1. 查看是否安装无线网卡驱动

iwconfig

若未安装无线网卡驱动,则会输出以下信息:

eth0    no wireless extensions.

lo      no wireless extensions.

若已经安装无线网卡驱动,则输出信息应该像下面这样:

eth0    no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"CMCC-Ttaf"  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr=2347 B   Fragment thr:off
          Encryption key:off
          Power Management:off

lo      no wireless extensions.


2. 下载安装相关依赖

首先是g++从源码安装的相关资源:

下载链接为:http://www.rpmfind.net/

            2.1 在安装之前我们插播一个挂载U盘的操作,防止有些新手在这上面走弯路。

                 因为我的U盘是FAT32的文件系统(一般小容量U盘默认的文件系统),所以在此基础上我们执行挂载U盘操作。

                 首先执行以下命令,查看U盘设备名:

fdisk -l | grep FAT32

                 我的是/dev/sdb4/。

                 然后依次执行以下命令:

cd /mnt
mkdir /usb
mount /dev/sdb4 /mnt/usb
cd /mnt/usb

即可看到自己U盘里的文件。

卸载U盘需要退出/mnt/usb文件夹,然后执行以下指令:

umount /mnt/usb

安装步骤:

rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm  
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-18.el6.x86_64.rpm
rpm -Uvh libgcc-4.4.7-18.el6.x86_64.rpm
rpm -Uvh libgomp-4.4.7-18.el6.x86_64.rpm
rpm-ivh gcc-4.4.7-18.el6.x86_64.rpm
rpm -Uvh libstdc++-4.4.7-18.el6.x86_64.rpm
rpm -Uvh libstdc++-devel-4.4.7-18.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.7-18.el6.x86_64.rpm

输入以下指令,验证g++是否安装成功:

g++ --version

如果安装成功会输出相应的版本信息。

其次是Linux内核相关资源:

下载链接为:http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/x86_64/index.html

安装步骤:

rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
rpm -Uvh libdtrace-ctf-0.5.0-2.x86_64.rpm
rpm -Uvh libdtrace-ctf-devel-0.5.0-2.x86_64.rpm
rpm -ivh dtrace-modules-3.8.13-68.3.4.el6uek-0.4.3-4.el6.x86_64.rpm
rpm -ivh kernel-uek-debug-3.8.13-68.3.4.el6uek.x86_64.rpm
rpm -ivh kernel-uek-debug-devel-3.8.13-68.3.4.el6uek.x86_64.rpm
rpm -ivh kernel-uek-devel-3.8.13-68.3.4.el6uek.x86_64.rpm
rpm -ivh kernel-uek-doc-3.8.13-68.3.4.el6uek.noarch.rpm
rpm -ivh kernel-uek-headers-3.8.13-26.el6uek.x86_64.rpm


3. 下载并从源码安装无线网卡驱动

链接:https://github.com/lwfinger/rtlwifi_new/tree/b2295f9c31eb1d43c53e9048329609b2680adcb1

因为我的内核版本较低,所以只能用这个commit的版本,如果内核版本大于3.17,那么可以使用目前(2018/2/22)最新版本。

如果不知道自己的内核版本,可以通过以下命令查看:

uname -r

获取源码之后我们并不能直接使用,首先我们将Makefile修改为如下所示(目的在于去除和RTL8723BE不相关驱动的编译过程,这一步是必须的,因为其他部分驱动编译会出错。):

SHELL := /bin/sh
CC = gcc
KVER  ?= $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
FIRMWAREDIR := /lib/firmware/
PWD := $(shell pwd)
CLR_MODULE_FILES := *.mod.c *.mod *.o .*.cmd *.ko *~ .tmp_versions* modules.order Module.symvers
SYMBOL_FILE := Module.symvers
# Handle the move of the entire rtlwifi tree
ifneq ("","$(wildcard /lib/modules/$(KVER)/kernel/drivers/net/wireless/realtek)")
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/realtek/rtlwifi
else
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/rtlwifi
endif
#Handle the compression option for modules in 3.18+
ifneq ("","$(wildcard $(MODDESTDIR)/*.ko.gz)")
COMPRESS_GZIP := y
endif
ifneq ("","$(wildcard $(MODDESTDIR)/*.ko.xz)")
COMPRESS_XZ := y
endif

EXTRA_CFLAGS += -O2
obj-m := rtlwifi.o
rtlwifi-objs	:=	\
		base.o	\
		cam.o	\
		core.o	\
		debug.o	\
		efuse.o	\
		ps.o	\
		rc.o	\
		regd.o	\
		stats.o

obj-m	+= rtl_pci.o
rtl_pci-objs	:=		pci.o

obj-m	+= rtl_usb.o
rtl_usb-objs	:=		usb.o

obj-m	+= btcoexist/
obj-m	+= rtl8723be/

ccflags-y += -D__CHECK_ENDIAN__

all: 
	$(MAKE) -C $(KSRC) M=$(PWD) modules
install: all
ifeq (,$(wildcard ./backup_drivers.tar))
	@echo Making backups
	@tar cPf backup_drivers.tar $(MODDESTDIR)
endif

	@mkdir -p $(MODDESTDIR)/btcoexist
	@mkdir -p $(MODDESTDIR)/rtl8723be
	@install -p -D -m 644 rtl_pci.ko $(MODDESTDIR)	
	@install -p -D -m 644 rtl_usb.ko $(MODDESTDIR)	
	@install -p -D -m 644 rtlwifi.ko $(MODDESTDIR)
	@install -p -D -m 644 ./btcoexist/btcoexist.ko $(MODDESTDIR)/btcoexist
	@install -p -D -m 644 ./rtl8723ae/rtl8723ae.ko $(MODDESTDIR)/rtl8723ae
ifeq ($(COMPRESS_GZIP), y)
	@gzip -f $(MODDESTDIR)/*.ko
	@gzip -f $(MODDESTDIR)/btcoexist/*.ko
	@gzip -f $(MODDESTDIR)/rtl8*/*.ko
endif
ifeq ($(COMPRESS_XZ), y)
	@xz -f $(MODDESTDIR)/*.ko
	@xz -f $(MODDESTDIR)/btcoexist/*.ko
	@xz -f $(MODDESTDIR)/rtl8*/*.ko
endif

	@depmod -a $(KVER)

	@#copy firmware images to target folder
	@cp -fr firmware/rtlwifi/ $(FIRMWAREDIR)/
	@echo "Install rtlwifi SUCCESS"

uninstall:
ifneq (,$(wildcard ./backup_drivers.tar))
	@echo Restoring backups
	@tar xvPf backup_drivers.tar
endif
	
	@depmod -a
	
	@echo "Uninstall rtlwifi SUCCESS"

clean:
	@rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~ .*.o.d
	@rm -fr rtl8*/*.mod.c rtl8*/*.mod rtl8*/*.o rtl8*/.*.cmd rtl8*/*.ko rtl8*/*~ rtl8*/*.cmd rtl8*/.*.o.d
	@rm -fr bt*/*.mod.c bt*/*.mod bt*/*.o bt*/.*.cmd bt*/*.ko bt*/*~ bt*/*.cmd bt*/.*.o.d
	@rm -fr .tmp_versions
	@rm -fr Modules.symvers
	@rm -fr Module.symvers
	@rm -fr Module.markers
	@rm -fr modules.order rtl8*/modules.order bt*/modules.order

修改完成后在rtlwifi_new目录下执行以下指令:

make install

然后执行:

modprobe rtl8723be

重启系统后你的网卡驱动应该已经安装成功,可执行以下指令验证:

iwconfig


4. 配置无线网络

首先安装wpa_supplicant。

挂载你安装OEL的系统盘,cd到Packages文件夹,通过以下命令查找wpa_supplicant包:

ll | grep wpa_supplicant

然后执行rpm -ivh 包名进行安装。

接下来编辑wpa_supplicant配置文件:

vi /etc/sysconfig/wpa_supplicant

按i,将文件编辑成如下形式:

# Use the flag "-i" before each of your interfaces, like so:
#  INTERFACES="-ieth1 -iwlan0"
INTERFACES="-iwlan0"

# Use the flag "-D" before each driver, like so:
#  DRIVERS="-Dwext"
DRIVERS="-Dwext"

# Other arguments
#   -u   Enable the D-Bus interface (required for use with NetworkManager)
#   -f   Log to /var/log/wpa_supplicant.log
#   -P   Write pid file to /var/run/wpa_supplicant.pid 
#        required to return proper codes by init scripts (e.g. double "start" action)
#        -B to daemonize that has to be used together with -P is already in wpa_supplicant.init.d
OTHER_ARGS="-u -f /var/log/wpa_supplicant.log -P /var/run/wpa_supplicant.pid"

按ESC退出文件编辑,再输入:wq保存并退出。

编辑/etc/sysconfig/network-scripts/ifcfg-wlan0文件如下:

DEVICE=wlan0
HWADDR=******
TYPE=Wireless
UUID=******
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
ESSID="CMCC-Ttaf"
NAME=wlan0

其中HWADDR值为你网卡的MAC地址,输入ifconfig命令可以在wlan0选项中查看到,UUID的值通过以下指令获取:

uuidgen wlan0

ESSID值为你自己要连接的WIFI名。

接下来配置/etc/wpa_supplicant/wpa_supplicant.conf文件:

wpa_passphrase your_wifi_name your_wifi_password >> /etc/wpa_supplicant/wpa_supplicant.conf

然后就可以使wpa_supplicant后台运行了,命令如下:

wpa_supplicant -B -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

扫描可连接的无线网络:

iwlist wlan0 scan | grep ESSID

如果能够正常扫描到你/etc/wpa_supplicant/wpa_supplicant.conf里配置的无线网络,那么执行以下指令进行连接:

iwconfig wlan0 essid "CMCC-Ttaf"

接下来通过dhcp方式获取ip:

dhclient wlan0

命令执行完成后,你应该已经连接上无线网络了,可以ping下百度测试是否配置成功:

ping www.baidu.com

你可能感兴趣的:(Linux)