====== Disconnecting EFI drivers ====== This is notes that might help with debugging issues possibly caused by EFI drivers * Create a disk image with a FAT32 filesystem with [[https://github.com/tianocore/edk2/raw/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi|UEFI full shell]], saved as ''\EFI\Boot\BootX64.efi'' * And something to test the scenario with, //(we will assume ''ipxe.efi'', but change for your scenario)// and save it as ''/ipxe.efi'' on the disk * Boot the troublesome hardware with the just created disk image * You should get to a UEFI shell prompt. If you then type ''fs0:'' and ''ls'' you should see your FAT filesystem with ''ipxe.efi'' * If not use ''map'' to find different ''fsX:'' and try them until you find your filesystem. * Reproduce the issue by running ''ipxe.efi'' Get in to the shell again * use ''drivers -b'' and ''devices -b'' to see a list of handles complete with some kind of textual description //''-b'' is used to get one screen of text at a time// * Find something plausible, try running ''disconnect '' * where '''' is the 2- or 3-digit hex value of the handle * and then retry running ''ipxe.efi'' (from the shell, without rebooting first) With Hyper-V as an example we might look for something like: "Hyper-V", "VMBus", "VmbusDxe", "NetVSC", "RNDIS", etc And then looking at ''devices'' for where this is connected to, and try to disconnect it from there === Alternatives to ''-b'' on long output === * Most efi shell commands supports ''-b'' to get paged output * Most of the time the output is also available on any connected serial port. * Or pipe output to a file such as ''drivers > drivers.txt'' and then use the editor with ''edit drivers.txt'' to show it (this requires a writable filesystem)