编译 RV1126 固件
1. 📁 RV1126 SDK 文件下载
RV1126 / RV1126B-p 注意区分
跳转到 RV1126 SDK | 跳转到 RV1126B-p SDK
链接: https://pan.baidu.com/s/1OSdhBi32C13lBNVC-Sz63w?pwd=fanc
提取码: fanc 复制这段内容后打开百度网盘手机App,操作更方便哦
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 里
常见问题
SDK 说明
这个是RK官方的SDK,我们只是做了基础的BSP适配和图像效果。
具体功能层面,可以根据开源代码来实现。我们没有提供这方向的定制工作
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的分享
放在
自行编译内核
-
修改设备树
kernel/scripts/dtc/include-prefixes/arm/rv1126-38x38-v10-emmc.dts-
gpio_i2c里的status改为disabled -
增加新节点
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";
};
配置 RNDIS
vim device/rockchip/common/images/oem/oem_uvcc/usb_config.sh
pre_run_rndis()
{
# RNDIS reference:
# 1) Use DEFAULT_RNDIS_IP by default.
# 2) If /data/uvc_xu_ip_save exists, the first line overrides it.
DEFAULT_RNDIS_IP="192.168.77.1"
DEFAULT_RNDIS_MASK="255.255.255.0"
IP_FILE=/data/uvc_xu_ip_save
if echo "$1" | grep -q "rndis"; then
RNDIS_IP="$DEFAULT_RNDIS_IP"
echo "config usb0 IP..."
if [ -f "$IP_FILE" ]; then
SAVED_IP="$(sed -n '1p' "$IP_FILE")"
if [ -n "$SAVED_IP" ]; then
RNDIS_IP="$SAVED_IP"
fi
echo "saved ip is: $RNDIS_IP"
fi
ifconfig usb0 "$RNDIS_IP" netmask "$DEFAULT_RNDIS_MASK"
ifconfig usb0 up
fi
}
已改好一个 rndis 参考版本,文件是:
device/rockchip/common/images/oem/oem_uvcc/usb_config.sh
改的是 pre_run_rndis(),现在行为是:
- 默认给
usb0配192.168.77.1/24 - 如果存在
/data/uvc_xu_ip_save,则读取第一行作为覆盖 IP - 最后统一
ifconfig usb0 up
可以直接试:
/oem/usb_config.sh rndis
如果你想改成你的网段,只要改这两个变量:
DEFAULT_RNDIS_IP="192.168.77.1"DEFAULT_RNDIS_MASK="255.255.255.0"
如果希望“完全固定 IP,不允许文件覆盖”,我也可以再给你改成纯固定版。
编译 Debian 命令
需要配置变量,其他不变
export RK_ROOTFS_SYSTEM=debian