之前的文章《UEFI内核导读》Graphics Driver介绍了UEFI环境如何在显示设备上输出字符或图形,Graphics Output protocol为输出提供了最底层的硬件驱动支持。但是有时候我们由于机构或硬件设计的原因需要做一些定制的动作比如:机构设计导致用户手持的方向跟屏幕物理方向有90°、180°或270°偏差怎么办?这个时候就需要对屏幕进行旋转。
如何旋转屏幕一般是由驱动来实现,在UEFI系统当中就需要由GOP驱动来实现,但是一般来说GOP是由silicon厂商来提供并不会给到ODM厂商修改的机会,虽然说有些硬件平台会在GOP的VBT里面提供旋转的选项,但是有时候并不能完全满足系统设计的要求(比如修改VBT会影响到OS下显卡驱动的行为等等)这个时候我们就需要使用纯软件的行为来从最底层来实现对屏幕的旋转。
UEFI环境需要用到显示的场景简单来说大概由几个组成:
场景A.POST信息,包括开机时屏幕显示的字符串
场景B.POST Logo,包括开机时屏幕显示的OEM图片
场景C.BIOS Setup,包括BIOS设置界面,图形模式会文本模式
场景D.OS加装界面,包括BGRT logo界面
场景E.UEFI Shell界面&