一开始是跟着正点原子的视频学习基础的【正点原子】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就差不多了)
保存再次单独编译内核,烧入即可
如果还是相同的报错,再加就行