【RP-RV1126】配置一套简单的板级配置

文章目录

  • 官方配置
  • 新建一套新配置
    • 新建板级pro-liefyuan-rv1126.mk配置文件
    • 新建一个Buildroot的defconfigs文件
  • 吐槽:RP-RV1126 的SDK奇怪的地方
    • make ARCH=arm xxx_defconfig 生成的.config文件位置不一样
    • savedefconfig命令直接替换原配置文件
    • 坑爹的地方
  • Buildroot上增加WiFi和BT
    • 增加BT需要确定连接的串口号
    • WiFi/BT模块的模块和固件位置
    • BT使用过程:
    • 进入BT交互模式
  • 测试WiFi速度(AP6256)

官方配置

buildroot官方配置完整编译需要30分钟。我想搞一个简单的配置,可以快速编译,快速测试一些简单的功能。

命令对应的文件描述
./build.sh lunchpro-liefyuan-rv1126.mk选择全局配置文件
source envset.shrockchip_rv1126_rv1109_liefyuan_defconfig选择Buildroot配置文件

新建一套新配置

新建板级pro-liefyuan-rv1126.mk配置文件

定义一个自己的pro-liefyuan-rv1126.mk文件:
基于原来的文件:./device/rockchip/rv1126_rv1109/pro-rv1126.mk
改为:./device/rockchip/rv1126_rv1109/pro-liefyuan-rv1126.mk

拷贝目录sdk/device/rockchip/rv1126_rv1109/下的pro-rv1126.mk改成自己的名字:pro-liefyuan-rv1126.mk

目前的打算,只修改Buildroot文件系统的配置,Uboot和Kernel的配置不变。

# Buildroot config
export RK_CFG_BUILDROOT=rockchip_rv1126_rv1109_facial_gate

改为:

# Buildroot config
export RK_CFG_BUILDROOT=rockchip_rv1126_rv1109_liefyuan

pro-liefyuan-rv1126.mk 的全部内容:

#!/bin/bash# Target arch
export RK_ARCH=arm
# Uboot defconfig
export RK_UBOOT_DEFCONFIG=rv1126
# Uboot image format type: fit(flattened image tree)
export RK_UBOOT_FORMAT_TYPE=fit
# Kernel defconfig
export RK_KERNEL_DEFCONFIG=rv1126_defconfig
# Kernel defconfig fragment
export RK_KERNEL_DEFCONFIG_FRAGMENT=rv1126-facial-gate.config
# Kernel dts
#export RK_KERNEL_DTS=rv1109-evb-ddr3-v13-facial-gate
export RK_KERNEL_DTS=pro-rv1126
# boot image type
export RK_BOOT_IMG=zboot.img
# kernel image path
export RK_KERNEL_IMG=kernel/arch/arm/boot/zImage
# kernel image format type: fit(flattened image tree)
export RK_KERNEL_FIT_ITS=boot.its
# parameter for GPT table
export RK_PARAMETER=parameter-facial-gate.txt
# Buildroot config
export RK_CFG_BUILDROOT=rockchip_rv1126_rv1109_liefyuan
# Recovery config
export RK_CFG_RECOVERY=rockchip_rv1126_rv1109_recovery
# Recovery image format type: fit(flattened image tree)
export RK_RECOVERY_FIT_ITS=boot4recovery.its
# ramboot config
export RK_CFG_RAMBOOT=
# Pcba config
export RK_CFG_PCBA=
# Build jobs
export RK_JOBS=12
# target chip
export RK_TARGET_PRODUCT=rv1126_rv1109
# Set rootfs type, including ext2 ext4 squashfs
export RK_ROOTFS_TYPE=ext4
# rootfs image path
export RK_ROOTFS_IMG=rockdev/rootfs.${RK_ROOTFS_TYPE}
# rootfs system
export RK_ROOTFS_SYSTEM=buildroot
# Set ramboot image type
export RK_RAMBOOT_TYPE=
# Set oem partition type, including ext2 squashfs
export RK_OEM_FS_TYPE=ext2
# Set userdata partition type, including ext2, fat
export RK_USERDATA_FS_TYPE=ext2
#OEM config
export RK_OEM_DIR=oem_facial_gate
# OEM build on buildroot
export RK_OEM_BUILDIN_BUILDROOT=NO
#userdata config, if not define this, system will format by RK_USERDATA_FS_TYPE
export RK_USERDATA_DIR=userdata_normal
#misc image
export RK_MISC=wipe_all-misc.img
#choose enable distro module
export RK_DISTRO_MODULE=
# Define pre-build script for this board
export RK_BOARD_PRE_BUILD_SCRIPT=app-build.sh
# Define package-file for update.img
export RK_PACKAGE_FILE=rv1126_rv1109-package-file

新建一个Buildroot的defconfigs文件

定义一个自己的Buildroot的configs文件:
基于原来的文件:./buildroot/configs/rockchip_rv1126_rv1109_facial_gate_defconfig
改为:./buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig

$ cp ./buildroot/configs/rockchip_rv1126_rv1109_facial_gate_defconfig ./buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig

原来的Buildroot配置太复杂了我精简到如下:

buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig 文件的全部内容:

#include "base.config"
#include "base_extra.config"
#include "debug.config"
#include "audio.config"
#include "wifi.config"
#include "network.config"
#include "rv1126_rv1109_arm.config"
#include "updateEngine.config"
BR2_PACKAGE_RKWIFIBT_AP6256=y
BR2_PACKAGE_RKWIFIBT_BTUART="ttyS0"
BR2_PACKAGE_DRM_DISPLAY_OUTPUT=y
BR2_PACKAGE_LIBERATION=y
BR2_PACKAGE_SOURCE_HAN_SANS_CN=y
BR2_PACKAGE_QT5BASE_WIDGETS=y
BR2_PACKAGE_QT5BASE_FONTCONFIG=y
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
BR2_PACKAGE_QT5BASE_USE_RGA=y
BR2_PACKAGE_QT5BASE_LINUXFB_ARGB32=y
BR2_PACKAGE_QT5MULTIMEDIA=y
BR2_PACKAGE_QT5QUICKCONTROLS=y
BR2_PACKAGE_QT5SERIALPORT=y
BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL=y
BR2_PACKAGE_DHCP=y

这里其实就设置了WiFi蓝牙相关和Qt相关的配置,整个编译下来不到8分钟。

吐槽:RP-RV1126 的SDK奇怪的地方

make ARCH=arm xxx_defconfig 生成的.config文件位置不一样

  • 一般来说(主线Buildroot),我在Buildroot根目录下运行命令:make ARCH=arm xxxx_defconfig,会在当前目录下产生一个.config文件,但是Rockchip的不一样,运行了上述命令后,它是会在这里产生该文件:./output/xxxx/.config

savedefconfig命令直接替换原配置文件

liefyuan@ubuntu:~/rv1126/rp_rv1126_sdk/buildroot$ make ARCH=arm savedefconfigGEN     /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_liefyuan/Makefile
grep "#include" /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig > /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig.split || true
cat /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig >> /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig.split
/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/build/defconfig_hook.py -s /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig.split /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig
rm /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig.split

/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/build/defconfig_hook.py -s /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig.split /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/configs/rockchip_rv1126_rv1109_liefyuan_defconfig 这句话把我震惊了,我运行命令make ARCH=arm savedefconfig之后它直接保存到原文件了。。。。

坑爹的地方

  • 清除buildroot的编译内容,需要进入sdk/buildroot/目录进行make clean才可以清除。
  • ./build.sh cleanall并不能清除所有生成文件
  • 重新编译的顺序:
    • 全部清除:./build.sh cleanall
    • 删除固件等:cd ./rockdev 然后 rm ./*
    • 重新编译:./build.sh all
    • 构建一次完整固件:./build.sh updateimg

Buildroot上增加WiFi和BT

增加BT需要确定连接的串口号

在这里插入图片描述

在这里插入图片描述
根据以上信息,确认BT串口连接的是UART0,也就是ttyS0。

因此Buildroot里面配置相应的串口号。

在这里插入图片描述

WiFi/BT模块的模块和固件位置

开发板上的位置

/system/lib/modules/bcmdhd.ko #驱动ko(如果是ko编译的话)
/system/etc/firmware/fw_bcm43455c0_ag.bin #驱动firmware文件存放位置
/system/etc/firmware/nvram_ap6255.txt #驱动nvram文件存放位置
/system/etc/firmware/BCM4345C0.hcd #蓝牙firmware文件(如果有蓝牙功能)

BT使用过程:

killall brcm_patchram_plus1echo 0 > /sys/class/rfkill/rfkill0/state # 下电
echo 1 > /sys/class/rfkill/rfkill0/state # 上电brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2byt
es --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /s
ystem/etc/firmware/bcm43438a1.hcd /dev/ttyS0 &hciconfig -a
hciconfig hci0 uphcitool lescan
hcitool scan

进入BT交互模式

cd /usr/libexec/bluetooth/
./bluetoothd -n -d &bluetoothctl

在bluetoothctl中,我们可以进行手动配对操作。配对时,我们需要提供设备的MAC地址,并且将设备设置为可被发现模式。

$ bluetoothctl
[bluetooth]# power on
[bluetooth]# discoverable on
[bluetooth]# scan on
[bluetooth]# devices
Device 20:13:03:22:66:19 Bose SoundSport Wireless
[bluetooth]# pair 20:13:03:22:66:19
[bluetooth]# trust 20:13:03:22:66:19
[bluetooth]# connect 20:13:03:22:66:19
[bluetooth]# exit

测试WiFi速度(AP6256)

ubuntu端服务器

liefyuan@ubuntu:~/rv1126/rp_rv1126_sdk/buildroot$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.105 port 5001 connected with 192.168.1.111 port 49918
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.4 sec  37.6 MBytes  30.3 Mbits/sec

RV1126开发板端:

[root@RV1126_RV1109:/etc]# iperf -c 192.168.1.105 -i 1
------------------------------------------------------------
Client connecting to 192.168.1.105, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.111 port 49918 connected with 192.168.1.105 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  3.25 MBytes  27.3 Mbits/sec
[  3]  1.0- 2.0 sec  3.62 MBytes  30.4 Mbits/sec
[  3]  2.0- 3.0 sec  3.75 MBytes  31.5 Mbits/sec
[  3]  3.0- 4.0 sec  4.00 MBytes  33.6 Mbits/sec
[  3]  4.0- 5.0 sec  4.38 MBytes  36.7 Mbits/sec
[  3]  5.0- 6.0 sec  3.62 MBytes  30.4 Mbits/sec
[  3]  6.0- 7.0 sec  3.12 MBytes  26.2 Mbits/sec
[  3]  7.0- 8.0 sec  4.00 MBytes  33.6 Mbits/sec
[  3]  8.0- 9.0 sec  3.88 MBytes  32.5 Mbits/sec
[  3]  9.0-10.0 sec  4.00 MBytes  33.6 Mbits/sec
[  3]  0.0-10.1 sec  37.6 MBytes  31.1 Mbits/sec

测试速度约37.6MByte

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/177780.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

91 前K个高频元素

前K个高频元素 题解1 大根堆(STL) 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2] 示例 2: 输入: nums [1], k 1 输出: [1] 提示:…

机器人连杆惯量参数辨识(估计)

杆的转动惯量的计算公式是Imr^2。在经典力学中,转动惯量(又称质量惯性矩,简称惯矩)通常以I 或J表示,SI 单位为 kgm。对于一个质点,I mr,其中 m 是其质量,r 是质点和转轴的垂直距离。…

使用Java与Jsoup库构建有趣的爬虫项目

目录 一、网络爬虫的概念和应用 二、Jsoup库的功能和优势 三、使用Java与Jsoup库编写网络爬虫 四、网络爬虫的法律和道德问题 五、注意事项 六、总结 本文将深入探讨如何使用Java与Jsoup库构建一个实际且有趣的网络爬虫项目。我们将首先简要介绍网络爬虫的概念和应用&…

基于51单片机的智能手机充电器设计

**单片机设计介绍,1660【毕设课设】基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 51单片机智能手机充电器设计介绍 51单片机智能手机充电器是一种可以实现智能快速充电的…

华为认证H12-811题库

在VRP平台上,可以通过下面哪种方式返回到上一条历史命令?( ) A、Ctr1U B、Ctr1P C、左光标 D、上光标 试题答案:BD 试题解析:在VRP系统中,ctrlU为自定义快捷键,ct…

Kubernetes 访问控制 - RBAC 鉴权

Author:rab 目录 前言一、Role二、ClusterRole三、RoleBinding四、ClusterRoleBinding总结 前言 API 访问控制有很多,比如 RBAC 鉴权、ABAC 鉴权、Node 鉴权等。自 Kubernetes 1.6 版本以后,RBAC 成为 Kubernetes 的默认访问控制机制。RBAC …

浅谈AcrelEMS-CB商业建筑能源管理系统解决方案-安科瑞 蒋静

1概述 AcrelEMS-CB商业建筑能源管理系统,集电力监控、电能质量监测与治理、电气安全预警、能耗分析、照明控制、新能源使用、能源收费以及设备运维等功能于一体,通过一套系统对商业建筑的能源进行统一监控、统一运维和调度,系统可以通过WEB和…

OpenCV4(C++)——形态学(腐蚀、膨胀)

文章目录 一、腐蚀(erode)二、膨胀(dilate)三、形态学操作四、总结 一、腐蚀(erode) OpenCV 4提供了用于图像腐蚀的erode()函数。 void cv::erode(src, dst, kernel, anchor, iterations, borderType, bo…

自动曝光算法(第一讲)

序言 失业在家无事,想到以后换方向不做自动曝光了,但是自动曝光的工作经验也不能浪费了,准备写一个自动曝光的教学,留给想做自动曝光的小伙伴参考。笔者当时开发自动曝光没有按摄影的avtvevbvsv公式弄,而是按正确的增…

「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(一)

本教程将指导开发者如何生成一个可运行的Spring MVC客户应用程序,该应用程序实现域模型的CRUD应用程序模式。在本教程中,您将学习如何: 从数据库表的Scaffold到现有项目部署搭建的应用程序 使用Spring MVC搭建需要MyEclipse Spring或Bling授…

C++使用栈实现简易计算器(支持括号)

使用C实现&#xff0c;使用系统自带stac 支持括号处理支持小数计算支持表达式有效性检查支持多轮输入。 运行结果示例&#xff1a; 代码&#xff1a; #include <iostream> #include <stack> #include <string> using namespace std;//判断是否是数字字符 …

解决pycharm中,远程服务器上文件找不到的问题

一、问题描述 pycharm中&#xff0c;当我们连接到远程服务器上时。编译器中出现报错问题&#xff1a; cant open file /tmp/OV2IRamaar/test.py: [Errno 2] No such file or directory 第二节是原理解释&#xff0c;第三节是解决方法。 二、原理解释 实际上这是由于我们没有设置…

5.5 TCP报文段的首部格式

思维导图&#xff1a; 5.5 TCP报文段的首部格式 基本概念 TCP报文段&#xff1a;包含首部和数据两部分&#xff0c;首部至少20字节。作用&#xff1a;首部字段定义了TCP的功能和行为。长度&#xff1a;首部长度可变&#xff0c;基础首部20字节&#xff0c;可添加选项。 首部…

Openssl数据安全传输平台019:外联接口类的封装以及动态库的制作 - Bug未解决,感觉不是代码的问题

文章目录 1 外联接口1.1 接口类的封装1.2 共享内存与配置文件 2 json格式配置文件的定义2.1 共享内存中存储的节点结构2.2 服务器端配置文件2.3 客户端配置文件2.4 改进配置文件 3 共享内存类修改4 将接口打包成库(静态/动态)4.1 相关的指令4.1.1 静态库4.1.2 动态库 4.2 外联接…

【地理位置识别】IP归属地应用的特点

IP归属地应用是一类用于确定特定IP地址的地理位置信息&#xff08;通常是城市、地区或国家&#xff09;的工具和服务。以下是IP归属地应用的几个主要特点&#xff1a; 地理位置识别&#xff1a; IP归属地应用主要用于确定IP地址的地理位置。这可以帮助组织更好地了解其网站访问…

Physics2DPlugin3加载后会跳转gsap官网解决

因工作需要使用Physics2DPlugin3库&#xff0c;目标效果 加载他里面的在线js&#xff0c;使用效果正常&#xff0c;但是几秒会跳转官网&#xff0c;我们app内部、浏览器都会这样。 于是研究js代码&#xff0c;发现里面有setTimeout跳转。 删掉就好了 分享我改好的文件&#x…

全球地表动态水体产品(数据集V2.0)(2000-2020年/8天/250米)

摘要 全球地表动态水体产品(8天/250米)GSWED(Global Surface Water Extent Dataset)由中国科学院空天信息创新研究院湿地与环境遥感研究团队制作而成。本套数据集是基于MODIS数据构建了一套全球地表水体NDVI阈值时空参数集,在此基础上使用遥感大数据云平台进行研发的,使用G…

【Excel密码】四个方法,设置excel表格只读模式

Excel文件想要设置成只读模式&#xff0c;其实很简单&#xff0c;今天给大家分享四个excel设置只读模式的方法。 方法一&#xff1a;文件属性 右键点击文件&#xff0c;查看文件属性&#xff0c;在属性界面&#xff0c;勾选上只读属性就可以了。 方法二&#xff1a;始终以只读…

左移测试,如何确保安全合规还能实现高度自动化?

「云原生安全既是一种全新安全理念&#xff0c;也是实现云战略的前提。 基于蚂蚁集团内部多年实践&#xff0c;云原生PaaS平台SOFAStack发布完整的软件供应链安全产品及解决方案&#xff0c;包括静态代码扫描Pinpoint&#xff0c;软件成分分析SCA&#xff0c;交互式安全测试IA…

【密评】商用密码应用安全性评估从业人员考核题库(十七)

商用密码应用安全性评估从业人员考核题库&#xff08;十七&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 4001 多项选择题 网络和通信安全层面的通信主体一般包括哪些&…