Can I patch the bugs in my laptop UEFI implementation?

1

I have an Asus X54H-SX137D laptop, with a K54L mainboard, which supports UEFI booting (AMI Aptio 4.5). I was using BIOS mode, and all functions were working well.

In order to reap the benefits of a modern firmware environment, I installed (not factory preinstalled) and am running Windows 8 Pro x64 in UEFI mode, on the disk partitioned GPT. As a result, the boot speed increased significantly. However, an annoying bug popped up.

With this setup, the laptop cannot sleep. When I close the lid, or give the command to sleep, it just switches off the screen, and continues remaining on, with no disk interaction. To regain use of the computer, the only thing that works is to hard-power-off the laptop, power on again, hard-power-off again, then put it on. Just once won't do.

I know of DUET, which can run a full UEFI implementation completely in BIOS. What I am looking at, is a more partial approach: Is it possible to install a UEFI patch, which checks for and patches ONLY identified faulty functionality? Or perhaps choose which UEFI functions to implement, using well known BIOS methods?

Basically, I am asking if its possible to cover up holes in the hardware UEFI implementation, by running BIOS software that emulates the UEFI functions that are missing. Since my laptop works perfectly well in BIOS mode, it should be possible to just pick up some boot-time drivers, which might be part of a linux preinstallation environment, and make it available as a function to the OS as a part of UEFI.

I have the latest firmware update and the latest drivers, unless these drivers that would help me are not available in the ASUS site, as well as Windows update.

Edit: Integrated edits, it also turns out that Fedora wasn't installing due to my incompetence, it later installed just fine and it running great, except that this sleep problem persists there too, as expected.

Milind R

Posted 2013-06-15T13:00:48.340

Reputation: 767

The laptop came with Windows 7. So unmentioned in the OP is that the comparison is being actually made between "preinstalled windows on bios" and "vanilla windows on uefi". Putting aside W7 can boot uefi just as well (and just as fast, considering a laptop of its era is unlikely to support disabling CSM, ie old bios code, so any speed improvement is probably just the freshness of the system) barring any hard W8 incompatibility, my educate guess is that you just miss the ATKACPI driver.

– mirh – 2018-09-10T10:01:16.540

1Did the laptop come with Win8 preinstalled? Do you have the latest BIOS/UEFI update installed? Do you have all the latest Win8 drivers installed? You're asking if it's possible to patch bugs. Even if it is (don't see why not), are you capable of doing so by sufficiently reverse engineering the BIOS/UEFI? Or are you asking if such model-specific patches are already available for your system? – Karan – 2013-06-15T18:07:58.257

@Karan : Reverse Engineering is not exactly on my mind. Even model-specific patches aren't. See my edit for clarification. Thanks. – Milind R – 2013-06-15T19:13:19.963

Answers

0

Although "micro-patches" as you suggest are theoretically possible, I don't know of any that actually exist. Unless you want to create your own firmware (say, based on CoreBoot), you're pretty much restricted to using what the hardware manufacturer provides.

Rod Smith

Posted 2013-06-15T13:00:48.340

Reputation: 18 427

Can I not use rEFInd/rEFIt as a host environment for such micro-patches, in conjunction with a reference implementation of that particular UEFI function? – Milind R – 2013-06-17T16:38:47.273

If the micro-patch were written as a driver or EFI application, then yes. The problem is that the micro-patches do not exist (at least, not as far as I know). You'd need to write such tools yourself, and that's much easier said than done. – Rod Smith – 2013-06-17T22:01:03.570

Oh ok. Is there some EFI application that can tell me which essential/required UEFI functions are not available? Basically a full compliance checker. – Milind R – 2013-06-18T11:04:46.693

Also, if functionality such as that required for sleeping, is not implemented through drivers, then what IS it implemented as? Some resources explaining this aspect would be helpful. – Milind R – 2013-06-18T11:06:35.637