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

RV1126 调试记录相关推荐

  1. ROS上同时预览depth,IR,RGB 调试记录

    ROS上同时预览depth,IR,RGB 调试记录 用rviz同时显示RGB,IR,DEPTH(验证设备:astraprosm,canglong2,deeyea) 1.编译libuvc库 cd lib ...

  2. ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录

    ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值--bug调试记录 目录 输出结果 1.增加XGBR算法 ...

  3. [Deepin - Pycharm调试记录] Pyinstaller索引系统库问题

    Deepin - Pycharm调试记录 - Pyinstaller索引不到系统库 现象 在Pycharm的Terminal中执行Pyinstaller指令时候遇到如下报错提示 OSError: Py ...

  4. RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案)

    RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案) 参考文章: (1)RAISR-ma ...

  5. SX1278 FSK 调试记录

    SX1278 FSK 调试记录 先挖个sx1278 FSK的坑慢慢填 手中有两个SX1278模组 是安信可的产品 采用主从模式 SPI访问 MCU是STM32F107 数据格式 说明收据接收的第一步就 ...

  6. 松下MINAS-A6伺服电机调试记录

    松下MINAS-A6伺服电机调试记录 因项目需求,进行松下MINAS-A6伺服电机调试 文章目录 松下MINAS-A6伺服电机调试记录 概述 一.手册数据 二.设备使用 1.驱动器及电机连接 2.设备 ...

  7. Xilinx AXI Crossbar相关调试记录

    Xilinx AXI Crossbar相关调试记录 本文记录在使用Xilinx AXI Crossbar IPcore现象 ** AXI Crossbar IPcore设置如下** 使用AXI Cro ...

  8. android pppd参数介绍,android 3G pppd 调试记录

    android 3G pppd 调试记录. 1.  JAVA 部分 android/development/data/etc/apns-conf_sdk.xml   --->  system/e ...

  9. ADF4350调试记录及频点锁定

    ADF4350调试记录及频点锁定 简介 宽带频率合成器,集成VCO 控制时序 调试记录 无法锁定 最开始,一直无法锁定,参考的官方例子程序,硬件外围电路也排查了好几遍,环路滤波带宽等设定,硬件软件来回 ...

最新文章

  1. OpenWrite 公开内测,做最懂你的技术自媒体管理平台!
  2. IDEA2021.1.2版创建Java Web项目并配置Tomcat
  3. 当你女朋友向你索吻的时候。。
  4. com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格
  5. 【面向对象】对象模型的七要素
  6. 在STM32的官方库切换芯片型号
  7. JavaScript 编程精解 中文第三版 十三、浏览器中的 JavaScript
  8. LINUX下的C编程实战(一)――开发平台搭建
  9. 意凡社:盘点那些令网赚者疯狂的时代!
  10. 常用的Unicode码表(汉字从A到Z、数字、英文)
  11. 阿德勒心理学(自我剖析)
  12. 中国计量大学计算机考研难吗,去中国计量大学读研好吗 考研题难吗_
  13. 日志模块、正则表达式、时间模块
  14. android 加载网络图片,并压缩bitmap内存大小
  15. 【oracle数据库数据恢复】技术人员误操作导致的oracle数据库误删除后的数据恢复
  16. pjsip php,pjsip 搭建 sip服务器
  17. 基于近场动力学的二维疲劳裂纹扩展模型_如何抑制高强铝合金裂纹等缺陷,就在《铝及铝合金铸轧成形与裂纹扩展》...
  18. 打造网红店的3个推广步骤
  19. 根据经纬度获取日出日落时间
  20. 智慧城管—城市综合管理服务平台解决方案

热门文章

  1. 实现点击选择按钮时候选中对应选中的行,当点击某一行单元格时候就清除其他选中行然后选中对应点击的那一行
  2. 屏录录制工具,Gif录制工具
  3. Twitter爬虫Python库Tweepy 附中英文官方文档
  4. 【2017今日头条】头条校招(JAVA)
  5. The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You mu
  6. matlab仿真的窄带带通滤波算法移植单片机没有达到仿真效果-总结
  7. 最大信息熵增益_信息熵(Entropy)、信息增益(Information Gain)
  8. 牛客网 赛码网 js输入输出
  9. 海康威视错误代码0xf_调用海康威视sdk获取车牌号
  10. c语言-结构体实例笔记