RV1109_RV1126 EVB板使用记录

  • 在PC端安装虚拟机
  • 解压RV1126开发板SDK源码
    • 板级配置命令
    • 分区
    • 编译U-Boot
    • 编译Kernel
      • 增加驱动
      • 内核增加驱动
        • 增加sc132gs
        • can驱动:输入'/',进入搜索框中,搜索flexcan ,选择 support for FLEXCAN based chips:
      • can usb 驱动
        • 根据ch34x设备,搜索关键字 ch34,出来一下界面:
        • 根据PL2303 Serial Port设备,搜索关键字 PL2303,出来一下界面:
        • 电源域
    • 编译buildroot
      • packages增加
        • iproute2
        • can_utils
        • usbutils
        • 增加iqfile
      • 编译第三方库或者 APP
      • 在app或者external基础增加或者修改
        • 编译
      • 自定义 包
        • 源码目录增加hg_hello文件夹:
        • 加到 buildroot的menuconfig中
        • 编译
      • 开机启动
      • buildroot 下载源码包
    • 烧录
    • window

在PC端安装虚拟机

直接使用正点原子的集成虚拟机。也可以使用docker环境
更新软件,vscode

sudo apt install sshpass

帮助文档:《RV1126/RV1109 Linux SDK 快速入门》

解压RV1126开发板SDK源码

md5sum RV1126_RV1109_LINUX_SDK_V2.2.4_20211019.tar.bz2
# 2232d18ec054f8de7ba8b0067497a324  RV1126_RV1109_LINUX_SDK_V2.2.4_20211019.tar.bz2mkdir rv1126_rv1109
#tar xvf rv1126_rv1109_linux_release_20211022.tgz -C rv1126_rv1109
tar xjf RV1126_RV1109_LINUX_SDK_V2.2.4_20211019.tar.bz2 -C rv1126_rv1109
cd rv1126_rv1109
.repo/repo/repo sync -l
# 需要rk 秘钥的
.repo/repo/repo sync -c --no-tags

板级配置命令

开发板版本:RV1126_RV1109_EVB_DDR3P216SD6_V13_20200630LXF,以下红框的,都可以使用。

修改配置文件:device/rockchip/rv1126_rv1109/BoardConfig-hg.mk

# 配置文件进行选择
./build.sh lunch# 指定通用类
./build.sh device/rockchip/rv1126_rv1109/BoardConfig.mk# 增加 复制并修改
./build.sh device/rockchip/rv1126_rv1109/BoardConfig-hg.mk# 修改BoardConfig-hg.mk内容为:
export RK_KERNEL_DTS=rv1126-evb-ddr3-v13-hg
export RK_ROOTFS_TYPE=ext2

分区

# 分区文件选择
export RK_PARAMETER=parameter-buildroot-fit.txtCMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),0x00010000@0x00018000(recovery),0x00010000@0x00028000(backup),0x00200000@0x00038000(rootfs),0x00060000@0x00238000(oem),0x00200000@0x00298000(userdata),-@0x00498000(media:grow)

修改固件目录下的分区表parameter.txt,根据需求修改rootfs分区大小。默认为大小为 3G 。
分区表格式:分区大小@所在地址(分区名)。最后的-@所在地址(分区名:grow)的 - 代表将剩余的内存大小拓展该分区,该写法只能放在 CMDLINE 最后。 其中大小和地址都是以块为单位( 1 块 = 512byte),换算成 MByte 可以用以下公式:

MByte = N * 512 / 1024 / 1024

例如我们看 rootfs 这行: 分区大小是 0x00200000,换算成十进制也就是

2097152  块 * 512 字节每块 / 1024 / 1024 = 1024 MByte

所以 rootfs 分区大小就是 3072M 。

特别注意:分区大小 + 所在地址 = 下一个分区的所在地址。

编译U-Boot

### 查看U-Boot详细编译命令
./build.sh -h uboot
### U-Boot编译命令
./build.sh uboot### 使用menuconfig配置U-Boot,选择需要的模块,最后保存退出。
### rv1126_defconfig 文件在目录 u-boot/configs
### 命令格式:make "RK_UBOOT_DEFCONFIG"_defconfig
### RK_UBOOT_DEFCONFIG 定义在./build.sh选择的BoardConfig*.mk
cd u-boot
make rv1126_defconfig
make menuconfig
### 保存配置到对应的文件rv1126_defconfig
make savedefconfig
cp defconfig configs/rv1126_defconfig# 会在 u-boot 目录下生成 uboot.img 文件和 rv1126_spl_loader_v1.08.108.bin 文件, uboot.img 文件就是我们要烧录的 img 镜像, rv1126_spl_loader_v1.08.108.bin 是启动引导uboot 的文件

编译Kernel

### 查看Kernel详细编译命令
./build.sh -h kernel
### Kernel编译命令
./build.sh kernelcd kernel### 命令格式:make ARCH=arm "RK_KERNEL_DEFCONFIG" "RK_KERNEL_DEFCONFIG_FRAGMENT"
### RK_KERNEL_DEFCONFIG 和RK_KERNEL_DEFCONFIG_FRAGMENT 都定义在./build.sh选择的 BoardConfig*.mk
### RK_KERNEL_DEFCONFIG_FRAGMENT 是可选项,具体看BoardConfig*.mk配置。# 下面的放进 kernel/build.sh
make ARCH=arm rv1126_defconfig
make ARCH=arm menuconfig
make ARCH=arm savedefconfig
cp defconfig arch/arm/configs/rv1126_defconfig

增加驱动

  • 修改kernel\drivers\media\i2c\sc132gs.c
  • kernel\arch\arm\boot\dts\ 下增加dts及dtsi文件
    rv1126-evb-ddr3-v13-hg.dts
    rv1126-evb-v10-hg.dtsi
    rv1126-evb-v12-hg.dtsi
    rv1126-evb-v13-hg.dtsi

内核增加驱动

增加sc132gs

can驱动:输入’/',进入搜索框中,搜索flexcan ,选择 support for FLEXCAN based chips:

can usb 驱动

按下 1 选项,就可以找到/

根据ch34x设备,搜索关键字 ch34,出来一下界面:

根据PL2303 Serial Port设备,搜索关键字 PL2303,出来一下界面:

电源域

pmuio0-supply
regulator-min-microvolt =  1800mV
regulator-max-microvolt =  1800mVpmuio1-supply
regulator-min-microvolt =  3300mV
regulator-max-microvolt =  3300mVvccio2-supply
regulator-min-microvolt =  1800mV
regulator-max-microvolt =  3300mVvccio3-supply
regulator-min-microvolt =  1800mV
regulator-max-microvolt =  1800mVvccio4-supply
regulator-min-microvolt =  1800mV
regulator-max-microvolt =  1800mVvccio6-supply
regulator-min-microvolt =  1800mV
regulator-max-microvolt =  1800mVvccio7-supply
regulator-min-microvolt =  1800mV
regulator-max-microvolt =  1800mV
Running build_kernel succeeded.

编译buildroot

buildroot
├── arch: 存放CPU架构相关的配置脚本,如arm/mips/x86,这些CPU相关的配置,在制作工具链时,编译uboot和kernel时很关键
├── board:在构建系统时,board默认的boot和kernel配置文件,以及一些板级相关脚本,存放一些默认开发板的配置补丁之类
├── boot:bootloader配置脚本目录,可以选择使用uboot作为bootloader
├── build:所有源码包解压出来的文件存放目录和编译过程的发生目录
├── configs: 板级配置文件,该目录下的配置文件记录着该机器平台或者方案使用的工具链,boot,kernel,各种应用软件包的配置
├── dl: download的简写,一些开源包下载后存在该目录;首次下载后,下次不会再从官网下载,而从dl/目录拿开源包,以节约时间
├── docs: 存放相关的参考帮助文档
├── fs: 各种文件系统的自动构建脚本
├── linux: 存放着kernel的自动构建脚本
├── output: 是编译出来的输出文件夹
│   ├── build: 存放解压后的各种软件包编译完成后的现场,包括主机上Buildroot所需的工具和针对目标编译的软件包
│   ├── host: 存放着制作好的编译工具链,如gcc、arm-linux-gcc等工具
│   ├── images: 存储着所有镜像(包括内核镜像,引导加载程序和根文件系统镜像),需要放在目标系统上的文件
│   ├── staging:是到内部目标工具链host/的符号链接
│   └── target: 用来制作rootfs文件系统,存放Linux系统基本的目录结构,以及编译好的应用库和bin可执行文件。(buildroot根据用户配置把.ko .so .bin文件安装到对应目录中)
├── package:下面放着应用软件的配置文件,每个应用软件的配置文件有Config.in和soft_name.mk
├── support:公共的支持文档(kconfig code, libtool patches, download helpers, and more)
├── system:根目录主要骨架和相关启动初始化配置,存放文件系统目录的和设备节点的模板,这些模板会被拷贝到output/目录下,用于制作根文件系统rootfs
├── toolchain:目录中存放着各种制作工具链的脚本
├── utils:常用工具
├── CHANGES
├── Config.in
├── Config.in.legacy
├── COPYING
├── DEVELOPERS
├── Makefile
├── Makefile.legacy
└── README
### 查看Rootfs详细编译命令
./build.sh -h rootfs
### Rootfs编译和打包命令
./build.sh rootfs
### 1. 先在SDK根目录查看Board Config对应的rootfs是哪个配置
./build.sh -h rootfs
# ###Current SDK Default [ rootfs ] Build Command###
# source envsetup.sh rockchip_rv1126_rv1109
# make
# source envsetup.sh  选择对应的defconfig
# 所在位置:buildroot/configs/rockchip_rv1126_rv1109_defconfig
# source envsetup.sh rockchip_rv1126_rv1109_hg
# 只包含音视频编解码库、 NPU 库以及头文件 source envsetup.sh alientek_rv1126_libs 编译BSP生成的目录 buildroot/output/rockchip_rv1126_rv1109_libs/BSP
source envsetup.sh rockchip_rv1126_rv1109
### 3. 使用menuconfig配置文件系统,选择需要的模块,最后保存退出。
### 例如:要配置app/ipc-daemon这个工程cd buildroot
### a. 找到app/ipc-daemon对应的配置文件
### grep -lr "app/ipc-daemon" buildroot/package
### buildroot/package/rockchip/ipc-daemon/ipc-daemon.mk
### 对应的配置文件:buildroot/package/rockchip/ipc-daemon/Config.in
###
### b. 获取配置名称BR2_PACKAGE_IPC_DAEMON
### 查看buildroot/package/rockchip/ipc-daemon/Config.in
make menuconfig # 进入menuconfig后,按“/"进入查找模式,输入BR2_PACKAGE_IPC_DAEMON
### 4. 保存到rootfs配置文件
### ./buildroot/configs/rockchip_rv1126_rv1109_defconfig
make savedefconfig# Rootfs编译和打包命令
# 编译后在 Buildroot 目录 output/rockchip_芯片型号/images下生成 rootfs.ext4
# 生成oem.img 和 rootfs.ext4软链接
./build.sh rootfs

packages增加

iproute2

can_utils

usbutils

增加iqfile

sc132gs_H_G.xml 复制到external\camera_engine_rkaiq\iqfiles

编译第三方库或者 APP

# 配置
source envsetup.sh rockchip_rv1126_rv1109
./build.sh external/mpp app/mediaserver
./build.sh rootfs#或者
source envsetup.sh rockchip_rv1126_rv1109# 编译
make qplayer
# 重编 qplayer
make qplayer-rebuild
# 删除 qplayer
make qplayer-dirclean
./build.sh rootfs
# 配置
source envsetup.sh rockchip_rv1126_rv1109_recovery
# 进入buildroot
# 编译
make qplayer
# 重编 qplayer
make qplayer-rebuild
# 删除 qplayer
make qplayer-dirclean
./build.sh rootfs

在app或者external基础增加或者修改

这里使用 app/ipc-daemon/ 目录下程序作为修改:

  • 复制并粘贴,修改为app/hg-daemon,把app/ipc-daemon/中文件里面的ipc修改为hg

  • 加到 buildroot的menuconfig中
    在buildroot/package/Config.in中,最后一个 endmenu 前
    添加内容如下:

menu "hg_hello"
source "package/hg_hello/Config.in"
endmenu


编译

# 编译器一定要选择对应的配置文件
source envsetup.sh rockchip_rv1126_rv1109
./build.sh app/

自定义 包

源码目录增加hg_hello文件夹:


hello.c内容如下:

 ```bashinclude <stdio.h>int main(){printf("buildroot helloworld\n");return 0;}```Makefile内容如下:```bashWall -Wno-deprecatedCFLAGS = $(OPT) $(OTHER)INCDIR = -ILIBDIR = -LLIBS =APP=hg_helloSRCS=hello.call:$(CC) -o $(APP) $(SRCS) $(CFLAGS) $(LIBDIR) $(INCDIR) $(LIBS)clean:rm $(APP)```

加到 buildroot的menuconfig中

在buildroot/package/Config.in中,最后一个 endmenu 前

添加内容如下:
bash menu "hg_hello" source "package/hg_hello/Config.in" endmenu
创建Config.in文件,其内容如下:
bash config BR2_PACKAGE_HG_HELLO bool "hg_hello" help This is a demo to add hg_hello.

编译

source envsetup.sh rockchip_rv1126_rv1109
make hg_hello./build.sh app/hg_hello

开机启动

在之前选的buildroot/configs/rockchip_rv1126_rv1109_defconfig中,
BR2_ROOTFS_OVERLAY=“board/rockchip/rv1126_rv1109/fs-overlay-sysv/”

在文件buildroot/board/rockchip/rv1126_rv1109/fs-overlay-sysv/etc/init.d/S98_lunch_init为开机自启动。

根文件系统打包前所在位置:buildroot/output/rockchip_rv1126_rv1109/target

# 原来 S98_lunch_init
source /etc/profile.d/RkEnv.shcase "$1" instart)[ -f /oem/RkLunch.sh ] && source /oem/RkLunch.sh#recovery testif [ -e "/oem/rockchip_test/auto_reboot.sh" ]; thenmkdir /data/cfg/rockchip_testcp /oem/rockchip_test/auto_reboot.sh /data/cfg/rockchip_testsource /data/cfg/rockchip_test/auto_reboot.sh &fi;;stop)[ -f /oem/RkLunch-stop.sh ] && source /oem/RkLunch-stop.shprintf "stop finished\n";;*)echo "Usage: $0 {start|stop}"exit 1;;
esac
exit 0

修改为:

#!/bin/sh
case "$1" instart)printf "start rkmedia_hg_vi_venc_rtsp_test: ". /etc/profilesource /oem/RkLunch-stop.sh/oem/usr/bin/rkmedia_hg_vi_venc_rtsp_test &;;stop)killall rkmedia_hg_vi_venc_rtsp_testprintf "stop rkmedia_hg_vi_venc_rtsp_test finished";;restart|reload)$0 stop$0 start;;*)echo "Usage: -bash {start|stop}"exit 1;;
esac
exit 0

buildroot 下载源码包

tar -axvf ~/dl.tar.gz -C buildroot/

烧录

window

烧录选项 镜像文件 说明 位置
Loader MiniLoaderAll.bin 此文件负责初始化 DDR,引导 Uboot。相当于 SPL 或者 TF-A。
Parameter parameter.txt 分区相关的文件
Uboot uboot.img uboot 镜像
Misc misc.img 系统升级时或者恢复出厂设置时使用
Rootfs rootfs.img buildroot 的文件系统 …/buildroot/output/rockchip_rv1126_rv1109/im
ages/rootfs.ext2
boot zboot.img kernel 镜像
recovery recovery.img 升级相关的文件系统
oem oem.img 厂商用的分区文件
Userdata userdata.img 用户分区 在 device/rockchip/userdata/目录下

RV1109_RV1126 EVB板使用记录相关推荐

  1. RV1109_RV1126 EVB板连接时List of devices attached

    将RV1109_RV1126 EVB板连接到电脑后,运行 adb devices 提示如下错误:List of devices attached 原因是我的usb线连接到了usb debug串口,将u ...

  2. RV1109_RV1126 EVB板使用总结

    RV1126开发板使用总结 RV1109_RV1126型号EVB板使用说明 一.Windows系统安装adb串口调试 二.RV1126开发板SDK编译 2.1 在PC端安装ubuntu16.04 2. ...

  3. RV1109 EVB板使用流程

    RV1109 EVB板的使用流程 开发板型号:RV1126_RV1109_EVB_DDR3P216SD6_V12_20200515KYY 拿到板子后首先对SDK包进行编译,环境VMware:ubunt ...

  4. RV1109_RV1126 EVB开发板环境搭建及使用总结

    目录 1.安装adb 2.安装RKNN-Toolkit工具包 3.在PC上仿真运行示例 4.安装交叉编译工具链

  5. D1 哪吒开发板 上电记录

    前言 D1 哪吒开发板,基于RISC-V 64位架构,平头哥64位C906核心,一直在ARM领域混,现在开始了解RISCV64架构,熟悉RT-Thread Smart (rt-smart) 一上来热血 ...

  6. EVB_MX+ TencentOS tiny物联网开发板首次使用记录路灯调试(1)

    1月下旬拿到腾讯的板子,奈何放假了,资源略看没有使用.因为疫情在老家逗留几个月,3月末回来才拿到板子使用,很喜欢. 收拾好电脑,即开始安装软件,在此不做叙述.相应的文档- 腾讯云IoT应用创新大赛资料 ...

  7. 海思开发板学习记录2----- 开发板配置tftp 服务

    前言: 虚拟机下通过tftp 将boot .kernel . root 镜像文件导入到开发板.之后通过烧录指令进行固件烧录 1.首先需要设置虚拟机,电脑,开发板处于同一个局域网内,这样才能通过tftp ...

  8. DDR3 MIG上板测试记录

    DDR3介绍 DDR3芯片以 镁光(Micron) 的 MT41J256M16为例: MT41J256M16 – 32 Meg x 16 x 8 banks:在我看来,一共能存储256M的16位数,一 ...

  9. 移植u-boot-2016.11到TQ2440开发板全过程记录

    移植前的准备 获取并解压源码 SAMSUNG公司于2017年初停止了对S3C2410系列CPU的官方u-boot支持(可在最新版u-boot源码中打开doc/README.scrapyard,搜索关键 ...

最新文章

  1. python 批量改名
  2. python装饰器功能是冒泡排序怎么做_传说中Python最难理解的点|看这完篇就够了(装饰器)...
  3. 恭喜神策数据客户即刻完成 C 轮融资
  4. 写出TREE-MINIMUM 和TREE-MAXIMUM的递归版本(算法导论第三版12.2-2)
  5. 一段简单的代码告诉你什么叫内存溢出
  6. 云计算入门科普系列:基于Docker部署LNMP架构
  7. Linux 常用命令全集
  8. ssh自动登陆和scp自动拷贝文件
  9. 源码解析:init-method、@PostConstruct、afterPropertiesSet孰先孰后
  10. 《精通 ASP.NET MVC 3 框架(第三版)》----第1章 设计思路 1.1 Web开发简史
  11. c语言设计二级考试程序修改题,全国计算机c语言二级考试试题
  12. Android 设置背景透明度
  13. 老外用VB6写的Windows驱动备份软件
  14. prop()方法的应用
  15. 使用matplotlib绘制xkcd动漫风格的图表(解决中文字体问题)
  16. OpenCL设备存储形式
  17. DEP6957: 未能使用“通用身份验证”连接到设备“127.0.0.1”
  18. 判断机器大端还是小端
  19. 华为OD机试真题 Python 实现【数字涂色】
  20. Java腾讯企业邮箱发送邮件

热门文章

  1. 怎么算是一个好的团队
  2. Java面试题:TCP三次握手如果失败会发生什么?
  3. SpringBoot使用PageHelper
  4. libcurl错误代码
  5. 个人爱好-摄影入门书籍思维整理
  6. 大学生计算机怎么挑,准大学生如何挑选笔记本?建议收藏!
  7. Docker 个人记录
  8. 乐box投影仪显示服务器异常,VEZ乐BOX经过100多次改版,或成最小投影仪
  9. phtoshop理解与备忘
  10. 阿里云视频点播报错 InvalidVideo.NotFound : The video does not exist.