반응형
Jetson NX Yocto Linux Build
Yocto Linux 빌드하기
빌드 테스트 환경
- Ubuntu 20.04.3 LTS (Linux kernel 5.13.0-30-generic)
- Yocto Dunfell (April 2020 released, Long Term Support, until Apr. 2024)
빌드를 위한 우분투 패키지 설치
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
Yocto Linux 소스다운로드
2020년 4월 Dunfell 릴리즈를 사용한다. LTS (~2024) 버전이기 때문에 가장 안정적으로 관리되는 것으로 생각됨.
export BRANCH="dunfell"
meta-poky 를 다운로드 한다.
mkdir source && cd source
git clone -b ${BRANCH} git://git.yoctoproject.org/poky.git poky-${BRANCH}
meta-tegra 를 다운로드 한다. meta-tegra 는 엔비디아 jetson bsp 를 위한 yocto recipe 저장소 이다.
git clone -b ${BRANCH}-l4t-r32.5.0 https://github.com/madisongh/meta-tegra.git
Yocto Linux 환경설정
Yocto 빌드를 위한 환경변수 스크립트를 실행한다.
source source/poky-${BRANCH}/oe-init-build-env build
다음과 같이 build/conf/local.conf 를 수정한다.
MACHINE ?= "jetson-xavier-nx-devkit-emmc"
DISTRO_FEATURES = "x11 opengl "
IMAGE_CLASSES += "image_types_tegra"
IMAGE_FSTYPES = "tegraflash"
SSTATE_DIR ?= "/mirror/sstate/yocto-32.5"
DL_DIR ?= "/mirror/downloads/yocto-32.5"
PREFERRED_VERSION_python3 = "3.6%"
PREFERRED_VERSION_python3-native = "3.6%"
BB_NUMBER_THREADS = '8'
PARALLEL_MAKE = '-j8'
다음과 같이 build/conf/bblayers.conf 에 참조되어야 하는 디렉토리를 추가한다.
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
/home/${USER}/Yocto/source/meta-tegra \
/home/${USER}/Yocto/source/poky-dunfell/meta \
/home/${USER}/Yocto/source/poky-dunfell/meta-poky \
/home/${USER}/Yocto/source/poky-dunfell/meta-yocto-bsp \
"
Yocto Linux 빌드하기
가장 작은 이미지인 core-image-minimal 을 빌드한다. (1659 tasks)
bitbake core-image-minimal
Build Configuration:
BB_VERSION = "1.46.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-20.04"
TARGET_SYS = "aarch64-oe-linux"
MACHINE = "jetson-xavier-nx-devkit-emmc"
DISTRO = "nodistro"
DISTRO_VERSION = "nodistro.0"
TUNE_FEATURES = "aarch64 armv8a crc"
TARGET_FPU = ""
meta-tegra = "dunfell-l4t-r32.5.0:7e5b82c3a5fc774a8e8f2c66dd8c551a8c82f500"
meta
meta-poky
meta-yocto-bsp = "dunfell:c8987e7bca6ab22a166ca13c5d2fe8e02fbb6e23"
Initialising tasks: 100% |###################################################################################| Time: 0:00:00
Sstate summary: Wanted 2 Found 0 Missed 2 Current 493 (0% match, 99% complete)
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 1658 tasks of which 1647 didn't need to be rerun and all succeeded.
Summary: There were 276 WARNING messages shown.
Yocto Linux 이미지 플래싱
doflash 플래싱 스크립트가 있는 디렉토리로 이동한다. sudo 권한으로 doflash 를 실행한다.
cd ./build/tmp-glibc/work/jetson_xavier_nx_devkit_emmc-oe-linux/core-image-minimal/1.0-r0/tegraflash/
sudo ./doflash.sh
core-image-minimal 이미지 플래싱 시, 약 2-3분이 소요된다.
관련자료
Yocto Support for NVIDIA Jetson Platforms - Setting up Yocto
반응형
'NVIDIA Jeston > Yocto Linux' 카테고리의 다른 글
Yocto linux 에 opencv dnn 모듈 추가하기 (2) | 2022.03.06 |
---|