분류

2018년 2월 6일 화요일

Yocto 학습 : 작업 #4 - 배포 및 테스트

---------------------------------------------------------------------------------------------------
이 문서는 Yocto Training - HOME 문서를 한글 화 한 것입니다. 저자이신 Daiane Angolini 님의 수락 하에 한글 화 작업을 진행하고 있습니다. 일부 주석을 첨부 할 것이며, 필요하면 의역을 통해 일부 내용이 변경 되거나 누락 될 수 있습니다. 하지만 기본은 구글이 번역하겠습니다.

원본은 https://community.nxp.com/docs/DOC-94849 입니다.
---------------------------------------------------------------------------------------------------

업데이트
이미 알고 있듯이 소스는 주기적으로 업데이트 하십시오.

$ repo sync

이미지 - bitbake 결과

bitbake 수행 후 콘텐츠 예:

build_mx6/tmp/deploy/images:
fsl-image-gui-imx6qsabresd-20130505174618.rootfs.ext3
fsl-image-gui-imx6qsabresd-20130505174618.rootfs.sdcard
fsl-image-gui-imx6qsabresd-20130505174618.rootfs.tar.bz2
fsl-image-gui-imx6qsabresd-20130508162511.rootfs.ext3
fsl-image-gui-imx6qsabresd-20130508162511.rootfs.sdcard
fsl-image-gui-imx6qsabresd-20130508162511.rootfs.tar.bz2
fsl-image-gui-imx6qsabresd.ext3
fsl-image-gui-imx6qsabresd.sdcard
fsl-image-gui-imx6qsabresd.tar.bz2
modules-3.0.35-1.1.0+yocto+g0596856-r32.10-imx6qsabresd.tgz
README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
u-boot.imx
u-boot-imx6qsabresd.imx
u-boot-imx6qsabresd-v2013.04-r3.imx*
uImage
uImage-3.0.35-r32.10-imx6qsabresd-20130505174618.bin
uImage-imx6qsabresd.bin

익숙한 이미지들이 생성되었을 겁니다. 어떤 이미지 파일이 심볼릭 링크인지 그리고 어느것이 실제 이미지인지 이해하십시오. 심볼릭 링크는 항상 최신 이미지를 가리킵니다.

SD카드 이미지 
이곳을 확인하시면 sd카드가 어떻게 생성되는지 확인할 수 있습니다.  : meta-fsl-arm - Freescale ARM 하드웨어 지원 메타데이터가 포함된 레이어

디스크 레이아웃은 아래와 같습니다.
0 -> IMAGE_ROOTFS_ALIGNMENT이 부트로더에 예약됨
IMAGE_ROOTFS_ALIGIN  -> BOOT_SPACE 커널 및 기타 데이터
BOOT_SPACE -> SDIMG_SIZE rootfs
IMAGE_OVERHEAD_FACTOR를 사용하여 공간을 추가하십시오.

디스크 레이아웃을 이해하려면 원본 파일을 살펴보세요
※바로 위에 있는 링크를 말하는 것 같습니다. 

이것은 기본적으로 u-boot를 위한 약간의 초기 영역이 설정되어 있습니다. uImage를 위한 하나의 파티션. rootfs를 위한 하나의 파티션. 전체 sd카드 사이즈는 모든 이미지에 대해 계산되야 합니다. 만약 sd카드 내에 빈 공간을 만들고 싶다면, IMAGE_OVERHEAD_FACTOR를 사용하세요.


※ 배포에 앞서 저는 초보라 sd카드 리더기를 연결하는데도 한세월이 걸렸습니다. 그래서 방법을 올려놨습니다. ARM Embedded 초보 개발자의 이슈 정리 글에 가셔서 "4.VMWARE에서 SD카드 어떻게 연결해?"를 검색해보세요  

sd카드에 이미지 배포하기

$ sudo dd if=fsl-image-gui-imx6qsabresd.sdcard of=/dev/sdX bs=1M

※리눅스를 잘 몰라서 이게 무슨의미인지 찾는데 한참 걸렸습니다. sd카드 전체에 이미지를 배포한다는 것이고, 파티션 구성을 포함한 모든게 바뀝니다. 
$sudo fdisk 를 하시면 아래와 같이 디스크 정보가 나옵니다. 첫번째는 vm의 메인으로 잡힌 디스크 드라이브이고, 두번째가 sd카드입니다. Disk 옆에 나오는 /dev/sdb <---이것이 disk의 이름이고, sd카드에 배포하기는 여기에 배포하는 것 , 그리고 rootfs나, u-boot만 배포하는 것은 디스크가 아닌 파티션에 배포하라는 것 입니다. 

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   163575807    81786880   83  Linux
/dev/sda2       163575808   167772159     2098176    5  Extended
/dev/sda5       163577856   167770111     2096128   82  Linux swap / Solaris

Disk /dev/sdb: 7948 MB, 7948206080 bytes
4 heads, 32 sectors/track, 121280 cylinders, total 15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000983f0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            8192       24575        8192    c  W95 FAT32 (LBA)

/dev/sdb2           24576    15523839     7749632   83  Linux


ext3만 rootfs에 배포하는 방법

$ sudo dd if=fsl-image-gui-imx6qsabresd.ext3 of=/dev/sdX2 bs=1M

tar.bz만 rootfs에 배포하는 방법

$ sudo mount /dev/sdX2 /mnt/card
$ sudo tar xf imagename-imx53qsb.tar.bz2 -C /mnt/card

커널만 배포하는 방법

$ sudo cp uImage-3.0.35-r32.10-imx6qsabresd-20130505174618.bin /media/Boot

u-boot 만 배포하는 방법

$ sudo dd if=u-boot-imx6qsabresd-v2012.10-r3.imx of=/dev/sdX bs=512 seek=2

만약 HDMI를 사용한다면 u-boot 환경 인수를 변경해주어야 합니다.

setenv mmcargs "setenv bootargs console=${console},${baudrate} root=${mmcroot} rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24"

이것은 meta-fsl-arm을 통해 sd카드를 만드는 방법입니다. 물론 자신의 것을 사용할 수 있습니다. 하지만 u-boot bootenv를 다시 확인해야 합니다.

이제 sd카드를 꽂고 보드를 부팅 시키십시오.

로그인은 : root 계정을 사용하면 됩니다.

Yocto NFS & TFTP boot  sd카드를 vm에 연결하기 귀찮아서 네트워크 부팅을 번역해보았습니다.

Yocto 교육 문서 - 홈
Yocto 학습 : 작업 #3 - 빌드 결과
Yocto 학습 : 작업 #5 - 커널

댓글 없음:

댓글 쓰기