这次介绍一个通过驱动程序旋转屏幕的项目,地址是https://github.com/apop2/GopRotate 。项目的简介是“A EDK2 Package that supplies a UEFI driver that will bind on top of Graphics Output Devices and rotate any BLT operations by 0, 90, 180 or 270 degrees.”。
本文并不打算做原理上的分析,只是介绍如何编译和实验。
实验环境是 UDK2014
1.在 C:\EDK\Nt32Pkg\Nt32Pkg.dsc 文件的 [Components] 段中添加下面的内容
MdeModulePkg/Application/VariableInfo/VariableInfo.inf MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDxe.inf ##LABZDebug_Start GopRotatePkg/GopRotate/GopRotate.inf ##LABZDebug_End ################################################################################################### # # BuildOptions Section - Define the module specific tool chain flags that should be used as # the default flags for a module. These flags are appended to any
2.将 GopRotatePkg 目录拷贝到你UDK 的根目录下 例如: C:\EDK\
3.使用 Build 命令编译 NT32
4.使用 build run 运行模拟器
至此,驱动程序已经编译完成。下面要编译使用这个驱动的 Application。
5.将GopRot 按照一个普通的Application编译
编译完成后可以进行实验了。
6.使用 load goprotate.efi 加载驱动
7.输入 goprot.efi 2 进行测试。
运行之前的屏幕是这样的:
运行之后屏幕就变成这样了
完整的代码下载
前面提到的驱动项目完整代码
GopRotatePkg
调用驱动的应用程序代码
GopRot