수행기록퀘스트3
역시나 쉽지 않은 과정입니다.
(한번에 쉽게 넘어가면 별거 아닐 듯 한데요.)
먼저, 다른 분들이 먼저 글을 작성해서 공개해 주신 내용이 있어서, 그나마 많은 도움이 됩니다.
하드디스크 공간을 더 늘렸습니다. 60GB -> 100GB
(작업을 위한 리소스가 장난 아니네요).
1. SDK 추출 하여 제출하기
먼저 SDK 추출에 대해서는 링크가 없어서, 많이 힘들었습니다.
zmflfto** 님이 남겨주신 댓글을 통해서 정보 획득!
https://wiki.st.com/stm32mpu/wiki/How_to_create_an_SDK_for_OpenSTLinux_distribution
작업 위치 : /work/STM32MP1/Distribution-Package/openstlinux-20-02-19$
에서, bitbake에 대한 환경 변수 반영 스크립트 실행
PC $> DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
PC $> bitbake -c populate_sdk st-image-weston
이 작업 또한 bitbake를 통해서 SDK를 생성하는 과정으로 대략 3~5시간 소요된다고하여서,
VMware상에서 Processor 할당을 1 -> 4로 변경하였습니다.
이를 통해서 처음에 진행 속도가 좀 많이 개선이 되었는데, 중간에 에러에 의한 종료가 1회 발생
이후 83% or 97%에서 무수히 많은 시간을 소비.
(이 부분에서 12시간 이상 소요~)
그래서 Ctrl + C를 통해서 종료하고, 다시 진행했더니,
83%에서 잠시 후 바로 84% -> 96%로 빠른 진행을 보였습니다.
추출된 SDK에 대한 설치 스크립트 실행
PC $> ./build-openstlinuxweston-stm32mp1/tmp-glibc/deploy/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-2.6-snapshot.sh
설치 위치를 물어보는 프롬프트가 나오면, ./sdk 지정 (default는 다른 값으로 되어 있음)
설치 결과 확인 (과제 1)
설치 스크립트를 수행하면, 위와 같이 .json 파일이 하나더 추가되어 있다.
이제 sdk 아래에 생성된 크로스컴파일러에 대한 환경 등록
PC $> source ./sdk/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
그리고 적용된 결과 확인
PC $> which $CC | xargs ls -alh
PC $> echo $CC
2. SDK를 이용해서 사용자 예제 작성하기
https://wiki.st.com/stm32mpu/wiki/How_to_control_a_GPIO_in_userspace
작업 폴더 아래에 사용자 폴더 생성 (user)
PC $> mkdir user
PC $> cd user
사용자 폴더 아래에 gpio 예제를 작성
PC $> mkdir gpio
PC $> cd gpio
이제, GPIO 관련 예제 코드 생성
PC $> vi gpio.c
위에 wiki에서 3.2 항목의 소스 코드 참조 : GREEN LED On/Off 예제
(cmjj** 님 수행 글 참조!)
사용자 영역에 대한 코드 추가 방법에 대해서는 3.2 코드 아래에 링크가 있음!
그곳에서 한 번 더, "Adding a "hello world" user space example 링크를 참조
컴파일 후 생성될 binary 파일이 저장될 디렉토리 생성
PC $> mkdir -p install_artifact install_artifact/usr install_artifact/usr/local install_artifact/usr/local/bin
컴파일 수행
PC $> $CC gpio.c -o ./install_artifact/usr/local/bin/gpio
생성된 실행 파일을 이제 보드에 다운로드 진행
보드에 랜선을 PC와 연결하고, 보드의 IP 주소 설정 : 192.168.1.10
PC $> scp -r install_artifact/* root@192.168.1.10:/
이제 보드에 정상적으로 다운로드 되어 있는지 확인 수행을 위해서 PC와 보드간에 추가로 USB 케이블 연결
(보드의 ST-LINK를 이용해서 PC에 연결 : VCP 추가 됨)
PC에서 Terminal 프로그램을 실행하여 보드와 연결
설치 결과 확인 (과제 2)
BOARD $> uname -a && lsb_release -a
BOARD $> file /usr/local/bin/gpio | tr ',' '\n'
BOARD $> ls -alh /usr/local/bin/
3. 사용자 예제(gpio) 동작 영상 업로드
로그인 후
참가 상태를 확인할 수 있습니다.