You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 539f3e3
Browse filesBrowse the repository at this point in the historyBrowse files
graphics plan: correct NVIDIA distribution framing (FreeBSD ships it as a binary pkg)
NVIDIA's driver is redistributable — FreeBSD packages nvidia-driver/nvidia-kmod as
binaries under LICENSE_PERMS pkg-mirror no-pkg-sell auto-accept. Replaces the
earlier (incorrect) 'licensing constraint / not freely redistributable / confirm
with driver-licensing@nvidia.com' framing: NextBSD ships the kext on the same terms
FreeBSD does — carry doc/license.txt, don't sell. No sign-off gate.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
<li><code>nvidia-drm.ko</code> — the <strong>DRM/KMS bridge</strong> that registers with and links the <em>same</em><code>drm.ko</code>/<code>drmn</code> core this plan’s <code>IOGraphics.kext</code> provides (<code>MODULE_DEPEND(nvidia_drm, drmn, 2,2,2)</code>). FreeBSD even split the port: <code>x11/nvidia-driver</code> (userland) → <code>x11/nvidia-kmod</code> (the <code>.ko</code>s) + <code>graphics/nvidia-drm-kmod</code> (the bridge).</li>
176
176
</ul>
177
177
<divclass="callout callout-warn">
178
-
<p><spanclass="pill">Distribution — same as FreeBSD</span> NVIDIA’s driver is redistributable: FreeBSD ships nvidia-driver as binary packages. NextBSD builds the .kos from NVIDIA’s tarball like the FreeBSD port and ships the result the same way (carry doc/license.txt, don’t sell).</p>
178
+
<p><spanclass="pill">Distribution — same as FreeBSD</span> NVIDIA’s driver is redistributable: FreeBSD ships <code>nvidia-driver</code>/<code>nvidia-kmod</code> as binary packages under <code>LICENSE_PERMS = dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept</code>. NextBSD builds the three <code>.ko</code>s from NVIDIA’s tarball exactly like the FreeBSD port (compile the glue against the local kernel, link the blob, wrap as a kext) and ships the result the same way — carrying NVIDIA’s <code>doc/license.txt</code> and not selling it. Building in a sibling repo vs a job inside <code>nextbsd-graphics</code> is a build-architecture choice, not a licensing one.</p>
179
179
</div>
180
180
<p><strong>One kext per FreeBSD <code>nvidia-kmod*</code> port.</strong> FreeBSD ships the current driver plus five pinned legacy branches; each becomes a kext carrying that branch’s <code>.ko</code>s and its own supported-GPU match table. Crucially, the DRM/KMS bridge (<code>graphics/nvidia-drm-612-kmod</code>, pinned to NextBSD’s drm 6.12 core — see the note in §5) is packaged <strong>only for the main and 580 branches</strong>; the four older branches are <strong>core / X11-only</strong> (proprietary <code>/dev/nvidia</code> path, no <code>/dev/dri</code>, no Wayland), so only main/580 depend on <code>IOGraphics</code>.</p>
181
181
<table>
@@ -229,7 +229,7 @@ <h2 id="risks">10. Risks & open questions</h2>
229
229
<li><strong>The virtio KPI bridge is the real virtio cost</strong> — no <code>linuxkpi</code> virtio layer exists; the prototype is against 5.5, doesn’t compile, and <code>panic()</code>s on the mandatory <code>reset</code>/<code>del_vqs</code>. Its <code>scatterlist</code>→<code>sglist</code> conversion and interrupt-context casts are likely buggy under real traffic.</li>
230
230
<li><strong>virtio’s match path differs</strong> (sub-bus ivar, not a raw <code>IOPCIDevice</code>), so the <em>cleanest</em> end-to-end CI demonstration is <strong>bochs</strong>, not virtio.</li>
231
231
<li><strong>Aperture/vgaarb handoff</strong> must release the boot framebuffer or every driver fights the console at attach.</li>
232
-
<li><strong>NVIDIA distribution</strong> is not a blocker — FreeBSD ships nvidia-driver as a binary pkg; NextBSD ships the kext on the same terms.</li>
232
+
<li><strong>NVIDIA distribution</strong> is not a blocker — FreeBSD ships <code>nvidia-driver</code> as a binary pkg (<code>LICENSE_PERMS pkg-mirror no-pkg-sell auto-accept</code>); NextBSD ships the kext on the same terms (carry the license file, don’t sell).</li>
233
233
<li><strong>vmwgfx <code>page_dirty</code></strong> leans on Linux MM internals <code>linuxkpi</code> doesn’t expose; correct (un-stubbed) support may require touching <code>linuxkpi</code> VM-fault handling. <code>kmap_atomic_prot</code> is x86-specific — an arm64 target needs more.</li>
234
234
</ul>
235
235
<p><strong>Open questions to settle first:</strong></p>
0 commit comments