Giter Site home page Giter Site logo

dxgkrnl_ubuntu1's Introduction

notice:

  • this is outdated for Ubuntu 22.04, WSL2 now use kernel 5.15

plans:

  • Provide instruction to build the dxgkrnl kernel (both 5.10 and 5.15)
  • AMD guide
  • Wayland XRDP with GPU acceleration (similar to WSLg)

dxgkrnl_ubuntu

Use Ubuntu on Hyper-V virtual machine with dxgrknl (GPU-P) support.

Pros:

  • Full Hyper-V virtual machine as your disposal.
  • Has systemd.

Cons:

  • WSLg stuff is not supported. Use XRDP (without GPU acceleration) instead.

image

Instructions

1. Enable GPU-P for your Hyper-V virtual machine:

  • Create a Gen 2 Hyper-V virtual machine, install Ubuntu 20.04 LTS as normal
  • From Windows Host run Powershell as Administrator (change "ubuntu" to your actual Hyper-V virtual machine name):
$vm = "ubuntu"
Remove-VMGpuPartitionAdapter -VMName $vm
$gpu_list = Get-VMHostPartitionableGpu
foreach ($k in $gpu_list){
    $instance_path = $k.Name
    $instance_path
    Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $instance_path
}
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 1
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionVRAM 11
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionVRAM 10
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionEncode 1
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionEncode 11
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionEncode 10
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionDecode 1
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionDecode 11
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionDecode 10
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionCompute 1
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionCompute 11
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionCompute 10
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm

2. Prepare /usr/lib/wsl:

  • From Ubuntu Hyper-V virtual machine:
sudo apt-get update && sudo apt-get install -y openssh-server
mkdir -p $HOME/temp_folder/lib
mkdir -p $HOME/temp_folder/drivers
ip a | grep eth0
  • From Powershell of Windows Host:
scp -r C:\Windows\System32\lxss\lib VM_USERNAME@VM_IP:temp_folder
scp -r C:\Windows\System32\DriverStore\FileRepository\nv_* VM_USERNAME@VM_IP:temp_folder/drivers
  • From Ubuntu Hyper-V virtual machine:
sudo rm -rf /usr/lib/wsl
sudo mv $HOME/temp_folder /usr/lib/wsl
sudo chmod 555 /usr/lib/wsl/lib/*
sudo chown -R root:root /usr/lib/wsl
sudo bash -c 'echo "/usr/lib/wsl/lib" > /etc/ld.so.conf.d/ld.wsl.conf'
sudo ldconfig
sudo bash -c 'echo export PATH=$PATH:/usr/lib/wsl/lib > /etc/profile.d/wsl.sh'
sudo chmod +x /etc/profile.d/wsl.sh

3. Install the kernel:

  • Download and install the .deb package:
cd ~/
wget https://github.com/brokeDude2901/dxgkrnl_ubuntu/releases/download/main/linux-headers-5.10.102.1-dxgrknl_5.10.102.1-dxgrknl-10.00.Custom_amd64.deb
wget https://github.com/brokeDude2901/dxgkrnl_ubuntu/releases/download/main/linux-image-5.10.102.1-dxgrknl_5.10.102.1-dxgrknl-10.00.Custom_amd64.deb
sudo dpkg -i *.deb
  • To be able to select dxgkrnl in grub:
sudo nano /etc/default/grub
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
sudo update-grub

4. Reboot Ubuntu Hyper-V virtual machine:

sudo reboot now
nvidia-smi

5. Install nvidia-docker:

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt install nvidia-docker2

you might need to copy /usr/lib/nvidia-smi to /usr/bin/nvidia-smi to have nvidia-smi mounted in your container

dxgkrnl_ubuntu1's People

Contributors

brokedude2901 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.