• Stars
    star
    421
  • Rank 102,977 (Top 3 %)
  • Language
    Rust
  • License
    MIT License
  • Created about 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Unlock vGPU functionality for consumer grade GPUs

Rust-based vgpu_unlock

Unlock vGPU functionality for consumer-grade NVIDIA GPUs.

This tool is to be used with the kernel patches from the main vgpu_unlock repository!

Dependencies

  • This tool requires Rust. You can install it via your package manager or via .
  • Rust requires a linker to be installed to be able to create the shared library. Typically, this is installed with the C compiler through your distribution's package manager.
  • The dependencies from the main vgpu_unlock project excluding Python and frida.

Installation

In the following instructions <path_to_vgpu_unlock_rs> needs to be replaced with the path to this repository on the target system.

Install the NVIDIA vGPU driver and kernel driver patches as detailed in the main vgpu_unlock project README. Ignore the steps regarding editing the systemd service unit files.

Run cargo build --release to compile the shared library.

Create the directories /etc/systemd/system/nvidia-vgpud.service.d and /etc/systemd/system/nvidia-vgpu-mgr.service.d.

Create the files /etc/systemd/system/nvidia-vgpud.service.d/vgpu_unlock.conf and /etc/systemd/system/nvidia-vgpu-mgr.service.d/vgpu_unlock.conf with the following:

[Service]
Environment=LD_PRELOAD=<path_to_vgpu_unlock_rs>/target/release/libvgpu_unlock_rs.so

Create the directory /etc/vgpu_unlock which will house the vGPU profile override configuration file.

Create the file /etc/vgpu_unlock/profile_override.toml with the profile fields that are to be overridden. The following is an example for nvidia-55 (GRID P40-2A) that sets the number of heads to 1, sets the framebuffer to be 1920x1080 (1920 * 1080 = 2073600 pixels), enables CUDA, and disables the frame-rate limiter.

[profile.nvidia-55]
num_displays = 1
display_width = 1920
display_height = 1080
max_pixels = 2073600
cuda_enabled = 1
frl_enabled = 0

If you want to enable VM migration or snapshotting, you must recompile the nvidia-vgpu-vfio kernel module with NV_KVM_MIGRATION_UAPI equal to 1. Then, create the file /etc/vgpu_unlock/config.toml and add the following:

unlock_migration = true

Happy hacking!

More Repositories

1

cypher

🔐 N1 PGP package
JavaScript
130
star
2

kbinxml-rs

Rust decoder/encoder for Konami's binary XML format
Rust
15
star
3

jubeat_patcher

Omnimix hook for jubeat clan
C++
12
star
4

Discord-Linux

Reverse Engineering of the Discord Windows App, then running using Electron on Linux
JavaScript
6
star
5

StarLoader

Runtime Hooking Platform for MacOSX
Objective-C
5
star
6

roland_midi_control

Send Roland MIDI System Exclusive messages to a Sound Canvas hardware MIDI synthesizer
Rust
3
star
7

Trent-The-Sheep

Permutation and Combination Cocos2d game
Objective-C
3
star
8

ClockWork

A digital clock for the Notification Center
Objective-C
3
star
9

PacUpdater

Apticron for Arch Linux
JavaScript
2
star
10

directinput-rs

Semi-safe Rust wrapper around Windows' DirectInput 8 API
Rust
2
star
11

tran

Transfer files easily between 2 p2p clients
JavaScript
1
star
12

music_database

A Rust program to manage a Postgres database and Elasticsearch instance of my music collection.
Rust
1
star
13

futures-ratelimit

Ratelimiting futures with futures-rs
Rust
1
star
14

Diner-Dash-All

A tweak to allow Diner Dash to run on all devices.
1
star
15

Quartz

Minecraft Benchmarking Utilities
Python
1
star
16

amVideo-rs

Small Rust program to set monitor resolutions with amVideo on SEGA's Nu and ALLS platforms
Rust
1
star
17

MinecraftPortable

MinecraftPortable for Windows and Mac.
Python
1
star
18

node-music

A nice music player written in javascript for node.js.
JavaScript
1
star
19

puppet-pacman

Puppet module for managing Pacman configuration, repositories and mirrorlist. Provides ability to install packages from AUR.
Puppet
1
star
20

Agenda-Book

An electronic agenda book for a school project
Objective-C
1
star
21

Downloadr

ABANDONED, good as boilerplate for testing --- This is a downloader of many things, torrents, arbitrary urls, bandcamp, soundcloud, and other junk
JavaScript
1
star
22

check-torrent

Manually check torrent data against piece hashes from the source torrent
Rust
1
star