YOCTO构建在基于Intel的Server上实时启动时未识别磁盘

问题描述 投票:0回答:0
增强了。该构建产生了几个文物,包括:

A可启动ISO文件

A内核文件

    Multipleinitramfsfiles
  • 当我将ISO文件引导到虚拟盒VM中时,它会按预期执行 - 成功实时启动,安装和识别
  • /dev/sda
  • 。 VM启动期间还提供了一个grub菜单,为实时引导和安装提供了选项。 ISO文件包含各种组件,例如bzimage,efi.img,initrd,rootfs.img,startup.nsh,以及efi和iSlainux目录。
  • 当我尝试通过IPXE启动构建时,出现了问题。我将内核(
bzImage

)和Initramfs(

core-image-full-cmdline-intel-corei7-64.cpio.gz
)文件传递给使用Xeon处理器进行实时启动的HP服务器,虽然它成功启动,但在
/dev

目录下却没有可见磁盘。运行命令(例如

lsblk

都不会产生结果),
fdisk -l
仅显示RAM0,RAM1等等条目,直到RAM8。值得注意的是,我不能使用ISO,HDDIMG或任何其他格式通过IPXE启动。
对于从实时启动环境开始在服务器上开始的安装过程,
/dev/sdX
/dev/nvme*
的存在至关重要。我怀疑该问题可能与未正确加载的文件系统驱动程序有关。
我是我的编辑的
local.conf

内容,它成功地在VirtualBox上启动了ISO:

IMAGE_TYPEDEP_wic = "ext4"
INITRD_IMAGE_LIVE="core-image-minimal-initramfs"
LABELS_LIVE = "boot install"
EFI_PROVIDER = "grub-efi" 
do_image_wic[depends] += "${INITRD_IMAGE_LIVE}:do_image_complete"
do_rootfs[depends] += "virtual/kernel:do_deploy"
IMAGE_BOOT_FILES:append = "\
      ${KERNEL_IMAGETYPE} \
      microcode.cpio \
      ${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.ext4;rootfs.img \
      ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', 'grub-efi-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
      ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', '${IMAGE_ROOTFS}/boot/EFI/BOOT/grub.cfg;EFI/BOOT/grub.cfg', '', d)} \
      ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', 'systemd-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
      ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/loader.conf;loader/loader.conf ', '', d)} \
      ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/entries/boot.conf;loader/entries/boot.conf', '', d)} "

INIT_MANAGER = "systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
MACHINE_FEATURES_NATIVE:append = " efi"
MACHINE_FEATURES:append = " efi"
MACHINE_FEATURES:append = " pcbios util-linux-blkid"
IMAGE_INSTALL:append = " grub grub-efi grub-bootconf"
CORE_IMAGE_EXTRA_INSTALL:append = " kernel-modules"
我的
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/poky/meta \ /home/poky/meta-poky \ /home/poky/meta-yocto-bsp \ /home/poky/meta-openembedded/meta-oe \ /home/poky/meta-openembedded/meta-python \ /home/poky/meta-openembedded/meta-networking \ /home/poky/meta-openembedded/meta-filesystems \ /home/poky/meta-openembedded/meta-perl \ /home/poky/meta-selinux \ /home/poky/meta-virtualization \ /home/poky/meta-intel \ "

我的

boot.ipxe
文件看起来像这样:

# Fetch the kernel kernel ${base}/bzImage root=/dev/nfs initrd=core-image-full-cmdline-intel-corei7-64.cpio.gz initrd ${base}/core-image-full-cmdline-intel-corei7-64.cpio.gz imgargs bzImage LABEL=boot rootwait console=ttyS0,115200 console=tty0 boot || goto failed goto start

目的是确定在使用

initramfs
bzImage

启动的服务器上安装Yocto构建的最佳方法。我正在寻求有关如何确保将所有必要驱动程序添加到内核(

bzImage

initramfs
的指导

该问题与未被包含在内核中的袭击驾驶员有关。我启用了
CONFIG_SCSI_SMARTPQI
CONFIG_SCSI_HPSA
内核Menuconfig。
	

yocto ipxe
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.