초보자는 uboot 소스 (1) 를 0으로 컴파일하여 컴파일 환경을 구축하고 간단한 컴파일 테스트를 실시한다

3697 단어 uboot
1、u-boot-2018-11 원본을 다운로드하고 압축을 풀다.
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

좋은 웹페이지 즐겨찾기