1. 程式人生 > >三星S5PV210移植RTL8723BU WiFi驅動

三星S5PV210移植RTL8723BU WiFi驅動

硬體環境:Samsung s5pv210
軟體環境:Linux kernel 2.6.35.7

1、編譯生成生成.ko檔案

下載完成的驅動包先解壓到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'
[email protected]:~/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

[[email protected] home]# 
[[email protected] 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自動分配

[[email protected] 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通百度不

[[email protected] 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

相關推薦

三星S5PV210移植RTL8723BU WiFi驅動

硬體環境:Samsung s5pv210 軟體環境:Linux kernel 2.6.35.7 1、編譯生成生成.ko檔案 下載完成的驅動包先解壓到Windows系統中,然後移動到Ubuntu中,如下圖: 編輯Makefile如下: ##

Freescale i.MX 6 MNC平臺移植BT/WIFI驅動

       此專案之前移植到Android6.0.1版本。基本系統可以起來了。現在要調一下WiFi和Bluetooth。此板上用的是Broadcom BCM89335的WiFi和Bluetooth二合一晶片。WiFi通過4線SDIO和SoC相連線,Bluetooth通過U

wifi驅動 && wpa_supplicant在Linux PC上的移植

一. 編譯環境準備 1. 安裝ubuntu 我嘗試過編譯MT7603的driver, 發現在ubuntu kernel 2.6.32上編譯會出錯, 所以安裝的ubuntu kernel版本必須大於2.6.32, 建議是3.0 以上的。 我選擇安裝ubuntu 12.04

8 Android平臺開發-WIFI 驅動移植 -- 詳細

一、WIFI的基本架構(程式碼路徑)     1、WIFI Settings應用程式:        packages/apps/Settings/src/com/android/setting

WIFI驅動移植--udhcpc獲取IP

在使用wpa工具連線WIFI的時候,一般採用DHCP方式自動獲取裝置ip。在執行完udhcpc命令後,發現獲取到了IP,但是ifconfig一看,還是沒有IP資訊。在獲取IP後需要配置指令碼設定ip。本文使用udhcpc命令配合配置指令碼,實現自動獲取、設定ip的功能。一、建

第十七章:STA模式USB WIFI驅動移植

1、下載原始碼 首先將原始碼複製到ubuntu中實驗目錄,並解壓開,這裡我們用到的是sta模式,所以解壓MT7601U_LinuxAP_3.0.0.1_20130802.tar.bz2這個檔案。 我們這裡解壓之後放在了以下目錄中.             2、修改

WIFI驅動移植---編譯MT7601驅動

1.修改Makefile    1)新增平臺型別       2)新增編譯工具等ifeq ($(PLATFORM),3518E) LINUX_SRC = /home/float/share/Hi3518E_SDK_V1.0.4.0/package/osdrv/opensour

android wifi驅動移植及其部分問題回答

Update(19/05/2011): Verify validity against Gingerbread. Update (11/08/2010): Updated patch to fix the loading of awext driver at run tim

移植tslib和Qt5.6到三星s5pv210開發板

tslib1.4移植 下載tslib1.4後1.cp tslib-1.4.tar.bz2 /home/gec 2.tar jxvf tslib-1.4.tar.bz2 3.sudo -s 4.c

Android系統如何移植wpa_supplicant及wifi驅動

一、WPA_SUPPLICANT簡介 1. 什麼是wpa_supplicant wpa_supplicant is a WPA Supplicant for Linux, BSD, Mac OS X, and Windows with support for WPA a

嵌入式linux usb wifi驅動移植

wpa_driver_wext_set_operstate: operstate 0->0 (DORMANT) netlink: Operstate: linkmode=-1, operstate=5 wpa_driver_wext_associate wpa_driver_wext_set_

Wifi Sta驅動移植wifi連結使用

開發環境: 開發板:hisi3520D 核心linux3.0.8 交叉編譯器:arm-hisiv100nptl-linux-gcc wifi模組:rt5572和mt7601     在介紹wpa_supplicant工具前,需要先介紹一下它和wireless-tool的差

rt3070 wifi驅動移植

平臺:TI dm6441, ,linux2.6.18, wifi:RT3070 我看wifi模組上沒有寫是鐳凌公司的,因為公司同事是在另一個公司買的,但是當我看模組的驅動手冊時,看到了驅動模組是rt3070sta.ko,狗狗一下後知道了一切。於是:下載了wifi驅動。 wi

hi3518e移植USB-WiFi RT3070 STA驅動

/**************************************************************************************************/                                    

android 平臺USB wifi驅動移植及使用

來自: http://blog.csdn.net/haomcu/article/details/7267090 一.   Android平臺Wifi的基本程式碼路徑 1.       Wpa_supplicant原始碼部分 external/wpa_sup

CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 開發板 第一件事就是移植串口驅動,重定向 printf

ade 默認值 hand drivers exp bin 初始化 strong simple /* * board_uart.c * * Created on: 2018年7月3日 * Author: admin */ #include "boa

ubuntu 16.04 裝機無wifi (手動匯入wifi驅動)

電腦新裝的ubuntu16.04 開機沒有wifi顯示,設定中的網路裡也看不到wifi選項,可能是驅動沒有 1.通過設定-軟體和更新-附加驅動 檢視不到可更新的wifi驅動。 2.手動安裝無線網絡卡驅動 現在檢視網絡卡名稱: ~$ lspci -knn | grep Net -A

wifi驅動的理解(4)——usb介面在wifi模組中的角色

         轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!          還有1天就到2017年了,回顧整個2016年至此,都沒發表過一篇技

wifi驅動的理解(3)——usb介面在wifi模組中的角色

轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!                 上一篇文章已經提到USB介面在wifi模組中的最重要兩個函式是usb_

wifi驅動的理解(2)——usb介面在wifi模組中的角色

轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!        上一篇文章我們已經通過三條線索簡單地描述了wifi驅動的框架,現在我們開始深入到每條線索中。首先我們從USB裝置這條線