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
文件),以减小最终文件的大小。