61 lines
1.8 KiB
Markdown
61 lines
1.8 KiB
Markdown
That error means your **WORKSPACE** points to a *different* edk2 tree:
|
||
|
||
```
|
||
/Users/artur/.dat/bin/recipes/edk2/edk2
|
||
```
|
||
|
||
so `build` is looking for `ShellPkg/.../KeyTool.inf` **there**, not in `~/projs/edk2`.
|
||
|
||
Fix by resetting your env and sourcing `edksetup.sh` from the repo you actually want to build.
|
||
|
||
## Do this exactly
|
||
|
||
```bash
|
||
# 0) Go to the edk2 you want to use
|
||
cd ~/projs/edk2
|
||
git rev-parse --show-toplevel # should print /Users/artur/projs/edk2
|
||
|
||
# 1) Clear any stale EDK2 env from previous shells
|
||
unset WORKSPACE EDK_TOOLS_PATH PACKAGES_PATH
|
||
|
||
# 2) Rebuild BaseTools (with your LLVM/lld PATH still set like earlier)
|
||
make -C BaseTools -j
|
||
|
||
# 3) Reset Conf inside THIS tree and re-source
|
||
rm -f Conf/target.txt Conf/tools_def.txt
|
||
source ./edksetup.sh
|
||
|
||
# Sanity checks — these must point into ~/projs/edk2
|
||
echo "WORKSPACE=$WORKSPACE"
|
||
echo "EDK_TOOLS_PATH=$EDK_TOOLS_PATH"
|
||
test -f "$WORKSPACE/ShellPkg/Application/KeyTools/KeyTool/KeyTool.inf" && echo "KeyTool found"
|
||
|
||
# 4) Build KeyTool for AArch64 with clang/lld
|
||
build -a AARCH64 -t CLANGDWARF \
|
||
-p ShellPkg/ShellPkg.dsc \
|
||
-m ShellPkg/Application/KeyTools/KeyTool/KeyTool.inf \
|
||
-b RELEASE
|
||
```
|
||
|
||
### If you still see it picking the wrong path
|
||
|
||
You probably have these variables exported in your shell config. Force them for this shell:
|
||
|
||
```bash
|
||
export WORKSPACE="$PWD"
|
||
export EDK_TOOLS_PATH="$WORKSPACE/BaseTools"
|
||
export PACKAGES_PATH="$WORKSPACE"
|
||
source ./edksetup.sh
|
||
```
|
||
|
||
Then re-run the `build` command above.
|
||
|
||
### Where the binary will land
|
||
|
||
Typical output path (adjust for your build target):
|
||
|
||
```
|
||
Build/Shell/RELEASE_CLANGDWARF/AARCH64/ShellPkg/Application/KeyTools/KeyTool/KeyTool/OUTPUT/KeyTool.efi
|
||
```
|
||
|
||
Once you’ve got `KeyTool.efi`, mount it along with your `kek2023.cer` and `db2023.cer`, enroll **PK → KEK → db**, reboot into the firmware UI, and enable **Secure Boot**.
|