<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=Install_and_First_Run</id>
	<title>Install and First Run - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=Install_and_First_Run"/>
	<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Install_and_First_Run&amp;action=history"/>
	<updated>2026-10-12T06:35:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://open-iov.org/index.php?title=Install_and_First_Run&amp;diff=23982&amp;oldid=prev</id>
		<title>WikiBot: Fix repository links: point to the cgit tree URLs</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Install_and_First_Run&amp;diff=23982&amp;oldid=prev"/>
		<updated>2026-10-12T04:40:58Z</updated>

		<summary type="html">&lt;p&gt;Fix repository links: point to the cgit tree URLs&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:40, 12 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Install and First Run =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Install and First Run =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;'''What this page is.''' From a fresh Ubuntu host with a supported NVIDIA GPU to a guest VM running a stock NVIDIA driver and &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt;, in about half an hour. Condensed from the maintained guide [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/02-getting-started/01-install-and-first-run.md &amp;lt;code&amp;gt;../docs/02-getting-started/01-install-and-first-run.md&amp;lt;/code&amp;gt;]; the docs tree wins on disagreement.&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;'''What this page is.''' From a fresh Ubuntu host with a supported NVIDIA GPU to a guest VM running a stock NVIDIA driver and &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt;, in about half an hour. Condensed from the maintained guide [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/02-getting-started/01-install-and-first-run.md &amp;lt;code&amp;gt;../docs/02-getting-started/01-install-and-first-run.md&amp;lt;/code&amp;gt;]; the docs tree wins on disagreement.&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Status: 2026-10-12, tree &amp;lt;code&amp;gt;master @ 2f066727&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; verified path; &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; roadmap item.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Status: 2026-10-12, tree &amp;lt;code&amp;gt;master @ 2f066727&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; verified path; &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; roadmap item.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-23948:rev-23982 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=Install_and_First_Run&amp;diff=23948&amp;oldid=prev</id>
		<title>WikiBot: Carry the site-wide About/licensing message on every page (2026-10-12)</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Install_and_First_Run&amp;diff=23948&amp;oldid=prev"/>
		<updated>2026-10-12T04:29:49Z</updated>

		<summary type="html">&lt;p&gt;Carry the site-wide About/licensing message on every page (2026-10-12)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:29, 12 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{About message}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Install and First Run =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Install and First Run =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-23868:rev-23948 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=Install_and_First_Run&amp;diff=23868&amp;oldid=prev</id>
		<title>WikiBot: Add page from tracked wiki source (2026 IA update)</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Install_and_First_Run&amp;diff=23868&amp;oldid=prev"/>
		<updated>2026-10-12T04:22:12Z</updated>

		<summary type="html">&lt;p&gt;Add page from tracked wiki source (2026 IA update)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Install and First Run =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''What this page is.''' From a fresh Ubuntu host with a supported NVIDIA GPU to a guest VM running a stock NVIDIA driver and &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt;, in about half an hour. Condensed from the maintained guide [https://git.vgpu.io/open-iov/blob/master/docs/02-getting-started/01-install-and-first-run.md &amp;lt;code&amp;gt;../docs/02-getting-started/01-install-and-first-run.md&amp;lt;/code&amp;gt;]; the docs tree wins on disagreement.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status: 2026-10-12, tree &amp;lt;code&amp;gt;master @ 2f066727&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; verified path; &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; roadmap item.&lt;br /&gt;
&lt;br /&gt;
== 1. Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
'''Host'''&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 22.04 or 24.04, x86_64 (aarch64 is a &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt;);&lt;br /&gt;
* an NVIDIA GPU covered by the current emulation profile (Turing TU104 is the reference — see [[Hardware and Software Matrix|&amp;lt;code&amp;gt;Hardware-Software-Matrix.md&amp;lt;/code&amp;gt;]]);&lt;br /&gt;
* a working '''host''' NVIDIA driver (&amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; runs on the host; Open-IOV does not modify it);&lt;br /&gt;
* IOMMU enabled (&amp;lt;code&amp;gt;intel_iommu=on&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;amd_iommu=on&amp;lt;/code&amp;gt;), hugepages configured, kernel headers for the running kernel;&lt;br /&gt;
* &amp;lt;code&amp;gt;qemu-system-x86_64&amp;lt;/code&amp;gt; with KVM; libvirt optional;&lt;br /&gt;
* root (or sudo) for module load and mdev creation.&lt;br /&gt;
&lt;br /&gt;
'''Guest'''&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 24.04 server (the reference guest), or any Linux with the matching stock NVIDIA driver available;&lt;br /&gt;
* '''no Open-IOV component at all''' — that is the point ([[System Overview|&amp;lt;code&amp;gt;System-Overview.md&amp;lt;/code&amp;gt;]]).&lt;br /&gt;
&lt;br /&gt;
== 2. Get the code and build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://git.vgpu.io/open-iov.git&lt;br /&gt;
cd open-iov&lt;br /&gt;
./install.sh deps        # build/runtime dependencies&lt;br /&gt;
./install.sh nvidia      # optional: NVIDIA OpenRM modules + build glue&lt;br /&gt;
./install.sh firmware    # GSP firmware image (verified)&lt;br /&gt;
./install.sh build       # kernel module + userspace&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; is safe to re-run. The manual equivalent, and the order that matters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel                      # first: generates Module.symvers&lt;br /&gt;
./scripts/build_nvidia_openrm.sh # optional (see below)&lt;br /&gt;
make userspace&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Build order matters.''' NVIDIA's OpenRM modules resolve symbols that &amp;lt;code&amp;gt;vgsp.ko&amp;lt;/code&amp;gt; exports; building them in the wrong order produces &amp;lt;code&amp;gt;Unknown symbol&amp;lt;/code&amp;gt; failures at load time.&lt;br /&gt;
&lt;br /&gt;
'''The OpenRM stage is optional.''' It is needed only for the native vGPU-management workflows in which NVIDIA's modules are built against the symbols &amp;lt;code&amp;gt;vgsp.ko&amp;lt;/code&amp;gt; exports. The QEMU/emulated path uses the distribution driver that already manages the physical GPU; &amp;lt;code&amp;gt;load-stack&amp;lt;/code&amp;gt; skips the OpenRM submodule when a distribution driver is present.&lt;br /&gt;
&lt;br /&gt;
== 3. Load the stack and create a virtual GPU ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./scripts/stack_manager.sh status        # what is currently loaded&lt;br /&gt;
./scripts/stack_manager.sh load-stack    # vfio/mdev prereqs -&amp;amp;gt; vgsp.ko -&amp;amp;gt; (optional) nvidia&lt;br /&gt;
./scripts/stack_manager.sh mdev-create   # create a vGPU mediated device&lt;br /&gt;
./scripts/stack_manager.sh mdev-list     # inspect /sys/bus/mdev/devices/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The mdev device ''is'' the virtual GPU; everything after this treats it like any other VFIO device.&lt;br /&gt;
&lt;br /&gt;
== 4. Launch a reference guest ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./scripts/stack_manager.sh qemu          # reference raw-QEMU guest with the mdev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To integrate with your own stack (libvirt, Xen, ...), attach the mdev exactly as any VFIO device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;hostdev mode='subsystem' type='mdev' model='vfio-pci'&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;source&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;address uuid='&amp;amp;lt;mdev-uuid&amp;amp;gt;'/&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/source&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/hostdev&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Attach behind a root port, not on the root bus.''' QEMU rewrites a device's PCIe capability when it detects a root-complex-integrated endpoint, which changes the link capabilities the guest driver sees. The reference script does this for you.&lt;br /&gt;
&lt;br /&gt;
== 5. Install the stock driver in the guest ==&lt;br /&gt;
&lt;br /&gt;
Inside the guest:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt update&lt;br /&gt;
sudo apt install -y linux-headers-generic build-essential&lt;br /&gt;
# The validated combination is the stock 570.144 Linux runfile (the same&lt;br /&gt;
# driver version as the emulation target).&lt;br /&gt;
sudo sh ./NVIDIA-Linux-x86_64-570.144.run&lt;br /&gt;
sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verify:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nvidia-smi                # must list the virtual GPU&lt;br /&gt;
lsmod | grep -c nvidia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;nvidia.ko&amp;lt;/code&amp;gt; fails to probe, capture host dmesg, guest dmesg, guest &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt; and the guest module parameters, and file an issue.&lt;br /&gt;
&lt;br /&gt;
== 6. First CUDA check ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# in the guest&lt;br /&gt;
git clone https://github.com/NVIDIA/cuda-samples.git&lt;br /&gt;
cd cuda-samples/Samples/1_Utilities/deviceQuery &amp;amp;amp;&amp;amp;amp; make &amp;amp;amp;&amp;amp;amp; ./deviceQuery&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Expectation today''' (&amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; unless noted): driver probe, &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt;, device enumeration and the full CUDA '''driver-API''' smoke complete end to end (&amp;lt;code&amp;gt;ALL OK&amp;lt;/code&amp;gt;, 64-byte payload round-trips). CUDA '''kernel execution''' is the current frontier: a guest launch is forwarded and reaches the engine queue, but engine execution is not yet observed (&amp;lt;code&amp;gt;[wall]&amp;lt;/code&amp;gt;) — see [[Project Status|&amp;lt;code&amp;gt;Project-Status.md&amp;lt;/code&amp;gt;]] and [[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]] before drawing conclusions from a kernel that does not run.&lt;br /&gt;
&lt;br /&gt;
== 7. Day-to-day operations ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./scripts/stack_manager.sh up          # build all + load + create mdev&lt;br /&gt;
./scripts/stack_manager.sh status      # modules, mdev, vfio, firmware&lt;br /&gt;
./scripts/stack_manager.sh test        # host test suite&lt;br /&gt;
./scripts/stack_manager.sh unload      # correct-order teardown&lt;br /&gt;
./scripts/stack_manager.sh cleanup-crash&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load order is prerequisites → kernel module → (optional) NVIDIA OpenRM → firmware; unload is the reverse. Do not &amp;lt;code&amp;gt;rmmod&amp;lt;/code&amp;gt; by hand while a VM holds the mdev.&lt;br /&gt;
&lt;br /&gt;
== 8. Watching the emulation work ==&lt;br /&gt;
&lt;br /&gt;
The module logs with the prefix '''&amp;lt;code&amp;gt;vgsp-&amp;amp;lt;subsystem&amp;amp;gt;:&amp;lt;/code&amp;gt;''' (for example &amp;lt;code&amp;gt;vgsp-rpc:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vgsp-sema:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vgsp-work:&amp;lt;/code&amp;gt;) plus per-RPC traces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dmesg -w | grep -i 'vgsp'          # live&lt;br /&gt;
sudo dmesg -T | grep -i 'vgsp' | tail -50&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Developer debug knobs (module parameters) are documented in the repository's debugging workflow document.&lt;br /&gt;
&lt;br /&gt;
== 9. Troubleshooting index ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symptom&lt;br /&gt;
! Start here&lt;br /&gt;
|-&lt;br /&gt;
| Module will not load&lt;br /&gt;
| &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;modinfo vgsp.ko&amp;lt;/code&amp;gt;, stale module state → &amp;lt;code&amp;gt;cleanup-crash&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No mdev type for your GPU&lt;br /&gt;
| [[Hardware and Software Matrix|&amp;lt;code&amp;gt;Hardware-Software-Matrix.md&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| Guest sees wrong PCIe link speed/width&lt;br /&gt;
| attach behind a root port (section 4)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nvidia.ko&amp;lt;/code&amp;gt; probe fails in guest&lt;br /&gt;
| guest dmesg + &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt; + [[Guest Driver Lifecycle: A Field Guide|&amp;lt;code&amp;gt;Driver-Lifecycle-Field-Guide.md&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; works, a CUDA kernel does not run&lt;br /&gt;
| expected today — the execution frontier, not your setup ([[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| VM boot fails or the guest hangs&lt;br /&gt;
| &amp;lt;code&amp;gt;scripts/stack_manager.sh cleanup-crash&amp;lt;/code&amp;gt;, then reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 10. Uninstall ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./scripts/stack_manager.sh unload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The project never modifies your host driver's files; removing the module and its mdev devices returns the host to its previous state.&lt;/div&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
</feed>