# Hyper-V

Special thanks to our community contributor [@Jordanwise](https://forum.ewelink.cc/u/jordanwise) for creating and sharing this helpful tutorial video:

{% embed url="<https://www.youtube.com/watch?v=StVw-60Piuk>" %}

### 1. Preparation <a href="#id-1.-prerequisites" id="id-1.-prerequisites"></a>

{% stepper %}
{% step %}
**Download the** CUBE OS **image**

Visit this [repo](https://github.com/eWeLinkCUBE/CUBE-OS/releases/latest) to download the latest `.vmdk` image. Please extract the image after downloading.
{% endstep %}

{% step %}
**Install Hyper-V**

Windows 10 / 11 Pro, Enterprise, or Education (Hyper-V required)

Hyper-V enabled on your system: Before using Hyper-V, make sure it is enabled in Windows. Open **Control Panel → Programs → Turn Windows features on or off**,&#x20;

<div align="left"><figure><img src="/files/VnGNgd6rDrYbmks5wYQa" alt="" width="310"><figcaption></figcaption></figure></div>

enable **Hyper-V** (including *Hyper-V Management Tools* and *Hyper-V Platform*), **Virtual Machine Platform**, **Windows Hypervisor Platform**, then click **OK** and restart your computer.

<div align="left"><figure><img src="/files/A5O2S7wuj1IwW3YjHqBN" alt="" width="332"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Zigbee Adapter (Optional)**

If you need to add USB Zigbee devices, please note that Hyper-V does not support native USB passthrough for hardware devices such as Zigbee dongles. If USB access is required, consider using a **USB-over-IP solution** or a **network-based Zigbee coordinator** instead.
{% endstep %}
{% endstepper %}

### 2. Convert the CUBE OS Image to VHDX <a href="#id-2.-convert-the-cube-os-image-to-vhdx" id="id-2.-convert-the-cube-os-image-to-vhdx"></a>

Before creating the virtual machine, convert the CUBE OS disk image to a Hyper-V **VHDX** compatible format.

{% stepper %}
{% step %}
Download and install a VM image conversion tool, such as **VM Image Converter** (recommended on Windows)&#x20;

<div align="left"><figure><img src="/files/DUVpbm5Vj0OT973cmHqJ" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Launch the converter and select:

* Source format: **VMDK**
* Target format: **VHDX**

<div align="left"><figure><img src="/files/5kgg7woiQ3IAHjPhhxOI" alt="" width="360"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Complete the conversion and note the location of the generated `.vhdx` file.

<div align="left"><figure><img src="/files/IIlXXp6BgR6AVSfVt4LZ" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

### 3. Create the Virtual Machine <a href="#id-3.-create-the-virtual-machine" id="id-3.-create-the-virtual-machine"></a>

{% stepper %}
{% step %}
Launch **Hyper-V Manager**.

<div align="left"><figure><img src="/files/4KG1BZgP5e7SQ4aOJz6H" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Click **Quick Create** → Select![](/files/apOgK77L0Kd5BfrrkXUG)**Local installation source**.

<div align="left"><figure><img src="/files/qEfEW9ZXadM7GgCFTfDY" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Select **Change installation source**, select the converted **CUBE OS `.vhdx`** file and disable **Windows Secure Boot**.

<div align="left"><figure><img src="/files/YjvCdRTHk7IjTJ6IvNtm" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Enter a name for the VM (for example, `CUBE OS`), and then **Create Virtual Machine**.
{% endstep %}
{% endstepper %}

### 4. Configure Virtual Machine Settings <a href="#id-4.-configure-virtual-machine-settings" id="id-4.-configure-virtual-machine-settings"></a>

{% stepper %}
{% step %}
Click **Settings** for the newly created virtual machine.

<div align="left"><figure><img src="/files/fLVuGTRGEHjUOcWXhLiB" alt="" width="375"><figcaption></figcaption></figure></div>

{% endstep %}

{% step %}
Assign System Resources:

* Minimum: **4096 MB (4 GB)**
* Disable Dynamic Memory (recommended).
* **Processor**: 2 virtual processors

<div align="left"><figure><img src="/files/KewfPp8ZXG49rH2Sz63W" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Click **Apply** and **OK** to Save the settings.
{% endstep %}
{% endstepper %}

### 5. Boot CUBE OS

{% stepper %}
{% step %}
Click **Connect** and **Start** the created virtual machine.

<div align="left"><figure><img src="/files/xAGkX5FX1sPtBLn4Xx99" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Wait a few moments for CUBE OS to initialize. Monitor the boot screen until the boot is complete.

<div align="left"><figure><img src="/files/LhZVQXUNyU1SZGwczJFI" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Once completed, you will see the CUBE OS' IP displayed on the screen. Use this IP address or [cube.local](http://cube.local/) to access the CUBE OS Web management page.

<div align="left"><figure><img src="/files/1SSSiVBhlXFbvVZ6eSZB" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Upon successful access, a short ID can be viewed on the settings page. Subsequently, access the CUBE OS Web management page using `cube-{short id}.local`, which is useful for differentiating multiple CUBE OS instances on the same local network.

<div align="left"><figure><img src="/files/p1RewfijnkveijqSDwAR" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cube.ewelink.cc/getting-started/quickstart/virtual-machine/hyper-v.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
