@erwan.l
About @archtext: I thought @arch and @archtext could be dynamically detected and substituted,
so it would perfectly match the bootfiles directories names I use:
Before:
\PXE\bootfiles\00000\
\PXE\bootfiles\00006\
\PXE\bootfiles\00007\
After:
\PXE\bootfiles\bios\
\PXE\bootfiles\efi32\
\PXE\bootfiles\efi64\
The last 3 names are much more explicit (self-explanatory), and are less error-prone.
@arch values = 00000, 00006, 00007, 0000a, 0000b
@archtext values = bios, efi32, efi64, arm32, arm64
But from your input about opt252 and change in @arch-dependent BCD, there is now no more dependency
on @arch or @archtext in [map]. The trick is that
\EFI\Microsoft\boot\=\bootfiles\00007\EFI\Microsoft\boot\*
seems to be compatible with both x86 and x64 (font, resources, en-us, fr-fr).
With this my config.ini is simpler:
[arch]
00000=bootfiles\bios\undionly.kpxe
00006=bootfiles\00006\bootia32.efi
00007=bootfiles\00007\bootx64.efi
[map]
\EFI\Microsoft\boot\=\bootfiles\00007\EFI\Microsoft\boot\
\boot\boot.sdi=\bootfiles\bios\boot\boot.sdi
\bootfiles\boot\en-US\=\bootfiles\bios\boot\en-US\
\bootfiles\boot\fr-FR\=\bootfiles\bios\boot\fr-FR\
\bootfiles\boot\fonts\=\bootfiles\bios\boot\fonts\
\bootfiles\boot\resources\=\bootfiles\bios\boot\resources\
[dhcp]
;opt252=bootfiles\@archtext\BCD ; valid only if implemented by TPS
opt252=bootfiles\@arch\BCD
So now no more need for @arch substitution in [map], and the @archtext is needed and to be substituted in opt252 so that I can replace the directory names with more explicit name:
00006 -> efi32
00007 -> efi64
Final config.ini if implemented:
[arch]
00000=bootfiles\bios\undionly.kpxe
00006=bootfiles\efi32\bootia32.efi
00007=bootfiles\efi64\bootx64.efi
[dhcp]
opt252=bootfiles\@archtext\BCD ; valid only if implemented by TPS
About dynamic configuration switch:
And why not Ctrl-I : for switching ini (I for ini, such as Ctrl-R for refresh interfaces).
After Ctrl-I, dialog popup with :
- combo-box + "browse" button to choose *.ini file in same directory as pxeserv.exe (similar to current boot filename combo-box).
- button Validate or Cancel. Cancel: do nothing. If Validate: load settings from the selected ini file and automatic Offline/Online. With the new request 1) below, user is informed of the actual configuration file applied.
New request 1): At startup: display what is the active configuration file used (default: config.ini).
New request 2): At startup: display a short line: "Ctrl-R: refresh interfaces, Ctrl-I: switch configuration" at startup time to remind user of these hotkeys.
New request 3): (nice to have only, far from vital) Add command line option -i to use which ini file at startup. No -i option or not found/invalid file: use default config.ini.
Note:
Be careful about these existing items (right mouse click):
Save settings to config.ini
Reload settings from config.ini
Open config.ini
- Could the string "config.ini" be dynamically changed in these 3 items after switching configuration file?
- If yes, then everything is in sync and OK, the 3 actions applied to the active configuration file (default: config.ini,
but it could applied to config_secure_uefi.ini for example etc...). But reflecting the real file name could break the GUI if the filename is too long. So then maybe change "config.ini" to the generic wording "active configuration file".