임 베 디 드 Linux -- MYS - 6ULX - IOT - 교차 컴 파일 환경 구축
22542 단어 MYR 판임 베 디 드 링크 ux운영 체제
자료 다운로드 주소: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. 컴 파일 도구 설정
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 커 널 코드 를 컴 파일 하기 전에 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. 파일 시스템 구축
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
웹 개발 자 에 게 보 여 주 는 Nginx 소개불 행 히 도 많은 다른 시스템 관리 도구 와 마찬가지 로 관련 원리 튜 토리 얼 과 배치 설명 문서 가 매우 적다.공식 적 으로 위 키 를 제 공 했 지만 내용 이 많 고 복잡 하지만 당신 이 진정 으로 필요 로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.