Jump to content

[Research] Windows 7 and eMMC drives


Jakob99

Recommended Posts

Introduction

To start it off, here are my laptop's specs (which will also be the focal point of this thread):

Acer Aspire R3-131T, Intel Celeron N3060 processor with Cherry Hill (iCHVGM) graphics (supports Windows 7), 32GB eMMC (SSD-Based?) drive, and touchscreen support. Came with Windows 10 when I bought this in 2017.

Anyways, this thread is intended to research on how to get eMMC drives to be recognized by Windows 7. If one goes to the Acer driver page for this laptop, https://www.acer.com/ac/en/US/content/support-product/6074?b=1 , you will see it has support for Windows 8.1 and 10. When I bought this laptop in 2017, it came with Windows 10, but I uninstalled that and successfully put 8.1 on it, suggesting there is a generic eMMC driver within 8.1.

Indeed there is. This appears it was also present in Windows 8 too, and if you look here, https://betawiki.net/wiki/Windows_8_build_8056_(fbl_grfx_dev1) , you'll see it was introduced quite early in 8's development. Windows 8 Build 8056 is currently the earliest known build to include generic eMMC drivers.

It should also be noted that some laptop's that come with an eMMC drive may not come with an HDD or even the SATA connector for such a drive. Some models of the Aspire R3-131T come with an HDD slot as well, but mine does not.

Why won't Windows 7 install to an eMMC drive?

Windows 7 does not include a generic eMMC driver, and it is unlikely there is a Windows 7 driver for it. If you try and install it, Windows Installer will complain that it can't detect the drive and to install a driver for it by loading it through something like a USB. Simply popping in a Windows 8.1 USB and pointing the installer to the folder the driver is in will not work due to it being "locked" to 8.1.

How do we get Windows 7 to install to an eMMC drive?

We would need to "unlock" and backport the generic driver from Windows 8/8.1 to Windows 7. If one looks at the driver details for the MMC Memory Card under Disk Drives in Device Manager, it will report as being dated on 6/21/2006 (at least on Build 8056). This would indicate that the driver has been present since Windows Vista and is in 7, but we all know that to be false.

How do we backport the driver?

I'll be the first to admit that I don't have a deep knowledge of drivers. I do know enough to be able to modify driver inf files to add in processors, but not enough to perform a full scale backport of one. Looking at the properties of the drive in Windows 8 Build 8056, Windows appears to treat it like an SD Card. Indeed, this is confirmed by going into Computer and seeing the SD Card icon next to the driver. Looking at the other details, the driver's inf name is disk.inf. The file and any others will be included so they can be studied (if sharing these files is not allowed, please do let me know so I can remove them).

Conclusion

So from everything that I have gathered about these drives is that they appear to be some sort of internal, soldered on SD Card (at least in my case) or at least treated like one. I believe that the drivers for these drives can be backported to Windows 7, however, there may be an issue with unsigned drivers (since Windows Installer will most likely refuse the driver since it is unsigned). This, however, can most likely be solved by using the installation and driver integrating method found within this thread:

In the gist of things, this method involves installing Windows 7 to the drive via command prompt and diskpart and then using DISM to integrate the eMMC drivers (/forceunsigned will be needed). This method revolves around UEFI and you will lose things that would result in the graphics falling back to the Microsoft Basic Display Adapter such as Blue Screen of Death's and Safe Mode (those will still be accessible and usable, however, you would just have a blank, black screen).

If people got Windows 8's generic USB 3.0 "unlocked" and backported then I believe it is possible to "unlock" and backport 8's generic eMMC driver to 7.

Computer.PNG

disk.sys disk.inf disk.PNF

Link to comment
Share on other sites

  • 2 months later...

2 hours ago, George King said:

Hi, I created now one using NTOSKRNL EMU Extender. Using Depency Walker seems all imports good. It's only blind try, just give it a try. When I find my Intel Compute Stick, I will try it on my side too

Windows8_disk_for_Windows7_6.2.9200.16384_x64.zip 85.39 kB · 0 downloads

This did not work with my Hynix HBG4e eMMC drive. When I loaded the driver from the Windows installation media, it would not return any drives.

Link to comment
Share on other sites

  • 1 month later...

 

Hello,

I find this post very interesting, I will try the driver once on my hardware.
I use an Acer Aspire E11 ES1-111M-C56A netbook with Celeron N2840 (Bay Trail) and 32 GB eMMC (Hynix).
I am happy to contribute my experience so far, which has led me to a running Windows 7 installation in "BIOS / MBR" mode.
However, my personal goal is a "UEFI / GPT" installation, from which I expect a more stable boot behavior and better boot performance.
https://www.win-raid.com/t6835f52-emmc-driver-for-legacy-mode-only-searching-for-acpi-solution.html  (broken link)

https://winraid.level1techs.com/t/emmc-driver-for-legacy-mode-only-searching-for-acpi-solution/35272  (new link)


Maybe you can build a solution for the GPT mode from both sources.

As a side note, I would like to mention that in Windows ThinPC (Windows Embedded Standard) there is apparently an SD driver that differs from the normal Windows7 driver and allows booting, for example.
Unfortunately, this driver does not support the BayTrail chipset.

It would be really great if a solution could be found here.

 

BR

Ratte

Edited by Ratte
Link to comment
Share on other sites

  • 9 months later...

I have grabbed sdbus.sys + dumpsd.sys + sdbus.inf from Windows 8 build 7880, then I patched security cookie and ntoskrnl.exe import to ntoskrn8.sys on needed files. No missing imports at all. This is driver for PCI\CC_080500 + PCI\CC_080501 as SDA Standard Compliant SD Host Controller.

 

And from Windows 8 build 8056 sdstor.sys + sdstor.inf, then I patched security cookie and ntoskrnl.exe import to ntoskrn.sys. No missing imports. This is driver for SD\CLASS_STORAGESD\CLASS_MMC as SD Storage Class Controller

 

Drivers are unsigned and untested and only for x64 now. INFs are modded and install ntoskrn8.sys automatically. Try to integrate them with force unsigned switch (or NTLite) to boot.wim and let's see how it goes. 

https://www.mediafire.com/file/5a58l01bmwc0grn/Generic_MMC_x64.7z/file

Link to comment
Share on other sites

On 5/5/2022 at 6:30 PM, George King said:

I have grabbed sdbus.sys + dumpsd.sys + sdbus.inf from Windows 8 build 7880, then I patched security cookie and ntoskrnl.exe import to ntoskrn8.sys on needed files. No missing imports at all. This is driver for PCI\CC_080500 + PCI\CC_080501 as SDA Standard Compliant SD Host Controller.

 

And from Windows 8 build 8056 sdstor.sys + sdstor.inf, then I patched security cookie and ntoskrnl.exe import to ntoskrn.sys. No missing imports. This is driver for SD\CLASS_STORAGESD\CLASS_MMC as SD Storage Class Controller

 

Drivers are unsigned and untested and only for x64 now. INFs are modded and install ntoskrn8.sys automatically. Try to integrate them with force unsigned switch (or NTLite) to boot.wim and let's see how it goes. 

 

https://www.mediafire.com/file/5a58l01bmwc0grn/Generic_MMC_x64.7z/file

 

Unfortunately, these did not appear to work. I am not sure the reason. After I put them into the boot.wim file using DISM and the Forceunsigned command and went to unmount the image, it told me that it could only be partially unmounted. Nothing remained in the mount  folder and I was able to move the wim out of the root folder. I rebuilt the ISO and booted it up. Since this Windows 7 ISO uses Windows 8's WinPE, it detected the drives right away (probably a mistake to use a 7 ISO with 8's PE as 7's PE would have told me if the drivers were detected) and I installed, but upon reboot I was greeted with 0x07b BSOD.  I then tried to point the Windows Installer to the files, but it told me that no signed drivers could be found. Either the integration got botched (it told me it could only be partially unmounted), or the unsigned nature of the drivers is to blame. I'm gonna go about trying to sign these to see what happens.

 

Another thing is my device may not be in the driver. Gonna load up 8.1, grab that info, put it in, and then sign the drivers.

Edited by Jakob99
Link to comment
Share on other sites

  • 2 months later...

@Jakob99 We finally managed to get working Windows 8.0 build 8056 Generic SD/MMC driver under XP. Here are same drivers for Windows 7 (ntoskrn8.sys is compiled as W7 target). 

 

EDIT: Broken files removed, see post bellow for updated files

 

Edited by George King
Link to comment
Share on other sites

19 hours ago, George King said:

@Jakob99 We finally managed to get working Windows 8.0 build 8056 Generic SD/MMC driver under XP. Here are same drivers for Windows 7 (ntoskrn8.sys is compiled as W7 target). 

 

sd+mmc_generic_driver.7z 168.37 kB · 5 downloads

Unfortunately, this did not work for me. Still 0x07b BSOD. It would appear my brand of eMMC is not included. My laptop is an Acer Aspire R3-131t from 2017 that has, I believe, Hynix eMMC (if that is wrong, please do correct me). I can setup Windows 8.1 rq and give you the relevant info from its device manager in the hopes you can add it to your driver. Thanks in advanced for your help!

Link to comment
Share on other sites

22 minutes ago, George King said:

@Jakob99 If you integrated them into boot.wim you were able to see your eMMC in setup?

The Win7 ISO I use uses Windows 8.1's PE, so it can see it driver or not. I can get through part 1, but upon first restart, 0x07b BSOD

Link to comment
Share on other sites

1 hour ago, George King said:

@Jakob99 If you integrated them into boot.wim you were able to see your eMMC in setup?

Here's some info: Hynix HBG4e, SD\GenDisk

SD Storage Class Controller: SD\VID_90&OID_004a&PID_HBG4e&REV_0.3 and SD\VID_90&OID_004a&PID_HBG4e

If you need more, please ask and I will provide!

Link to comment
Share on other sites

@Jakob99 What happends when you try to boot Windows 8.0 installer on your machine? Can you see your disk device? Also would be great if you can do same test with Windows 8.0 build 8056.

 

EDIT: Windows 8.0 beta download links

https://windowsbase.pl/w8beta.php
Edited by George King
Link to comment
Share on other sites

On 7/24/2022 at 9:11 AM, George King said:

@Jakob99 What happends when you try to boot Windows 8.0 installer on your machine? Can you see your disk device? Also would be great if you can do same test with Windows 8.0 build 8056.

 

EDIT: Windows 8.0 beta download links

 

https://windowsbase.pl/w8beta.php

Build 8056 works fine! I've ran it before no problems. Not sure why this driver won't work though.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...