Difference between revisions of "Windows On ARM BSP User Guide for ROM-5720"
(Created page with "123") |
|||
(21 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | ||
+ | == Windows On ARM (WoA) Version == | ||
+ | |||
+ | Windows : 20H2 (en_windows_10_iot_enterprise_version_20h2_arm64_dvd_fe0947da.iso)<br/> NXP BSP : W1809 (W1809_1_1_0_imx-firmware.tgz, W1809_1_1_0_imx-iotcore.zip) | ||
+ | |||
+ | == Released Image == | ||
+ | |||
+ | [[IoTGateway/BSP/Linux/OS_Support_List_Windows_On_Arm_for_ROM5720|OS_Support_List_Windows_On_Arm_for_ROM5720]] | ||
+ | |||
+ | == Build Environment on Host == | ||
+ | |||
+ | Currently, we adopt [https://www.docker.com/ Docker] as build environment. | ||
+ | |||
+ | You can get the advrisc/u14.04-410clbv1 Docker image for developing WoA projects. | ||
+ | |||
+ | Docker command: | ||
+ | <pre>$ docker pull advrisc/u14.04-410clbv1</pre> | ||
+ | |||
+ | == Run Docker example == | ||
+ | |||
+ | Step1 Run docker container (example) | ||
+ | <pre>sudo docker run -it --name <CONTAINER_NAME> -v <PATH_TO_BSP>:/home/adv/BSP:rw advrisc/u14.04-410clbv1 /bin/bash | ||
+ | </pre> | ||
+ | |||
+ | Step2 In container, change the user. (example) | ||
+ | <pre> adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP</pre> | ||
+ | |||
+ | == Install Dependency Packages == | ||
+ | <pre>$ sudo apt-get update | ||
+ | $ sudo apt-get install -y attr build-essential python python-dev python-crypto python-wand device-tree-compiler bison flex swig iasl uuid-dev wget git bc libssl-dev zlib1g-dev python3-pip | ||
+ | </pre> | ||
+ | |||
+ | New for 1903 UEFI | ||
+ | <pre>$ sudo apt-get install -y gcc g++ make python3 mono-devel | ||
+ | </pre> | ||
+ | |||
+ | Upgrade Python 3.6 | ||
+ | <pre>$ wget https://www.python.org/ftp/python/3.9.0/Python-3.6.3.tgz | ||
+ | $ tar -xvf Python-3.6.3.tgz | ||
+ | $ cd Python-3.6.3 | ||
+ | $ sudo ./configure --enable-optimizations --with-ensurepip=install | ||
+ | $ make -j 8 | ||
+ | $ sudo make altinstall | ||
+ | </pre> | ||
+ | |||
+ | Configure python alternatives | ||
+ | <pre>$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 | ||
+ | $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 | ||
+ | $ sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.6 2 | ||
+ | </pre> | ||
+ | <pre>$ sudo pip3.6 install --upgrade pip | ||
+ | $ pip install pycryptodome | ||
+ | </pre> | ||
+ | |||
+ | Upgrade Git 2.25 (> 2.11) | ||
+ | <pre>$ sudo apt-get install -y tcl build-essential tk gettext | ||
+ | $ wget https://github.com/git/git/archive/v2.25.0.tar.gz | ||
+ | $ tar zxvf v2.25.0.tar.gz | ||
+ | $ cd git-2.25.0/ | ||
+ | $ make configure | ||
+ | $ ./configure --prefix=/usr | ||
+ | $ make all | ||
+ | $ sudo make install | ||
+ | </pre> | ||
+ | |||
+ | ToolChain | ||
+ | <pre>$ cd ~ | ||
+ | $ wget https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz | ||
+ | $ tar xf gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz | ||
+ | $ rm gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz | ||
+ | </pre> | ||
+ | |||
+ | == Getting Source Code == | ||
+ | |||
+ | === <font color="#0070c0">Set up bootloader / UEFI source code</font> === | ||
+ | |||
+ | {| border="1" cellpadding="1" cellspacing="1" style="width:500px;" | ||
+ | |- | ||
+ | | [[\\172.22.31.128\risc$\Platform\Microsoft\Windows10_1809\W20H2\W1809_1_1_0_imx-firmware.tgz|W1809_1_1_0_imx-firmware.tgz]] | ||
+ | | [[\\172.22.31.128\risc$\Platform\Microsoft\Windows10_1809\W20H2\W1809_1_1_0_imx-iotcore.zip|W1809_1_1_0_imx-iotcore.zip]] | ||
+ | |- | ||
+ | | [[File:W1809 1 1 0 imx-firmware.tgz.png|RTENOTITLE]] | ||
+ | | [[File:W1809 1 1 0 imx-iotcore.zip.png|RTENOTITLE]] | ||
+ | |} | ||
+ | |||
+ | Extract BSP files | ||
+ | <pre>$ mkdir <new bsp folder> | ||
+ | $ unzip W*_imx-iotcore*.zip -d <new bsp folder> | ||
+ | $ tar -xf W*_imx-firmware*.tgz -C <new bsp folder> | ||
+ | </pre> | ||
+ | |||
+ | Add more additional files | ||
+ | <pre>$ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/adv-build | ||
+ | $ cp -a adv-build/adv-buildme64.sh <new bsp folder> | ||
+ | $ cp -a adv-build/enterprise <new bsp folder> | ||
+ | $ cp -a adv-build/ROM5720_iMX8M_2GB <new bsp folder>/imx-iotcore/build/board/ | ||
+ | </pre> | ||
+ | |||
+ | Update UEFI | ||
+ | <pre>$ cd <new bsp folder> | ||
+ | $ rm -rf mu_platform_nxp | ||
+ | $ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/mu_platform_nxp | ||
+ | $ cd mu_platform_nxp | ||
+ | $ sudo pip install -r requirements.txt --upgrade | ||
+ | $ cp -a /usr/local/lib/python3.6/site-packages/* /home/adv/.local/lib/python3.6/site-packages/ | ||
+ | </pre> | ||
+ | |||
+ | Update U-Boot | ||
+ | <pre>$ cd ../u-boots | ||
+ | $ rm -rf u-boot-imx_arm64 | ||
+ | $ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/u-boot-imx_arm64 | ||
+ | </pre> | ||
+ | |||
+ | There is a integrated vesion in git server. please check following. | ||
+ | <pre>$ cd ~/BSP | ||
+ | $ mkdir WoA | ||
+ | $ cd WoA | ||
+ | $ git config --global user.name "Your Name" | ||
+ | $ git config --global user.email you@example.com | ||
+ | $ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/manifest -m W1809_1_1_0.xml | ||
+ | $ ../repo/repo sync | ||
+ | </pre> | ||
+ | |||
+ | === <font color="#0070c0">Build Firmware / UEFI</font> === | ||
+ | <pre>$ export AARCH64_TOOLCHAIN_PATH=~/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- | ||
+ | $ ./adv-buildme64.sh -b 5720 -t all -bc DEBUG | ||
+ | </pre> | ||
+ | |||
+ | PS: Before build ROM-5720, there are something have done first.<br/> 1).Replace keyword 'python3' with 'python' in adv-buildme64.sh.<br/> 2).The path of AARCH64_TOOLCHAIN_PATH must be in the HOME path.<br/> 3).Build EVK configuration first. | ||
+ | <pre>$ ./adv-buildme64.sh -b 8M -t all -bc DEBUG | ||
+ | </pre> | ||
+ | |||
+ | 4).for ROM-5720 bootloader setting, the soc.mak have to be modified.<br/> [[File:Soc.mak adv-imx8mq-rom5720-a1.dtb.png|RTENOTITLE]] | ||
+ | |||
+ | The firmware will be generated in the following | ||
+ | <pre><PROJECT_BSP>/imx-iotcore/build/board/<BOARD_NAME>/Package/BootLoader/flash.bin</pre> | ||
+ | |||
+ | The uefi will be generated in the following | ||
+ | <pre><PROJECT_BSP>/imx-iotcore/build/board/<BOARD_NAME>/Package/BootFirmware/uefi.fit</pre> | ||
+ | |||
+ | == Build Driver == | ||
+ | |||
+ | === <font color="#0070c0">Set up build environment</font> === | ||
+ | |||
+ | Make sure the project name in ROM5720_iMX8M_2GB_Package.vcxproj | ||
+ | <pre><ProjectName>ROM5720_iMX8M_2GB</ProjectName></pre> | ||
+ | |||
+ | Right click "Board Packages" -> Add -> Exist Project in the Solution Explorer panel | ||
+ | <pre><BSP>\imx-iotcore\build\board\ROM5720_iMX8M_2GB\Package\ROM5720_iMX8M_2GB_Package.vcxproj | ||
+ | </pre> | ||
+ | |||
+ | [[File:Woa vs Board Packages.png|RTENOTITLE]] | ||
+ | |||
+ | Right click "GenerateBSP" and select 'properties' Click NMake -> Build Command Line -> Edit, and added following setting | ||
+ | <pre>call ..\..\..\tools\BuildBSP.bat iMX8 ROM5720_iMX8M_2GB</pre> | ||
+ | |||
+ | === <font color="#0070c0">Build</font> === | ||
+ | |||
+ | Open Visual Studio as administrator Open solution file | ||
+ | <pre><BSP>/imx-iotcore/build/solution/iMXPlatform/iMXPlatform.sln</pre> | ||
+ | |||
+ | Right click 'GenerateBSP' and select 'build' | ||
+ | |||
+ | [[File:Woa vs GenerateBSP.png|RTENOTITLE]] | ||
+ | |||
+ | If get any errors about Hal*,<br/> <font color="#ff0000">The specified timestamp server either could not be reached or… HalExtiMXDma</font><br/> please remove following projects<br/> [[File:Woa vs hal.png|RTENOTITLE]] | ||
+ | |||
+ | Go to following path, add those three projects back | ||
+ | <pre><BSP>\imx-iotcore\components\NXP.SignedDrivers\VsProjects</pre> | ||
+ | |||
+ | Build each hal* project and build 'GenerateBSP' again The build result will be in the | ||
+ | <pre><BSP>\imx-iotcore\BSP\ROM5720_iMX8M_2GB\</pre> | ||
+ | |||
+ | == Flash Image == | ||
+ | |||
+ | === <font color="#0070c0">Make OS Installer</font> === | ||
+ | |||
+ | Extract <font color="#0070c0">install.wim</font> from Windows IoT image | ||
+ | <pre>en_windows_10_iot_enterprise_version_20h2_arm64_dvd_fe0947da.iso/sources/</pre> | ||
+ | |||
+ | Extract Windows IoT for NXP - IoTEntOnNXP.v1.3.zip and put the <font color="#0070c0">install.wim</font> in the 'image' folder Build WinPE Image<br/> Using v1.3 [[\\172.22.31.128\risc$\Platform\Microsoft\Windows10_1809\W20H2\make-winpe-enterprise-windebugv1.3.cmd|make-winpe-enterprise-windebug.cmd]] | ||
+ | <pre>c:\>cd IoTEntOnNXP.v1.3 | ||
+ | c:\IoTEntOnNXP.v1.3>make-winpe-enterprise-windebug.cmd /testbin /image ..\image\install.wim /splitwim /windebug /winpedebug | ||
+ | </pre> | ||
+ | |||
+ | Get SD card number<br/> 1).Open command line as administrator<br/> 2).Check number by enter following (SD card 16GB) | ||
+ | <pre>C:\Windows\system32>diskpart | ||
+ | DISKPART> list disk | ||
+ | Disk ### Status Size Free Dyn Gpt | ||
+ | -------- ------------- ------- ------- --- --- | ||
+ | Disk 0 Online 465 GB 1024 KB * | ||
+ | Disk 1 Online 14 GB 0 B * | ||
+ | </pre> | ||
+ | |||
+ | Flash image to SD card | ||
+ | <pre>c:\IoTEntOnNXP>make-winpe-enterprise-windebug.cmd /apply 1 | ||
+ | </pre> | ||
+ | |||
+ | === <font color="#0070c0">Flash EMMC</font> === | ||
+ | |||
+ | To flash image to EMMC via SD card, please refer to [[:File:ROM5720-Install_an_image_on_Windows_on_ARM_ROM.pdf|HERE]]. | ||
+ | |||
+ | === <font color="#0070c0">Flash Mac Address</font> === | ||
+ | |||
+ | Windows on ARM adopted mac address in ROM instead of SPI-ROM. To flash mac address in bootloader please type any key in bootloader stage during boot process. If mac is <font color="#0070c0">74:fe:48:65:45:35</font>, please enter following command | ||
+ | <pre>fuse prog 9 0 0x48654535 | ||
+ | fuse prog 9 1 0x000074fe | ||
+ | </pre> | ||
+ | |||
+ | [[File:Woa fuse prog.jpg|600x250px|Woa fuse prog.jpg]] | ||
+ | |||
+ | You may check mac address | ||
+ | <pre>fuse read 9 0 | ||
+ | </pre> | ||
+ | |||
+ | The result will be | ||
+ | |||
+ | [[File:Woa fuse prog result.jpg|600x84px|Woa fuse prog result.jpg]] | ||
+ | |||
+ | == Reference == | ||
+ | |||
+ | === <font color="#0070c0">Update uefi.fit and flash.bin in the Firmware Downloader</font> === | ||
+ | |||
+ | 1).Plug Firmware Downloader SD card<br/> 2).Copy the file | ||
+ | <pre>$ sudo mount /dev/sdX2 /mnt | ||
+ | $ sudo cp <PATH_TO_FILES>/{uefi.fit,flash.bin} /mnt/home/root/win10/ | ||
+ | $ sudo umount /mnt | ||
+ | </pre> | ||
+ | |||
+ | === <font color="#0070c0">Restore OS installer SD card</font> === | ||
+ | |||
+ | If the OS installer SD card have do installing process completed already, it have to restore again for re-using.<br/> 1).Rename <font color="#0070c0">_efi</font> folder to <font color="#0070c0">EFI</font><br/> 2).Change partition id | ||
+ | <pre>C:\Windows\system32> diskpart | ||
+ | DISKPART> list disk | ||
+ | Disk ### Status Size Free Dyn Gpt | ||
+ | -------- ------------- ------- ------- --- --- | ||
+ | Disk 0 Online 465 GB 1024 KB * | ||
+ | Disk 1 No Media 0 B 0 B | ||
+ | Disk 2 Online 14 GB 0 B * | ||
+ | |||
+ | DISKPART> sel disk 2 | ||
+ | Disk 2 is now the selected disk. | ||
+ | DISKPART> list partition | ||
+ | |||
+ | Partition ### Type Size Offset | ||
+ | ------------- ---------------- ------- ------- | ||
+ | Partition 1 Unknown 32 MB 1024 KB | ||
+ | Partition 2 Primary 29 GB 33 MB | ||
+ | |||
+ | DISKPART> sel partition 1 | ||
+ | Partition 1 is now the selected partition. | ||
+ | DISKPART> set id="c12a7328-f81f-11d2-ba4b-00a0c93ec93b" | ||
+ | DiskPart successfully set the partition ID. | ||
+ | DISKPART> exit | ||
+ | </pre> | ||
+ | |||
+ | The utility scripts\diskpart will change partition id after installing process completed. |
Latest revision as of 08:38, 31 May 2022
Contents
Windows On ARM (WoA) Version
Windows : 20H2 (en_windows_10_iot_enterprise_version_20h2_arm64_dvd_fe0947da.iso)
NXP BSP : W1809 (W1809_1_1_0_imx-firmware.tgz, W1809_1_1_0_imx-iotcore.zip)
Released Image
OS_Support_List_Windows_On_Arm_for_ROM5720
Build Environment on Host
Currently, we adopt Docker as build environment.
You can get the advrisc/u14.04-410clbv1 Docker image for developing WoA projects.
Docker command:
$ docker pull advrisc/u14.04-410clbv1
Run Docker example
Step1 Run docker container (example)
sudo docker run -it --name <CONTAINER_NAME> -v <PATH_TO_BSP>:/home/adv/BSP:rw advrisc/u14.04-410clbv1 /bin/bash
Step2 In container, change the user. (example)
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
Install Dependency Packages
$ sudo apt-get update $ sudo apt-get install -y attr build-essential python python-dev python-crypto python-wand device-tree-compiler bison flex swig iasl uuid-dev wget git bc libssl-dev zlib1g-dev python3-pip
New for 1903 UEFI
$ sudo apt-get install -y gcc g++ make python3 mono-devel
Upgrade Python 3.6
$ wget https://www.python.org/ftp/python/3.9.0/Python-3.6.3.tgz $ tar -xvf Python-3.6.3.tgz $ cd Python-3.6.3 $ sudo ./configure --enable-optimizations --with-ensurepip=install $ make -j 8 $ sudo make altinstall
Configure python alternatives
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 $ sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.6 2
$ sudo pip3.6 install --upgrade pip $ pip install pycryptodome
Upgrade Git 2.25 (> 2.11)
$ sudo apt-get install -y tcl build-essential tk gettext $ wget https://github.com/git/git/archive/v2.25.0.tar.gz $ tar zxvf v2.25.0.tar.gz $ cd git-2.25.0/ $ make configure $ ./configure --prefix=/usr $ make all $ sudo make install
ToolChain
$ cd ~ $ wget https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz $ tar xf gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz $ rm gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
Getting Source Code
Set up bootloader / UEFI source code
W1809_1_1_0_imx-firmware.tgz | W1809_1_1_0_imx-iotcore.zip |
Extract BSP files
$ mkdir <new bsp folder> $ unzip W*_imx-iotcore*.zip -d <new bsp folder> $ tar -xf W*_imx-firmware*.tgz -C <new bsp folder>
Add more additional files
$ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/adv-build $ cp -a adv-build/adv-buildme64.sh <new bsp folder> $ cp -a adv-build/enterprise <new bsp folder> $ cp -a adv-build/ROM5720_iMX8M_2GB <new bsp folder>/imx-iotcore/build/board/
Update UEFI
$ cd <new bsp folder> $ rm -rf mu_platform_nxp $ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/mu_platform_nxp $ cd mu_platform_nxp $ sudo pip install -r requirements.txt --upgrade $ cp -a /usr/local/lib/python3.6/site-packages/* /home/adv/.local/lib/python3.6/site-packages/
Update U-Boot
$ cd ../u-boots $ rm -rf u-boot-imx_arm64 $ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/u-boot-imx_arm64
There is a integrated vesion in git server. please check following.
$ cd ~/BSP $ mkdir WoA $ cd WoA $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/ms-iot-ent/_git/manifest -m W1809_1_1_0.xml $ ../repo/repo sync
Build Firmware / UEFI
$ export AARCH64_TOOLCHAIN_PATH=~/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- $ ./adv-buildme64.sh -b 5720 -t all -bc DEBUG
PS: Before build ROM-5720, there are something have done first.
1).Replace keyword 'python3' with 'python' in adv-buildme64.sh.
2).The path of AARCH64_TOOLCHAIN_PATH must be in the HOME path.
3).Build EVK configuration first.
$ ./adv-buildme64.sh -b 8M -t all -bc DEBUG
4).for ROM-5720 bootloader setting, the soc.mak have to be modified.
The firmware will be generated in the following
<PROJECT_BSP>/imx-iotcore/build/board/<BOARD_NAME>/Package/BootLoader/flash.bin
The uefi will be generated in the following
<PROJECT_BSP>/imx-iotcore/build/board/<BOARD_NAME>/Package/BootFirmware/uefi.fit
Build Driver
Set up build environment
Make sure the project name in ROM5720_iMX8M_2GB_Package.vcxproj
<ProjectName>ROM5720_iMX8M_2GB</ProjectName>
Right click "Board Packages" -> Add -> Exist Project in the Solution Explorer panel
<BSP>\imx-iotcore\build\board\ROM5720_iMX8M_2GB\Package\ROM5720_iMX8M_2GB_Package.vcxproj
Right click "GenerateBSP" and select 'properties' Click NMake -> Build Command Line -> Edit, and added following setting
call ..\..\..\tools\BuildBSP.bat iMX8 ROM5720_iMX8M_2GB
Build
Open Visual Studio as administrator Open solution file
<BSP>/imx-iotcore/build/solution/iMXPlatform/iMXPlatform.sln
Right click 'GenerateBSP' and select 'build'
If get any errors about Hal*,
The specified timestamp server either could not be reached or… HalExtiMXDma
please remove following projects
Go to following path, add those three projects back
<BSP>\imx-iotcore\components\NXP.SignedDrivers\VsProjects
Build each hal* project and build 'GenerateBSP' again The build result will be in the
<BSP>\imx-iotcore\BSP\ROM5720_iMX8M_2GB\
Flash Image
Make OS Installer
Extract install.wim from Windows IoT image
en_windows_10_iot_enterprise_version_20h2_arm64_dvd_fe0947da.iso/sources/
Extract Windows IoT for NXP - IoTEntOnNXP.v1.3.zip and put the install.wim in the 'image' folder Build WinPE Image
Using v1.3 make-winpe-enterprise-windebug.cmd
c:\>cd IoTEntOnNXP.v1.3 c:\IoTEntOnNXP.v1.3>make-winpe-enterprise-windebug.cmd /testbin /image ..\image\install.wim /splitwim /windebug /winpedebug
Get SD card number
1).Open command line as administrator
2).Check number by enter following (SD card 16GB)
C:\Windows\system32>diskpart DISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 465 GB 1024 KB * Disk 1 Online 14 GB 0 B *
Flash image to SD card
c:\IoTEntOnNXP>make-winpe-enterprise-windebug.cmd /apply 1
Flash EMMC
To flash image to EMMC via SD card, please refer to HERE.
Flash Mac Address
Windows on ARM adopted mac address in ROM instead of SPI-ROM. To flash mac address in bootloader please type any key in bootloader stage during boot process. If mac is 74:fe:48:65:45:35, please enter following command
fuse prog 9 0 0x48654535 fuse prog 9 1 0x000074fe
You may check mac address
fuse read 9 0
The result will be
Reference
Update uefi.fit and flash.bin in the Firmware Downloader
1).Plug Firmware Downloader SD card
2).Copy the file
$ sudo mount /dev/sdX2 /mnt $ sudo cp <PATH_TO_FILES>/{uefi.fit,flash.bin} /mnt/home/root/win10/ $ sudo umount /mnt
Restore OS installer SD card
If the OS installer SD card have do installing process completed already, it have to restore again for re-using.
1).Rename _efi folder to EFI
2).Change partition id
C:\Windows\system32> diskpart DISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 465 GB 1024 KB * Disk 1 No Media 0 B 0 B Disk 2 Online 14 GB 0 B * DISKPART> sel disk 2 Disk 2 is now the selected disk. DISKPART> list partition Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 Unknown 32 MB 1024 KB Partition 2 Primary 29 GB 33 MB DISKPART> sel partition 1 Partition 1 is now the selected partition. DISKPART> set id="c12a7328-f81f-11d2-ba4b-00a0c93ec93b" DiskPart successfully set the partition ID. DISKPART> exit
The utility scripts\diskpart will change partition id after installing process completed.