初心者はゼロからubootソースコードをコンパイルし(一)、コンパイル環境を構築し、簡単なコンパイルテストを行う.
3741 ワード
1、u-boot-2018-11のソースコードをダウンロードし、解凍する。
2、私はS 5 PV 210チップをコンパイルするので、CROTEX-A 8アーキテクチャ
centosシステム、Linux環境のため、次のツールチェーン(ダウンロード)を選択します.
gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi.tar.xz
解凍命令は、2つのステップに分けて実行されます.
xz -d gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi.tar.xz
tar -xvf gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi.tar
3、ツールチェーンをLinuxの環境変数に追加する
①まず指令pwdでツールチェーンの解凍経路下のbinの経路を取得し、私が得た経路:
/home/suozhang/linux/gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi/bin
②コマンドvi~/.bashrcは、~すなわちワイルドカードを用いて、現在のユーザ$HOMEディレクトリの下にあるbashrcファイル、すなわち環境変数ファイルを表す
export PATH=$PATH:/home/suozhang/linux/gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi/bin
ESCは編集モードを終了し、:wqは終了を保存すればよい.
③命令source~/.bashrcはすぐにこの環境変数ファイルを有効にします
④現在のbinディレクトリを終了し、命令arm-linux-gnueabi-gcc-vを使用してバージョン番号テストが使用可能かどうかを確認する
4、ubootルートディレクトリに入り、Makefileを修正し、コンパイル先のアーキテクチャとツールチェーン名を追加する
(手順3でコンパイルツールチェーンのパスを環境変数に追加しない場合は、ここでパスを追加しても構いません)
vi Makefile
コンパイルターゲットアーキテクチャの追加&ツールチェーン名の追加
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabi-
5、使用指令:make s 5 p_goni_defconfig、次のエラーが見つかりました。
make s5p_goni_defconfig
1、/bin/sh: bison: command not found
解決方法:
yum install bison sudo apt-get install bison
2、/bin/sh: flex: command not found
解決方法:
yum install flex / sudo apt-get install flex
3、make s5p_goni_defconfig、再コンパイル、成功
[root@VM_0_3_centos u-boot-2018.11]# make s5p_goni_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
まとめ:1、u-boot-2018.11/configs/s 5 p_goni_defconfigは、開発ボードgoniのデフォルトプロファイル2、開発ボードgoni関連ファイル、パス(u-boot-2018.11/board/samsung/goni)3、make s 5 p_goni_defconfig、u-boot-2018.11/configs/s 5 p_による操作goni_defconfigファイルとu-boot-2018.11/Kconfigファイルを比較する、ファイルを生成する.config 4、.configはubootのコンパイルプロファイルで、中にはubootが運行するチップアーキテクチャ、開発ボード名、チップ名、各種機能剪断など5、2019年2月21日19:05:12
6、命令makeを呼び出してコンパイルする
[root@VM_0_3_centos u-boot-2018.11]# make
scripts/kconfig/conf --syncconfig Kconfig
CHK include/config.h
UPD include/config.h
CFG u-boot.cfg
# N
OBJCOPY u-boot.srec
OBJCOPY u-boot-nodtb.bin
DTC arch/arm/dts/s5pc1xx-goni.dtb
make[2]: `arch/arm/dts/s5pc1xx-goni.dtb' is up to date.
SHIPPED dts/dt.dtb
FDTGREP dts/dt-spl.dtb
CAT u-boot-dtb.bin
COPY u-boot.bin
SYM u-boot.sym
COPY u-boot.dtb
CHK include/config.h
CFG u-boot.cfg
CFGCHK u-boot.cfg
[root@VM_0_3_centos u-boot-2018.11]#
参照先:https://blog.csdn.net/qq_16777851/article/details/81543373