Message ID | 20241203163605.1482152-1-sughosh.ganu@linaro.org |
---|---|
Headers | show |
Series | Add pmem node for preserving distro ISO's | expand |
Just a ping in case we can move this forward. Heinrich we've tested with various distros including the generic arm64 poky image and this works fine. The poky image[0] is missing OF_MEM support, but someone is working to add it already. With a modified kernel this boots fine including the missing modules this boots to the login screen [1] [0] https://www.yoctoproject.org/development/releases/ [1] https://paste.debian.net/1340517/ Thanks /Ilias On Tue, 3 Dec 2024 at 18:36, Sughosh Ganu <sughosh.ganu@linaro.org> wrote: > > > When installing a distro via EFI HTTP boot some OS installers expect > the .iso image to be preserved and treat it as a "CDROM" to install > packages. > > This is problematic in EFI, since U-Boot mounts the image, starts the > installer, and eventually calls ExitBootServices. At that point the > image U-Boot mounted disappears. Some distros don't care and download > the missing packages from a web archive, while others halt the > installation complaining they can't find certain packages. > > If the firmware uses ACPI, this is supported by using NFIT which > provides NVDIMM ramdisks to the OS and preserves the image. > We don't have anything in place for Device Trees though. Since DT > supports persistent memory nodes (pmem) use those and preserve the > .iso for installers. > > The issue can be reproduced by attempting an EFI HTTP boot with Ubuntu > live server ISO, or a Rocky Linux ISO. The installation would fail > with the failure to locate certain packages. > > > Changes since V1: > * s/ommit/remove in the commit message > * s/rfom/from in the commit message > * Add a period at the end of the sentence in the commit message > * Use log_err() to print the error message in image_setup_libfdt() > * Remove "ERROR:" from the error print in image_setup_libfdt() > > > Ilias Apalodimas (2): > efi_loader: add a function to remove memory from the EFI map > efi_loader: preserve installer images in pmem > > Masahisa Kojima (1): > fdt: add support for adding pmem nodes > > Sughosh Ganu (1): > efi: add helper functions to insert pmem node for DT fixup > > boot/fdt_support.c | 41 +++++++++++++++++++++++++++-- > boot/image-fdt.c | 9 +++++++ > include/efi_loader.h | 28 +++++++++++++++++--- > include/fdt_support.h | 13 +++++++++ > lib/efi_loader/efi_bootmgr.c | 43 ++++++++++++++++++++++++++---- > lib/efi_loader/efi_helper.c | 12 +++++++++ > lib/efi_loader/efi_memory.c | 51 +++++++++++++++++++++++++++--------- > lib/lmb.c | 4 +-- > 8 files changed, 175 insertions(+), 26 deletions(-) > > -- > 2.34.1 > >
Hi all, I’ve tested the PMEM patches with quite a few Linux distros. These are the results: Installation images: 1. These images include all required drivers and can be used for successful installations: * RHEL 9.4 * Ubuntu 22.04 and Ubuntu 24.04 * OpenSUSE Tumbleweed * Rocky 9.4 * RHEL for Edge (Full installer) 2. These images are missing some kernel drivers: * Fedora 40, Fedora 41 - nd_pmem driver is missing (CONFIG_BLK_DEV_PMEM) * Fedora 40 IOT, Fedora 41 IOT - nvdimm/nd_pmem/of_pmem drivers are missing * Debian 12.6.0, Debian 12.7.0 - nvdimm/nd_pmem/of_pmem drivers are missing. debian installer requires a small fix to mount /dev/pmem * RHEL for Edge with FIDO Device onboarding - of_pmem driver is missing (CONFIG_OF_PMEM) Live images: 1. Rocky-9-Workstation-aarch64-latest.iso and Rocky-9-Workstation-Lite-aarch64-latest.iso include all the required drivers and boot successfully. 2. Yocto genericarm64 image is missing nvdimm/nd_pmem/of_pmem drivers, but with a manually applied kernel config can be booted successfully. Cheers, Anton From: Ilias Apalodimas <ilias.apalodimas@linaro.org> Just a ping in case we can move this forward. Heinrich we've tested with various distros including the generic arm64 poky image and this works fine. The poky image[0] is missing OF_MEM support, but someone is working to add it already. With a modified kernel this boots fine including the missing modules this boots to the login screen [1] [0] https://www.yoctoproject.org/development/releases/ [1] https://paste.debian.net/1340517/ Thanks /Ilias On Tue, 3 Dec 2024 at 18:36, Sughosh Ganu <sughosh.ganu@linaro.org> wrote: > > > When installing a distro via EFI HTTP boot some OS installers expect > the .iso image to be preserved and treat it as a "CDROM" to install > packages. > > This is problematic in EFI, since U-Boot mounts the image, starts the > installer, and eventually calls ExitBootServices. At that point the > image U-Boot mounted disappears. Some distros don't care and download > the missing packages from a web archive, while others halt the > installation complaining they can't find certain packages. > > If the firmware uses ACPI, this is supported by using NFIT which > provides NVDIMM ramdisks to the OS and preserves the image. > We don't have anything in place for Device Trees though. Since DT > supports persistent memory nodes (pmem) use those and preserve the > .iso for installers. > > The issue can be reproduced by attempting an EFI HTTP boot with Ubuntu > live server ISO, or a Rocky Linux ISO. The installation would fail > with the failure to locate certain packages. > > > Changes since V1: > * s/ommit/remove in the commit message > * s/rfom/from in the commit message > * Add a period at the end of the sentence in the commit message > * Use log_err() to print the error message in image_setup_libfdt() > * Remove "ERROR:" from the error print in image_setup_libfdt() > > > Ilias Apalodimas (2): > efi_loader: add a function to remove memory from the EFI map > efi_loader: preserve installer images in pmem > > Masahisa Kojima (1): > fdt: add support for adding pmem nodes > > Sughosh Ganu (1): > efi: add helper functions to insert pmem node for DT fixup > > boot/fdt_support.c | 41 +++++++++++++++++++++++++++-- > boot/image-fdt.c | 9 +++++++ > include/efi_loader.h | 28 +++++++++++++++++--- > include/fdt_support.h | 13 +++++++++ > lib/efi_loader/efi_bootmgr.c | 43 ++++++++++++++++++++++++++---- > lib/efi_loader/efi_helper.c | 12 +++++++++ > lib/efi_loader/efi_memory.c | 51 +++++++++++++++++++++++++++--------- > lib/lmb.c | 4 +-- > 8 files changed, 175 insertions(+), 26 deletions(-) > > -- > 2.34.1 > > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.