三星S5PV210移植RTL8723BU WiFi驱动

硬件环境:Samsung s5pv210
软件环境:Linux kernel 2.6.35.7

1、编译生成生成.ko文件

驱动安装包下载地址请点击rtl8723bu wifi驱动

下载完成的驱动包先解压到Windows系统中,然后移动到Ubuntu中,如下图:
这里写图片描述
编辑Makefile如下:

###################### Platform Related #######################
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ANDROID_INTEL_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
#主要增加这一行,加入对s5pv210的支持
CONFIG_PLATFORM_ARM_S5PV210 = y  
CONFIG_PLATFORM_MIPS_RMI = n
CONFIG_PLATFORM_RTD2880B = n
CONFIG_PLATFORM_MIPS_AR9132 = n
CONFIG_PLATFORM_RTK_DMP = n
CONFIG_PLATFORM_MIPS_PLM = n
CONFIG_PLATFORM_MSTAR389 = n
CONFIG_PLATFORM_MT53XX = n
CONFIG_PLATFORM_ARM_MX51_241H = n
CONFIG_PLATFORM_FS_MX61 = n
CONFIG_PLATFORM_ACTIONS_ATJ227X = n
CONFIG_PLATFORM_TEGRA3_CARDHU = n
CONFIG_PLATFORM_TEGRA4_DALMORE = n
CONFIG_PLATFORM_ARM_TCC8900 = n
CONFIG_PLATFORM_ARM_TCC8920 = n
CONFIG_PLATFORM_ARM_TCC8920_JB42 = n
CONFIG_PLATFORM_ARM_RK2818 = n
CONFIG_PLATFORM_ARM_RK3066 = n
CONFIG_PLATFORM_ARM_RK3188 = n
CONFIG_PLATFORM_ARM_URBETTER = n
CONFIG_PLATFORM_ARM_TI_PANDA = n
CONFIG_PLATFORM_MIPS_JZ4760 = n
CONFIG_PLATFORM_DMP_PHILIPS = n
CONFIG_PLATFORM_MSTAR_TITANIA12 = n
CONFIG_PLATFORM_MSTAR = n
CONFIG_PLATFORM_SZEBOOK = n
CONFIG_PLATFORM_ARM_SUNxI = n
CONFIG_PLATFORM_ARM_SUN6I = n
CONFIG_PLATFORM_ARM_SUN7I = n
CONFIG_PLATFORM_ARM_SUN8I_W3P1 = n
CONFIG_PLATFORM_ARM_SUN8I_W5P1 = n
CONFIG_PLATFORM_ACTIONS_ATM702X = n
CONFIG_PLATFORM_ACTIONS_ATV5201 = n
CONFIG_PLATFORM_ACTIONS_ATM705X = n
CONFIG_PLATFORM_ARM_RTD299X = n
CONFIG_PLATFORM_ARM_SPREADTRUM_6820 = n
CONFIG_PLATFORM_ARM_SPREADTRUM_8810 = n
CONFIG_PLATFORM_ARM_WMT = n
CONFIG_PLATFORM_TI_DM365 = n
CONFIG_PLATFORM_MOZART = n
CONFIG_PLATFORM_RTK119X = n
CONFIG_PLATFORM_NOVATEK_NT72668 = n
CONFIG_PLATFORM_HISILICON = n
###############################################################

在Makefile中增加这一段代码,主要设置交叉编译工具链和kernel目录树

ifeq ($(CONFIG_PLATFORM_ARM_S5PV210), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
#交叉编辑工具链一定要选对
CROSS_COMPILE := arm-linux-
#kernel版本
KVER  := 2.6.35.7
#源码目录树
KSRC ?= /root/root/kernel/kernel
endif

然后#make clean &&make

..........
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/HalHWImg8723B_BB.o
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/HalHWImg8723B_MAC.o
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/HalHWImg8723B_RF.o
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/HalHWImg8723B_FW.o
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/HalHWImg8723B_MP.o
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/phydm_RegConfig8723B.o
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/HalPhyRf_8723B.o
  CC [M]  /root/root/rtl8723bu_wifi/hal/OUTSRC/rtl8723b/phydm_RTL8723B.o
  CC [M]  /root/root/rtl8723bu_wifi/platform/platform_ops.o
  CC [M]  /root/root/rtl8723bu_wifi/core/rtw_mp.o
  CC [M]  /root/root/rtl8723bu_wifi/core/rtw_mp_ioctl.o
  CC [M]  /root/root/rtl8723bu_wifi/core/rtw_bt_mp.o
  LD [M]  /root/root/rtl8723bu_wifi/8723bu.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/root/rtl8723bu_wifi/8723bu.mod.o
  LD [M]  /root/root/rtl8723bu_wifi/8723bu.ko
make[1]: Leaving directory `/root/root/kernel/kernel'
root@ubuntu:~/root/rtl8723bu_wifi# 

编译完成后生成8723bu.ko就是我们需要的驱动了

2、制作根文件系统

将我们编译生成的.ko文件放在我们的根文件系统中
动手制作.ext2文件系统,步骤如下:

(1)dd if=/dev/zero of=rootfs.ext2 bs=1024 count=204800
losetup  /dev/loop1 rootfs.ext2
mke2fs -m 0 /dev/loop1 204800
mount -t ext2 /dev/loop1 ./ext2_rootfs/
(2)向./ext2_rootfs中复制内容,用cp ../rootfs/* ./ -rf
(3)umount /dev/loop1
losetup -d /dev/loop1
(4)完成后得到的rootfs.ext2就是我们做好的rootfs镜像。拿去烧录即可。

烧录镜像到开发板上启动:

Starting sshd: OK
Starting qttest...
[   16.193284] EXT2-fs (mmcblk0p4): warning: mounting ext3 filesystem as ext2
[   16.198675] EXT2-fs (mmcblk0p4): warning: mounting unchecked fs, running e2fsck is recommended

Welcome to Buildroot
x210v3 login: root
Password: 
[root@x210v3 ~]# 
[root@x210v3 ~]# 
[root@x210v3 ~]# cd /
[root@x210v3 /]# cd home/
[root@x210v3 home]# ls
8723bu.ko      default/       ftp/           mt7601Usta.ko
[root@x210v3 home]# 

3、安装并测试驱动

[root@x210v3 home]# insmod 8723bu.ko 
[   82.343476] RTL871X: module init start
[   82.345749] RTL871X: rtl8723bu v4.3.16_14189.20150519_BTCOEX20150119-5844
[   82.352941] RTL871X: build time: Jun 22 2017 21:44:43
[   82.357681] RTL871X: rtl8723bu BT-Coex version = BTCOEX20150119-5844
[   82.514318] RTL871X: rtw_ndev_init(wlan0)
[   82.520354] usbcore: registered new interface driver rtl8723bu
[   82.524874] RTL871X: module init ret=0
[root@x210v3 home]# 

本来打印信息有很多的,我在源码 include/autoconf.h 中屏蔽了#define CONFIG_DEBUG 如果需要打印全信息 在源码中放开这行注释就行了。

开启wlan0网卡:# ifconfig wlan0 up

[root@x210v3 home]# ifconfig wlan0 up
[root@x210v3 home]# ifconfig eth0 down
[root@x210v3 home]# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 60:42:7F:76:D9:E9  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:50 errors:0 dropped:3 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

[root@x210v3 home]# 

编辑 /etc/wpa_supplicant.conf文件内容如下:

:
ctrl_interface=/var/run/wpa_supplicant

network={
        key_mgmt=WPA-PSK
        #WiFi名称
        ssid="*******"
        #WiFi密码
        psk="*********"
}

连接网络#wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0

[root@x210v3 home]# wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0
Successfully initialized wpa_supplicant
[  422.563815] RTL871X: nolinked power save leave
[  422.573330] RTL871X: set bssid:00:00:00:00:00:00
[  422.577015] RTL871X: set ssid [gÆisQÿJì)ͺ«òûãFTøZ.c3ŸÉš ] fw_state=0x00000008
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
[root@x210v3 home]# [  423.922443] RTL871X: indicate disassoc
[  423.928499] RTL871X: set ssid [Xiaomi_310] fw_state=0x00000008
[  423.933107] RTL871X: set bssid:f0:b4:29:d4:d1:78
[  424.146620] RTL871X: start auth
[  424.165219] RTL871X: auth success, start assoc
[  424.189771] RTL871X: assoc success
[  424.191876] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

[root@x210v3 home]# 

编辑/etc/network/interface文件
增加wlan0的描述

# Configure Loopback
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
#增加wlan0的配置
auto wlan0
iface wlan0 inet dhcp

查看连接状态:wpa_cli -i wlan0 status

[root@x210v3 home]# 
[root@x210v3 home]# wpa_cli -i wlan0 status
bssid=f0:b4:29:d4:d1:78
ssid=Xiaomi_310
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=ASSOCIATED
address=60:42:7f:76:d9:e9

已经连上了

然后分配网关 ip地址等,使用udhcpc自动分配

[root@x210v3 home]# udhcpc -i wlan0
udhcpc (v1.21.0) started
Sending discover...
Sending select for 192.168.31.186...
Lease of 192.168.31.186 obtained, lease time 43200
deleting routers
route: SIOCDELRT: No such process
adding dns 192.168.31.1

使用ifconfig查看是否分配成功

[root@x210v3 home]# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 60:42:7F:76:D9:E9  
          inet addr:192.168.31.186  Bcast:192.168.31.255  Mask:255.255.255.0
          inet6 addr: fe80::6242:7fff:fe76:d9e9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:23 errors:0 dropped:18707 overruns:0 frame:0
          TX packets:6 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:80615 (78.7 KiB)  TX bytes:5652 (5.5 KiB)

[root@x210v3 home]# 

如上已经分配成功
至此移植完成,最后检查一下可以ping通百度不

[root@x210v3 home]# ping www.baidu.com
PING www.baidu.com (14.215.177.37): 56 data bytes
64 bytes from 14.215.177.37: seq=0 ttl=54 time=14.371 ms
64 bytes from 14.215.177.37: seq=1 ttl=54 time=9.603 ms
64 bytes from 14.215.177.37: seq=2 ttl=54 time=9.518 ms
64 bytes from 14.215.177.37: seq=3 ttl=54 time=9.451 ms
64 bytes from 14.215.177.37: seq=4 ttl=54 time=10.404 ms
64 bytes from 14.215.177.37: seq=5 ttl=54 time=9.721 ms
64 bytes from 14.215.177.37: seq=6 ttl=54 time=9.927 ms
64 bytes from 14.215.177.37: seq=7 ttl=54 time=9.753 ms
64 bytes from 14.215.177.37: seq=8 ttl=54 time=10.090 ms
64 bytes from 14.215.177.37: seq=9 ttl=54 time=15.682 ms
64 bytes from 14.215.177.37: seq=10 ttl=54 time=9.876 ms

--- www.baidu.com ping statistics ---
11 packets transmitted, 11 packets received, 0% packet loss
round-trip min/avg/max = 9.451/10.763/15.682 ms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值