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ファイル)をコンパイルしません。