一. SDK的编译和系统烧入

一开始是跟着正点原子的视频学习基础的【正点原子】RV1126 AI开发板-第1期 准备篇(必看)_哔哩哔哩_bilibili

从这里完成了SDK解压,配置,编译和烧入

直到买了一块新的板子

1.起源 --- 不一样的"解压"

根据商家提供的链接,下载并移动到搭载Ubuntu22.04的主机上

有这些,首先需要解压 rv1126_rv1109_linux_release.tar.gz 这里直接在文档下新建文件夹SRV1126

mkdir SRV1126

将压缩包复制到SRV1126文件夹,解压

tar -xzvf rv1126_rv1109_linux_release.tar.gz

等待一段时间,可以看到目录下的文件夹里有一个.repo文件夹,运行

repo sync -c
# 该命令会根据.repo/manifests目录下的XML文件,克隆或更新所有相关的Git仓库
# repo sync -c命令的-c选项代表current branch,意味着只同步当前分支的内容。

同步后,可以在上一级看到类似的文件和文件夹

:~/Documents/SRV1126/rv1126_rv1109_linux_release$ ls
app        build.sh         docs         IMAGE       Makefile       owlvtech-patch-rv1126  rkbin       tools
br.log     copy_modules.sh  envsetup.sh  kernel      mkfirmware.sh  prebuilts              rkflash.sh  u-boot
buildroot  device           external     mm.sh          rockdev

 2.配置Ubuntu

在正式编译之前,需要配置Ubuntu环境,首先就是镜像源

将以下内容写入 /etc/apt/sources.list 

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted

deb http://mirrors.aliyun.com/ubuntu/ focal universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe


deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse


deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse

# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
# deb-src http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
# deb-src http://security.ubuntu.com/ubuntu focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse
# deb-src http://security.ubuntu.com/ubuntu focal-security multiverse

 配置好后就要按照必要的环境了(一行行来,出问题了也好找)

sudo apt update
sudo apt upgrade
# SDK 编译环境搭建所依赖的软件包
sudo apt-get install device-tree-compiler git-core u-boot-tools mtools parted libudev-dev
sudo apt-get install libusb-1.0-0-dev autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev
sudo apt-get install curl sed make binutils build-essential gcc g++ bash patch gzip gawk bzip2
sudo apt-get install perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev
sudo apt-get install libgtk2.0-dev libglade2-dev cvs git mercurial openssh-client subversion
sudo apt-get install asciidoc w3m dblatex graphviz libc6:i386 libssl-dev expect fakeroot cmake
sudo apt-get install flex bison liblz4-tool libtool keychain net-tools adb lib32gcc-7-dev g++-7
sudo apt-get install libstdc++-7-dev libncurses5-dev libncursesw5-dev openssh-server

不出意外,安装好后就可以配置sdk了

根据商家给的资料,我们可以找到有关各种型号的板子和不同摄像头的对应配置文件

对应到具体的板子,选择对应的配置文件,我这里用的是IMX415,便选择了第一条

source envsetup.sh rockchip_rv1126_owl_38emmc_ipc && ./build.sh BoardConfig-owl-38EMMC
-IPC.mk && ./build.sh

等待编译

3.烧入系统 

        针对开发环境的不同,可以分为Linux和Windows两种环境

        Ubuntu(Linux)系统上烧录固件

                1. 输入命令:

sudo ./rkflash.sh # 由于升级命令需要root权限,所以必须加 sudo ,否则会出现错误

                2. 如果想单独烧写某个分区,请输入以下命令查看详细的使用说明

./rkflash.sh --help

Windows系统上烧录固件

        首先需要安装资料包里的烧入工具,并且安装驱动,正常情况下可以在SDK包里找到需要的工具

~/Documents/SRV1126/rv1126_rv1109_linux_release/tools/windows$ ls
 AndroidTool_Console_v2.4.zip         RK_IPCamera_Tool-V1.3.zip
 CameraFactoryTestTool-v2.0.5.1.zip   RKPCBATool_V1.0.9.zip
 DriverAssitant_v5.11.zip             rk_sign_tool_v1.41_win.zip
 EfuseTool_v1.4.zip                   Rockchip_Platform_DDR_Test_Tool_V1.38_Release_Annoucement_CN.7z
 eq_drc_tool-v1.23.zip                Rockchip_Platform_DDR_Test_Tool_V1.38_Release_Annoucement_EN.7z
 FactoryTool-1.71.200.rar             SDDiskTool_v1.69.zip
 ParameterTool_v1.2.zip               SecureBootTool_v1.99.zip
 pin_config_tool_v1.0_0517_win.zip   'Source Code'
 programmer_image_tool_v1.2_win.zip   Speaker-PCBATool-v0.2.2.zip
 RKDevInfoWriteTool_1.2.6.zip         ToolsRelease.txt
 RKDevTool                            TV_Camera_demo_protocol_V1.2.0.zip
 RKDevTool_Release_v2.84.zip

驱动文件:DriverAssitant_v5.11.zip

烧入工具:RKDevTool_Release_v2.84.zip

(请根据实际情况安装)

将编译好的系统下载到本地

~/Documents/SRV1126/rv1126_rv1109_linux_release/rockdev$ ls
boot.img  MiniLoaderAll.bin  misc.img  oem.img  parameter.txt  recovery.img  rootfs.ext4  rootfs.img  uboot.img  update.img  userdata.img

这些文件一把下载到本地 

如果对应下图配置好,再保存配置文件方便下一次烧入

如果插入设备不显示MASKROM/LOADER,只显示ADB设备,可以通过软件点击"切换"到LOADER模式,如果什么都不显示,可以按住reset,重新上电,直到出现设备(前提是安装了驱动)

烧入好后就可以看看例程是否可以运行.

到此,UVC开发心路历程第一部分结束.

----------24.11.27更新----------------

这里补充以下以前遇到的问题

问题

现象

开机后一直弹出内核的报错信息

类似这种

分析原因

这个时候通常是一些内核的配置或者驱动文件里有什么东西内存需求较大,导致分配的内存不足

这个时候先看看开发板当前可用内存:

$ [root@owlvtech:/etc]# free
              total        used        free      shared  buff/cache   available
Mem:        1531700      158724     1125280      132360      247696     1207392
Swap:             0           0           0

这里可用看到 available: 1207392  这里的单位是字节

再看看报错

[  154.139088] vmap allocation for size 12447744 failed: use vmalloc=<size> to increase size

这里的需求 12447744字节,明显是超过可用的

解决方案

先看看当前分配的总内存

$ cat /proc/meminfo

在输出的内容里找到关键字  "VmallocTotal" 

这里可以看到是200多mb的内存 

现在cd到SDK目录下,单独编译内核

$ ./build.sh kernel

等他出现了配置的信息后中断编译 "ctrl + C"

我这里是

TARGET_KERNEL_DTS    =rv1126-owl-50ipc-v10-emmc-imx415

*要根据实际情况修改 

然后编辑这个设备树文件

$ nano ./kernel/arch/arm/boot/dts/rv1126-owl-50ipc-v10-emmc-imx415.dts
chosen {
        bootargs = "earlycon=uart8250,mmio32,0xff570000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=ext4 rootwait snd_aloop.index=7";
};

 在最后加上 vmalloc=512M (或者别的,大于现在的200就差不多了)

保存再次单独编译内核,烧入即可

如果还是相同的报错,再加就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值