瑞芯微(EASY EAI)RV1126B ubuntu系统SDK源码获取
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的权限改到400
chmod 400 id_rsa ls -alh id_rsa1.2 拉取源代码
去到/opt目录,创建rv1126b_sdk目录:
mkdir /opt/rv1126b_sdk cd /opt/rv1126b_sdk然后拉取ubuntu系统SDK代码:
git clone git@os.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无限超时一直卡着不动。解决方法是:先用Ctrl+C退出编译,然后再用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 rootfs
ubuntu系统rootfs.img的制作就稍微复杂一些,它涉及到configs、hooks、overlay三个目录:
由于rootfs制作较为复杂,关于rootfs.img的修改也不在本文展开讨论。会在《嵌入式底层开发/ubuntu系统SDK/rootfs》一文中进行详细描述。
