mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-26 13:23:41 +00:00
Flat Mode for hub emulation means DM emulates USB devices under hub but hide hub itself. Under this design the Guest OS cannot see any emulated hub. So in the perspective of Guest OS, all the emulated devices are under root hub. This patch is used to enable feature as mentioned above. And please NOTE, it is the initial version of hub flat Mode hub emulation, there are one limitation: only one physical hub is supported. If second physical hub is connected, the connect and disconnect behavior in second hub may affect the function of first emulated hub. The USB HUB device model should be the final long term solution, but it is very complex. Use flat mode HUB emulation as the short term solution first to support some USB touch devices which integrated internal HUB. Signed-off-by: Liang Yang <liang3.yang@intel.com> Reviewed-by: Xiaoguang Wu <xiaoguang.wu@intel.com> Acked-by: Yu Wang <yu1.wang@intel.com> Tracked-On: #1243
ACRN Device Model
#################
Introduction
============
The ACRN Device Model provides **device sharing** capabilities between the Service OS and Guest OSs. It is a component that is used in conjunction with the `ACRN Hypervisor`_ and this is installed within the Service OS. You can find out more about Project ACRN on the `Project ACRN documentation`_ website.
Building the Device Model
=========================
Build dependencies
******************
* For Clear Linux
.. code-block:: console
sudo swupd bundle-add os-clr-on-clr \
os-utils-gui-dev
* For CentOS
.. code-block:: console
sudo yum install gcc \
libuuid-devel \
openssl-devel \
libpciaccess-devel \
libusb-devel
* For Fedora 27
.. code-block:: console
sudo dnf install gcc \
libuuid-devel \
openssl-devel \
libpciaccess-devel \
libusb-devel
Build
*****
To build the Device Model
.. code-block:: console
make
To clean the build artefacts
.. code-block:: console
make clean
Runtime dependencies
********************
* On CentOS
.. code-block:: console
sudo yum install openssl-libs \
zlib \
libpciaccess \
libuuid \
libusb
* On Fedora 27
.. code-block:: console
sudo dnf install openssl-libs \
zlib \
libpciaccess \
libuuid \
libusb
.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor
.. _`Project ACRN documentation`: https://projectacrn.github.io/