EDK Shell使用简介

Shell提供了丰富的内部命令。
可以分为几大类:调试(**Debug1),驱动(Driver1),网路(NetWork1),安装(Install1),Level1Level2Level3**

帮助文档

  1. > help # 列出所有命令
  2. > help command # 列出某个命令说明

命令行参数

命令行参数 意思 命令行参数 意义
-b,-break 输出信息分屏显示 -t,-terse 用简洁格式输出信息
-q,-quit 不输出任何信息 -v,-verbose 输出辅助信息
-sfo 用标准格式输出 -? 输出帮助信息

pci信息

pci 命令显示所有pci设备
pci -i 00 00 00 -s 0 -b
-b 输出分屏
-i 选择设备
-s 显示SEG信息

硬盘信息

image.png
map 显示盘符信息,FS0: 进入到之前绑定的 app.disk中

  1. sudo qemu-system-x86_64 -bios ./Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd -debugcon \
  2. file:debug.log -global isa-debugcon.iobase=0x402 \
  3. -serial file:serial.log -hda app.disk -m 512 -enable-kvm

调试命令

调试设备的相关命令
调试设备的相关指令主要用于查询,读取或写设备。

Dmem命令用于查看内存或设备内存,指令如下:

  • Dmem [-b] [adress] [size] [-MMIO] 其中address,size都是十六进制,-MMIO指定地址为设备内存。
  • 不带参数的dmem将会输出EFI系统表

Mm命令用于查看或修改MEM(系统内存),MMIO(设备内存),IO(寄存器),PCI(PCI配置空间)和PCIE(PCIE配置空间)

命令如下:

  1. mm address [value] [-w 1|2|4|8] [-MEM| -MMIO | -IO|-PCI|-PCIE] [-n]
  2. address为地址,value为要写入的值,-w后跟访问宽度,-n表示非交互式模式,如果不指定-n,则该命令进入交互模式。