수행기록퀘스트1
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
로그인 후
참가 상태를 확인할 수 있습니다.