基于全志T133-s3(Tina Linux)移植wifi(rtl8723d)驱动
基于全志T133-s3(Tina Linux)移植wifi(rtl8723d)驱动
- 1.硬件电路
- 2.软件准备
- 2.1.驱动代码
- 2.2.修改脚本
- 2.3.添加驱动
- 2.4.设备树适配
- 3、测试wifi
1.硬件电路
2.软件准备
2.1.驱动代码
1)首先,我们需要获得驱动程序,一般可以找厂家获得,也可以在 Github Gitee 上找到。
2)检查 platform 文件夹内是否有 platform_ARM_SUNxI_sdio.c 这个接口源码。
如果没有,需要适配到 Tina 平台。主要修改的地方是调用Tina平台提供的上下电,扫卡函数,SDIO 驱动等等。工作量较大建议请专业人士进行移植
3)然后将驱动文件复制进 lichee/linux-5.4/drivers/net/wireless 文件夹内,其实就是内核目录下的路径
2.2.修改脚本
1)编辑 lichee/linux-5.4/drivers/net/wireless/rtl8723ds/Makefile 找到 Platform Related 设置区域,将其他选项全部关闭,只保留 CONFIG_PLATFORM_ARM_SUNxI = y 是开启的。
2)同时找到 Interface 区域,只启用 CONFIG_SDIO_HCI
3)接下来编辑 lichee/linux-5.4/drivers/net/wireless/Kconfig ,增加引索
source "drivers/net/wireless/rtl8723ds/Kconfig"
4)再打开 lichee/linux-5.4/drivers/net/wireless/rtl8723ds/Kconfig 查看对应的 config 符号,可以看到是 RTL8723DS
5)就可以在 lichee/linux-5.4/drivers/net/wireless/Makefile 里增加编译文件夹
obj-$(CONFIG_RTL8723DS) += rtl8723ds/
2.3.添加驱动
1)配置完成,就可以在 make kernel_menuconfig 里找到这个选项了,将其编译为模块。
2)Tina 适配对于wifi固件
上面完成了内核驱动方面的配置,接下来是配置 Tina Linux 侧。由于部分 Wi-Fi 驱动需要文件系统挂载提供固件,所以需要在 Tina Linux 配置完成打包上面编译的驱动模块与固件,同时也要配置自动加载驱动的脚本才能使系统正常运行。
在这之前,我们先检查一下是否提供了 RTL8723DS 的固件,可以在 make menuconfig s搜索是否有 8723DS 的固件存在。没有就自己添加。
可以看到,Tina Linux 提供了 RTL8723DS 的固件,名叫 r8723ds-firmware 可以进行下一步了。
3)修改 Tina-Linux/target/allwinner/t113-evb1/modules.mk 文件(这里的路径根据自己的找到就行),增加 RTL8723DS 这个 kmod 选项。注意,DEPENDS 里包含的固件名称就是上面查找得到的名称。
define KernelPackage/net-rtl8723dsSUBMENU:=$(WIRELESS_MENU)TITLE:=RTL8723DS support (staging)DEPENDS:= +r8723ds-firmware +@IPV6 +@USES_REALTEKFILES:=$(LINUX_DIR)/drivers/net/wireless/rtl8723ds/8723ds.koAUTOLOAD:=$(call AutoProbe,8723ds)
endefdefine KernelPackage/net-rtl8723ds/descriptionKernel modules for RealTek RTL8723DS support
endef$(eval $(call KernelPackage,net-rtl8723ds))
4)现在 make menuconfig 进入 Tina Linux 的配置界面,就可以在 Kernel modules > Wireless Drivers 中找到 <*> kmod-net-rtl8723ds… RTL8723DS support (staging),勾选他。
6)最后,还需要启用自动加载驱动的功能,位于 Tina-Linux/target/allwinner/t113-evb1/busybox-init-base-files/etc/init.d/rc.modules ,别忘了注释不需要的驱动。
2.4.设备树适配
与上文相同,注意启用 SDC1 节点与 wlan0节点,配置wlan_busnum、wlan_regon、wlan_hostwake 。由于这里使用的是同款开发板所以不做再次说明,这里直接使用下面的内核设备树。
rfkill: rfkill@0 {compatible = "allwinner,sunxi-rfkill";chip_en;power_en;pinctrl-0 = <&wlan_pins_a>;pinctrl-names = "default";status = "okay";wlan: wlan@0 {compatible = "allwinner,sunxi-wlan";clock-names = "32k-fanout1";clocks = <&ccu CLK_FANOUT1_OUT>;wlan_busnum = <0x1>;wlan_regon = <&pio PG 12 GPIO_ACTIVE_HIGH>;wlan_hostwake = <&pio PG 10 GPIO_ACTIVE_HIGH>;/*wlan_power = "VCC-3V3";*//*wlan_power_vol = <3300000>;*//*interrupt-parent = <&pio>;interrupts = < PG 10 IRQ_TYPE_LEVEL_HIGH>;*/wakeup-source;};
最后编译烧录即可。
3、测试wifi
1)使用ifconfig可以看到wlan0
2)这里需要注意一个问题,由于wpa_supplicant.conf这个文件没有我们的路由器名称和密码,所以需要自己添加一下,路径再Tina-Linux/package/allwinner/wifimanager/files/wpa_supplicant.conf
打开wpa_supplicant.conf
ctrl_interface=/etc/wifi/sockets
#disable_scan_offload=1
#update_config=1
#wowlan_triggers=any#---------------添加这部分,记得把此注释删掉-----------------
ap_scan=1 network={ssid="xxx"psk="xxxxxxxxx"}
3)重启一下即可,然后重启之后,动态分配一下ip,使用以下命令
udhcpc -i wlan0
4)最后可以是ping一下网络,
ping www.baidu.com
5)注意这里内核会打印一些debug信息,这是wifi驱动里面打开的,自己去驱动代码里面关闭即可。我这里就直接放出来,主要是更改Makefile文件里面的宏控制。
6)如果再使用这个wifi模块的过程中出现以下情况,如图所示:
出现这种问题,只要在驱动代码的os_dep/linux/ioctl_cfg80211.c的rtw_cfg80211_ch_switch_notify这个函数中对结构体struct cfg80211_chan_def_chdef进行初始化就可以了。
基于全志T133-s3(Tina Linux)移植wifi(rtl8723d)驱动相关推荐
- 基于全志T133-s3(Tina Linux)移植5寸RGB显示屏驱动
基于全志T133-s3(Tina Linux)移植5寸RGB显示屏驱动 1.硬件电路 2.LCD实物图 3.LCD 的驱动 4.uboot配置 4.1.配置文件 4.2.uboot设备树 5.kern ...
- 基于全志A33开发板linux系统移植学习记录(Boot0)
基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...
- 全志哪吒D1-H Tina Linux Ubuntu 22.04入门踩坑日记
哪吒D1-H Tina Linux入门踩坑日记 系统环境 源码编译 mklibs-readelf的C++标准问题 m4的SIGSTKSZ问题 libfakeroot的_STAT_VER问题 read_ ...
- pcDuino的linux移植五GPIO驱动开发
2019独角兽企业重金招聘Python工程师标准>>> 为首的亮,灭.同时如果你GPIO4,GPIO5接个LED,也会跟着亮,灭. 开发环境: 系统:Ubuntu的 一,硬件介绍 仔 ...
- linux移植wifi板载驱,基于arm\Linux平台USB无线网卡的wifi驱动移植
arm平台是三星2440,Linux内核是2.6.24,威盛VNT6656的USB无线网卡:开发平台是Fedora10,内核是2.6.27.遭遇的问题主要有如下几个: 一.驱动程序的版本不对 开始在网 ...
- 全志D1-H哪吒开发板Tina Linux 下WiFi的连接
16.查看wifi规格 支持2.4G wifi,支持13个工作信道(Channel1-13),提供wifi扫描命令,可搜索到附件的wifi list. 执行: wifi_scan_results_te ...
- linux 提取网卡驱动,韦东山-Linux下移植wifi网卡驱动(RTL8723) - 百问网嵌入式问答社区...
硬件:韦老师的开发板IMX6ULL 内核版本:4.15(自己移植) 这次实验是在自己移植的内核上面加入RTL8723驱动 问题一:如何获取RTL8723驱动? 在韦老师给我们的程序中能够使用wifi, ...
- linux移植wifi sd8688.bin 最新固件,[ZZ]浅析firmware完整生存和使用流程
/class/firmware error = kobject_add(&dev->kobj, dev->kobj.parent, "%s", dev-> ...
- 嵌入式Linux移植USB网卡驱动
开发板:友善之臂smart210 操作系统:Ubuntu 12,04 交叉编译器:arm-none-linux-gnueabi gcc version 4.3.2 WIFI 模组:TP-LINK TL ...
最新文章
- QApplication类详细描述
- map和pair配合使用
- 【Clickhouse】Clickhouse 访问控制和账号管理
- centos7 mysql添加密码_centos-在Centos7上更改mysql根密码
- python海龟漂亮图案代码大全_Python游戏海龟图案
- 【实验报告】LFM信号产生与频谱分析(记录一次实验:《电类综合实验》)
- pdf格式压缩大小,pdf如何压缩大小?
- 国外服务器和网站,国外服务器网站好吗?国外服务器网站和国内有什么区别?...
- Premiere导入视频之后音频轨没有内容
- android fd泄露分析,文件描述符(fd)泄漏排查一篇就够了
- STM32单片机学习笔记(七)-RCC时钟控制:简单了解时钟树(一)
- larval框架的获取并存储(cache的使用)
- flowchart流程图编程语言下载_流程图(flowchart)
- Java:获取字符串长度(length())
- Unity ECS初学
- 【杂谈分享】world.execute(me); 用代码谱写从0到1的死亡情诗
- Linux之pstree命令
- Spring系列之FactoryBean(一)
- ppsspp 手柄按键映射 北通 BTP
- 联想的“智慧城市群落”