On Wed, Jul 27, 2022 at 10:08:00AM +0900, Takahiro Akashi wrote: > On Fri, Jul 22, 2022 at 11:45:49AM +0300, Ilias Apalodimas wrote: > > Hi Kojima-san, > > > > On Fri, 22 Jul 2022 at 05:36, Masahisa Kojima > > <masahisa.koj...@linaro.org> wrote: > > > > > > This series adds the menu-driven UEFI boot variable maintenance > > > through the "eficonfig" new command. > > > This series also adds the removable media support in bootmenu. > > > > > > Initrd file selection and python based unit test are added in v10. > > > > > > Source code can be cloned with: > > > $ git clone https://git.linaro.org/people/masahisa.kojima/u-boot.git -b > > > eficonfig_upstream_v10 > > > > > > [Major Changes] > > > - rebased v2022.07 > > > - add initrd file selection > > > > I tried to load an initrd, which on typical distros is not part of the > > ESP. While > > => ls virtio 0:2 > > > > reads the filesystem contents fine, whenI try to navigate to that > > virtio (and ext4 filesystem) device through the menu I am getting: > > "Reading volume failed!" > > > > Any ideas? > > eficonfig_select_file() > efi_file_open_int() > file_open() > exists = fs_exists(fh->path); > ... > > It seems that fat and ext4 work in a different way against a *directory* here. > For instance, try this both on fat and ext4 > ("test -e" internally uses fs_exists().) > => test -e virtio X:Y / > => echo $? > > I think eficonfig_select_file() can be rewritten with > fs_opendir()/fs_readdir().
Correction: Not all file systems support fs_opendir/fs_readdir interfaces, so this is not a viable solution in general. (Please note that UEFI spec says nothing about file systems other than fat, though.) -Takahiro Akashi > (Or much more preferably, efi_open(), and essentially fs_exists(), should be > fixed.) > > -Takahiro Akashi > > > Regards > > /Ilias > > > - add python based unit test > > > - there is detailed changelog in each commit > > > > > > Masahisa Kojima (10): > > > efi_loader: move udevice pointer into struct efi_object > > > eficonfig: menu-driven addition of UEFI boot option > > > eficonfig: add "Edit Boot Option" menu entry > > > menu: add KEY_PLUS and KEY_MINUS handling > > > eficonfig: add "Change Boot Order" menu entry > > > eficonfig: add "Delete Boot Option" menu entry > > > bootmenu: add removable media entries > > > doc:bootmenu: add description for UEFI boot support > > > doc:eficonfig: add documentation for eficonfig command > > > test: unit test for eficonfig > > > > > > cmd/Kconfig | 7 + > > > cmd/Makefile | 1 + > > > cmd/bootmenu.c | 106 +- > > > cmd/eficonfig.c | 2103 +++++++++++++++++ > > > common/menu.c | 6 + > > > configs/sandbox_defconfig | 1 + > > > doc/usage/cmd/bootmenu.rst | 74 + > > > doc/usage/cmd/eficonfig.rst | 63 + > > > doc/usage/index.rst | 1 + > > > include/efi_config.h | 91 + > > > include/efi_loader.h | 67 + > > > include/menu.h | 2 + > > > lib/efi_driver/efi_block_device.c | 3 +- > > > lib/efi_loader/efi_bootmgr.c | 7 + > > > lib/efi_loader/efi_boottime.c | 52 +- > > > lib/efi_loader/efi_console.c | 70 + > > > lib/efi_loader/efi_disk.c | 65 +- > > > lib/efi_loader/efi_file.c | 75 +- > > > lib/efi_loader/efi_helper.c | 13 + > > > test/py/tests/test_eficonfig/conftest.py | 40 + > > > .../py/tests/test_eficonfig/test_eficonfig.py | 325 +++ > > > 21 files changed, 3109 insertions(+), 63 deletions(-) > > > create mode 100644 cmd/eficonfig.c > > > create mode 100644 doc/usage/cmd/eficonfig.rst > > > create mode 100644 include/efi_config.h > > > create mode 100644 test/py/tests/test_eficonfig/conftest.py > > > create mode 100644 test/py/tests/test_eficonfig/test_eficonfig.py > > > > > > -- > > > 2.17.1 > > >