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