青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

string

string
posts - 27, comments - 177, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

UEFI實(shí)戰(zhàn)(1)

Posted on 2011-10-02 01:46 djx_zh 閱讀(18767) 評(píng)論(16)  編輯 收藏 引用
本篇為UEFI實(shí)戰(zhàn)系列第一部分。
UEFI實(shí)戰(zhàn)前10個(gè)部分計(jì)劃如下:
UEFI 實(shí)戰(zhàn)(1) 開發(fā)環(huán)境 
講述如何配置開發(fā)環(huán)境。
UEFI 實(shí)戰(zhàn)(2)  HelloWorld
講述dsc, inf文件的格式, application常用的變量,數(shù)據(jù)結(jié)構(gòu)和函數(shù)。
UEFI 實(shí)戰(zhàn)(3) C++
講述如何用C++開發(fā)UEFI程序。
UEFI 實(shí)戰(zhàn)(4) protocol
講述UEFI中protocol的概念
UEFI實(shí)戰(zhàn)(5) driver
講述UEFI中driver模型
UEFI實(shí)戰(zhàn)(6) 文件讀寫
UEFI實(shí)戰(zhàn)(7) Hii interface 之 Form
UEFI實(shí)戰(zhàn)(8) Hii interface 之 String 和Font
UEFI實(shí)戰(zhàn)(9) GUI
UEFI實(shí)戰(zhàn)(10) Network

UEFI 實(shí)戰(zhàn)(1)
配置開發(fā)環(huán)境
1. 下載 Windows SDK
2. 下載EDK2 
3. 打開visual studio 2008 command prompt 
    cd EDK2
    edksetup.bat
4. 編輯Conf\taget.txt, 修改 編譯工具TOOL_CHAIN_TAG        為
   TOOL_CHAIN_TAG        = VS2008x86
5. build
    build命令有兩個(gè)參數(shù), -a 和-p, -a 用來選擇平臺(tái)(IA32 X64,...) -p用來選擇要編譯的package,默認(rèn)的package是Nt32Pkg, 所以build命令與 build -a IA32 -p Nt32Pkg\Nt32Pkg.dsc 等同,用來編譯UEFI模擬器。
6. build run
    與build -a IA32 -p Nt32Pkg\Nt32Pkg.dsc run 命令等同,用來運(yùn)行UEFI模擬器。
 
制作UEFI USB啟動(dòng)盤
分兩種情況,如果目標(biāo)平臺(tái)是UEFI平臺(tái),按如下步驟來做:
1。 格式化U盤為FAT(FAT,FAT16, FAT32)格式 
2。 在U盤上建立目錄 efi\boot
3。 將efi的應(yīng)用程序 copy到 efi\boot 目錄,并改名為bootx64.efi 或者bootia32.efi。
      因?yàn)閁EFI的啟動(dòng)文件是FAT盤內(nèi)efi\boot目錄里的bootx64.efi 或bootia32.efi, 與legacy bios需要MBR來引導(dǎo)OS不同。
如果目標(biāo)平臺(tái)是legacy bios, 需要在U盤中制作MBR和引導(dǎo)文件, 按如下步驟來做:
1。 編譯duet package
      build -a IA32 -p DuetPkg\DuetPkgIa32.dsc 或者
      build -a X64 -p DuetPkg\DuetPkgX64.dsc
2。 生成引導(dǎo)文件
      cd DuetPkg
      postbuild.bat Ia32 或者 postbuild.bat X64
3。 插入U(xiǎn)盤,假設(shè)J:是U盤, 向U盤寫入MBR
      createbootdisk usb J: FAT32 IA32 或者 createbootdisk usb J: FAT32 X64     
4。拔出并重新插入U(xiǎn)盤, 向U盤copy UEFI文件
      createbootdisk usb J: FAT32 IA32 step2 或者 createbootdisk usb J: FAT32 X64 step2
      此命令向U盤根目錄copy了efildr20, 該文件用于引導(dǎo)系統(tǒng)進(jìn)入U(xiǎn)EFI環(huán)境,并向efi\boot目錄copy了引導(dǎo)文件bootia32.efi或bootx64.efi
接下來就可以用U盤來運(yùn)行UEFI了。
 
如何Debug
UEFI有兩種debug方式,一是在模擬環(huán)境Nt32Pkg下debug,另一種是通過串口調(diào)試真實(shí)環(huán)境中的UEFI程序。我從來沒見過傳說中的利用串口調(diào)試,所以下面只能說說Nt32Pkg下的debug。
在需要調(diào)試的代碼前面加入_asm int 3; 編譯,然后再模擬環(huán)境中(Nt32Pkg)中運(yùn)行該程序,當(dāng)模擬器執(zhí)行到int 3;指令時(shí),會(huì)彈出對(duì)話框,然后就可以調(diào)試了。

Feedback

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2011-12-05 14:15 by 王子
您好,看到你寫UEFI,知道你是這方面的專家,我這里有個(gè)問題需要請(qǐng)教 :怎么得到GPT分區(qū)表? 怎么讀寫里面的數(shù)據(jù)? 能用vs實(shí)現(xiàn)嗎?

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2011-12-06 00:00 by djx_zh
UEFI會(huì)為每一個(gè)分區(qū)創(chuàng)建一個(gè)controller, 也會(huì)為每個(gè)硬盤創(chuàng)建一個(gè)controller. 通過安裝到controller上的DiskIo protocol可以讀寫每一個(gè)扇區(qū)。
每個(gè)controller上有DevicePath protocol, 你可以通過DevicePath判斷該controller是一個(gè)扇區(qū),還是一個(gè)硬盤。扇區(qū)的DevicePath的的最后一個(gè)有效Node是HD(SPEC 9.3.6.1)。
當(dāng)你獲得了GPT硬盤的DiskIo之后,可以利用DiskIo讀第一個(gè)扇區(qū)(第0個(gè)是MBR或者Protective MBR)得到GPT header,第2~33分區(qū)存放的是EFI_PARTITION_ENTRY。 GPT用到的數(shù)據(jù)結(jié)構(gòu)在MdePkg/Include/Uefi/UefiGpt.h中,GPT的格式可以參考UEFI SPEC 第5章。
可以用VS實(shí)現(xiàn)。

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2012-03-09 14:54 by ningle
very very good,希望博主能把2、5、7、9、10部分也一同貼上來,特別第2,5部分,因?yàn)槲覜]有入門了,這方面的中文資料太少了,難得遇到博主這么精通的

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2012-03-12 07:20 by djx_zh
@ningle
謝謝關(guān)注。這幾部分還沒寫,我盡快寫吧。如果看到寫的有不準(zhǔn)確的地方,也請(qǐng)告訴我啊。

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2012-10-04 15:05 by zboydong
博主能不能寫一篇關(guān)于duet的

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2013-01-24 08:00 by howard
Hi 博主,你的文章讓我受益匪淺!我按照你的流程做UEFI 的USB啟動(dòng)盤,現(xiàn)在boot 成功了,可是發(fā)現(xiàn)shell 少了一些commands, 比如devices.之前我在OS上直接build run就可以看到那些指令,這是為什么?請(qǐng)博主指點(diǎn)!

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2013-01-24 09:24 by howard
補(bǔ)充下,我的目標(biāo)平臺(tái)是legacy bios

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2013-01-24 22:15 by djxzh
@howard
你用的是EDK2預(yù)先編譯好的shell,這個(gè)shell比較老。 你可以自己編譯ShellPKg,然后用shell.efi 覆蓋掉U盤上的bootx64.efi

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2013-01-25 06:23 by howard
贊! 現(xiàn)在可以了??墒荱EFI找不到設(shè)備,只能看到這個(gè)USB盤,其他attached的drives 和Pcie device 都看不到,是device驅(qū)動(dòng)不對(duì)嗎?

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2013-01-25 22:36 by djxzh
@howard
不知你想找什么設(shè)備呢? EDK2 只提供了有限的幾種device driver, 部分網(wǎng)卡的driver可以到intel網(wǎng)站上下載。

# re: UEFI實(shí)戰(zhàn)(1)[未登錄]  回復(fù)  更多評(píng)論   

2013-11-12 15:15 by Jerry
樓主是這方面的專家,我想問一下樓主,GPT磁盤中有MBR中所謂的活動(dòng)分區(qū)概念嗎,GPT磁盤的系統(tǒng)啟動(dòng)和MBR磁盤的啟動(dòng)有什么區(qū)別嗎,GPT不是尋找活動(dòng)分區(qū)來啟動(dòng)操作系統(tǒng)嗎?謝謝樓主!

# re: UEFI實(shí)戰(zhàn)(1)[未登錄]  回復(fù)  更多評(píng)論   

2013-11-17 23:12 by djx_zh
@Jerry
UEFI 完成硬件初始化后,會(huì)遍歷GPT硬盤中的FAT分區(qū),從FAT分區(qū)找到efi/boot/bootia32.efi 或efi/boot/bootx64.efi, 操作系統(tǒng)的啟動(dòng)由bootx64.efi或bootia32.efi完成。
MBR硬盤啟動(dòng)代碼以二進(jìn)制形式放在活動(dòng)分區(qū)指定的地方。GPT硬盤的啟動(dòng)代碼是完整的應(yīng)用程序,存放在啟動(dòng)分區(qū)即FAT分區(qū)的efi/boot目錄下

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2015-10-21 13:44 by 馬天橫
我通過 build -a X64 -p Nt32Pkg\Nt32Pkg.dsc 命令創(chuàng)建但是出錯(cuò)了!錯(cuò)誤信息是:MSVCRTD.lib(crtexe.obj):error LNK2001:無法解析的外部符號(hào)__imp_EncodePointer

# re: UEFI實(shí)戰(zhàn)(1)[未登錄]  回復(fù)  更多評(píng)論   

2015-10-21 21:59 by djx_zh
@馬天橫
Nt32Pkg只支持-a IA32

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2015-12-21 12:20 by daisy
為什么我build x64就成功了~build -p NT32Pkg\NT32Pkg.dsc -a X64

# re: UEFI實(shí)戰(zhàn)(1)  回復(fù)  更多評(píng)論   

2016-03-19 17:59 by yayake
我運(yùn)行 build命令沒報(bào)錯(cuò),可運(yùn)行 build -a X64 -p Nt32Pkg\Nt32Pkg.dsc 命令時(shí),出現(xiàn)了兩個(gè)uefi模擬器的窗口,而且shell階段打印了大量的亂碼,之后直接卡死了, 我用的edk版本是“UDK2015.Complete.MyWorkSpace”。

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲免费在线| 亚洲精品视频在线观看网站| 亚洲大胆av| 欧美三级电影精品| 久久精品网址| 久久久久久999| 亚洲国产精品欧美一二99| 午夜精品99久久免费| 这里只有精品在线播放| 亚洲精品视频中文字幕| 久久久久久久综合| 欧美久久久久| 亚洲视频成人| 亚洲一区二区三区视频播放| 亚洲综合成人婷婷小说| 久久综合久久88| 老司机免费视频久久 | 欧美日产在线观看| 欧美日一区二区在线观看 | 欧美一区免费视频| 国产午夜精品美女毛片视频| 激情综合电影网| 99re6这里只有精品| 亚洲资源在线观看| 久久久视频精品| 一区二区三区黄色| 久久久在线视频| 国产精品自拍在线| 一区二区激情| 每日更新成人在线视频| 一区二区三区四区国产| 久久精品亚洲乱码伦伦中文| 欧美日本一区二区高清播放视频| 国产欧美日韩亚洲一区二区三区 | 狠狠色丁香久久婷婷综合丁香| 亚洲日本理论电影| 亚洲男女毛片无遮挡| 久久综合九色欧美综合狠狠| 午夜在线播放视频欧美| 久久人人97超碰人人澡爱香蕉| 欧美日韩1区| 在线电影一区| 久久激情五月婷婷| 亚洲图片在线| 久久久人人人| 亚洲精品国久久99热| 亚洲专区在线| 亚洲欧洲99久久| 麻豆精品精品国产自在97香蕉| 国产精品乱人伦一区二区| 亚洲另类在线视频| 亚洲第一色在线| 久久激情五月丁香伊人| 国产精品久久激情| 这里只有精品视频| aa级大片欧美三级| 欧美理论在线播放| 99伊人成综合| 亚洲精品乱码久久久久久蜜桃麻豆| 老司机精品视频一区二区三区| 国产美女精品免费电影| 亚洲欧美色婷婷| 亚洲欧美日本国产有色| 国产精品亚洲人在线观看| 香蕉久久夜色精品| 亚洲欧美激情精品一区二区| 国产精品毛片va一区二区三区| 免费在线欧美黄色| 免费中文日韩| 亚洲一区精品视频| 999在线观看精品免费不卡网站| 国产精品r级在线| 欧美中文字幕精品| 久久精品国产一区二区三| 亚洲一区二区三区777| 在线一区二区三区四区五区| 欧美三区美女| 裸体素人女欧美日韩| 亚洲欧美中文在线视频| 国产精品专区第二| 久久久久在线观看| 久久婷婷国产综合国色天香| 亚洲欧洲综合另类| 亚洲精品少妇网址| 国产精品激情电影| 久久亚裔精品欧美| 欧美精品亚洲精品| 欧美一级专区免费大片| 欧美在线中文字幕| 亚洲国产精品久久人人爱蜜臀| 最新成人av网站| 国产精品啊v在线| 久久人91精品久久久久久不卡 | 亚洲第一黄网| 91久久久亚洲精品| 国产精品一区二区三区免费观看| 久久天天狠狠| 欧美激情在线狂野欧美精品| 亚洲欧美日韩专区| 免费成人网www| 欧美影院一区| 欧美巨乳在线| 欧美3dxxxxhd| 国产伦理一区| 日韩视频在线你懂得| 激情欧美一区二区三区在线观看| 亚洲精品乱码久久久久| 在线精品国产成人综合| 亚洲一区二区免费视频| 亚洲大胆女人| 欧美一级午夜免费电影| 亚洲性感美女99在线| 美女视频一区免费观看| 欧美在线播放一区| 欧美日韩午夜| 欧美激情一区二区三区在线 | 亚洲女性喷水在线观看一区| 亚洲黄色小视频| 性色av一区二区三区红粉影视| 亚洲三级观看| 99视频超级精品| 欧美一级播放| 欧美激情五月| 久热精品视频在线| 国产精品久久久久三级| 欧美激情1区2区| 国内偷自视频区视频综合| 亚洲一区二区视频在线| 一本久道久久久| 欧美大胆a视频| 欧美jizzhd精品欧美巨大免费| 国产一区二区精品久久99| 亚洲淫性视频| 午夜精品久久久久99热蜜桃导演| 欧美久久精品午夜青青大伊人| 亚洲高清不卡在线| 亚洲国产天堂网精品网站| 久久精品综合一区| 久久久不卡网国产精品一区| 国产精品一区=区| 亚洲欧美视频在线观看视频| 亚洲欧美区自拍先锋| 国产精品成人免费精品自在线观看| 日韩视频免费在线观看| 亚洲综合精品一区二区| 国产精品乱码妇女bbbb| 亚洲一区视频| 久久人人97超碰精品888| 亚洲电影在线看| 欧美国产综合视频| 99国内精品久久| 午夜精品999| 狠狠88综合久久久久综合网| 久久综合精品国产一区二区三区| 亚洲国产国产亚洲一二三| 夜夜嗨av一区二区三区四区| 欧美性感一类影片在线播放| 亚洲主播在线观看| 美女脱光内衣内裤视频久久网站| 在线观看欧美黄色| 欧美另类视频在线| 亚洲欧美日韩国产成人精品影院| 久久亚洲精品一区| 亚洲精品乱码久久久久久久久 | 欧美精品日韩一区| 亚洲视频电影在线| 久久久亚洲国产天美传媒修理工| 在线观看成人网| 欧美性猛交xxxx乱大交退制版| 亚洲欧美日韩网| 亚洲大胆美女视频| 午夜免费日韩视频| 亚洲国产成人精品久久久国产成人一区 | 在线电影国产精品| 欧美性大战久久久久| 久久人人爽爽爽人久久久| 亚洲毛片一区二区| 久久综合图片| 亚洲欧美美女| 99re66热这里只有精品4| 国产日韩综合一区二区性色av| 欧美高清在线观看| 欧美在线在线| 亚洲午夜免费视频| 亚洲人久久久| 国产日韩在线一区二区三区| 欧美精品在线播放| 久久亚洲国产精品一区二区 | 欧美高清视频免费观看| 亚洲影院色无极综合| 91久久精品网| 免费一区视频| 久久精品国产免费看久久精品| 在线亚洲成人| 亚洲精品1234| 亚洲成人资源网| 精品成人国产| 韩日成人在线| 国内精品久久久久久久果冻传媒| 国产精品午夜国产小视频|