acrn-hypervisor/doc/tutorials/using_serial_port.rst

110 lines
3.7 KiB
ReStructuredText

.. _connect_serial_port:
Enable Serial Port on NUC
#########################
Option 1: Using the Serial Port on TGL Intel NUC
================================================
You can enable the serial console on the
`TGL Intel NUC <https://ark.intel.com/content/www/us/en/ark/products/205594/intel-nuc-11-pro-kit-nuc11tnhi5.html?wapkw=NUC11TNHi5>`_
(NUC11TNHi5). The TGL Intel NUC has a serial port header that you can
expose with a serial DB9 header cable. (The Intel NUC has a punch-out hole for
mounting the serial connector.)
.. figure:: images/NUC11TNH-serial-port.png
TGL Intel NUC with populated serial port punchout
You can `purchase
<https://www.amazon.com/dp/B07BV1W6N8/ref=cm_sw_r_cp_ep_dp_wYm0BbABD5AK6>`_
such a cable or you can build it yourself;
refer to the `TGL Intel NUC product specification
<https://ark.intel.com/content/www/us/en/ark/products/205594/intel-nuc-11-pro-kit-nuc11tnhi5.html>`_
as shown below:
.. figure:: images/NUC11TNH-serial-port-header.png
:scale: 80
NUC11TNH serial port header details
.. figure:: images/NUC11TNH-serial-port-header-to-RS232-cable.png
:scale: 80
NUC11TNH `serial port header to RS232 cable
<https://www.amazon.com/dp/B07BV1W6N8/ref=cm_sw_r_cp_ep_dp_wYm0BbABD5AK6>`_
You'll also need an `RS232 DB9 female to USB cable
<https://www.amazon.com/Adapter-Chipset-CableCreation-Converter-Register/dp/B0769DVQM1>`_
or an `RS232 DB9 female/female (NULL modem) cross-over cable
<https://www.amazon.com/SF-Cable-Null-Modem-RS232/dp/B006W0I3BA>`_
to connect to your host system.
Note that If you want to use the RS232 DB9 female/female cable, choose
the **cross-over** type rather than **straight-through** type.
Option 2: Enabling PCIe Serial Port on TGL Intel NUC
====================================================
If there is no internal serial port header on your NUC, you can enable the PCIe serial port to debug the issues effeciently.
Most of the NUCs don't have a PCIe interface but have an NVMe M.2 interface, so the additional M.2 to PCIe adaptor is needed to
enable the PCIe serial port on the NUC. You can buy the `adaptor
<https://item.jd.com/10025455296900.html>`_ first and then buy the PCIe serial card with `StarTech 2 Port Native PCI Express
<https://www.ebay.ca/i/351912927278>`_ or `IO-PCE99100-2S <https://item.jd.com/1126612955.html>`_.
Both of them are verified with this
`commit <https://github.com/projectacrn/acrn-hypervisor/commit/9e838248c3ce4d6b68e1c5b068d10d566a06db10>`_.
.. figure:: images/NVMe-M.2-to-PCIe-adaptor.png
:scale: 80
NVMe M.2 to PCIe adaptor
.. figure:: images/PCIe-serial-StarTech.png
:scale: 80
StarTech 2 Port Native PCI Express
.. figure:: images/PCIe-serial-LeKuo.png
:scale: 80
IO-PCE99100-2S
Check the BDF Information
*************************
Connect as in following figure, boot into native, and then check the BDF
information of the adapter using: ``lspci``.
.. figure:: images/PCIe-serial-Connection.png
:scale: 80
PCIe Serial Connection on NUC
.. code-block:: bash
01:00.0 Serial controller: Asix Electronics Corporation Device 9100
01:00.1 Serial controller: Asix Electronics Corporation Device 9100
Convert the BDF to Hex Format
*****************************
Refer this :ref:`hv-parameters` to change bdf 01:00.1 to Hex format: 0x101;
then add it to the grub menu:
.. code-block:: bash
multiboot2 /boot/acrn.bin root=PARTUUID="b1bebafc-2b06-43e2-bf6a-323337daebc0" uart=bdf@0x101
.. Note::
``uart=bdf@0x100`` for port 1
``uart=bdf@0x101`` for port 2
``uart=bdf@0x101`` is preferred for the shared scenario; otherwise, it can't
input in the Hypervisor console after the Service VM boots up.
There is no such limitation for the hybrid or hybrid_rt scenarios.