RV1126 调试记录

news/2024/10/21 23:02:16/

RV1126 调试记录

################################################################################################
## SDK编译说明以及FAQ
1. 模式
    A/B模式:该模式准备两份独立的系统固件,分别存放在 flash 上,系统可以从其中一个 slot 启动,如果当前 slot 启动失败,
        可以从另外一个 slot 启动,在Normal模式下直接升级系统,无需进入系统升级模式,只需重启系统即可进入升级过的系统。
        Linux A/B 由于有两个引导 slot,所以具有以下优点:
            a. 升级无需重启进入升级模式,即机器可以在当前系统上直接进行升级。
            b. 防止由于升级失败导致机器变砖,如果升级失败,机器可以回到当前版本。
            c. 当前系统如果由于一些误操作被破坏掉,系统会自动切换到另外一个 slot 上。
        缺点:Linux A/B 有两个 slot,所以会增加 flash 上系统固件的占用率。

        配置和编译:
            uboot: defconfig 增加如下配置,如 rv1126 64bit:u-boot/configs/rv1126_defconfig
                CONFIG_AVB_LIBAVB=y 
                CONFIG_AVB_LIBAVB_AB=y 
                CONFIG_AVB_LIBAVB_ATX=y 
                CONFIG_AVB_LIBAVB_USER=y 
                CONFIG_RK_AVB_LIBAVB_USER=y 
                CONFIG_ANDROID_AB=y
            Buildroot:
                BR2_PACKAGE_RECOVERY=y #开启升级功能 
                BR2_PACKAGE_RECOVERY_BOOTCONTROL=y #开启引导控制脚本 
                BR2_PACKAGE_RECOVERY_RETRY=y #引导方式为retry模式,不配置则默认为 successful_boot模式 
                BR2_PACKAGE_RECOVERY_USE_UPDATEENGINE=y #使用新升级程序 
                BR2_PACKAGE_RECOVERY_UPDATEENGINEBIN=y #编译新升级程序 
                BR2_PACKAGE_RECOVERY_NO_UI=y # 关掉UI
            

    Recovery模式:该模式是在设备上多一个Recovery分区,该分区由kernel+resource+ramdisk 组成,主要用于升级操作。
               u-boot会根据misc分区(详见misc 分区章节)存放的字段来判断将要引导的系统是Normal 系统还是
               Recovery 系统。由于系统的独立性,所以Recovery模式能保证升级的完整性,即升级过程被中断,如异
               常掉电,升级仍然能继续执行。
        优点:能保证升级的完整性
        缺点:升级过程必须重启进入Recovery模式,不能在Normal系统直接升级。
        
        配置和编译:
            Buildroot:recovery 配置文件选择如下(make menuconfig)
                BR2_PACKAGE_RECOVERY=y #开启升级相关功能 
                BR2_PACKAGE_RECOVERY_USE_UPDATEENGINE=y #使用新升级程序,不配置则默认使用原有升级流程                                             BR2_PACKAGE_RECOVERY_RECOVERYBIN=y #开启recovery bin 文件 
                BR2_PACKAGE_RECOVERY_UPDATEENGINEBIN=y #编译新升级程序 
                BR2_PACKAGE_RECOVERY_NO_UI=y # 关掉UI        
            Buildroot:rootfs 配置文件选择如下(make menuconfig)
                BR2_PACKAGE_RECOVERY=y #开启升级相关功能 
                BR2_PACKAGE_RECOVERY_USE_UPDATEENGINE=y #使用新升级程序 
                BR2_PACKAGE_RECOVERY_UPDATEENGINEBIN=y #编译新升级程序 
                BR2_PACKAGE_RECOVERY_NO_UI=y # 关掉UI

2. 板级配置选择
    执行./build.sh lunch命令,输出选择项,例如:
    processing board option: lunch
    processing option: lunch

    You're building on Linux
    Lunch menu...pick a combo:

    0. default BoardConfig.mk
    1. BoardConfig-38x38-spi-nand-ab.mk
    2. BoardConfig-38x38-spi-nand.mk
    3. BoardConfig-ab-v13.mk
    4. BoardConfig-battery-ipc.mk
    5. BoardConfig-dualcam-tb-v13.mk
    6. BoardConfig-facial_gate.mk
    7. BoardConfig-imx334.mk
    8. BoardConfig-ramboot-uvc.mk
    9. BoardConfig-robot.mk
    10. BoardConfig-sl.mk
    11. BoardConfig-slc-nand-v12.mk
    12. BoardConfig-spi-nand.mk
    13. BoardConfig-spi-nor-tb-v13.mk
    14. BoardConfig-spi-nor-v12.mk
    15. BoardConfig-tb-v12.mk
    16. BoardConfig-tb-v13.mk
    17. BoardConfig-uvcc-spi-nand.mk
    18. BoardConfig-uvcc.mk
    19. BoardConfig-v10-v11.mk
    20. BoardConfig-v12.mk
    21. BoardConfig.mk
    Which would you like? [0]: 

    rv1126+imx334 选择7回车即可
    
2. U-boot编译
    cd u-boot
    make rv1126_defconfig
    make menuconfig/make savedefconfig/cp defconfig configs/rv1126_defconfig
    cd ..
    ./build.sh uboot

2. Kernel编译
    ./build.sh kernel

    提示/bin/sh: flex: 未找到命令
        解决办法:sudo apt-get install flex

    提示找不到<openssl/bio.h>等
        解决办法:虚拟机中移植openssl

    /bin/sh: lz4c: 未找到命令
        解决办法:sudo apt-get install liblz4-tool

3. Recovery编译(A/B模式可不执行):
    提示: you need to install 'unbuffer' (from package expect or expect-dev)
        ====Build rockchip_rv1126_rv1109_recovery failed!====
        ERROR: Running build_recovery failed!
    解决办法:sudo apt-get install expect-dev

4. rootfs编译:
    提示:>>> nginx-http-flv-live v1.2.8 Downloading提示出错
    解决办法:打开浏览器输入https://github.com/winshining/nginx-http-flv-module/archive/v1.2.8/nginx-http-flv-live-v1.2.8.tar.gz下载
        下载完成后拷贝到 buildroot/dl/目录,下载的文件名是nginx-http-flv-module-1.2.8.tar.gz改名为nginx-http-flv-live-v1.2.8.tar.gz即可


################################################################################################
## 固件烧录
固件烧录:《Rockchip_RV1126_RV1109_EVB_User_Guide_V1.0_CN.pdf》第四章
    1. 安装USB驱动,驱动路径与瑞芯发布的文档不一致,实际路径:SDK/tools/windows/DriverAssitant_v5.0.zip
    2. 瑞芯提供的烧录工具:SDK/tools/windows/RKDevTool/RKDevTool_Release/RKDevTool.exe以管理员身份运行
    3. Maskrom或者Loader方式烧录固件即可;
    4. 按住UPDATE键给设备上电或者在设备上电状态下按住UPDATE键同时按下RESET键重启设备进入Maskrom模式;
    5. 按住RECOVERY键给设备上电或者在设备上电状态下按住RECOVERY键同时按下RESET键重启设备进入Loader模式;


################################################################################################
## 以太网调试
1. RTL8201F百兆以太网, 修改内核dts文件
     RV1126+IMX334 我们之前有bringup 了,kernel目录打上如下两个补丁,就有参考dts。
            git am 0001-RV1109-dts-os02g10-bringup.patch
            git am 0002-RV1126-dts-imx334-bringup.patch
        参考dts 编译命令如下:
            make ARCH=arm rv1126_imx334_defconfig
            make ARCH=arm rv1126-imx334.img -j32
            
    参考dts路径:SDK/kernel/arch/arm/boot/dts/rv1126-jovison.dts
        cp NetFolader/rv1126-evb-v10.dtsi SDK/kernel/arch/arm/boot/dts/

    dts修改:arch/arm/boot/dts/rv1126.dtsi
        i2c3: statis="disabled" 修改为status="okay"
                    
                    
2. kernel增加nfs client配置  
    make ARCH=arm rv1126_imx334_defconfig
    make ARCH=arm menuconfig-->FileSystem-> Network FileSystem-> NFS Client
    make ARCH=arm savedefconfig
    cp defconfig arch/arm/configs/rv1126_imx334_defconfig

3.使能开门狗
    rv1126.dts->
        wdt: watchdog@ff680000
            ->status = "disabled"修改为status="okay"

4.i2c-3使能
    rv1126.dts->
        ->i2c3: i2c@ff520000
            ->status = "disabled"修改为status="okay"
                ->增加一行:clock-frequency = <100000>;


buildroot步骤解读:
    SDK/build.sh rootfs : build_rootfs()->build_buildroot()
        ->SDK/device/rockchip/common/mk-buildroot.sh SDK/device/rockchip/.BoardConfig.mk 
            ->source SDK/device/rockchip/.BoardConfig.mk 
                ->source buildroot/build/envsetup.sh $RK_CFG_BUILDROOT=rockchip_rv1126_rv1109_ab]
                    ->SDK/buildroot/utils/brmake

recovery编译:
    recovery使用的rcS为./buildroot/package/initscripts/init.d/rcS
 


http://www.ppmy.cn/news/152387.html

相关文章

【9201】【a201】明明的随机数

Time Limit: 10 second Memory Limit: 2 MB 问题描述 明明想在学校中请一些同学一起做一项问卷调查&#xff0c;为了实验的客观性&#xff0c;他先用计算机生成了N个1到1000之间的随机整数&#xff08;N≤100&#xff09;&#xff0c;对于其中重复的数字&#xff0c;只保留一个…

java a201游戏_A201 Java Spring+SpringMVC+MyBatis开发教育网站视频教程

1-01——课程介绍% k- S" H* ^" y5 c ) v5 P1 C6 V( V1-02——Eclipse、Maven、JDK介绍- Z3 s9 H0 ?7 U* L 1-03——Maven构建Project ( Q# X% T z; U& N8 ]9 f/ e1-04——新浪SAE介绍( _% |( ~7 i, j, [3 c7 a f% k j) w! S 2-01——平台业务结构概览& b…

java a201游戏_OPPO A201固件再升级 内置官方QQ2010

PPO A201手机正在进行全新的功能升级服务&#xff01; 首家实现内置C版2010QQ&#xff0c;将会有更多新的体验。立刻带上您的OPPO A201手机到附近的OPPO服务中心&#xff0c;即可进行免费软件升级&#xff01; PPO A201手机正在进行全新的功能升级服务&#xff01; 首家实现内置…

易百纳rv1126 a201开发板跑rknn yolov5

一开始我以为跑yolov5啊, 那必须上debian/ubuntu啊, 不然怎么装python, pytorch?buildroot没有apt, 于是花了大量时间想办法在a201的板子上跑debian, 等我debian跑上, python安排上, rknn-lite按照firefly的方法装好 https://dev.t-firefly.com/thread-104204-1-1.html 再去找…

Ubuntu下Intel A201 Wifi6驱动安装

新入的一台联想台式机&#xff0c;安装Ubuntu20.04系统后&#xff0c;发现Wifi怎么也不好用。 经过各种折腾&#xff0c;包括升级内核&#xff0c;更新firmware等操作&#xff0c;参考了一系列的文章&#xff0c;最终解决方法如下。 参考文章&#xff1a; (2条消息) Ubuntu2…

java a201游戏_OPPO手机A201 为何下载游戏没这个机型?

MTK可以理解为现在国产手机用的系统。 MTK的优点&#xff1a; MTK的主菜单和子菜单都可以用数字选择&#xff0c;诺基亚的子菜单就要一个个往下按。 用笔画的都知道&#xff0c;诺基亚S40的机子&#xff0c;默认拼音做输入法&#xff0c;不可更改。 诺基亚S40的屏幕亮度和对比度…

OpenGL蓝宝书第八章学习笔记:基元处理之几何着色器

前言 本篇在讲什么 OpenGL蓝宝书第八章学习笔记之几何着色器 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c…

关于vivo手机安装失败的解决办法

真的不想吐槽vivo手机了 连接真机测试安装APP失败报如下错误 Installation did not succeed. The application could not be installed: INSTALL_FAILED_TEST_ONLY Installation failed due to: null Retry 解决办法如下 打开gradle.properties这个文件&#xff0c;添加如下…