ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mipsel32 개발 환경 구축
    문제해결 2021. 12. 9. 02:03

    툴체인 구성

     개발 컴퓨터의 CPU와 실행 환경의 CPU가 다를 때, 항상 문제 되는 부분이 빌드 환경의 구축이다. 크로스 컴파일을 위해선 컴파일러, 사용할 C런타임 라이브러리 등 신경 써야 할 것이 너무 많기 때문이다. x86 계열과 ARM 계열은 크로스 컴파일이 잦다 보니 쉽게 세팅할 수 있지만, mips는 그렇지 않았다. 그래도 몇 번 반복하다 보니 숙련도가 생겨서 프로세스를 적립할 수 있었다. mipsel32bit를 기준으로 다음과 같다.

    1. 툴체인을 구축하기 위해서 buildroot를 사용한다.
      • 단, buildroot에서만 가능한 것은 아니다. Yocto, 미리 준비된 도커 이미지를 사용할 수 있을 것이다.
    2. 최대한 오래 지원해주는 Latest  long term support release 버전으로 다운로드
    3. 압축 풀고, make menuconfig로 하나씩 구성한다.
      • TargetOptions
      •  
        타겟 아키텍처, 바이너리 형식을 맞춰준다. MIPS는 공유기나 네트워크 장비에서 쓰다보니 big endian과 little endian 버전이 따로 있다.
      • BuildOptions
        • strip target binaries는 빌드된 바이너리의 크기를 줄여주는 옵션이다. 대체로 임베디드 기기는 저장용량이 작으므로 선택 옵션이지만 항상 활성화한다.
      • ToolChain
        • uclibc인지 musl인지 glibc인지 정해준다. 여기선 uclibc를 사용한다.
        • C++을 쓸것이라 활성화 했다. 필요에 따라 나머지도 활성화한다.
    4. make를 실행한다. 빌드 완료까지 수십 분 걸릴 수 있다.
    5. 툴체인 결과물은 buildroot/output/host 디렉토리 전체이다.
    6. buildroot/output/host/bin/~~~.gcc 혹은 g++을 이용하여 테스트 프로젝트를 빌드한다.
    7. 실행환경에서 실행한다.
      • 실행이 실패하면 에러를 보고 다시 빌드를 하던 추가할 것을 찾아 헤맨다...
      • 실행이 성공하면 도커로 다시 구축한다.(도커를 쓰는 이유)
    8. Dockerfile에 툴체인 폴더를 모두 copy하고, Makefile에서 쓰는 컴파일러 경로를 다시 설정해준다.
    9. 도커 위에서 빌드하고 개발을 진행한다.(윈도우에서 도커써서 개발하기)

     

     

    '문제해결' 카테고리의 다른 글

    라라벨 프로젝트 진행중에 문제해결  (0) 2023.07.13
    TOC 만들기  (0) 2023.02.09
    VMWare기반 개발 환경을 호스트 OS로 옮겼다.  (0) 2021.10.21
    ESP32 write cycles의 중요성  (0) 2021.10.06
    도커를 도입했다.  (0) 2021.08.15

    댓글

Designed by Tistory.