Skip to content

Instantly share code, notes, and snippets.

@dantmnf
Last active April 6, 2024 19:33
Show Gist options
  • Star 17 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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.

@Roroca-1
Copy link

could it be possible to install ubuntu server for arm with desktop to make it a linxu pad?

@dantmnf
Copy link
Author

dantmnf commented Apr 24, 2023

could it be possible to install ubuntu server for arm with desktop to make it a linxu pad?

Currently, a device tree is required to boot Linux on sc8280 (8cx Gen 3) platform. I'm not aware of any in-progress work on this device.

It is said that Linaro is working on pure-ACPI Linux enablement for ThinkPad X13s, which may also benefit other sc8280 devices.

@Angelos2250
Copy link

Angelos2250 commented Apr 30, 2023

Hey, thanks for this awesome thread. Really Helpful. I installed windows on this Notebook via UUP Dump, but the touch panel doesn't work and doesn't get recognized in the Windows Device manager. The download link you provided for the touch panel doesn't seem to work. Also, I downloaded the Huawei PC Manager and although it says the Touch Screen Driver is up-to-date, the touch screen still doesn't work. So now I'm thinking it's probably because of the Windows Version I installed. Do you have any Idea how to fix my touch panel?

EDIT: Nvm the touch screen now gets recognized within Device Manager, but it doesn't really work

@mstudios0911
Copy link

Hey, thanks for this awesome thread. Really Helpful. I installed windows on this Notebook via UUP Dump, but the touch panel doesn't work and doesn't get recognized in the Windows Device manager. The download link you provided for the touch panel doesn't seem to work. Also, I downloaded the Huawei PC Manager and although it says the Touch Screen Driver is up-to-date, the touch screen still doesn't work. So now I'm thinking it's probably because of the Windows Version I installed. Do you have any Idea how to fix my touch panel?

EDIT: Nvm the touch screen now gets recognized within Device Manager, but it doesn't really work

Hi Angelos, did you make it work finally?
I've faced exactly the same issue. 100% the same. But touchscreen works fine in BIOS, that means that something is with a windows built we have.
Perhaps @dantmnf can advise us something?

@dantmnf
Copy link
Author

dantmnf commented Oct 25, 2023

Seems they removed old drivers from their website.

Here is the latest touch driver installer: https://updatessl.dbankcdn.com/download/data/pub_13/HWHOTA_hota_900_9/39/v3/b-V-YC5GS0K5PFh9JN9CXw/full/update.zip

@ksco
Copy link

ksco commented Nov 10, 2023

Any news on Linux support?

@DimkaL62
Copy link

There are still some interesting questions. 1. As I understand it, a Windows 11 iso Arm 64 image is required for a clean install of Win 11? Only the X64-only image is currently available for download on the Microsot website. Is it really important? 2. I bought the Matebook E Go 2023 in China. Naturally, Win 11 Home is pre-installed for only one language) - Windows 11 Home Single Language Chineese. I have a Win 11 pro license key. As I understand it, this is the only way to change the Windows 11 interface to English? 3. Notes about the calibration of the display are important. I usually use a spectrophotometer and CalMAN and Client3 for this. I suspect that these programs only work in the Win x86/64 environment, but not in the ARM64 environment. Is that so?

@dantmnf
Copy link
Author

dantmnf commented Nov 10, 2023

@DimkaL62

  1. You need arm64 images from MSDN. Some people regularly repost them to P2P networks or public shares.

  2. I am uncertain about whether installing a pro key in single language edition can work. Someone reported that the key is not recognized before.

  3. Calman Client3 should work well with emulation. I have also reverse engineered their 3DLUT loader to load custom 3DLUT and input shaper, which will be posted later.

@DimkaL62
Copy link

DimkaL62 commented Feb 4, 2024

Hello friends! I finally got to my E Go 2023, bought in Shenzhen 3 months ago) First it was a funny quest to change Win 11 language to English. It was not a complicated task but it was entertainment. First impression: The device is interesting to anyone who wants to solve problems.
I prepared in advance an assembly of Windows 11 ARM64 on a bootable USB flash drive, compressed the standard C:\ drive, leaving unallocated space for a clean installation on a new partition, and copied information from hidden system partitions. To do this, I made the partitions visible one by one, assigning drive letters. After these operations, I returned the partition attributes to their original state, but apparently, I was tired and didn’t remember everything - which of the service partitions should have the “Hidden” attributes, which should have the drive letter... Does anyone have an original map of partitions with attributes? The picture in the attachment is the current state of the partitions. Thank you.
Partitions_040224

@Dan-1177
Copy link

Dan-1177 commented Feb 6, 2024

@DimkaL62
Você conseguiu formata o seu Huawei MateBook E Go?

@DimkaL62
Copy link

It is interesting, but after booting from created Win 11 Arm64 install flash combination Shift F10 - to open CMD and run changeDisplay.exe - does not work. It seems to huawei keyboard does not work at all. I beleive that we need to attach external physical KB to perform succesfull new Win11 installation. Am I right? ;)
Of course in this time I mean that you use fresh created Win11 Arm64 inst flash with not injected stock drivers)

@vtrg
Copy link

vtrg commented Feb 15, 2024

I just bought a computer Huawai matebook 3 go 2023, Qualcomm Snapdragon 8cx Gen 3, can anyone give specific instructions, or is there any documentation to change the language to English? Help me.

@DimkaL62
Copy link

I just bought a computer Huawai matebook 3 go 2023, Qualcomm Snapdragon 8cx Gen 3, can anyone give specific instructions, or is there any documentation to change the language to English? Help me.

If it bought for example in China :), there ise Windows single language. Use Win11 Pro key and apply it - Change Product Key under Settings - Activation. Then add (download) any you need language package and change Interface language.

@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

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