# rv1106-sdk **Repository Path**: cksweb/rv1106-sdk ## Basic Information - **Project Name**: rv1106-sdk - **Description**: SoloLinker-A-V2 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-18 - **Last Updated**: 2024-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## SDK build.sh使用说明 ### 选择参考的板级配置 ./build.sh lunch You're building on Linux Lunch menu...pick a combo: BoardConfig-*.mk naming rules: BoardConfig-"启动介质"-"电源方案"-"硬件版本"-"应用场景".mk BoardConfig-"boot medium"-"power solution"-"hardware version"-"applicaton".mk ---------------------------------------------------------------- 0. BoardConfig-EMMC-ALL-2xRK806-HW_V10-IPC_MULTI_SENSOR.mk boot medium(启动介质): SDcard power solution(电源方案): RK806 hardware version(硬件版本): Hinlink_sololinker_A_V2 applicaton(应用场景): Ubuntu ---------------------------------------------------------------- ---------------------------------------------------------------- 1. BoardConfig-SPI_NAND-ALL-RK806-HW_V10-IPC_SINGLE_SENSOR.mk boot medium(启动介质): SPI_NAND power solution(电源方案): RK806 hardware version(硬件版本): HW_V10 applicaton(应用场景): IPC_SINGLE_SENSOR ---------------------------------------------------------------- Which would you like? [0]: 输入对应的序号选择对应的参考板级。 ### 一键自动编译 ./build.sh lunch # 选择参考板级 ./build.sh # 一键自动编译 ### 编译U-Boot ./build.sh clean uboot ./build.sh uboot 生成镜像文件: output/image/MiniLoaderAll.bin output/image/uboot.img ### 编译kernel ./build.sh clean kernel ./build.sh kernel 生成镜像文件: output/image/boot.img ### 编译rootfs ./build.sh clean rootfs ./build.sh rootfs 编译后使用`./build.sh firmware`命令打包成rootfs.img 生成镜像文件:output/image/rootfs.img ### 编译media ./build.sh clean media ./build.sh media 生成文件的存放目录: output/out/media_out ### 编译参考应用 ./build.sh clean app ./build.sh app 生成文件的存放目录: output/out/app_out 注:app依赖media ### 固件打包 ./build.sh firmware 生成文件的存放目录: output/image ## SDK目录结构说明: ```shell ├── build.sh -> project/build.sh ---- SDK编译脚本 ├── media --------------------------- 多媒体编解码、ISP等算法相关(可独立SDK编译) ├── sysdrv -------------------------- U-Boot、kernel、rootfs目录(可独立SDK编译) ├── project ------------------------- 参考应用、编译配置以及脚本目录 ├── output -------------------------- SDK编译后镜像文件存放目录 ├── docs ---------------------------- SDK文档目录 └── tools --------------------------- 烧录镜像打包工具以及烧录工具 ``` ## 镜像存放目录说明 编译完的文件存放在output目录下 ```shell output/ ├── image │   ├── download.bin ---------------- 烧录工具升级通讯的设备端程序,只会下载到板子内存 │   ├── env.img --------------------- 包含分区表和启动参数 │   ├── uboot.img ------------------- uboot镜像 │   ├── idblock.img ----------------- loader镜像 │   ├── boot.img -------------------- kernel镜像 │   ├── rootfs.img ------------------ kernel镜像 │   └── userdata.img ---------------- userdata镜像 └── out ├── app_out --------------------- 参考应用编译后的文件 ├── media_out ------------------- media相关编译后的文件 ├── rootfs_xxx ------------------ 文件系统打包目录 ├── S20linkmount ---------------- 分区挂载脚本 ├── sysdrv_out ------------------ sysdrv编译后的文件 └── userdata -------------------- userdata ``` ## 注意事项 硬件设备:SoloLinker-A V2版本 RV1106G3 256M内存 2G FLASH 32G SDcard WIFI_BT 编译系统:MicroSoft WSL2 Ubuntu 22.04 编译步骤: 1.运行安装编译所需软件 sudo apt install gcc-multilib g++-multilib gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf 下载源码: git clone https://gitee.com/idexon/RV1106-SDK.git cd RV1106-SDK ./develop_init_for_ubuntu22.04.sh #安装工具 ./build.sh lunch # 选择编译的方案,我这选的是 0. BoardConfig_IPC/BoardConfig-EMMC-NONE-Hinlink-sololinker-A-Ubuntu.mk ./build.sh clean # 如出错误先清理 ./build.sh # 开始编译 # RV1106-SDK/project/cfg/BoardConfig_IPC/BoardConfig*.mk # 该项用于设置保留的CMA内存,对于AI的图像处理与视频处理此选项很重要 # 但对于不使用视频/图像处理的应用,不需要保留那么多内存 # 本来RV1106内存就不大,可以尽可能多得给Linux用户程序 export RK_BOOTARGS_CMA_SIZE="32M" # Ubuntu默认的系统分区布局如下 export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),24G(rootfs)" # 默认配置的根文件系统为ext4 export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ext4 2.修改内核 以添加桥接网卡支持为例,有两种方式可实现 # 拷贝默认内核配置并进入内核配置界面 cd sysdrv/source/kernel/ cp ./arch/arm/configs/rv1106_linux_sololinker_defconfig .config make ARCH=arm menuconfig # 首次进入菜单后先保存,然后选中你需要添加的选项保存退出。 # 比较.config和.config.old,多出来的选项即为你需要的 # Networking support -> Networing options -> 802.1d Ethernet Bridging # 如打开桥接支持就多出来如下配置选项: CONFIG_STP=y CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_LLC=y # 第一种:直接修改默认的内核配置文件。即将上面多出来的配置选项直接添加到默认的内核配置文件 RV1106-SDK/sysdrv/source/kernel/arch/arm/configs/rv1106_linux_sololinker_defconfig # 第二种:注释掉 sololinker/project/build.sh 第549行 RK_KERNEL_DEFCONFIG 来使用生成的.config make kernel -C ${SDK_SYSDRV_DIR} \ # KERNEL_CFG=${RK_KERNEL_DEFCONFIG} \ KERNEL_DTS=${RK_KERNEL_DTS} \ KERNEL_CFG_FRAGMENT=${RK_KERNEL_DEFCONFIG_FRAGMENT} -j $(nproc) 以传统方式单独编译内核 cd RV1106-SDK/sysdrv/source/kernel/ make ARCH=arm CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- rv1106_linux_sololinker_defconfig make ARCH=arm CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- menuconfig make ARCH=arm CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- BOOT_ITS=boot.its rv1106g-hinlink-sololinker-a.img -j$(nproc) # 编译好的固件在 RV1106-SDK/IMAGE/EMMC_RV1106G-HINLINK-SOLOLINKER-A.DTS_UBUNTU_20240329.2332_RELEASE_TEST # 通过SocToolKit工具刷入上面路径下IMAGES文件夹中的镜像即可 # Ubuntu连接WIFI示例, nmcli device wifi connect "热点" password "密码" # 连接WIFI nmcli con del wifiname # 删除WIFI 在windows下复制源码包时,linux下的可执行文件可能变为非可执行文件,或者软连接失效导致无法编译使用。 因此使用时请注意不要在windows下复制源代码包。