임 베 디 드 Linux -- MYS - 6ULX - IOT - 교차 컴 파일 환경 구축

목차
  • 1. 개발 환경 배치
  • 1. 필수 패키지 설치
  • 2. 작업 목록 만 들 기
  • 3. 컴 파일 도구 설정
  • 1. Linaro 컴 파일 러
  • 2. Yocto 컴 파일 도구 체인
  • 2. 시스템 구축
  • 1. U - Boot 컴 파일
  • 2. Linux 커 널 컴 파일
  • 3. 파일 시스템 구축
  • 공식 문서 참조: 《 MYS - 6ULX Linux 개발 매 뉴 얼 》
    자료 다운로드 주소:http://down.myir-tech.com/MYS-6ULX/
    1. 개발 환경 배치
      개발 전에 리 눅 스 운영 체 제 를 잘 설치 해 야 하 며, Ubuntu 16.04 64bit 발행 판 을 추천 하 며, 네트워크 를 연결 하고 네트워크 를 설정 해 야 하 며, 후속 작업 은 인터넷 에 연결 하여 관련 패 키 지 를 설치 하거나 다운로드 해 야 합 니 다.
    1. 필수 패키지 설치
    sudo apt-get install build-essential git-core libncurses5-dev \
    flex bison texinfo zip unzip zlib1g-dev gettext u-boot-tools \
    g++ xz-utils mtd-utils gawk diffstat gcc-multilib python git \
    make gcc g++ diffstat bzip2 gawk chrpath wget cpio texinfo lzop
    

    2. 작업 디 렉 터 리 만 들 기
    『 8195 』 작업 디 렉 터 리 를 만 들 고 통 일 된 환경 변수 경 로 를 설정 할 수 있 습 니 다.제품 CD 의 원본 코드 를 작업 디 렉 터 리 에 복사 하고 DEV 설정ROOT 변 수 는 후속 절차 의 경로 접근 을 편리 하 게 합 니 다.
    linux 위 에 있 는 MYS6ULx - devel 디 렉 터 리 아래 에서 직접 다운로드: wget -c http://down.myir-tech.com/MYS-6ULX/MYS-6ULX-20190312-M12.iso
    mkdir -p ~/MYS6ULx-devel
    export DEV_ROOT=~/MYS6ULx-devel
    cp -r <DVDROM>/02-Images $DEV_ROOT
    cp -r <DVDROM>/03-Tools $DEV_ROOT
    cp -r <DVDROM>/04-Source $DEV_ROOT
    

    3. 컴 파일 도구 설정
  • Linaro 교차 컴 파일 러: gcc version 4.9.3 20141031 (prerelease) (Linaro GCC 2014.11)
  • Yocto 교차 컴 파일 러: gcc version 5.3.0 (GCC)
  •   여기에 두 개의 컴 파일 러 가 있 는데 하 나 는 Linaro 가 제공 하고 다른 하 나 는 Yocto 가 구축 한 것 입 니 다. Yocto 가 제공 하 는 것 을 사용 하여 파일 시스템 과 통일 할 수 있 도록 하 는 것 을 권장 합 니 다.
    1. Linaro 컴 파일 러
    cd $DEV_ROOT
    tar -xvf 03-Tools/Toolchain/\
    gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz
    export PATH=$PATH:$DEV_ROOT/\
    gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin
    export CROSS_COMPILE=arm-linux-gnueabihf-
    export ARCH=arm
    

      상기 명령 을 실행 한 후 "arm - linux - gnueabihf - gcc - v" 를 입력 하 십시오. 출력 버 전 정보 가 있 으 면 설정 이 성공 했다 는 것 을 설명 합 니 다. 상기 설정 은 현재 터미널 에 만 유효 합 니 다.영구적 으로 수정 하려 면 사용자 프로필 을 수정 하 십시오.
    $ arm-linux-gnueabihf-gcc -v
    Using built-in specs.
    COLLECT_GCC=arm-linux-gnueabihf-gcc
    COLLECT_LTO_WRAPPER=/home/kevinchen/MYS6ULx/\
    gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/../
    libexec/gcc/arm-linux-gnueabihf/4.9.3/lto-wrapper
    Target: arm-linux-gnueabihf
    Configured with: /home/buildslave/workspace/BinaryRelease/label/
    x86_64/target/arm-linux-gnueabihf/snapshots/
    gcc-linaro-4.9-2014.11/configure SHELL=/bin/bash --with-bugurl=
    https://bugs.linaro.org
    --with-mpc=/home/buildslave/workspace/BinaryRelease/label/x86_64
    /target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown
    -linux-gnu --with-mpfr=/home/buildslave/workspace/
    BinaryRelease/label/x86_64/target/arm-linux-gnueabihf/_build/bui
    lds/destdir/x86_64-unknown-linux-gnu
    --with-gmp=/home/buildslave/workspace/BinaryRelease/label/x86_64
    /target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown
    -linux-gnu --with-gnu-as --with-gnu-ld --disable-libstdcxx-pch -
    -disable-libmudflap --with-cloog=no --with-ppl=no --with-isl=no
    --disable-nls --enable-multiarch --disable-multilib --enable-c99
    --with-tune=cortex-a9 --with-arch=armv7-a --with-fpu=vfpv3-d16
    --with-float=hard --with-mode=thumb --disable-shared --enable-
    static --with-build-sysroot=/home/buildslave/workspace/BinaryRel
    ease/label/x86_64/target/arm-linux-gnueabihf/_build/sysroots/arm
    -linux-gnueabihf --enable-lto --enable-linker-build-id --enable-
    long-long --enable-shared --with-sysroot=/home/buildslave/worksp
    ace/BinaryRelease/label/x86_64arm-linux-gnueabihf/_build/builds/
    destdir/x86_64-unknown-linux-gnu/libc --enable-languages=c,c++,
    fortran,lto -enable-fix-cortex-a53-835769 --enable-checking=rele
    ase --with-bugurl=https://bugs.linaro.org
    --with-pkgversion='Linaro GCC 2014.11' --build=x86_64-unknown-li
    nux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnuea
    bihf
    --prefix=/home/buildslave/workspace/BinaryRelease/label/x86_64/t
    arget/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-l
    inux-gnu
    Thread model: posix
    gcc version 4.9.3 20141031 (prerelease) (Linaro GCC 2014.11)
    

    2. Yocto 컴 파일 도구 체인
      Yocto 가 제공 하 는 툴 체인 은 두 가지 가 있 는데 하 나 는 바 텀 개발 의 meta - toolchain 이 고 다른 하 나 는 응용 개발 에 사용 되 는 툴 체인 이다.전 자 는 Linaro 와 유사 하 며, 후 자 는 응용 개발 에 관 한 라 이브 러 리 를 포함 하고 있 으 며, pkg - config 도 구 를 직접 사용 하여 헤더 파일 이나 라 이브 러 리 파일 의 의존 관 계 를 해결 할 수 있 습 니 다.MYS - 6ULX 의 리 소스 패키지 에는 두 가지 툴 체인 이 제공 된다.
    툴 체인 파일 이름
    묘사 하 다.
    myir-imx-fb-glibc-x86_64-fsl-image-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh
    Qt5 관련 라 이브 러 리 를 포함 하 는 응용 프로그램 체인
    myir-imx-fb-glibc-x86_64-core-image-base-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh
    Qt5 가 포함 되 지 않 은 응용 프로그램 체인
    myir-imx-fb-glibc-x86_64-meta-toolchain-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh
    meta-toolchain
      Yocto 컴 파 일 러 는 SDK 키 트 방식 으로 제공 되 므 로 SDK 패 키 지 를 먼저 설치 한 후에 사용 할 수 있 습 니 다.설치 방법 은 다음 과 같 습 니 다. 일반 사용자 권한 으로 셸 스 크 립 트 를 실행 하면 설치 경 로 를 알려 줍 니 다. 기본 값 은 / opt 디 렉 터 리 에 있 으 며 디 렉 터 리 에 쓸 수 있 는 권한 이 있 도록 비밀 번 호 를 입력 하 는 것 을 알려 줍 니 다.설치 가 완료 되면 "source" 또는 "." 명령 으로 작업 링크 환경 을 현재 터미널 로 불 러 올 수 있 습 니 다.예: 응용 개발 도구 체인 을 / opt / my ir - imx6ulx - fb / 4.1.15 - 2.0.1 디 렉 터 리 에 설치 했다.
    ./myir-imx-fb-glibc-x86_64-fsl-image-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh
    Freescale i.MX Release Distro SDK installer version 4.1.15-2.0.1
    ================================================================
    Enter target directory for SDK (default: /opt/myir-imx-fb/4.1.15-2.0.1):
    /opt/myir-imx6ulx-fb/4.1.15-2.0.1
    Do You are about to install the SDK to "/opt/myir-imx6ulx-fb/4.1.15-2.0.1". Proceed[Y/n]? Y
    [sudo] password for kevinchen:
    Extracting SDK..................................................
    ................................................................
    ...............done
    Setting it up...done
    SDK has been successfully set up and is ready to be used.
    Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
    . /opt/myir-imx6ulx-fb/4.1.15-2.0.1/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
    

      SDK 툴 체인 이 올 바 르 게 설치 되 어 있 는 지 확인 하고, 먼저 "source" 명령 으로 Yocto 의 환경 설정 파일 을 불 러 온 다음 컴 파 일 러 버 전 을 봅 니 다.
    source /opt/myir-imx6ulx-fb/4.1.15-2.0.1/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
    arm-poky-linux-gnueabi-gcc -v
    Using built-in specs.
    COLLECT_GCC=arm-poky-linux-gnueabi-gcc
    COLLECT_LTO_WRAPPER=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x
    86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-p
    oky-linux-gnueabi/5.3.0/lto-wrapper
    Target: arm-poky-linux-gnueabi
    Configured with: ../../../../../../work-shared/gcc-5.3.0-r0/gcc-
    5.3.0/configure --build=x86_64-linux --host=x86_64-pokysdk-linux
    --target=arm-poky-linux-gnueabi --prefix=/opt/myir-imx6ulx-fb/4.
    1.15-2.0.1/sysroots/x86_64-pokysdk-linux/usr --exec_prefix=/opt/
    myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/usr
    --bindir=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-pokys
    dk-linux/usr/bin/arm-poky-linux-gnueabi
    --sbindir=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-poky
    sdk-linux/usr/bin/arm-poky-linux-gnueabi --libexecdir=/opt/myir-
    imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/usr/libexe
    c/arm-poky-linux-gnueabi --datadir=/opt/myir-imx6ulx-fb/4.1.15-2
    .0.1/sysroots/x86_64-pokysdk-linux/usr/share --sysconfdir=/opt/m
    yir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/etc
    --sharedstatedir=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_
    64-pokysdk-linux/com
    --localstatedir=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_6
    4-pokysdk-linux/var --libdir=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/s
    ysroots/x86_64-pokysdk-linux/usr/lib/
    arm-poky-linux-gnueabi --includedir=/opt/myir-imx6ulx-fb/4.1.15-
    2.0.1/sysroots/x86_64-pokysdk-linux/usr/include --oldincludedir=
    /opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/
    usr/include --infodir=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/
    sysroots/x86_64-pokysdk-linux/usr/share/info
    --mandir=/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-pokys
    dk-linux/usr/share/man
    --disable-silent-rules --disable-dependency-tracking
    --with-libtool-sysroot=/home/kevinchen/mys-imx6ul/fsl-release-yo
    cto/build/tmp/sysroots/x86_64-nativesdk-pokysdk-linux --with-gnu
    -ld --enable-shared
    --enable-languages=c,c++ --enable-threads=posix --enable-multili
    b --enable-c99
    --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch \
    --program-prefix=arm-poky-linux-gnueabi- --without-local-prefix
    --enable-lto --enable-libssp
    --enable-libitm --disable-bootstrap --disable-libmudflap --with-
    system-zlib
    --with-linker-hash-style=gnu --enable-linker-build-id --with-ppl
    =no --with-cloog=no
    --enable-checking=release --enable-cheaders=c_global --without-i
    sl
    --with-gxx-include-dir=/not/exist/usr/include/c++/5.3.0
    --with-build-time-tools=/home/kevinchen/mys-imx6ul/fsl-release-y
    octo/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/
    bin --with-sysroot=/not/exist
    --with-build-sysroot=/home/kevinchen/mys-imx6ul/fsl-release-yoct
    o/build/tmp/sysroots/mys6ul14x14
    --enable-poison-system-directories --with-mpfr=/home/kevinchen/m
    ys-imx6ul/fsl-release-yocto/build/tmp/sysroots/x86_64-nativesdk-
    pokysdk-linux --with-mpc=/home/kevinchen/mys-imx6ul/fsl-release-
    yocto/build/tmp/sysroots/
    x86_64-nativesdk-pokysdk-linux --enable-nls --with-arch=armv7-a
    Thread model: posix
    gcc version 5.3.0 (GCC)
    

    『 8195 』 같은 방법 으로 바 텀 개발 도구 체인 meta - toolchain 을 자체 적 으로 설치 하 십시오.두 개의 도구 체인 을 설치 합 니 다. 서로 다른 디 렉 터 리 를 지정 하 십시오. 같은 디 렉 터 리 를 사용 하지 마 십시오. 파일 이 서로 덮어 쓰 는 상황 이 발생 합 니 다.
    2. 시스템 구축
    MYS - 6ULX 개발 판 에 리 눅 스 운영 체제 관련 부품 의 컴 파일 과 사용 을 소개 합 니 다.MYS - 6ULX 의 Linux 시스템 은 다음 과 같은 위 젯 을 포함 합 니 다.
  • U - Boot: 안내 프로그램 으로 서로 다른 방식 으로 커 널 을 시작 할 수 있 습 니 다.
  • Linux Kernel: MYS - 6ULX 개발 판 에 적용 되 는 Linux 4.1.15 커 널 과 판 재 를 지원 하 는 외부 장치 의 구동 을 포함한다.
  • Yocto: 오픈 소스 협력 프로젝트 로 다양한 템 플 릿, 도구 와 방법 을 제공 하여 내장 형 제품 에 대한 사용자 정의 Linux 시스템 구축 을 지원 합 니 다.

  • u - boot 와 Linux 커 널 코드 를 컴 파일 하기 전에 meta - toolchain 을 설치 하고 환경 변 수 를 현재 셸 로 불 러 오 십시오.
    1. U - Boot 컴 파일
    Bootloader 디 렉 터 리 에 들 어가 서 U - boot 원본 코드 를 풀 어 줍 니 다.
    cd $DEV_ROOT/04-Source/
    tar -xvf MYiR-iMX-uboot.tar.gz
    cd MYiR-iMX-uboot
    

    컴 파일 시작:
    make distclean
    make <config>
    make
    

    설정 옵션 이름 입 니 다. 시작 모드 에 따라 설정 옵션 이 다 릅 니 다. MYS - 6ULX 개발 판 네 가지 옵션:
    시작 모드
    컴 파일 옵션
    MYS-6ULX-IND NAND Flash
    mys_imx6ul_14x14_nand_defconfig
    MYS-6ULX-IND eMMC Flash
    mys_imx6ul_14x14_emmc_defconfig
    MYS-6ULX-IoT NAND Flash
    mys_imx6ull_14x14_nand_defconfig
    MYS-6ULX-IoT eMMC Flash
    mys_imx6ull_14x14_emmc_defconfig
    U - boot 가 시 작 될 때 기본적으로 "boot. scr" 파일 을 먼저 검사 합 니 다. 이것 은 U - boot 의 스 크 립 트 미 러 파일 입 니 다. 시작 장 치 를 임시로 바 꾸 거나 Micro SD 에서 시작 할 때 이 파일 을 사용 할 수 있 습 니 다.다음은 'my - imx6ul - boot - sdcard. txt' 파일 이 'boot. scr' 파일 을 만 드 는 예 입 니 다. mkimage 도 구 는 u - boot 의 tools 디 렉 터 리 에서 u - boot 컴 파일 이 완료 되면 mkimage 도 컴 파일 되 어 직접 사용 하면 됩 니 다.
    cat mys-imx6ul-boot-sdcard.txt
    setenv mmcroot '/dev/mmcblk0p2 rootwait rw rootdelay=5 mem=256M'
    setenv mmcargs 'setenv bootargs console=${console},${baudrate} \
    root=${mmcroot} mtdparts=gpmi-nand:5m(boot),10m(kernel),1m(dtb),\
    -(rootfs)'
    run mmcargs
    fatload mmc 0 0x83000000 zImage
    fatload mmc 0 0x84000000 mys-imx6ul-14x14-evk-emmc.dtb
    bootz 0x83000000 - 0x84000000
    ./tool/mkimage -A arm -T script -O linux -d \
    mys-imx6ul-boot-sdcard.txt boot.scr
    

    2. 리 눅 스 커 널 컴 파일
    커 널 디 렉 터 리 에 들 어가 서 커 널 소스 코드 압축 풀기:
    cd $DEV_ROOT/Kernel
    tar -xvf MYiR-iMX-Linux.tar.gz
    cd MYiR-iMX-Linux
    

    컴 파일 시작:
    make distclean
    make mys_imx6_defconfig
    make zImage dtbs modules
    

    컴 파일 이 완료 되면 'arch / arm / boot' 디 렉 터 리 에 커 널 미 러 파일 zImage 를 생 성하 고 'arch / arm / boot / dts' 디 렉 터 리 에 DTB 파일 을 생 성 합 니 다.
    DTB 파일
    비고
    mys-imx6ul-14x14-evk-emmc.dtb
    MYS-6ULX-IND eMMC
    mys-imx6ul-14x14-evk-gpmi-weim.dtb
    MYS-6ULX-IND NAND
    mys-imx6ul-14x14-evk-emmc-myb6ulx.dtb
    MYS - 6ULX - IND eMMC 에 MYB - 6ULX 확장 판 설치
    mys-imx6ul-14x14-evk-gpmi-weim-myb6ulx.dtb
    MYS - 6ULX - IND NAND 에 MYB - 6ULX 확장 판 설치
    mys-imx6ull-14x14-evk-emmc.dtb
    MYS-6ULX-IoT eMMC
    mys-imx6ull-14x14-evk-gpmi-weim.dtb
    MYS-6ULX-IoT NAND
    mys-imx6ull-14x14-evk-emmc-myb6ulx.dtb
    MYS - 6ULX - IoT eMMC 에 MYB - 6ULX 확장 판 설치
    mys-imx6ull-14x14-evk-gpmi-weim-myb6ulx.dtb
    MYS - 6ULX - IoT NAND 에 MYB - 6ULX 확장 판 설치
    MYS - 6ULX 판 에 있 는 마이크로 SD 카드 슬롯 은 mmc 0 컨트롤 러 를 연결 하고 모든 dtb 파일 은 기본적으로 mmc 0 컨트롤 러 를 사용 합 니 다.
    'myb6ulx' 표지 가 있 는 dtb 파일 을 추가 합 니 다. MYB - 6ULX 확장 판 을 지원 하 는 데 사 용 됩 니 다. MYB - 6ULX 의 CAN, RS 485, Ethernet, Camera 와 Audio 기능 이 설정 되 어 있 습 니 다. 'myb6ulx' 표 지 를 사용 한 dtb 파일 은 관련 기능 을 직접 시작 하고 사용 할 수 있 습 니 다.사용 하기 전에 MYB - 6ULX 확장 판 을 MYS - 6ULX - IOT 또는 MYS - 6ULX - IND 개발 판 에 설치 하 십시오.
    SD 카드 나 eMMC 방식 으로 시 작 될 때 U - Boot 에서 기본적으로 찾 은 파일 은 my - imx6ul - 14x14 - evk - emmc. dtb 또는 my - imx6ull - 14x14 - evk - emmc. dtb 파일 입 니 다.따라서 'my b6 ulx' 표 지 를 가 진 파일 은 컴 파일 을 수정 한 후 해당 파일 이름 으로 이름 을 바 꿔 야 합 니 다.낸 드 시작 은 주소 에서 데 이 터 를 읽 기 때문에 영향 을 받 지 않 습 니 다.
    3. 파일 시스템 구축

    좋은 웹페이지 즐겨찾기