A可启动ISO文件
A内核文件/dev/sda
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。