Skip to content

Troubleshooting ​

Build ​

SymptomCheckAction
no device repository-D or UNIXNU_DEVICEPass the device repository
has no board.tomlDevice repository layoutCreate board.toml
is an EXAMPLE device repository[board] exampleCopy the sample and set a real name
no configurationout/<board>/.configRun unixnu defconfig NAME
no Mu-Silicium checkout--uefi pathPass a checkout with Resources/Scripts/mkbootimg.py
is not a Mu-Silicium checkoutPathPoint --uefi at the root of the checkout
no edk2 tree--edk2 or fetched edk2Run unixnu fetch or pass a Mu_Basecore tree
Missing archive in the kernel stepbuild/<component>/lib<Name>.aRun the device archive scripts
kernelcache not found--kernelcache or IPSWFetch the IPSW or pass the file
does not match the kernelcache[kernel.prelink] kernelcache_sha256Use the pinned image
Firmware volume size mismatch[uefi_fd] sizeRebuild the firmware or correct the config
Payload larger than size_mib[payload] size_mibRaise the size or remove files
unsupported kernel argumentArgument charactersUse letters, digits, _, ., -
command line is ... bytesArgument countShorten the line to 1000 bytes

IPSW ​

SymptomCheckAction
this IPSW is ...Product, version, buildUse the image the board describes
no Erase build identityDevice class, chip ID, board IDCorrect the identity values
does not support range requestsRemote URLUse a server with range support or a local file
differs from the pinned sha256[ipsw.sha256]Use the pinned member or update the pin
expected exactly one arm64 sliceKernelcacheUse an ARM64 kernelcache

Boot ​

SymptomCheckAction
fastboot does not see the deviceDriver, cable, bootloader modeInstall the USB driver and reboot to bootloader
Image starts and resetsBoot image header, base and sizeCheck the Mu-Silicium config and BootShim flags
Firmware stallsRandom Silicium stallStart the same image again
No displayGOP driverUse console = "text" or a serial console
No menuConfiguration pathPlace unixnu.toml at \EFI\UniXNU\unixnu.toml
No boot entryPayload volumeCheck the FAT label, the entry path and the volume driver
Driver failedFirst failure reason in the menuFix the driver path or its dependencies
no loader protocol installedDarwinBoot in the firmware volumeAdd DarwinBoot to the FDS or the payload
loader revision 1 cannot accept kextsLoader revisionUse a revision 2 loader or remove the kexts
boot refused: ...; firmware retainedDarwinBoot logCheck the kernel, ADT, trust cache and placeholders
Kernel panics at entryPage tables, kernel window, boot argumentsUse the QEMU fixture and the boot progress log
Panic names a providerDevice tree node or driver archiveAdd the node or enable the driver
No root deviceUserdata image, UUID, capacityFlash the image, check the UUID and window offsets
Display assertion in userlandDisplay provider and boot argumentsCheck the display driver and the focus arguments

Logs ​

SourceLocation
Buildout/<board>/logs/
Boot managerSerial console, UNIXNU: lines
LoaderSerial console, DARWINBOOT: lines
KernelSerial console
QEMU--log file and the .clean.log companion

Inspect a report ​

sh
jq . out/<board>/boot/boot.json
jq . out/<board>/payload/payload.json
jq . out/<board>/userdata/userdata-root.json

The reports record the input hashes. Compare them with the files you supplied.

Module origin ​

sh
./unixnu status

The output lists every module and its origin. A local module is marked and reported as not pinned.

Next steps ​

Released under the BSD-2-Clause-Patent License.