MinnowBoard MAX單板UEFI BIOS代碼編譯教程

此教程用于UEFI EDK2代碼的研究,雖然EDK2框架代碼開源,但是都是在模擬器上跑仿真,差點意思,搞過嵌入式的應該有一個共識,是騾子是馬,你得把板子點亮啊。MinnowBoard MAX單板是intel10多年前發布的軟硬件全部開源的x86單板,UEFI BIOS部分代碼也是開源的(部分和芯片配置相關的代碼是以二進制文件的形式發布),可以用于在實際單板上調試學習EDK2代碼。

簡單介紹下探索過程,UEFI BIOS代碼編譯的整個流程斷斷續續耗費我三個多月,是一場心力交瘁持久戰。
第一階段,EDK2 platform上是有MinnowBoard MAX單板UEFI BIOS代碼工程的,但是更新停止在2019年,后面無人維護了。下載最新EDK2 工程,按照頁面編譯步驟來,一堆報錯。估計因為沒人維護了,各種模塊的更新根本沒人去考慮驗證這塊板子。前面我各種嘗試修改無果,然后我嘗試把代碼回退到2019年8月,進行編譯,各種編譯工具對應回退,還是不行。沒辦法我還是基于最新的EDK2代碼進行修改PlatformPkgX64.dsc文件,修改過程中,我還發現一個老六在修改DEBUG函數標識時,使用整體字符串查找替代法,還通過了review,把一些函數都給破壞了。經過一堆修改后,編譯成功了,得到了想要的VLV.fd文件,通過bios編程燒寫器燒錄到板子上,啟動一半報錯卡住了,顯示HOB SMMbase地址找不到,找到源碼對應位置,研究幾天無果放棄,畢竟不是業內人士。請添加圖片描述
第二階段,intel官網上其實是有發布minnowboard max單板uefi固件的,時間是2018年11月份。根據這個線索回退代碼到2018年11月,發現缺少二進制包,但是這個包的下載鏈接失效了,百度、必應、谷歌找了一圈也沒發現。但是功夫不負有心人,機緣巧合之下我通過edk2-platform的提交記錄,突然發現一個人的倉庫里有2018年編譯uefi固件的全套代碼,趕緊下載進行編譯驗證,燒錄到單板,成功啟動到uefi shell界面。
在這里插入圖片描述
MinnowBoard MAX單板資料:
http://minnowboard.outof.biz/
https://www.intel.com/content/www/us/en/developer/articles/tool/minnowboard-maxturbot-uefi-firmware.html

EDK2 代碼工程:https://github.com/Laurie0131/PlatformBuildLab_FW

具體步驟待完成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76457.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76457.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76457.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI Transformers 架構體系 權重文件類型 safeterson和gguf格式轉換【2-1】

模型權重文件:存儲訓練好的模型參數,也就是w和b,是模型推理和微調的基礎 .pt、.ckpt、.safetensors、gguf 配置文件:確保模型架構的一致性,使得權重文件能夠正確加載 config.json、generation_config.json 詞匯表文件:…

K8S微服務部署及模擬故障觀測

概述 本文介紹了如何在 Kubernetes (K8S) 集群中部署微服務,并模擬常見的故障場景(如 Pod 故障、節點故障、網絡故障)以測試系統的容錯能力。通過本實驗,了解 Kubernetes 的自動恢復機制以及如何通過監控和日志分析快速定位和解決…

OpenStack Yoga版安裝筆記(23)Swift安裝

一、官方文檔 Object Storage Install Guide — Swift 2.29.3.dev5 documentation 二、環境準備 之前的實驗,已經有controller, compute1, block1節點,并已經完成Keystone、Glance、Nova、Neutron、Cinder等主要OpenStack Service的安裝。 此處新增…

06-libVLC的視頻播放器:推流RTMP

創建媒體對象 libvlc_media_t* m = libvlc_media_new_path(m_pInstance, inputPath.toStdString().c_str()); if (!m) return -1; // 創建失敗返回錯誤 libvlc_media_new_path:根據文件路徑創建媒體對象。注意:toStdString().c_str() 在Qt中可能存在臨時字符串析構問題,建議…

少兒編程路線規劃

少兒編程路線規劃—一文寫明白 現在有很多的編程機構,五花八門的。我有幸也見識到了大家的營銷策略。這些策略有黑有白吧,從業幾年,沉淀下來一些客戶角度的干貨,分享給大家。 如果是想以很遠很遠的就業為目的,畢業就…

ios app的ipa文件提交最簡單的方法

ipa文件是ios的app打包后生成的二級制文件,在上架app store connect或做testflight測試的時候,它提示我們需要使用xcode、transporter或xcode命令行等方式來上傳。 而xcode、transporter或xcode命令行的安裝都需要使用mac電腦,假如沒有mac電…

怎么查看LLM Transformer 架構進行并行計算和設備映射

怎么查看LLM Transformer 架構進行并行計算和設備映射 num_hidden_layers = model.config.num_hidden_layers print(num_hidden_layers) print(model) LLM(大語言模型)通常是基于 Transformer 架構 構建的,它由多個模塊化的層(Layer)堆疊組成,每個層都有其獨特的作用。…

微信小程序獲得當前城市,獲得當前天氣

// // 獲取用戶當前所在城市 // wx.getLocation({// type: wgs84, // 默認為 wgs84 返回 gps 坐標,gcj02 返回可用于 wx.openLocation 的坐標 // success: function(res) {// console.log(獲取位置成功, res); // // 使用騰訊地圖API進行逆地址解析 // wx…

美國國土安全部終止資助,CVE漏洞數據庫項目面臨停擺危機

(圖片來源:Jerome460 / Shutterstock) 25年漏洞追蹤體系即將終結 美國非營利研發組織MITRE宣布,其與美國國土安全部(DHS)簽訂的"通用漏洞披露(CVE)"數據庫維護合同將于2…

Kafka下載和使用(Windows版)

Apache Kafka 是一個高吞吐量的分布式消息系統,廣泛應用于日志收集、實時流處理等場景。本文將以 Windows 系統為例,詳細介紹 Kafka 的安裝和使用方法。 一、安裝方式 在 Windows 系統上運行 Apache Kafka,通常有兩種方式: 1.W…

RBAC的使用

1、簡述RBAC的作用及工作流程 Rbac基于角色訪問控制,用于管理用戶對集群資源的訪問權限,通過定義角色和綁定規則,將用戶與權限進行關聯,作用:權限精細化管理,操作便捷與統一管理,動態調整權限。…

【2025年泰迪杯數據挖掘挑戰賽】A題 數據分析+問題建模與求解+Python代碼直接分享

目錄 2025年泰迪杯數據挖掘挑戰賽A題完整論文:建模與求解Python代碼1問題一的思路與求解1.1 問題一的思路1.1.1對統計數據進行必要說明:1.1.2統計流程:1.1.3特殊情況的考慮: 1.2 問題一的求解1.2.1代碼實現1.2.2 問題一結果代碼分…

Ethan獨立開發產品日報 | 2025-04-18

1. Wiza Monitor 跟蹤工作變動,并獲取 Slack 和電子郵件通知。 Wiza Monitor是一款工作變動跟蹤工具,可以實時追蹤客戶和潛在客戶的職位變動,您還能通過電子郵件和Slack接收提醒,并自動更新您的客戶關系管理系統(CRM…

【工具變量】A股上市公司信息披露質量KV指數測算數據集(含do代碼 1991-2024年)

KV指數(Key Value Index)作為評估信息披露質量的關鍵指標,在證券市場,尤其是A股市場上市公司信息披露監管與評估中占據重要地位。該指數通過系統化、定量化的方法,對企業發布的信息進行全面剖析與打分,精準…

【java實現+4種變體完整例子】排序算法中【基數排序】的詳細解析,包含基礎實現、常見變體的完整代碼示例,以及各變體的對比表格

基數排序詳解及代碼示例 基數排序原理 基數排序通過處理每一位數字進行排序,分為 LSD(最低位優先) 和 MSD(最高位優先) 兩種方式。核心步驟: 確定最大值:計算數組中最大數的位數。逐位排序&am…

服務治理-服務發現和負載均衡

第一步:引入依賴 第二步:配置地址 改寫購物車服務的代碼 負載均衡成功實現。 假如有一個服務掛了,比如說8081,cart-service能不能正常訪問,感知到。 再重新啟動8081端口。 不管服務宕機也好,還是服務剛啟動…

專題十六:虛擬路由冗余協議——VRRP

一、VRRP簡介 VRRP(Virtual Router Redundancy Protocol)虛擬路由冗余協議通過把幾臺設備聯合組成一臺虛擬的設備,使用一定的機制保證當主機的下一跳設備出現故障時,及時將業務切換到備份設備,從而保持通訊的連續性和…

UE5 關卡序列

文章目錄 介紹創建一個關卡序列編輯動畫添加一個物體編輯動畫時間軸顯示秒而不是幀時間軸跳轉到一個確定的時間時間軸的顯示范圍更改關鍵幀的動畫插值方式操作多個關鍵幀 播放動畫 介紹 類似于Unity的Animation動畫,可以用來錄制場景中物體的動畫 創建一個關卡序列…

openbmb/MiniCPM-V-2_6 和 AIDC-AI/Ovis2-1B 的網絡結構體對比

openbmb/MiniCPM-V-2_6和Ovis2作為多模態大模型,在架構設計上既有共性也有顯著差異。以下從核心模塊、技術實現和任務適配三個維度展開對比分析: 一、核心模塊架構對比 1. 視覺編碼器 MiniCPM-V-2_6: 架構:基于SigLIP-400M輕量級…

鴻蒙學習筆記(5)-HTTP請求數據

一、Http請求數據 http模塊是鴻蒙內置的一個模塊,提供了網絡請求的能力。不需要再寫比較原始的AJAS代碼。 ps:在項目中如果要訪問網絡資源,不管是圖片文件還是網絡請求,必須給項目開放權限。 (1)網絡連接方式 HTTP數…