Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
.. SPDX-FileCopyrightText: (C) 2025 Intel Corporation
.. SPDX-License-Identifier: Apache-2.0

.. _intel_oot_gpu_driver_installation:

Installation of Intel Out of Tree (OOT) GPU Drivers During Provisioning
=======================================================================

Here are the supported GPU drivers for Intel platforms:

#. Intel iGPU - ADL, RPL platforms.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are code names we should change them like - Intel® Core™ Ultra Series 3 processors (formerly code-named Panther Lake)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need OOT for iGPU ON Ubuntu 24.04 does it not work out of box ?

Copy link
Contributor Author

@Ram-srini Ram-srini Mar 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct but Panther lake if iGPU gpu OOT drivers are not up streamed then we might need it. We don't need it for RPL


#. Intel Battle Mage 580 GPU - Xeon platforms (Dell XR12 Icelake).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are code names we should change them like - Intel® Core™ Ultra Series 3 processors (formerly code-named Panther Lake)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Battlemage is one word, the model is also Intel Arc B580.


Follow the steps below to install Intel Out of Tree (OOT) GPU Drivers for Ubuntu 24.04 LTS
OS profile.

Step 1: Login to orch-cli
-------------------------

Login to orch-cli if not logged in yet.

Replace the placeholders in the command below:

- ``<API_USER>``: Your API username.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it not be export in the start?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should link to existing orch-cli user guides rather than duplicating documents for logging in, this section should only refer to the specific verbs/commands being documented here.

- ``<API_PASSWORD>``: Your API password.
- ``<CLUSTER>``: Your cluster domain.

.. code-block:: bash

orch-cli login <API_USER> <API_PASSWORD> --keycloak https://keycloak.<CLUSTER>/realms/master

Step 2: Create Custom Cloud-Init Resource to Install Intel OOT GPU Drivers
--------------------------------------------------------------------------

Create a custom cloud-init YAML file called ``gpu_driver_installation.yaml`` with the content
below.

Replace ``<PLATFORM_TYPE>`` with the proper platform type:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Platform Type should be defined somewhere as most users will not know our codename abbreviations, ideally this is documented within the script where this is released. User guide should suggest downloading the script to find correct parameters.


- ``ADL``: Alderlake iGPU installation.
- ``RPL``: Raptorlake iGPU installation.
- ``BMG``: Battlemage discrete GPU installation on Xeon platforms.

.. code-block:: yaml

#cloud-config
merge_how: 'dict(recurse_array,no_replace)+list(append)'
runcmd:
- |
wget https://af01p-png.devtools.intel.com/artifactory/hspe-edge-png-local/ubuntu/daily/panther-lake/20251106-1458/installer.sh --no-check-certificate --no-proxy -O /tmp/installer.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is inside Intel URL which customer can not access

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To add to what @krishnajs mentions, this is even more problematic as this script is written explicitly for internaly use and appears to statically define internal Intel proxies and discloses proxy names to external users if released as-is.

chmod +x /tmp/installer.sh

sed -i '/parition_extention/i export DEBIAN_FRONTEND=noninteractive' /tmp/installer.sh
sed -i '/export DEBIAN_FRONTEND=noninteractive/a \
wait_until_base_pkg_install_done() { \
while [ true ]; do \
if [ -f "/home/postinstall/Setup/.base_pkg_install_done" ]; then \
echo "Base package installation completed. Proceeding..."; \
break; \
else \
echo "Waiting for base package installation to complete..."; \
sleep 2; \
fi; \
done \
}' /tmp/installer.sh
sed -i '/parition_extention/i wait_until_base_pkg_install_done' /tmp/installer.sh

sed -i '/ProxySetUp/a source /etc/apt/apt.conf.d/99proxy.conf\
source /etc/environment' installer.sh
sed -i '/^[[:space:]]*parition_extention\([[:space:]]\|$\)/ s/^/#/' /tmp/installer.sh
sed -i '/^[[:space:]]*reconfigureGrub\([[:space:]]\|$\)/ s/^/#/' /tmp/installer.sh
sed -i '/^[[:space:]]*InstallPackage\([[:space:]]\|$\)/ s/^/#/' /tmp/installer.sh
sed -i '/^[[:space:]]*InternalConfigSetup\([[:space:]]\|$\)/ s/^/#/' /tmp/installer.sh
sed -i '/^[[:space:]]*ValidatePackages\([[:space:]]\|$\)/ s/^/#/' /tmp/installer.sh
sed -i '/reboot/i touch /home/postinstall/Setup/.custom_update_done' /tmp/installer.sh
sed -i '/reboot/i apt-get install ubuntu-desktop -y' /tmp/installer.sh
if [ ! -f /home/postinstall/Setup/.custom_update_done ]; then
/tmp/installer.sh <PLATFORM_TYPE> default
fi

Step 3: Create Custom Cloud-Init Config
---------------------------------------

Replace the placeholders below as per your orchestrator:

- ``<PROJECT_NAME>``: Project name.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it not be export in the start?

- ``<CLUSTER>``: Cluster domain.

.. code-block:: bash

orch-cli create customconfig install-gpu-driver ./gpu_driver_installation.yaml \
--project <PROJECT_NAME> \
--description "Intel OOT GPU driver installation" \
--api-endpoint https://api.<CLUSTER>

List all the custom configurations along with resource ID:

.. code-block:: bash

orch-cli list customconfig --project <PROJECT_NAME> --api-endpoint https://api.<CLUSTER>

Step 4: Register the Device with Custom Configuration
-----------------------------------------------------

Register the edge node to EMF orchestrator and choose the Ubuntu 24.04 profile.

.. code-block:: bash

orch-cli create host --project <PROJECT_NAME> --generate-csv

Replace ``<PROJECT_NAME>`` with your project name.

Update the ``test.csv`` file with the following information:

- Serial number of device.
- OS profile ID of Ubuntu 24.04 LTS.
- Site ID information.

Create the host with Ubuntu OS profile and custom cloud-init:

.. code-block:: bash

orch-cli create host --project <PROJECT_NAME> \
--api-endpoint https://api.<CLUSTER> \
--import-from-csv test.csv \
--cloud-init <CUSTOMCONFIG_ID>

Replace the following placeholders:

- ``<PROJECT_NAME>``: Project name created.
- ``<CLUSTER>``: Cluster domain.
- ``<CUSTOMCONFIG_ID>``: Custom configuration ID from Step 3.

Step 5: Monitor the Provisioning Status
---------------------------------------

Monitor the provisioning status of the edge node using the orch-cli or EMF web console:

.. code-block:: bash

orch-cli get host <host_resource_id>

Replace ``<host_resource_id>`` with the ID of the edge node obtained during registration.

Step 6: Verify the Installation
-------------------------------

Once the provisioning is complete, verify that the edge node is running the Ubuntu 24.04 OS
profile by checking the OS version and verifying GPU installation:

.. code-block:: bash

lspci -nn | grep Graphics

You can also verify the GPU driver is loaded correctly:

.. code-block:: bash

lsmod | grep i915

Related Documentation
---------------------

- For more details on using the orch-cli, refer to the
:doc:`orch-cli user guide </user_guide/package_software/orch_cli/orch_cli_guide>`.

- For more details on edge node provisioning, refer to the
:doc:`edge node provisioning guide </user_guide/set_up_edge_infra/edge_node_onboard/index>`.

- For more details on custom OS profiles, refer to the
:doc:`custom OS profile guide </user_guide/advanced_functionality/custom_os_profile>`.

2 changes: 2 additions & 0 deletions docs/user_guide/advanced_functionality/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ application's capabilities:
* :doc:`/user_guide/advanced_functionality/custom_config`
* :doc:`/user_guide/advanced_functionality/vpro_power_mgt`
* :doc:`/user_guide/advanced_functionality/custom_os_profile`
* :doc:`/user_guide/advanced_functionality/Intel_OOT_gpu_driver_installation`


.. toctree::
Expand All @@ -39,3 +40,4 @@ application's capabilities:
vpro_power_mgt
configure_edgenode_lvm_parition.rst
custom_os_profile
Intel_OOT_gpu_driver_installation
Loading