2012年11月2日 星期五
2012年10月29日 星期一
How To Build EDK & EDK II Environment In Easy Way
如何編譯EDK
(以D:\為例)
安裝Windows Driver Kit到C:\WINDDK\3790.1830
將Edk 1.06解壓縮到D:\
將EfiShell 1.06解壓縮到D:\Edk\Other\Maintained\Application\UefiShell資料夾下
修改D:\Edk\Sample\LocalTools.env 確認NASM與DDK路徑
編輯D:\Edk\Sample\Platform\Nt32\Build\Config.env
用系統管理完開啟命令提示字元
切換目錄到D:\Edk\Sample\Platform\Nt32
輸入SET EDK_SOURCE=D:\Edk
輸build編譯
編譯成功畫面
切換到D:\Edk\Sample\Platform\Nt32\uefi\IA32
輸入secmain.exe
如何編譯EFI_Toolkit
解壓縮EFI_Toolkit_2.0.0.1 至 D:\Edk\Sample\Platform
修改D:\Edk\Sample\Platform\EFI_Toolkit_2.0\build.cmd裡SDK_INSTALL_DIR路徑
輸入build
輸入nmake編譯
編譯完成畫面
輸出EFI檔在D:\Edk\Sample\Platform\EFI_Toolkit_2.0\build\em64t\bin
如果要編譯成其他檔案可以更改build.cmd裡的SDK_BUILD_ENV
想要決定編譯哪幾個檔案可以修改D:\Edk\Sample\Platform\EFI_Toolkit_2.0\apps\apps.mak
想要修改WINDDK路徑的話
D:\Edk\Sample\Platform\EFI_Toolkit_2.0\build\em64t\sdk.env
如何編譯EDKII
安裝完成後在你要的目錄,點右鍵SVN Checkout
系統管理員開啟命令提示字元
輸入edksetup.bat
因為我是用Visual Studio 2010
必須修改Conf\target.txt 裡的TOOL_CHAIN_TAG = 2010
再輸入Build就會編譯了
編譯完成畫面
直接輸入build run
或是執行D:\EDKII\edk2\Build\NT32\DEBUG_VS2010\IA32\secmain.exe
模擬器開啟畫面
這裡有說明EDK II各個Package的內容
如果要切換不同Package
可以修改Conf\target.txt裡的
ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc
2012年9月27日 星期四
如何開啟A20位址線 ?
Assembly code
In al, 0x92
Or al, 2
Out 0x92, al
Another way is to use the BIOS.
INT 15, 2401
mov ax, 0x2401
int 0x15
2012年9月26日 星期三
Legacy BIOS V.S. UEFI BIOS
Legacy BIOS | UEFI BIOS | |
Language | Interrupt | C (99%) |
Resource | InterruptHardcode Memory AccessHardcode I/O Access | Driver \ Protocols |
Processor | X86 16-bits | CPU Protected Mode (Flat Mode) |
Target | Binary Code | Removable Binary Drivers |
Expand | Hook Interrupt | Load Driver |
OS Bridge | ACPI | Run Time Driver Service |
3rd Party ISV & IHV | Bad for Support | Easy for Support and Multi-Platforms |
如何切換80 port Debug燈號 -> LPC or PCI ?
2011年9月28日 星期三
如何製作虛擬Floppy.img的GRUB開機介面
平台 : Ubuntu(Virtualbox) Windows7
工具 : Bochs
1.開啟終端機,創立一個資料夾,並進入該資料夾
2.製作Floppy.img (兩者皆可)
# dd if=/dev/zero of=Floppy.img bs=1024 count=1440
# dd if=/dev/zero of=Floppy.img bs=512 count=2880
3.格式化Floppy.img
# mkdosfs Floppy.img
4.建立一個讓Floppy.img可以掛在的目錄 floppy
# mkdir floppy
5.掛載Floppy.img
# mount –o loop Floppy.img floppy
6.來這裡抓GRUB原始檔
7. 解壓縮(用0.96)
# tar zxvf grub-0.96-i386-pc.tar.gz
8.複製GRUB目錄
# sudo cp –r grub-0.96-i386-pc/* floppy
9.卸載floppy
# sudo umount floppy
10.安裝Grub
# sudo apt-get install grub
11.進入GRUB修改
# grub
12.輸入下列資訊
grub> device (fd0) floppy.img
grub> root (fd0)
grub> setup (fd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal)
Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.
grub> quit
13.把檔案複製回Window7介面,開啟Bochs載入floppy.img 如圖設定
14.執行畫面
到此就告一段落
(1) 如果已經開發好作業系統者,做完第8個步驟後,加入menu.lst與kernel.elf於指定位址
kernel.elf (boot/kernel.elf)
menu.lst ( boot/grub/menu.lst )
title DclabOS
root (fd0)
kernel /boot/kernel.elf
boot
(2)然後接著做步驟9之後的動作即可
PS : 作業系統只輸出 Test Output to monitor. …
搞定收工 !
訂閱:
文章 (Atom)