Coder Social home page Coder Social logo

stitch626 / uefiseven Goto Github PK

View Code? Open in Web Editor NEW

This project forked from manatails/uefiseven

0.0 0.0 0.0 136.53 MB

An EFI loader that emulates int10h interrupts needed for booting Windows 7 under UEFI Class 3 systems.

C 60.41% HTML 0.33% Roff 0.02% CSS 0.01% Lua 0.01% Makefile 0.16% C++ 12.87% Shell 0.10% Python 18.65% Objective-C 2.85% Batchfile 0.07% VBScript 0.01% PLSQL 0.02% DIGITAL Command Language 0.01% Assembly 2.82% Pawn 0.02% GAP 0.48% R 0.01% Rich Text Format 1.18% SWIG 0.01%

uefiseven's Introduction

UefiSeven

Summary

UefiSeven is an efi module that enables Windows 7 to boot under UEFI Class 3 systems.

Windows 7 does not fully support UEFI and relies on legacy BIOS interrupt 10 (Int10h) during initial graphics initialization. On computers without proper legacy support Windows 7 might freeze on 'Starting Windows' screen or fail with error code 0xc000000d. Some motherboards have 'CSM' or 'legacy' boot options to fix this problem but it is getting increasingly rare as Intel decided to get rid of legacy BIOS support by 2020, and the option is virtually non-existent on consumer mobile devices. UefiSeven installs a minimal Int10h handler in the memory before Windows boots up so that the boot process do not fail because of the missing interrupt.

UefiSeven also contains a hack to enable screen output on hardwares that do not natively support 1024x768 as is needed by Windows Installer. Int10h handler comes with a macro, when enabled before compiling, that will enable serial console output which can be used to debug the handler itself.

Usage instructions

  1. Prepare Windows 7 installation USB Drive
  2. Rename bootx64.efi at (UsbDrive)\EFI\Boot\ to bootx64.original.efi
  3. Unpack bootx64.efi from UefiSeven archive and copy it to (UsbDrive)\EFI\Boot\
  4. (Optional) Copy UefiSeven.verbose to the same directory to enable verbose mode
  5. Finish initial installation and wait for reboot prompt
  6. Power off computer
  7. Rename bootmgfw.efi at (HDD)\EFI\Microsoft\Boot\ to bootmgfw.original.efi
  8. Copy UefiSeven bootx64.efi to (HDD)\EFI\Microsoft\Boot\bootmgfw.efi using EFI shell
  9. (Optional) Copy UefiSeven.skiperrors to the same directory to ignore any warning prompts.

Settings

Currently settings can be applied by creating empty files of specific name in the directory containing the main efi file.

  • UefiSeven.verbose : Enables verbose mode
  • UefiSeven.skiperrors : Skips any warning/error prompts
  • UefiSeven.force_fakevesa : Overwrites Int10h handler with fakevesa even when the native handler is present

Build instructions

git clone https://git.mananet.net/manatails/uefiseven
cd UefiSeven
source ./edksetup.sh
make -C BaseTools/
./MdeModulePkg/Application/UefiSeven/Int10hHandler.sh ; Regenerate Int10h assembly. Optional
build -a X64 -t GCC49 -b RELEASE -p MdeModulePkg/MdeModulePkg.dsc

Credits

  • Original VgaShim project
  • OVMF project
  • EDK II project

uefiseven's People

Contributors

jljusten avatar oliviermartin avatar lersek avatar lzeng14 avatar ydong10 avatar sun-rui avatar niruiyu avatar lgao4 avatar jljusten2 avatar jcarsey avatar vanjeff avatar jyao1 avatar mdkinney avatar hwu25 avatar ftian1 avatar dandanbi avatar jiaxinwu avatar sfu5 avatar ronald-cron-arm avatar gdong1 avatar hliebel avatar zhangchaointel avatar hesschen avatar anthonyper-ctx avatar ajfish avatar darylm503 avatar hhtian avatar manatails avatar lhauch avatar lushifei avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.