mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-12-25 06:32:36 +00:00
Randomness sourced from /dev/random which does not block once it has been seeded at bootup and you will always get something when you read from that file. This is true on Freebsd but unfortunately things are not the same on Linux. Most cases, you can't read anything from /dev/random especially on current acrn platform which lacking random events. virtio_rnd inherted from freebsd doesn't work anymore. This patch makes virtio_rnd working on Linux based SOS. It uses blocking IO to sevice the front-end random driver and delays the read operation into a new thread to avoid blocking the main notify thread. Signed-off-by: Jie Deng <jie.deng@intel.com> Reviewed-by: Shuo Liu <shuo.a.liu@intel.com> Acked-by: Yu Wang <yu1.wang@intel.com>
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/