1. 源代码获取RV1126B的ubuntu系统SDK基于ubuntu22.04进行适配移植所以建议同样在ubuntu22.04的环境(如EASY-EAI编译环境)下编译开发并且源码部署在服务器http://os.easy-eai.com上因此也要先在【开发环境】中部署http://os.easy-eai.com的git仓库私钥。1.1 开发环境准备如果您需要使用EASY-EAI编译环境请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》并按照其相关的操作进行编译环境的部署。在PC端Ubuntu系统中执行run脚本进入EASY-EAI编译环境具体如下所示。cd ~/develop_environment ./run.sh 2204安装编译辅助工具sudo apt-get update sudo apt-get install filegit仓库私钥部署若无~/.ssh目录则创建公/私钥存放目录mkdir ~/.ssh ~/.ssh vim id_rsa注若已存在id_rsa文件请用户根据自身情况管理公/私钥。复制下面内容到~/.ssh/id_rsa文件中-----BEGIN OPENSSH PRIVATE KEY----- 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 -----END OPENSSH PRIVATE KEY-----把id_rsa的权限改到400chmod 400 id_rsa ls -alh id_rsa1.2 拉取源代码去到/opt目录创建rv1126b_sdk目录mkdir /opt/rv1126b_sdk cd /opt/rv1126b_sdk然后拉取ubuntu系统SDK代码git clone gitos.easy-eai.com:ubuntu_sdk/ubuntu.git2. 源码编译指导进入源码目录可以看到有下列内容2.1 查看配置文件编译的第一步就是板卡配置预加载查看configs目录能够看到各种板卡【对应】的配置文件此处我们选择【easy-eai-nano-tb-gstreamer-2204-cfg.sh】./build.sh configs/easy-eai-nano-tb-gstreamer-2204-cfg.sh2.2 编译说明加载完配置文件后再次执行build.sh就能看到编译的各个模块all整个固件进行编译uboot仅编译生成uboot镜像(uboot.img)kernel仅编译生成内核镜像(boot.img)rootfs仅编译生成ubuntu文件系统镜像(rootfs.img)通常第一次编译选择./build.sh all./build.sh all弹出交互提示敲下【回车键】确认执行。然后脚本就会开始自动从服务器上拉取【各个镜像模块】的源代码进行【镜像编译构建】。* 注意在编译【到内核】时会有一步检查磁盘文件时间戳的操作如果此时/mnt已经断开则会因为nfs无限超时一直卡着不动。解决方法是先用CtrlC退出编译然后再用sudo umount -f /mnt去卸载这个目录最后再重新编译。3. 目录简要说明3.1 固件输出目录编译完成后固件会在【output】目录输出如下所示仅需要把boot.img、MiniLoaderAll.bin、parameter.txt、rootfs.img、uboot.img替换掉固件中的对应文件即可。3.2 uboot存放uboot源码的目录是u-boot修改uboot后要重新编译uboot不要回到上级目录执行./build.sh uboot而是要在u-boot目录中执行./make.sh3.3 kernel存放内核发布源码的目录是kernel不建议直接在kernel目录里修改源码因为重编整个固件时kernel目录会被整个删掉并且从配置好的远程服务器里重新拉取一个新的下来以确保【整个固件】的唯一性。关于内核源码具体要如何修改会在《嵌入式底层开发/ubuntu系统SDK/kernel》一文中进行详细描述。3.4 rootfsubuntu系统rootfs.img的制作就稍微复杂一些它涉及到configs、hooks、overlay三个目录由于rootfs制作较为复杂关于rootfs.img的修改也不在本文展开讨论。会在《嵌入式底层开发/ubuntu系统SDK/rootfs》一文中进行详细描述。