前一段时间在真机上调试Redfish,自己一直想把模拟仿真给调试出来,想通过debug看看全部的流程细节,有空了也能自己玩玩,在github上RedfishPkg的页面有具体的说明,想看的移步:
edk2-staging/RedfishPkg at edk2-redfish-client · tianocore/edk2-staging · GitHub
在这个页面下也说明了模拟仿真环境的搭建,我在该基础上可以说已经将大部分的步骤已经做完,但是。。。但是关于网络通信的问题一直懂的不是很多,研究代码和模拟器半天,最后暂时放弃了,如果有想法且能最终调试出来的,可以评论或者私信。
Redfish,替代IPMI的存在,在BIOS端主要包含两个Pkg,RedfishPkg和RedfishClientPkg,它的原理另出一篇文章再讲,这一篇主要讲解搭建模拟仿真环境,主要有以下步骤:
1、搭建UEFI编译环境,Windows下的,很多人搭建不成功主要是VS程序安装的时候没有选择对开发包,网上很多可以参考
2、更改BaseTool,主要添加Win32的文件夹
3、按照UEFI开发探索97 – EDK2模拟器搭建网络环境_emulatorpkg ifconfig_luobing4365的博客-CSDN博客文章搭建网络环境,这里注意,EDKII的EmulatorPkg编译后shell下使用ifconfig -l是什么也没有的,在添加SnpNt32Io.dll文件后,Winpcap必须安装,这样进入shell后才能进行网络配置,配置好后在ping过程中发现使用WIFI,ping不成功,ping我的虚拟机反而没问题。
4、导入RedfishPkg和RedfishClientPkg,这里我用的是stable/202011,最后将最新的redfish有关的代码导入这个版本里面,编译调试正常。
5、配置模拟服务端,这个服务端的代码在RedfishClientPkg下Tools文件下Redfish-Profile-Simulator,在Windows下最好安装python3.1版本的,记得勾选加入PATH,安装完成后,使用CMD,输入python,出现版本意味安装正常,然后分别pip intsall
Werkzeug==0.16
Jinja2==3.0.3
itsdangerous==2.0.1
flask==1.1.1
pyOpenSSL
之后使用python redfishProfileSimulator.py -H 127.0.0.1便能正常运行,通过postman访问http://127.0.0.1:5000/redish/v1正常访问
6、开始配置host端IP和服务端IP,这里开始出现问题,按照说明是如下配置,可是这个仿真的服务端根本就配置不了192.168,如果这样配还要导入证书以及秘钥。
除了第6点,其他问题已解决,代码我放在了百度网盘,想要调试的可以调试看看:
链接:https://pan.baidu.com/s/1oR6OWjzYppi0-LlUUevb4w
提取码:42ip