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