초보자는 uboot 소스 (1) 를 0으로 컴파일하여 컴파일 환경을 구축하고 간단한 컴파일 테스트를 실시한다
3697 단어 uboot
2. S5PV210칩, CROTEX-A8 구조를 컴파일해야 하기 때문에
centos 시스템, Linux 환경이므로 다음 도구 체인(다운로드)을 선택합니다.
gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi.tar.xz
압축을 풀고 다음 두 단계로 진행합니다.
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. 리눅스에 도구체인을 추가하는 환경 변수
① 명령어 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을 수정하고 컴파일 대상의 구조와 도구체인 이름을 추가합니다
(세 번째 단계에서 컴파일 도구 체인의 경로를 환경 변수에 추가하지 않았다면 여기에 경로를 추가하는 것도 가능합니다.)
vi Makefile
컴파일 대상 구조 추가 & 도구체인 이름 추가
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabi-
5、사용 명령:makes5pgoni_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/s5pgoni_fconfig는 개발판 goni의 기본 프로필 2, 개발판 goni 관련 파일, 경로(u-boot-2018.11/board/samsung/goni) 3, makes5pgoni_defconfig, 이 동작은 u-boot-2018.11/configs/s5pgoni_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