Skip to content

Instantly share code, notes, and snippets.

@dantmnf
Last active November 10, 2024 10:32
Show Gist options
  • Save dantmnf/5c393e03962ff113aad704b5cc795d45 to your computer and use it in GitHub Desktop.
Save dantmnf/5c393e03962ff113aad704b5cc795d45 to your computer and use it in GitHub Desktop.
Huawei MateBook E Go (Wi-Fi)

The Huawei MateBook E Go (Wi-Fi) is a Windows on ARM device based on Qualcomm Snapdragon 8cx Gen 3 platform at a reasonable price compared to Surface and ThinkPad.

Before you purchase…

Caveats

  • The native orientation of the display panel is portrait.
  • The keyboard cover doesn’t outperform 2015 Surface.
    • No backlight
    • No wired connection - lags
    • Doesn’t get disabled when flipped to back
  • The quality of touch panel and pen driver is questionable.
    • The driver package is not DCH-compliant (an extra installer is needed to be properly installed)
    • Userspace daemon runs in amd64 emulation
    • Ships debug-version runtimes (msvcp140d.dll) and API set stub DLLs (only needed for Windows 7)
    • Uses a kernel-mode driver for userspace USB communication
      • Leaks handles on pen contact/leave/attach/detach
    • Log spam in C:\ProgramData\Huawei\HuaweiTHP
  • Wide-gamut display but doesn’t support the new MHC calibration pipeline and auto color management.
    • Despite Microsoft saying 8cx Gen 3 is supported.

Firmware keys

F2: Setup

F10: Recovery

F12: Boot menu

Clean OS (re)installation

Preparation

  • Windows 11 ARM64 installation ISO。

  • Files from stock OS that are worth keeping:

# drivers and post-install customizations
C:\Recovery\OEM

# stock recovery image
(LABEL=WINPE)\*
(LABEL=Onekey)\*
(LABEL=WINRE)\*
  • Files from stock OS that are worth restoring after installation:
# Qualcomm color management libraries
C:\Windows\System32\qdcmlib.dll
C:\Windows\System32\qdcmlib_x64.dll

# informational ICC profiles for Huawei PC Manager
C:\Windows\System32\spool\drivers\color\native.icc
C:\Windows\System32\spool\drivers\color\sRGBICC.icc
C:\Windows\System32\spool\drivers\color\displayP3.icc
C:\Windows\System32\spool\drivers\color\digest.sha

# rotate display in Windows PE/RE
(LABEL=WINRE)\Recovery\WindowsRE\Winre.wim:\Windows\System32\changeDisplay.exe
(LABEL=WINRE)\Recovery\WindowsRE\Winre.wim:\Windows\System32\winpeshl.ini

Drivers for Windows PE

  • Inject drivers in C:\Recovery\OEM\Customization\Product\Dirvers2PE\WinPEDriver to boot.wim.

  • Be aware that USB hot-plugging may not work in Windows PE.

  • Firmware enumerates an I2C HID touch panel on USB or recovery boot (but not on normal OS boot).

  • To rotate display orientation in Windows PE, run changeDisplay.exe in command prompt (Shift-F10 in Windows Setup),

  • Alternatively, you can use Windows RE of stock OS (hold Shift and click reboot, no touch input though).

Drivers for full Windows OS

Inject drivers in C:\Recovery\OEM\Customization\Product\Dirvers2PE\PlatformDriver to install.wim, or the offline image after extracting WIM.

Configure Windows RE

The vanilla winre.wim (located in (install.wim):\System32\Recovery) need the following customizations:

  • Inject drivers in WinPEDriver
  • Put changeDisplay.exe and winpeshl.ini to (winre.wim):\Windows\System32.

💡 Remove stock winre.wim from WINRE partition before first boot to the new installation so that the partition can be automatically reused.

Caveats on USB boot

Chained bootloaders (e.g. booting via UEFI shell, GRUB or Rufus UEFI_NTFS) may fail to boot even if secure boot is disabled. It is recommended to split install.wim to swm files and place them in FAT32 filesystem.

Perform installation

When everything are ready, follow generic instructions on installing vanilla Windows.

Extra drivers (that can work without Huawei PC Manager)

Touch panel

Pen

Huawei softwares

Huawei PC Manager

Download from https://consumer.huawei.com/cn/support/laptops/matebook-e-go/

Hardware features that need Huawei PC Manager

  • Driver/firmware updates
  • Charge limit
  • Display calibration (3DLUT stored in firmware flash memory)
  • Use detached keyboard cover

Almost everything runs in amd64 emulation, though.

@DimkaL62
Copy link

I booted E Go from the Win11 Arm64 installation flash drive. The display orientation is, of course, portrait. Then I took the changeDisplay.exe file from the unpacked Winre.wim image and it to the root of the flash drive, then booted the Win11 installation again. After boot I launched CMD changeDisplay.exe to rotate the screen. However, CMD did not recognize changeDisplay.exe. Strange. Does anyone know what's wrong and how to rotate the display at the beginning of the Win11 installation? By the way, where should I put the winpeshl.ini file on this flash drive?

@TWT233
Copy link

TWT233 commented Mar 14, 2024

Caveats on USB boot
Chained bootloaders (e.g. booting via UEFI shell, GRUB or Rufus UEFI_NTFS) may fail to boot even if secure boot is disabled. It is recommended to split install.wim to swm files and place them in FAT32 filesystem.

thanks for your detailed guide, but I encountered this caveats that the device entered a boot loop:

bios logo -> choose boot from usb -> some cmds flashed on top left screen -> bios logo(~1min) -> restart -> bios logo

what I did:

  • made the installation usb with Rufus
  • turned secure boot off

seems Rufus takes, I wonder is there any recommended choice to make installation usb?

@TWT233
Copy link

TWT233 commented Mar 15, 2024

update: I chose a workaround: PE + Dism++ + ISO

PE: follow ms official guide: https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/dn613860(v=win.10)?redirectedfrom=MSDN

dism++: chuyu

ISO: uup dump

@DimkaL62
Copy link

💡 Dantmnf wroute: Remove stock winre.wim from WINRE partition before first boot to the new installation so that the partition can be automatically reused.
How to do it? It's impossible in Windows (Access denied).

@DimkaL62
Copy link

TWT233, will you kindly explain more detailed - how you configured Winpe?
What I did...

  1. Simple, without extra... I've created WinPE boot flash media via Deployment and Imaging Tools. It loads, but in portrait mode: I can see cyan screen and CMD window lying on its side. Ok... but it's initial test.
  2. I take winpe.wim from C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\arm64\en-us, then Mount it (DISM), copy changeDisplay.exe and winpeshl.ini to System32, then Unmount and replaced original winpe.wim by modified winpe.wim (in Windows Preinstallation Environment\arm64\en-us). Then i've created WinPE boot flash media via Deployment and Imaging Tools standard way. But... negative surprise: boot - splash - reboot - splash - cyclic...
  3. I even tried to inject Platform drivers and WinPE drivers to original Winpe.wim, but result is the same - splash-reboot-etc.
    Maybe it's much more easier?
    How did you get the display to rotate to landscape orientation? Where did you put the DISM++ folder?
    Have you built any drivers into Winpe.wim?
    Thank you.

@TWT233
Copy link

TWT233 commented Mar 21, 2024 via email

@DimkaL62
Copy link

TWT233, thank you for reply. Of course upload please! For me it's significant to test really working WinPE.
As to my "splash-reboot-..." I beleive that my current WinPE don't love winpeshl.ini. Dantmnf wrote its article long time ago. I suppouse he had Matebook EGo 2022. I have now EGo 2023. They are different and EGo 2023 has different structure of folders in C:\ drive at least. Instead winpeshl.ini I will try to tune Winpeinit soon...

@TWT233
Copy link

TWT233 commented Mar 22, 2024 via email

@TWT233
Copy link

TWT233 commented Mar 23, 2024

@DimkaL62
Copy link

TWT233, thank you very much.
In fact, I pretended to be cunning and lazy at first and did this... 1. I took it right original Winpe.wim from here C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\arm64\en-us and copy it to separate folder. 2. Then - Mount it with DISM and Add Drivers and copy changeDisplay.exe and winpeshl.ini to System32. 3. Then - Unmount - commit and replace original winpe.wim in C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\arm64\en-us by modified winpe.wim. 4. Then - use Deployment Tools - MakeWinPEMedia command to create bootable WinPE flash.
As we can see this fast method does not work)

Btw, I performed the Whole Dantmnf 99% Scenario described it this article and tried to boot from from newest created installation W11 flash.
WOW! Boot Ok! Lanscape mode automatically - Ok! You can see comfortable initial (landscape) screen offering to choose keyboard layout )
But... 1% remaining. Dantmnf writes: Remove stock winre.wim from WINRE partition before first boot to the new installation so that the partition can be automatically reused.
He writes it not in vain. Stock winre.wim located in hidden WinRE partition - it's the only winre.wim file and the only place. W11 installation wizard can see it and use it. This is not allowed at least because this winre.wim has the onle language - Chineese (in my case). If you try create to create Recovery Drive i stock W11 from Huawei you will get error - Some files missing ( Oh.. Huawei, shame on you?). You will need to Unhide Winre partition, then cnange attribute it folders and subfolders, then use command reagetnc to show Windows - where Winre located. And finally - create recovery drive. That's not all :( Boot from this winre drive show exclusively Cineese interface. English users, How do you like this entertainment? )))
My question: How and when to remove stock winre.wim from WINRE partition? In Windows it's not allowed (access denied).

@DimkaL62
Copy link

TWT233, thank you, it's work. The same result - if run Deployment Tools - copype - then (don't close Deployment Tools) copy and replace stock Microsoft sources\boot.wim to modified boot wim from final Dantmnf. Then - create WinPE boot media.

It's interest, but after booting Dantmnf full installation media and after choose keyboard layout you will get only WinPE standard interface. No Windows 11 setup process. You will need to open CMD manually, then go to X:\root then run setup.exe - manually too. Is this happens to everyone who installed Win11 according to the Dantmnf script?

@TWT233
Copy link

TWT233 commented Mar 25, 2024

TWT233, thank you, it's work. The same result - if run Deployment Tools - copype - then (don't close Deployment Tools) copy and replace stock Microsoft sources\boot.wim to modified boot wim from final Dantmnf. Then - create WinPE boot media.

It's interest, but after booting Dantmnf full installation media and after choose keyboard layout you will get only WinPE standard interface. No Windows 11 setup process. You will need to open CMD manually, then go to X:\root then run setup.exe - manually too. Is this happens to everyone who installed Win11 according to the Dantmnf script?

idk since I just turned to this post for the resolution to boot loop issue, I got over it via the vanilla pe and cmd is not issue to me

and the vanilla pe ought to be cmd only without any extension intergrated in

@TWT233
Copy link

TWT233 commented Mar 25, 2024

TWT233, thank you very much. In fact, I pretended to be cunning and lazy at first and did this... 1. I took it right original Winpe.wim from here C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\arm64\en-us and copy it to separate folder. 2. Then - Mount it with DISM and Add Drivers and copy changeDisplay.exe and winpeshl.ini to System32. 3. Then - Unmount - commit and replace original winpe.wim in C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\arm64\en-us by modified winpe.wim. 4. Then - use Deployment Tools - MakeWinPEMedia command to create bootable WinPE flash. As we can see this fast method does not work)

Btw, I performed the Whole Dantmnf 99% Scenario described it this article and tried to boot from from newest created installation W11 flash. WOW! Boot Ok! Lanscape mode automatically - Ok! You can see comfortable initial (landscape) screen offering to choose keyboard layout ) But... 1% remaining. Dantmnf writes: Remove stock winre.wim from WINRE partition before first boot to the new installation so that the partition can be automatically reused. He writes it not in vain. Stock winre.wim located in hidden WinRE partition - it's the only winre.wim file and the only place. W11 installation wizard can see it and use it. This is not allowed at least because this winre.wim has the onle language - Chineese (in my case). If you try create to create Recovery Drive i stock W11 from Huawei you will get error - Some files missing ( Oh.. Huawei, shame on you?). You will need to Unhide Winre partition, then cnange attribute it folders and subfolders, then use command reagetnc to show Windows - where Winre located. And finally - create recovery drive. That's not all :( Boot from this winre drive show exclusively Cineese interface. English users, How do you like this entertainment? ))) My question: How and when to remove stock winre.wim from WINRE partition? In Windows it's not allowed (access denied).

@DimkaL62 im not involved myself in the huawei winre and the recovery partition

but i thought you can get touch with it in pe

and notice that the diskpart in vanilla pe is not full functional (according to my experince, not fully tested)

@DimkaL62
Copy link

TWT233, WinPE, WinRE and Boot.wim in fact are the same. It's sufficient to put winpeshl.ini with recenv.exe to Windows\System32 mounted Boot.wim (of course with drivers already injected :)) and WinPE drive become WinRE drive.
As to Dism++. I putted it folder to to Mount folder (created by Deployment Tools copype) then Unmount and create WinPE flash drive. After boot and run X:\Dism++ folder\Dism++ARM64.exe it said Tip - to copy Dism++ folder to another drive with 5GB+ space. Just I understand why you created second partition on the same flash.

@DimkaL62
Copy link

DimkaL62 commented Apr 6, 2024

Let me shortly give you history of the Win11 installation according Dantmnf Scenario. I decided to keep the existing Windows 11 system from Huawei and install a second Windows 11 on a free SSD space (before that, I shrink the existing C: partition). Created in strict accordance with the Dantmnf article, the installation flash media booted in Landscape mode, but it was the WinRE interface :). Ok, no problem, go to CMD and run X:\Setup.exe. Installation started in Landscape mode but The installation started in comfort landscape mode, but almost immediately switched to portrait mode. Ok, wait for finish.
Once the installation was complete, I simply switched the display orientation in Windows settings to landscape. Then - go to Device Manager: I can see Unknown devices (it's Touchscreen - Angelos2250 wrote about it). I decided to take my time and just rebooted computer for now. I saw a blue dual-boot menu for Windows Bootmanager in landscape mode. It's beautiful! Let's boot in new system then run Windows Update. In addition to the usual 23H2 service packs, Windows Update offered something like the Huawei Hardware component and installed it only on reboot (in the WinPE environment). After boot to new system I can see ideal Device Manager an even Touchscreen works fine! Isn't that happiness?
But...
After next reboot I can see Legasy Black&White Windows Boot Menu, moreover, lying on its side, i.e. in portrait mode :(. See picture.
Of course, I've tried the well-known bcdedit commands - bootmenupolicy standard etc., but - no result.
Can anybody help me:

  1. How to restore Windows Boot menu to Landscape mode (at least in legacy B&W mode)?
  2. How to restore Windows Boot menu to Graphics mode?
    Thank you.
    EGo_Win_Boot_Menu

@yc8881
Copy link

yc8881 commented Jun 17, 2024

sorry to invaide this thread
pardon me for my bad english as it is not my first language

Background, employer recently obtain 2 units of this E go ARM64 tablets and I was tasked to perform testing on them to wipe everything and install the Windows 11 LTSC IOT Enterprise which was released recently to OEMs.

Of course I will create a backup copy of all drivers in the recovery folder

We have legit copies of W11 LTSC IOT Enterprise and I am wondering do I have to go through all the steps above or I can just create a bootable USB with the provided ISOs from Microsoft and install it

The intended use of these tablets will be for doctors reading test results

@xmaxrayx
Copy link

sorry this laptop seems less famous,
how the battery life is it good? or it's better to stick with my ipad?

@directentis1
Copy link

I wonder if I can install Android Arm64 on it, like ChromeOS or FyderOS? I tried both but can't boot from USB, let alone install..

Besides, Snapdragon 8cx also doesn't support virtualization (let me know if I'm wrong), so it can't use android emulators or WSL2, WSA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment