跳到主要内容

编译 RV1126 固件


1. 下载文件

https://pan.baidu.com/s/1RZC4oGlDzX6iyWIBd9zkoQ?pwd=btgt


2. 解压文件

下载 sdk 的文件如下

数量不一定相同,能正常解压不报错即可
roy@13500h:~/rv1126$ ls
rv1126-repo-v20230717-dev.tar.gz00 rv1126-repo-v20230717-dev.tar.gz01
rv1126-repo-v20230717-dev.tar.gz02

合并多个分包文件并解压

cat rv1126-repo-v20230717-dev.tar.gz* > rv1126-repo-v20230717-dev.tar.gz

tar -zxvf rv1126-repo-v20230717-dev.tar.gz

移动到构建目录

mv rv1126-repo-v20230717-dev ~/

cd ~/rv1126-repo-v20230717-dev

解压后可以先阅读 RK 官方说明

文档位于 rv1126-repo-v20230717-dev/docs/Rockchip_Developer_Guide_Linux_Software_CN.pdf


3. 准备环境

编译 SDK 环境搭建所依赖的软件包安装命令如下:

sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect \
g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake gcc-multilib \
g++-multilib unzip device-tree-compiler ncurses-dev libgucharmap-2-90-dev \
bzip2 expat gpgv2 cpp-aarch64-linux-gnu time mtd-utils

Python依赖包:

sudo pip3 install asciidoc

补一个可能需要的命令:

如果 Ubuntu 22 提示没有 python ,可以把 pythone3 连接过来

root@13500h:~$ python

-bash: python: command not found

sudo ln -s /usr/bin/python3 /usr/bin/python

4. 第一次构建


4.1 第一次编译需要整编

先配置

./build.sh lunch
  • 记得选 2.rockchip 38x38 emmc defconfig

  • 输入 2 回车

开始整编

./build.sh

4.2 单独编译 uboot

./build.sh uboot

4.3 单独编译kernel

./build.sh kernel

4.4 单独编译 rootfs

./build.sh rootfs

4.5 构建目录

最终构建的文件在 ~/rv1126-repo-v20230717-dev/rockdev


常见问题


repo编译报错

找到报错文件注释掉repo

device/rockchip/common/scripts/mk-all.sh

device/rockchip/common/scripts/post-info.sh

图片


使用 Uart0 需要改设备树,重新编译内核

已经编译好的版本

通过网盘分享的文件: 
链接: https://pan.baidu.com/s/1NyfRuSKcakxMJCZohiFl6A?pwd=fanc 提取码: fanc 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v6的分享

放在 使用 TTL 请单刷 BOOT 分区 目录

自行编译内核

  • 修改设备树 kernel/scripts/dtc/include-prefixes/arm/rv1126-38x38-v10-emmc.dts

    1. gpio_i2c 里的 status 改为 disabled

    2. 增加新节点 uart0,并且 status = "okay"

	gpio_i2c: gpio_i2c {
status = "disabled";
compatible = "i2c-gpio";
scl-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
sda-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <2>; /* ~100 kHz */
#address-cells = <1>;
#size-cells = <0>;
};
&uart0 {
status = "okay";
};