YoeDistro / meta-intel

Intel BSP layer
Other
14 stars 15 forks source link

Yocto build iPXE booting issue: Disks not detected under /dev directory and filesystem drivers may not be loaded #10

Closed Nauman3S closed 1 year ago

Nauman3S commented 1 year ago

I've been working on a Yocto build which has been enhanced with meta-intel. The build generates several artifacts including a bootable ISO file, a kernel file, and multiple initramfs files. When I boot the ISO file in a VirtualBox VM, the system behaves as expected - successfully live booting, installing, and recognizing the sda under the /dev directory. Additionally, a grub menu is provided during the VM boot that allows for both live booting and installation. The ISO file contains various components such as bzImage, efi.img, initrd, rootfs.img, startup.nsh, and the EFI and isolinux directories.

The problem I'm encountering is related to booting the build over iPXE. When I pass the kernel (bzImage) and initramfs (core-image-full-cmdline-intel-corei7-64.cpio.gz) files to an HP Server with a Xeon processor for live booting of the Yocto build, it boots up fine but there are no disks are visible under the /dev directory. Commands such as lsblk yield no results, and fdisk -l only shows entries like ram0, ram1, and so forth, up to ram8. As a side note, I can't use ISO, hddimg or any other format to boot over iPXE.

In order for the installation process to initiate on the server from the live boot environment, the presence of /dev/sdX or /dev/nvme* is essential. I'm suspecting that the filesystem drivers are not getting loaded correctly.

Could anyone provide some guidance on how to ensure that all necessary drivers are added to the kernel? The goal is to identify the best way to install the Yocto build on the server while it is live booted over using initramfs and bzImage.

Any help or insights on this would be highly appreciated.

kraj commented 1 year ago

I would say do not use kmods for the file systems you are interested in and build them directly into kernel. You need to turn them from 'm' to 'y' in defconfig.

Nauman3S commented 1 year ago

I would say do not use kmods for the file systems you are interested in and build them directly into kernel. You need to turn them from 'm' to 'y' in defconfig.

The issue was related to RAID drivers not getting included in the kernel. I enabled CONFIG_SCSI_SMARTPQI and CONFIG_SCSI_HPSA kernel menuconfig and it worked.