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