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