【Linux驱动开发IMX6ULL】WS73 驱动移植的详细教程基于USB协议--WIFi网卡、蓝牙BLE、星闪SLE

WS73 驱动移植的详细教程基于USB协议--WIFi网卡、蓝牙BLE、星闪SLE

  • [1. 简单描述](#1. 简单描述)
  • [2. 编译sdk相关说明](#2. 编译sdk相关说明)
  • [2. 编译SDK](#2. 编译SDK)
  • [3. Linux下安装模组驱动(需要将文件copy到开发板)](#3. Linux下安装模组驱动(需要将文件copy到开发板))
  • [3. BLE测试](#3. BLE测试)
  • [3. WIFI测试](#3. WIFI测试)

1. 简单描述

1、完全基于亿佰特iMX6ULLBTB核心板 ECK20-6Y28C5E8-I开发板及测试资料;

2、正点原子的内核版本比较低、故使用亿佰特,内核版本为5.10。

3、个人学习记录、不会很详细。

4、参考资料连接

2. 编译sdk相关说明

  • 因为亿佰特的内核是移植好的、并且用USB不需要配置设备树、修改Linux板子内核配置、以下是修改内核需要用到相关指令。
bash 复制代码
make mrproper
make distclean
source ./build.sh e
make O=out menuconfig

2. 编译SDK

  • SDK相关配置
bash 复制代码
WSCFG_KERNEL_DIR="/home/guistar/code/ebyte_linux_v1.1/out/"
WSCFG_CROSS_COMPILE="arm-linux-gnueabihf-"

WSCFG_ARCH_NAME="arm"
WSCFG_BUS_USB=y
  • 开始编译:
bash 复制代码
make all
ko路径 sdk_root_dir/output/bin
bin路径 /sdk_root_dir/firmware/us

3. Linux下安装模组驱动(需要将文件copy到开发板)

文件 存放路径(默认)
firmware/tr5330.bin /etc/tr5330
firmware/wifi_cali.bin /etc/tr5330
firmware/btc_cali.bin /etc/tr5330
firmware/wow.bin /etc/tr5330
output/tr5330_cfg.ini /etc
output/plat_soc.ko 任意目录,如:/usr/komod
output/wifi_soc.ko 任意目录,如:/usr/komod
bash 复制代码
insmod plat_soc.ko 
insmod ble_soc.ko 

3. BLE测试

  • BLE测试工具编译
bash 复制代码
sudo apt-get update
sudo apt-get install gettext 
sudo apt-get install libglib2.0-dev
sudo apt install python-docutils
sudo apt install python3-docutils
sudo apt-get install libtool
sudo apt-get install autoconf
sudo apt install pkg-config
  • 下载压缩文件并放至 SDK 相应目录
    /sdk_root_dir/open_source
bash 复制代码
tar -xvf bluez-5.64.tar.xz 
tar zxvf expat-2.4.6.tar.gz 
tar zxvf libical-1.0.tar.gz 
tar zxvf dbus-1.12.20.tar.gz 
tar zxvf zlib-1.2.11.tar.gz 
tar zxvf libffi-3.3.tar.gz 
tar zxvf ncurses-6.3.tar.gz 
tar zxvf readline-8.1.tar.gz 
tar zxvf pcre-8.45.tar.gz 
tar zxvf gettext-0.21.tar.gz 
tar -xvf glib-2.40.0.tar.xz 
  • 添加对 glib 的修改,步骤如下
    1、 打开 glib-2.40.0/glib/gdate.c 文件。
    2、找到 g_date_strftime 方法定义。
    3、 在方法前后增加如下代码:
c 复制代码
#pragma GCC diagnostic push 
#pragma GCC diagnostic ignored "-Wformat-nonliteral" 
gsize     
g_date_strftime (gchar       *s, 
                 gsize        slen, 
                 const gchar *format, 
                 const GDate *d)
#pragma GCC diagnostic pop 

4、打开 bluez-5.64/tools/test-runner.c 、修改如下。

bash 复制代码
#include "lib/bluetooth.h"
#include "lib/hci.h"
#include "lib/hci_lib.h"
#include "tools/hciattach.h"

#ifndef MS_STRICTATIME 
#define MS_STRICTATIME (1 << 24) 
#endif 

#ifndef WAIT_ANY
#define WAIT_ANY (-1)
#endif
  • 编译 bluez 依赖库,相关指令如下:
c 复制代码
export PKG_CONFIG_LIBDIR=/vendor/lib/pkgconfig/ 
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/usr/include/ 
  • 编译 expat
bash 复制代码
cd expat-2.4.6/ 
bash 复制代码
./configure --prefix=/vendor --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc
bash 复制代码
CFLAGS="-fPIC -fstack-protector-all" LDFLAGS="-Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack" 
bash 复制代码
sudo -i
make 
cd xxx
make install 
  • 编译 libical
bash 复制代码
cd libical-1.0/ 
export CC=arm-linux-gnueabihf-gcc
apt install cmake
cmake -DCMAKE_INSTALL_PREFIX=/vendor 
make -j8 
make install 
  • 编译 dbus(编译安装dbus的时候,环境上最好不要有后面依赖库的残留,否则在编译的时候会报错 )
bash 复制代码
cd dbus-1.12.20/ 
bash 复制代码
./configure --prefix=/vendor --host=arm-linux-gnueabihf --with-x=no --enable-abstract-sockets CC=arm-linux-gnueabihf-gcc CFLAGS="-I/vendor/include -fstack-protector-all -fPIC -fPIE -pie" LDFLAGS="-L/vendor/lib -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -fstack-protector-all" ac_cv_search_pthread_mutexattr_init= ac_cv_search_pthread_cond_timedwait= ac_cv_search_pthread_mutexattr_settype=
bash 复制代码
make 
make install
  • 编译 zlib
c 复制代码
cd zlib-1.2.11/ 
CC=arm-linux-gnueabihf prefix=/vendor CFLAGS="-fstack-protector-all -fPIC" 
LDFLAGS="-L/vendor/lib -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack" ./configure

make 
make install 
  • 编译 libffi
bash 复制代码
cd libffi-3.3/

3. WIFI测试

  • 将下载压缩包放置SDK根目录
bash 复制代码
mkdir -p open_source/libnl && tar -xzf libnl-3.5.0.tar.gz -C open_source/libnl/ --strip-component=1

mkdir -p open_source/openssl && tar -xzf openssl-1.1.1n.tar.gz -C open_source/openssl/ --strip-component=1

mkdir -p open_source/wpa_supplicant && tar -xzf wpa_supplicant-2.10.tar.gz -C open_source/wpa_supplicant/ --strip-component=1

mkdir -p open_source/hostapd && tar -xzf hostapd-2.10.tar.gz -C open_source/hostapd/ --strip-component=1


patch -p1 < wpa_supplicant_2_10_linux.patch

make tools
  • 将 SDK 中 output/wifi_service 目录下"libnl-3.so.200.26.0"和"libnl-genl-3.so.200.26.0"拷贝至单板的/lib 目录下,并创建软链接。
bash 复制代码
ln -sf libnl-3.so.200.26.0 libnl-3.so.200
ln -sf libnl-genl-3.so.200.26.0 libnl-genl-3.so.200
  • 将 SDK 中 output/wifi_service 目录下"wpa_supplicant""wpa_cli""hostapd"拷贝至单板的/bin 目录下,添加可执行权限。
bash 复制代码
cp -rf wpa_supplicant wpa_cli hostapd /bin/
chmod a+x wpa_supplicant 
chmod a+x wpa_cli 
chmod a+x hostapd 
相关推荐
m0_7381207216 小时前
应急响应——知攻善防靶场Linux-1详细应急过程
linux·运维·服务器·网络·web安全·ssh
GHL28427109016 小时前
无法连接服务端socket
linux·服务器·网络
阿华hhh16 小时前
项目(购物商城)
linux·服务器·c语言·c++
摸鱼仙人~16 小时前
大模型文章生成的风格个性化与多文体写作:一套可落地的方法论
linux·运维·服务器
煤球王子16 小时前
浅学文件系统4(页面缓存)
linux
peixiuhui16 小时前
Iotgateway技术手册-1. 项目概述
linux·网关·iot·modbus·数据采集网关·iotgateway·采集软件
wdfk_prog16 小时前
[Linux]学习笔记系列 -- [fs]sysfs
linux·笔记·学习
AllFiles17 小时前
Linux 网络故障排查:如何诊断与解决 ARP 缓存溢出问题
linux·后端
pps-key17 小时前
Afrog漏洞扫描器:从入门到入狱......边缘的摇摆记录(pps-key黑化版)
linux·计算机网络·安全·网络安全