수행기록퀘스트1

퀘스트 1 - 개발 환경 구축
2020. 4. 13 (월) 18:54 이동* 조회 295 좋아요 0 스크랩 0 댓글 0

1. ubuntu desktop 설치

 다음과 같이 ubuntu 18.04 desktop 버전을 설치하고 터미널은 windows의 putty 프로그램을 통해 접속을 합니다.

 

 

2. en.SDK-x86_64-stm32mp1-openstlinux-20-02-19.tar.xz toolchain을 다운로드 받습니다.

   압축을 푼 후에 sdk 디렉토리에서 

   $ ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-2.6-openstlinux-20-02-19.sh 를 통해 현재 디렉토리에 설치를 합니다.

 

3. 툴체인 환경 설정 : 툴체인 설치된 디렉토리에 있는 environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi 를 통해 환경 설정을 합니다.

 $ source environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

 툴체인이 제대로 동작하는지는 다음과 같이 확인을 합니다.

 $ arm-ostl-linux-gnueabi-gcc -v

 

4.  커널 및 u-boot를 다운로드 받습니다.

  en.SOURCES-kernel-stm32mp1-openstlinux-20-02-19.tar.xz

  en.SOURCES-u-boot-stm32mp1-openstlinux-20-02-19.tar.xz

 $ tar xvf 를 통해 적당한 디렉토리에 압축을 풉니다.

 

5. 커널 빌드

 압축을 푼 커널 디렉토리로 이동한 후에 오리지널 커널 압축을 푼 후에 커널 소스 디렉토리에서 다음과 같이 stm32mp의 patch를 적용합니다.

 $ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

 

 다음과 같이 kernel configuration 파일을 커널 소스의 루트 디렉토리에 복사를 합니다.

 $ cp ./arm/arm/config/multi_v7_defconfig .config

 

 menuconfig를 통해 .config 파일을 업데이트 합니다.

 $ make ARCH=arm menuconfig

 

커널을 빌드 합니다.

$ make -j16 ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040

 

커널 모듈을 빌드 합니다.

$ make -j16 ARCH=arm modules

 

 커널 모듈을 설치 합니다.

 $ make ARCH=arm INSTALL_MOD_PATH="./install/install_artifact" modules_install O="./"

 

 

 결과 디렉토리에 가서 커널이 제대로 빌드가 되었는지 확인을 합니다.

 $ cd ./arch/arm/boot

 $ tree -P 'vmlinux*|uImage*|stm32mp157c-dk2*'

 

 

5. U-Boot 빌드

 U-boot의 patch는 커널 빌드에서 설명한 것과 같이 patch 프로그램을 통해 U-Boot 오리지널 소스에서 patch를 합니다.

 

 u-boot의 configuration file은 ./config/stm32mp15_basic_defconfig 파일을 사용합니다.

 u-boot가 있는 소스 루트 디렉토리로 이동을 합니다.

 $ cp ./config/stm32mp15_basic_defconfig .config

 

 다음과 같이 .config 파일을 업데이트 합니다.

 $ make ARCH=arm menuconfig

 

 u-boot를 다음과 같이 빌드 합니다.

 $ make -j16 ARCH=arm

 

 

 

 

 

로그인 후
참가 상태를 확인할 수 있습니다.