OK3568 官方资料和 Ubuntu22.04 虚拟机镜像如下:
通过网盘分享的文件:OK3568 - 资料 - 开发虚拟机
1 系统镜像编译#
下载网盘里的源码,解压后即可得到 OK3568_Linux_fs.tar。解压 OK3568_Linux_fs.tar和dl.tar.bz2,将 dl 移动到 OK3568_Linux_fs/buildroot 后可加速编译系统镜像。
编译系统镜像的教程如下:
04_相关代码编译
2 交叉编译安装软件#
交叉编译器路径为 OK3568_Linux_fs/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-,在 ~/.bashrc 中配置环境变量 export PATH="/home/forlinx/3568/OK3568_Linux_fs/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:$PATH"。
2.1 ffmpeg-2.4.14#
在源码文件夹里首先运行 configure 脚本。
./configure \
--prefix=/usr/local \
--cross-prefix=aarch64-none-linux-gnu- \
--arch=aarch64 \
--target-os=linux \
--enable-cross-compile \
--disable-static \
--enable-shared \
--pkg-config-flags="--static"
--prefix=/usr/local: 指定 FFmpeg 在目标机上的安装路径。--cross-prefix=aarch64-none-linux-gnu-: 最关键的参数,它告诉configure脚本使用aarch64-none-linux-gnu-作为所有编译器和工具的前缀。--arch=aarch64: 指定目标 CPU 架构。--target-os=linux: 指定目标操作系统为 Linux。--enable-cross-compile: 明确启用交叉编译模式。--disable-static: 只编译动态库(.so文件),这通常能减小最终文件的大小。--enable-shared: 编译动态链接库。--pkg-config-flags="--static": 避免在交叉编译时,pkg-config尝试在宿主机上查找动态库。
配置成功后执行make和sudo make install,编译好的库文件、头文件和可执行文件安装到/usr/local目录下。
2.2 log4cplus-2.0.7#
configure 命令如下:
./configure --host=aarch64-none-linux-gnu --prefix=/usr/local
--host=aarch64-none-linux-gnu:这是最重要的参数,它确保make命令会调用正确的交叉编译器。--prefix=/usr/local:这个参数指定了 log4cplus 在目标机上的安装路径。如果未指定,默认也是/usr/local。
2.3 zeromq-4.0.8#
configure 命令如下:
./configure --host=aarch64-none-linux-gnu --prefix=/usr/local --enable-shared --disable-static
--host=aarch64-none-linux-gnu: 最关键的参数,它告诉configure脚本,您正在为aarch64架构进行交叉编译。--prefix=/usr/local: 指定 ZeroMQ 在目标机上的安装路径。--enable-shared: 编译动态链接库(.so文件)。--disable-static: 不编译静态库(.a文件),以减小最终文件的大小。