1、环境说明:
需要用官方的程序包,这个程序需要在虚拟机里编译再将镜像烧录到板子里,本质上是给板子上一套Linux操作系统,镜像是.img文件
Linux操作系统被分成了多个模块,编译好后储存在镜像里,本质上就和程序编译好后变成可执行文件一样
Linux系统镜像文件通常是多个模块的集合,不同镜像封装不同功能组件,常见类型包括:
引导镜像(如u-boot.img)
封装内容:引导加载程序(如U-Boot),负责初始化硬件并加载内核。
作用:提供启动流程控制、环境变量管理、内核加载入口。
内核镜像(如vmlinuz或bzImage)
封装内容:内核核心代码,包含进程调度、内存管理、VFS等模块的二进制代码。
作用:驱动硬件、管理系统资源、提供基础服务(如系统调用)。
根文件系统镜像(如rootfs.img)
封装内容:用户空间工具(如BusyBox)、配置文件(/etc)、设备节点(/dev)和库文件(/lib)。
作用:提供用户交互环境、应用程序运行依赖、设备访问接口。
完整系统镜像(如system.iso)
封装内容:整合引导程序、内核、根文件系统及附加组件(如驱动程序、网络工具)。
作用:用于系统安装、备份或虚拟机部署。
专用功能镜像(如initramfs.img)
封装内容:临时根文件系统,包含硬件初始化脚本和必要驱动。
作用:在系统启动早期加载,辅助内核挂载主根文件系统。
驱动开发主要操作内核模块
2、大致编译流程:
1.解压代码
解压 atk-rk3568_linux5.10_release_v1.2_20250104.tgz
tar -vxf 解压
python3 .repo/repo/repo sync -l -j16 同步
将dl包解压到buildroot文件夹下,dl包是编译代码的一些依赖软件包,否则编译会失败
tar -vxzf dl.tgz
2.SDK中指定设备我的是rk3568
./build.sh lunch
或者./build.sh BoardConfig-rk3568-atk-evb1-ddr4-v10.mk (建议使用)
3.若需要所有镜像文件则需要全编译,否则只编译一个模块如内核模块
全编译
./build.sh alientek_rk3568_defconfig
./build.sh all
4.打包img文件,为了后续方便烧录
./build.sh updateimg
5.烧录镜像,只用烧update.img即可他是上述镜像模块的集合体
按住开发板上的 UPDATE 按键,然后给开发板上电或复位,此时设备便会进入 Maskrom 模式
点击升级即可烧录,注意一点是烧录后的串口波特率为1500000
烧录后用uname -r可查内核版本
配置一下ip后续需要用tftp传输ko文件做挂载
ifconfig eth0 192.168.11.10 netmask 255.255.255.0