基于rk平台快速移植ubuntu系统
一、资料准备:
1、rk linux sdk
2、Ubuntu镜像源吗
二、sdk获取
Rk官方拉取,或者网上搜一下,看有没有人分享,如有需要可私。官方源码一般是比较大的,因为repo管理了整个工程,所有记录都有。
三、ubuntu镜像源码获取
官方路径:http://cdimage.ubuntu.com/ubuntu-base/releases/
进入该网站,可以下载自己需要的版本
版本源码说明,官方源码是一个基础源码,基本功能是有了,需要定制组件,以及添加rk的硬件支持,才能正常运行工作。具体细节可以好好探索。
四、系统镜像构建
在移植之前,可以进行一次构建,添加相关基础组件,因为组件需要在网上下载,把固定的先编译出来,避免重复编译消耗过多时间,这样可以节省我们的开发时间。基本的构建框架和指令如下:
经过上述流程,可以构建出ubuntu-base-xfce-full-arm64-20240906.tar.gz格式的文件,该文件已经包含了你自己需要的组件,接下来我们在这个基础上去构建就可以。sudo tar -xzf ubuntu-base-20.04.5-base-arm64.tar.gz -C binary/cat<<EOF| sudo chroot $TARGET_ROOTFS_DIR/#再这里添加需要的组件EOFDATE=$(date+%Y%m%d)echo-e"�33[47;36m Run tar pack ubuntu-base-$TARGET-$ARCH-$DATE.tar.gz �33[0m"sudo tar zcf ubuntu-base-$TARGET-$ARCH-$DATE.tar.gz$TARGET_ROOTFS_DIR
五、如何添加rk硬件支持
以下图片为rk官方适配第三方平台所需要适配的。
sudorm-rf$TARGET_ROOTFS_DIRsudo tar -xpf ubuntu-base-$TARGET-$ARCH-*.tar.gzsudomkdir-p$TARGET_ROOTFS_DIR/vendor/etc# packages foldersudo mkdir -p $TARGET_ROOTFS_DIR/packagessudo cp -rpf packages/$ARCH/* $TARGET_ROOTFS_DIR/packagesecho -e "�33[47;36m Extract image1 �33[0m"#GPU/CAMERA packages folderinstall_packagessudo mkdir -p $TARGET_ROOTFS_DIR/packages/install_packagessudo cp -rpf packages/$ARCH/libmali/libmali-*$MALI*-x11*.deb $TARGET_ROOTFS_DIR/packages/install_packages# sudo cp -rpf ../ubuntu/packages/$ARCH/${ISP5}/camera_engine_$ISP*.deb $TARGET_ROOTFS_DIR/packages/install_packagesecho -e "�33[47;36m Extract image2 �33[0m"# overlay foldersudo cp -rpf overlay/* $TARGET_ROOTFS_DIR/# sudo cp -rpf sources.list $TARGET_ROOTFS_DIR/etc/apt/# overlay-firmware foldersudo cp -rpf overlay-firmware/* $TARGET_ROOTFS_DIR/echo -e "�33[47;36m Extract image3 �33[0m"# overlay-debug folder# adb, video, camera test fileif ["$VERSION" == "debug" ];thensudo cp -rpf overlay-debug/* $TARGET_ROOTFS_DIR/fiID=$(stat --format %u $TARGET_ROOTFS_DIR)cat << EOF| sudo chroot $TARGET_ROOTFS_DIR#在这里构建自己的组件# Create Useruseradd -G sudo -m -s /bin/bash Linux1024passwd Linux1024 <xieshancaixieshancaiIEOFgpasswd -a Linux1024 videogpasswd -a Linux1024 audiopasswd root <xieshancaixieshancaiIEOFEOF
上述代码基本上已经包含了rk的硬件加速,在重新构建系统就可以
六、如何添加进源码中
在获取了基础镜像系统之后,可按照以下步骤添加进系统:
1、根目录下找到debian,把镜像系统放到目录下
2、做两个编译脚本mk-base-ubuntu.sh、mk-ubuntu-rootfs.sh,这两个编译脚本对应第四、第五点,具体脚本可以参考debian系统构建脚本mk-base-debian.sh、mk-rootfs-bullseye.sh 七、编译
准备好了上述步骤之后,加上以下patch,就可以使用原来的编译指令执行一键编译
可能有人会有疑问,不可以单独整个文件系统烧录吗?答案是可以的,但是可能会有问题,导致系统起不来,因为在上述构建之后还会加上wifi的补丁,这是在源码编译的时候打进去的。
按照上述方法去做,应该会得到一个完整的镜像,初次接触可能调试过程还是会有点问题,自己细心找一下就可以了。