62 lines
1.8 KiB
Markdown
62 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**.
|