
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.kojima@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(). (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