Yocto 이미지를 수동으로 설치하는 방법은 무엇입니까?

Yocto 이미지를 수동으로 설치하는 방법은 무엇입니까?

Yocto로 만든 이미지를 설치하는 데 문제가 있습니다. 과거에는 u-boot, MBR 및 기존 부팅을 사용했습니다. Yocto 설치는 생성 bootrootfs파티셔닝, 첫 번째 단계 u-boot 부트로더 설치 및 파일을 /boot부팅 파티션(FAT32 파티션)에 복사하는 것을 의미합니다.

이제 저는 레거시 부팅을 지원하지 않는 것으로 보이는 Intel 시스템에 대해 매우 다른 작업을 수행하려고 합니다. , GPT 및 UEFI를 사용하고 있습니다 systemd-boot.

.wicYocto 생성 이미지 에 직접 쓰면 올바르게 시작됩니다. 하지만 위의 과정을 따라 파일을 수동으로 분할하고 복사하려고 하면 실행되지만 systemd-boot시작 항목을 로드하려고 하면 아무 일도 일어나지 않습니다.

내가 주목한 한 가지는 /bootYocto가 생성한 디렉토리가 파일의 디렉토리와 다르다는 것입니다 rootfs.tar.gz. 커널은 서로 다르며(크기도 다름) 파일에는 파일이 포함되어 있습니다./boot.wic.wicmicrocode.cpio

설치 중에 파일에서 시작 파일을 복사 .wic하고 수동으로 설치하려고 시도했지만 그렇게 했다고 말한 지점까지 도달했지만 EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path그 이후에는 아무 일도 일어나지 않았습니다.

UEFI 시스템에서 수동 파티셔닝을 통해 Yocto 이미지를 설치하는 방법에 대한 가이드가 있나요?

설치방법 외에는 특별한 일은 하지 않았습니다. 메타 인텔 레이어를 구축하고 추가하고 있습니다 nanbield.core-image-base

이것은 내 local.conf입니다.

MACHINE ?= "intel-corei7-64"
MACHINE ??= "qemux86-64"
DISTRO ?= "poky"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS ??= "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    STOPTASKS,/tmp,100M,100K \
    HALT,${TMPDIR},100M,1K \
    HALT,${DL_DIR},100M,1K \
    HALT,${SSTATE_DIR},100M,1K \
    HALT,/tmp,10M,1K"
PACKAGECONFIG:append:pn-qemu-system-native = " sdl"

IMAGE_FEATURES += "read-only-rootfs"
IMAGE_FSTYPES = "tar.xz"

CORE_IMAGE_EXTRA_INSTALL += "kernel-modules"

# OS packages
CORE_IMAGE_EXTRA_INSTALL += "openssh"
CORE_IMAGE_EXTRA_INSTALL += "nginx"
CORE_IMAGE_EXTRA_INSTALL += "openssl"
CORE_IMAGE_EXTRA_INSTALL += "gnupg"
CORE_IMAGE_EXTRA_INSTALL += "iptables"
CORE_IMAGE_EXTRA_INSTALL += "logrotate"
CORE_IMAGE_EXTRA_INSTALL += "mongodb"
CORE_IMAGE_EXTRA_INSTALL += "sudo"
CORE_IMAGE_EXTRA_INSTALL += "rsync"
CORE_IMAGE_EXTRA_INSTALL += "procps"

# Python packages
CORE_IMAGE_EXTRA_INSTALL += "python3"
CORE_IMAGE_EXTRA_INSTALL += "python3-flask"
CORE_IMAGE_EXTRA_INSTALL += "python3-setuptools"
CORE_IMAGE_EXTRA_INSTALL += "python3-pymongo"
CORE_IMAGE_EXTRA_INSTALL += "python3-cryptography"
CORE_IMAGE_EXTRA_INSTALL += "python3-scrypt"
CORE_IMAGE_EXTRA_INSTALL += "python3-pip"
CORE_IMAGE_EXTRA_INSTALL += "python3-pyserial"
CORE_IMAGE_EXTRA_INSTALL += "python3-pyudev"

# Feature services
CORE_IMAGE_EXTRA_INSTALL += "dnsmasq"
CORE_IMAGE_EXTRA_INSTALL += "rsyslog"
CORE_IMAGE_EXTRA_INSTALL += "ntp"
CORE_IMAGE_EXTRA_INSTALL += "ntpq"
CORE_IMAGE_EXTRA_INSTALL += "ntp-utils"
CORE_IMAGE_EXTRA_INSTALL += "freeradius"
CORE_IMAGE_EXTRA_INSTALL += "net-snmp"

# Remove the following packages before 1.0 release
CORE_IMAGE_EXTRA_INSTALL += "coreutils"
CORE_IMAGE_EXTRA_INSTALL += "vim"

이것은 내 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 ?= " \
  /data/opis-current/meta \
  /data/opis-current/meta-poky \
  /data/opis-current/meta-yocto-bsp \
  /data/opis-current/meta-openembedded/meta-oe \
  /data/opis-current/meta-openembedded/meta-python \
  /data/opis-current/meta-openembedded/meta-webserver \
  /data/opis-current/meta-openembedded/meta-networking \
  /data/opis-current/meta-intel \
  "

답변1

문제는 내가 사용하고 있던 컴퓨터에 대한 문서를 보는 동안 발견한 모호한 BIOS 설정으로 끝났습니다. 나는 그들이 해당 컴퓨터에서 Ubuntu를 부팅하려면 BIOS에서 "PinCntrl Driver GPIO Scheme"을 켜야 한다고 지적하는 것을 보았습니다. 이렇게 변경하자 Yocto 빌드가 작동하기 시작했습니다.

따라서 다른 사람이 이 문제를 겪고 있다면 다양한 BIOS 문제를 확인해 보시기 바랍니다.

관련 정보