전제 조건
하드웨어
호스트[PC/노트북]: 모든 x86/x86_64 AMD/Intel 머신
대상[Raspberry Pi 4]: Raspberry Pi 4
소프트웨어
호스트: 모든 Linux 머신(Ubuntu 20.04 LTS 테스트 완료)
대상: Raspberry Pi 4 Linux 32비트 OS(Raspbian Bullseye Lite 테스트 완료)
참고
백그라운드에는 abhiTronix의 Raspberry Pi용 크로스 컴파일 툴체인이 사용됩니다.
기타
저장 공간 및 시간 요구 사항: 빌드 디렉터리는 약 10GB의 공간을 차지하며 완료하는 데 약 2~5시간이 소요됩니다(종속성 및 호스트 머신 사양 기준).
네트워킹: 이 지침을 따르려면 대상 머신(Raspberry Pi)과 호스트 머신(교차 컴파일하는 경우) 모두 인터넷에 연결되어 있어야 하며 동일한 네트워크에 연결되어 있어야 합니다.
대상 머신(Raspberry Pi)용 단계/설정
1. 처음부터 시작(선택 사항)
중요
Raspberry Pi를 새로 사용하기 시작했거나 처음부터 다시 시작하고 싶으시면 이 지침을 따르세요. 그 외, Raspberry Pi 설정, 실행, 네트워크가 이미 준비되어 경우 2단계로 넘어가면 됩니다.
참고
이 섹션에서는 Raspbian(Stretch/Buster/Bullseye) OS를 설치하기 위한 최소 10GB SD카드와 이를 업로드하기 위한 노트북/PC가 있다고 가정합니다.
1.1. 소프트웨어 다운로드 및 SD 카드 준비
- 여기에서 노트북/PC에 Raspbian(Bullseye)의 최신 버전을 다운로드하세요.
- 다운로드한 OS를 SD 카드(이 경우 마이크로 SD 카드)에 기록하려면 이미지 라이터가 필요합니다. 이미지 라이터로 Balena Etcher를 사용할 수 있습니다.
- 노트북/PC에 SD 카드를 삽입하고 이미지 라이터를 실행하세요. 이미지 라이터가 열리면 다운로드한 Raspbian 이미지 파일을 찾아 선택하세요. 올바른 장치, 즉 SD 카드를 나타내는 드라이브를 선택하세요.
참고
선택한 드라이브(또는 장치)가 SD 카드가 아닌 경우 선택한 다른 드라이브가 손상됩니다. 그러니 조심하세요!
1.2 네트워크 설정
Raspberry Pi를 켜고 실행했습니다. 이제 다음 방법 중 하나로 네트워크에 연결할 차례입니다.
- 모니터가 있는 경우: 키보드와 마우스로 Raspberry Pi를 연결하고 이 가이드를 따르세요.
- 모니터가 없는 경우: 이 가이드를 따르세요.
2. SSH 설정
모니터가 있는 경우: Raspberry Pi 단말기에 'sudo raspi-config'를 입력하면 단말기에 메뉴가 표시됩니다. SSH를 활성화하려면 'Interfacing Options'(옵션 인터페이스) - > 'SSH' - > 'Yes'(예)로 이동하여 'OK'(확인)을 클릭하여 활성화하세요. 마지막으로, 'Finish'(완료)를 선택하고 종료하세요.
모니터가 없는 경우: 네트워크를 설정한 후, 모니터가 없거나 원격으로 작동하는 경우. 이 경우, SD 카드를 꺼내어 컴퓨터에 연결하고 SD 카드 내부의 '/boot/parition' 경로에 'ssh'라는 빈 파일을 생성하여 SSH를 활성화하세요. 이제 다시 SD 카드를 Raspberry Pi에 삽입하세요.
3. 단말기 열기
- SSH를 사용하는 다른 노트북/PC에서: 다른 컴퓨터에서 Pi에 연결하려면 다음 명령어를 복사하여 단말기 창에 붙여넣고 '192.160.1.47'을 Raspberry Pi의 IP 주소로 바꾸세요.
ssh pi@192.168.1.47
암호를 요청하고 변경하지 않으면 기본값('raspberry')으로 설정되므로 이를 언제든지 사용하세요.
참고
연결할 때마다 암호를 제공할 필요 없이 다른 컴퓨터에서 액세스할 수 있도록 Raspberry Pi를 구성할 수 있습니다. 자세한 내용은 여기를 참조하세요.
4. 스크립트 가져오기
ssh로 Pi에 연결하고 zip 파일을 다운로드하세요:
ssh pi@192.168.1.47
wget https://www.interelectronix.com/sites/default/files/scripts/qt-cross-compile-rpi4.zip
unzip qt-cross-compile-rpi4.zip
cd qt-cross-compile-rpi4
브라우저를 통해 여기에서 zip 파일을 다운로드할 수도 있습니다.
Qt-cross-compile-script-pi4.sh 스크립트를 실행 가능 상태로 만들어 실행하세요:
sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh
잠시 후 필요한 모든 패키지가 설치되고 필요한 디렉터리가 생성되고 symlink가 올바르게 설정됩니다.
중요
(크로스 컴파일하는 경우) Raspberry Pi와 이 호스트 머신은 동일한 네트워크에 연결되어 있어야 합니다.
호스트 머신용 단계/설정(Linux Ubuntu)
테스트를 위해, 저희는 깨끗한 Ubuntu 20.04 LTS 버전이 있는 가상 머신(vmware)을 사용했습니다.
1. ZIP 파일 다운로드
wget https://www.interelectronix.com/sites/default/files/scripts/qt-cross-compile-rpi4.zip
unzip qt-cross-compile-rpi4.zip
cd qt-cross-compile-rpi4
브라우저를 통해 여기에서 zip 파일을 다운로드할 수도 있습니다.
2. Qt-cross-compile-script-pi4.sh 스크립트를 실행 가능 상태로 만들어 실행하세요
chmod +x qt-cross-compile-script-host.sh
3. 스크립트의 변수 변경
스크립트에서 Raspberry Pi의 ip 주소(raspberry_ip)를 변경해야 하며 Raspberry Pi의 사용자(raspberry_user) 및 암호(raspberry_pwd)를 변경한 경우 변경해야 합니다.
nano qt-cross-compile-script-host.sh
4. 스크립트 실행
sudo ./qt-cross-compile-script-host.sh
스크립트는 다음 작업을 수행합니다.
- 필요한 모든 패키지 설치
- 필요한 디렉터리 생성('~/rpi-qt')
- Qt 소스 다운로드 및 추출
- Qt 소스 패치
- 크로스 컴파일러 다운로드 및 추출
- Raspberry Pi의 rsync 파일
- symlinker 다운로드 및 symlinks 설정
- Qt 빌드 구성
- Qt 빌드를 만들고 설치
- rsync Qt 바이너리를 raspberry에
대상 머신(Raspberry Pi)용 마지막 단계
Raspberry Pi에서 링커 업데이트
다음 명령어을 입력하여 링커가 새 QT 바이너리 파일을 찾도록 장치를 업데이트하세요:
echo /usr/local/qt5.15/lib | sudo tee /etc/ld.so.conf.d/qt5.15.conf
sudo ldconfig
크로스 컴파일을 위한 Qt Creator 구성
Qt Creator의 컴파일된 바이너리(폴더 '~/rpi-qt/qt5.15`')를 포함하려면 크로스 컴파일을 위해 Ubuntu 20 Lts의 Qt-Creator 구성을 읽어보세요.
저작권 라이선스
Copyright © 2022 Interelectronix e.K.
이 프로젝트 소스 코드는 GPL-3.0 라이선스에 따라 라이선스가 부여됩니다.
감사 표시
- 이 문서는 Raspberry Pi용 최신 Qt 프레임워크를 크로스 컴파일하기 위한 단계별 지침에서 영감을 받아 작성되었습니다. @abhiTronix에게 감사의 마음을 전합니다.
- QT 프레임워크, 소스 파일을 제공해 주셔서 감사합니다