[Guide] NVMe-boot for systems with legacy BIOS and UEFI board (DUET-REFIND)



The broken drivers and ghosted hardware show up on Win10 when Hidden Items is checked. The variable is not necessary. I just tested this on a Win10 x64 Home v1703 machine.

Have either of you taken a look at the rEFInd code? You may be able to easily combine it with the current system. If you would augment Clover or DUET with a GUI bootloader that wouldn’t that be an improvement? Minimally, there is insight to be had from the alternate design.

Do you plan on making steady improvements here? I believe with a thread using a proper title it would receive a lot of exposure. I am willing to donate to the cause. The P. C. side needs a UEFI emulator that is active.



FYI, DUET has always been a CLI type boot manager/loader (whatever), but CLOVER has always been a GUI as long as I can remember. Short google URL to Images below. The stock CLOVER GUI is a silver brushed metal screen, but it is themeable with lots of themes that can be enabled. No need for a GUI if it already has one by default. I used to think about implementing a Asus ROG type theme (since my mobo is a Asus Rampage III) for the GUI screen, but I never bothered because I keep updating it to newer versions every month.

https://goo.gl/QFLNKi

Going to the NVMe Clover thread here at win-raid will explain how it is installed.

@SkOrPn

Intel x58 board, like the DX58SO is running UEFI (2.0) as reference.
SORT of OFFTOPIC…
A good board with a good interface, but sold like anything by intel with an expiration date since no documentation to the OWNER ( final user ) is available to easy disable the enforcement via EFI driver, jumper or whatever… so, forget about updating it’s module without any risk or without a good hardware programming experience.
In general, even today intel board ( from Xbox360 onward ) are subject, in mine view, to catastrophic hardware failure due the efuse embedded like candy and thing like that should only be triggable via a dedicated SPI pathway on costumers hardware.
Just think for a second of one chernobily/sasser variant exploiting the current intel management engine, that’s would be a sort nightmare for Intel…


Hope you fix the Monitor, I’m still dealing with mine bios, but it’s limitation are plain stupid.
As for now I’m loading the ROM outside the OS reach and windows doesn’t even know it’s there.
That’s along the non-working updated RST software for the ICH10 is totally scrapping the optane drive as cache for the RAID ( managed in the OS ) I was aiming in this revived board.

@silekonn

Nah, I’m doing just for backup purpose and while @ it I shared the link to the archive. As it is DUET dependency are pretty much already updated to the current 2017 branch of EDKII.
Also, rEFInd should be implementable by the user on DUET. All you need to do is to download the USB image, unpack it’s file and place them on the DUET USB.
DUET will bootstrap to it. From there you’ll have the rEFInd GUI environment to do as you please.
Anyway, rEFInd is too much optimized for the macintosh to be included as default boot manager.



This version of DUET doesn’t require any additional driver to be manually loaded trough the EFI shell, so, if you need to boot a single local system or plan to use the OS boot manager you could always move the “Bootx64” and the “startup.nsh” to another directory or delete them: one its the shell the other a script to exit from it.
in this way DUET will boot stright to the OS boot manager.

I don’t understand what you were trying to tell me. I know the DX58SO because I sold one to a friend back in 2015, but I have Asus Rampage III Extreme, so no UEFI (I think). I have to use DUET or Clover as far as I know to get UEFI bootable devices to work, such as NVMe. Or were you trying to tell me that the DX58SO can see and boot NVMe devices because it has UEFI?



@SkOrPn

The intel reference board from the 1366 era can virtually boot the NVME by just adding the EFI driver to the bios main drirectory.
Issue with that is the bios is digitally signed and the update mechanism require to be bypassed to add/remove EFI driver/ROM module.
DUET is not required to boot on such old board.
Even back then there was no plan to bring UEFI on legacy bioses by intel.
Their road map is to drop completley the real mode for the user while also locking down the hardware as much as possible to eventually sell just the digital license to expose the hardware o their microsoft OS counterpart.

OK, I see you were replying to my Intel wish lol. Yeah I knew the DX58SO appeared to be UEFI, at least its bios seemed similar to the stock UEFI I have seen around. And I know Intel had no plans to bring support for NVMe to older systems. I just wish they would have released a bootable UEFI setup, similar to duet but with a UI, and intended for legacy BIOS systems only. But Intel figures that would be shooting themselves in the foot. And I do not believe that at all, I believe it would have helped us with already powerful legacy systems to adopt at least NVMe devices. So long the user is OK with a slightly longer boot time.

Oh well Clover and DUET works just fine for me.

@SkOrPn & @silekonn

CLOVER seems to use DUET > REFIT > OS

anyway, since a graphical boot manager is what you guy’s are asking.

Here the DUET version from UDK2017 with REFIND included ( also built with it ).
Seems to work but I didn’t really tested :smiley:
The MAC functionality are too much nested into the code.
Unless you use the secure boot ( we don’t have it) there seems to be (sort of) no strange things going on with the code.
Configuration is minimal.
Preconfigured and disabled what I could and also made a mini theme. Hope you like it! LOL
To add/remove more things you should read the config and/or ask it’s dev.

Also, I didn’t included the driver for specific partition type, so, if you really need them they are included within the REFIND binary release

Additional steep for the OPTIONAL BOOT MANAGER:

Type “CreateUSB Drive_Letter: REFIND” ( without quotes ).

Example: “CreateUSB K: REFIND” ( without quotes ).

Min PREVIEW:

@noInk

Wow, wow, wow, this is exactly what I was looking for, for years now. I wish I had this kind of knowledge that you possess.

One question please, can I still use my USB 3.1 PCIe card during the DUET boot in order to boot from my USB 3.0 flash drives (for Linux live distro testing and parted magic use)? All I have to do is just put my "XhciDxe-64.efi" drivers in the same folder as before? i.e X:\EFI\drivers\XhciDxe-64.efi. Then that way all I have to do is go into the Shell and use the command "load fs0:\EFI\drivers\XhciDxe-64.efi" and then "map -r" in order to see my bootable USB 3.0 drives, right?

OR, can I simply put the "load fs0:\EFI\drivers\XhciDxe-64.efi" command into the "startup.nsh" file to make it easier on me? Any tips on this question? Thank you VERY much for this wonderful DUET implementation.

THIS BUILD OF DUET DESERVES ITS OWN THREAD!!! LOL

@Fernando

This DUET on post #147 is FAR FAR better then Clover for legacy systems, especially if your using x58 to boot from NVMe M.2 devices. This version of DUET is EXACTLY what we have needed for many years now. Think of it as our very own Clover implementation but for Legacy BIOS systems, instead of for MAC. Sure Clover works but it has far too much unnecessary code for what we do here.

So, please consider making a dedicated THREAD using this fantastic “Legacy NVMe Booting with noInk’s DUET” on post #146. This feels like a Christmas gift for my computer…

@SkOrPn :
Thanks for your report and your proposal. I totally agree with you, but I need noInk’s statement, whether he agrees and is willing to support this “stickied” thread in the near future.
Since the order of the posts within any thread is determined by the date, when they were originally written, it is imposible for me to simply move the post #146 into the start position of this thread.
Furthermore a new thread opener should not only contain the related step-by-step guide, but additionally some general information (for whom, possible restrictions etc.).

@niInk:
Thanks for your contributions into this thread.
If you agree with SkOrPn and have the time to do it, please start a new thread giving it a short, but meaningful title and put all required information into it.
Then I will merge both threads by copying the posts of this old thread into the new one (previosly inserted pictures will get lost). Only this way your new thread opener will stay the start post of the merged thread.
Thanks in advance!

@SkOrPn

Nice ;D


Shouldn’t be necessary to load the USB driver, or type any additional command if the USB is present. This version of DUET has already it’s own XhciDxe.
Also, you could, I suppose use the REFIND boot manager now to boot the USB from the graphical menu. In theory the bootable element should appear by refreshing the application with either the “Esc” or “Backspace” key.
If it does not perhaps the partition driver is missing. If that the case, you must find the right driver and add them to the “drivers” directory in /EFI/Boot/drivers and REFIND will auto load them for you.

@Fernando

I need to put together few sentence first. Anyway welcome and thanks to you for the place!

@noInk :
Thanks for your agreement to my proposal and for having already started a new thread.
It has already been “stickied” by me. As next step I will copy the posts from the old thread to your new one.
EDIT: Done!

@noInk

Ah, OK I never thought to test the USB on this version as it was my bed time the last time I posted, haha. Thanks for the info and this version of DUET. I have spent several years now looking for exactly this tool. I guess all the pieces were available and just needed someone to assemble them in the correct order. It made perfect sense for the MAC guys to do it because there are a lot of old legacy BIOS only Macs out there that can perfectly run the UEFI aware OSX, and on newer NVMe devices no less.

But for people like myself with powerful overclocked Intel 6-core Xeons (on legacy bios hardware) I just have not had a good enough reason to upgrade hardware yet. I felt my system was only missing USB 3.1 and NVMe, and now here in 2017 both seem to work just fine thanks to DUET.

Now I am going to do research this weekend to see if I can theme it myself, haha. Thanks again @Fernando and @noInk

FYI: There is a mistake in the refind.conf file for the background scaling. It should read like so:



But instead it reads like so:

@SkOrPn

I do own other platform, but the X58 along the XEON is still more than capable of dealing with anything!
Clover I suppose is good at running an hackintosh or anyway it is far too much ( in a good way ) tailored for the OSX in general and it doesn’t really meet mine requirement for a normal daily usage on that platform, since I running different stuff.
About the refind config: on mine the default > noscale look better. Anything else look choppy because the monitor use some non-standard shitty resolution ( thanks to samsung ) while booting and I also made the “mistake” to update it’s firmware… not that I care, but locking setting on firmware upgrade is a bad thing! – on higher resolution monitor, like your and if you do repaired it, you’ll might need to search for an higher resolution background image.
The one I included is 1920x1080 or something, you can also scale it on some editing software btw… Clover theme should somehow compatible.
I’m glad if you do like it! I think it’s pretty much done and if does bug you later on, lemme know, for I will try and fix it!

@noInk

On the default conf file settings it was cutting off most of your image, maybe 75%. I would say the upper left 25% of the image was shown ONLY (center of your 1920x1080 image was very clearly at the bottom right corner of my native 1080p display). I used my own png 8 bit image of 1920x1080 with a dead center logo to discover that the default setting was NOT working with noscale. In order for me to get it working with both “noscale” and “fillscreen” I had to un-comment the line (remove the # signs). That was the only way it was working for me for some reason. Once I removed the # signs it then centered both your 1080 image, and my 1080 image. Thankfully your minimal grey image is not a big deal since it is hard to notice the off-centering that was occurring.

I am currently making a bunch of Asus ROG backgrounds and banners to see what I like and don’t like, and in various sizes. This is fun, thank you very very much for this. I already forgot that Clover exists, um what is Clover?

Now to re-learn Paint.NET all over again. lol

Hmm, I also found something else weird. Both the Shut Down and Reboot buttons do the exact same thing, they both reboot the PC. I will try and figure out why. Or I can simply remove the "Shut Down" button altogether.

Yea, ACPI reset ( “reset -s” ) seems not supported by booting from legacy BIOS. EfiResetShutdown goes straight to EfiResetCold.
If you need to shutdown the PC while in the bootloader, go to the OS login and do it from there :stuck_out_tongue:
I added some other icon for the primary function, and removed the shutdown…
– Can you make a photo? perhaps I understand the issue, cause it seems the internal resolution is fixed @ 1024x768 if the EDID is not found.
I could add additional mode to the GOP but I need to work around the DUET recovery screen, cause it will be also affected.

– I added these possible combination in case the EDID fail ( it fail cause the VGA come up from the legacy bios or something with the int10 ).
# 3840 2160 || 2560 1440 || 1920 1080 || 1768 992 || 1600 1050 || 1600 1024 || 1600 900 || 1440 900 || 1366 768 || 1360 768 || 1280 1024 || 1280 960 ||
# 1280 800 || 1280 768 || 1280 720 || 1176 664 || 1152 864 || 1024 768 || 800 600 || 720 576 || 720 420 || 640 480 ||

In refind config, you should locate the line setting the screen resolution, something like;
#

resolution 0

#
If you replace the DUET on the USB with this version, you can manually set any of the above resolution, also, notice: the clear screen of refind would even more noticeable, and, (fixed on 8/12 build) the setting would be global for EFI, so if you exit refind or open the shell it will be affected by the resolution changes, cause refind will not set it back, Actually not worth in mine view, duo the things going on the screen and into the refind primitive call to draw the image/generic vga driver – will see if something is doable later on!

Oh, I fixed the “off-center” issue myself by simply uncommenting the #banner_scale fillscreen to banner_scale fillscreen. I also resized the images to 1024 x 768 just because I don’t want refind using up resources to do extra work.

Yeah the shut down thing is no big deal, I wouldn’t even bother with it. I can hold my PC button for 4 seconds and bam its off, lol. How often would we need to shut down from the bootloader anyway, like once a year maybe if that. haha

Did you see my first background? I think I will reduce the icon sizes further though.

@SkOrPn

nice screen!
Hope it work for you, for the unknown icon you could try to make one with the distro name or add it somehow dunno!
anyway here we are, happy Christmas! LOL


Hey SkOrPn can you provide some feedback on the latest version (11-12-2017) on the fist page?
it should now be pretty much instant at entering windows after refind is done with is things right? do you notice any improvement?
also, I fixed the screenshot so you could make one low res with it :stuck_out_tongue: