<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Berke Erçetin</title>
    <description>The latest articles on DEV Community by Berke Erçetin (@berke_eretin_3d5d6945cc1).</description>
    <link>https://dev.to/berke_eretin_3d5d6945cc1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3130559%2F05ed3709-2ad0-4962-a3b0-02fe54233a93.jpg</url>
      <title>DEV Community: Berke Erçetin</title>
      <link>https://dev.to/berke_eretin_3d5d6945cc1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/berke_eretin_3d5d6945cc1"/>
    <language>en</language>
    <item>
      <title>Deepseek R1'i Yerel Olarak Çalıştırın: OpenWebUI + Ollama [Homelab]</title>
      <dc:creator>Berke Erçetin</dc:creator>
      <pubDate>Mon, 12 May 2025 20:25:05 +0000</pubDate>
      <link>https://dev.to/berke_eretin_3d5d6945cc1/deepseek-r1i-yerel-olarak-calistirin-openwebui-ollama-homelab-ob5</link>
      <guid>https://dev.to/berke_eretin_3d5d6945cc1/deepseek-r1i-yerel-olarak-calistirin-openwebui-ollama-homelab-ob5</guid>
      <description>&lt;p&gt;Günümüzde yerel AI eğitimi ve kullanımı gibi konuların oldukça önem kazandığından önceki yazılarımda bahsetmiştim. Bu rehberde, önceki rehberimizde kurduğunuz &lt;a href="https://dev.to/berke_eretin_3d5d6945cc1/proxmox-uzerinde-nvidia-gpu-passthrough-yapilandirmasi-homelab-1gk7"&gt;"ekran kartlı VM"&lt;/a&gt; üzerinden web arayüzü kullanarak nasıl yerel Deepseek R1 modeli çalıştırabileceğinizi göreceksiniz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çalışmayı yapmak için ekran kartı olan bir VM/host ihtiyacı bulunmamaktadır, GPU yerine CPU üzerinden çalışabileceğiniz yerler belirtilmiştir. Eğer CPU ile çalışacaksanız, NVIDIA ile ilgili adımları atlayabilir, doğrudan "Docker Compose ile Container Orkestrasyonu" başlığından devam edebilirsiniz.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Gereksinimler:
&lt;/h2&gt;

&lt;p&gt;Bu kılavuz boyunca standart bir Linux server OS kurulumu yapmış olduğunuzu varsayacağım. Bu rehber özelinde Fedora 41 Server Edition üzerinden ilerlenecektir.&lt;/p&gt;

&lt;h2&gt;
  
  
  VM Özellikleri
&lt;/h2&gt;

&lt;p&gt;CPU: 4 vCPU&lt;br&gt;
Ekran Kartı: NVIDIA GTX 1050 Tİ&lt;br&gt;
RAM: 8GB &lt;br&gt;
Disk: 64GB &lt;br&gt;
Konuk İşletim Sistemi : Fedora 41 Server Edition&lt;/p&gt;
&lt;h2&gt;
  
  
  Başlangıç
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Adım 1 : Fedora Server Üzerinde Gerekli Araçların Kurulması
&lt;/h3&gt;

&lt;p&gt;Temel olarak Docker Engine ve Docker Compose üzerinden süreçleri ilerleteceksiniz. &lt;/p&gt;

&lt;p&gt;Sunucunuza root veya sudoers grubuna üye bir kullanıcı ile "sudo" yetkisi&lt;br&gt;
olan bir kullanıcı ile SSH yapın. &lt;/p&gt;
&lt;h4&gt;
  
  
  Adım 1.1 : Docker Kurulumu
&lt;/h4&gt;

&lt;p&gt;Docker, uygulamaları ve tüm bağımlılıklarını izole bir şekilde çalıştırmak için kullanılan, hafif ve taşınabilir container teknolojisidir.&lt;/p&gt;

&lt;p&gt;Docker'ı sunucunuza kurmanız için Docker CE repolarını sisteminize ekleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf -y install dnf-plugins-core
sudo dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından Docker Engine son sürümünü yükleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İşlem tamamlandıktan sonra Docker servisini başlatın ve aktif hale getirin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl enable --now docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Adım 1.2 :Docker'ı Root Olmayan Bir Kullanıcı Olarak Yönetmek
&lt;/h4&gt;

&lt;p&gt;Docker Engine bir TCP bağlantı noktasına değil, bir Unix soketine bağlanır. Varsayılan olarak, Unix soketine sahip olan root kullanıcıdır ve diğer kullanıcılar yalnızca "sudo" kullanarak erişebilir. &lt;/p&gt;

&lt;p&gt;Aşağıdaki işlemler ile kullanıcınızı "docker" grubuna ekleyerek kullanıcınıza yetki verebilir, "sudo" kullanmadan docker kullanabilirsiniz.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;UYARI ! *&lt;/em&gt; Bu grup root seviyesinde kullanıcınızı yetkilendirebilir. Sistem güvenliğinizi nasıl etkilediğini öğrenmek istiyorsanız, &lt;a href="https://docs.docker.com/engine/security/#docker-daemon-attack-surface" rel="noopener noreferrer"&gt;Docker Daemon Attack Surface&lt;/a&gt; inceleyin. &lt;/p&gt;

&lt;p&gt;Aşağıdaki komut ile docker grubunu oluşturun:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; sudo groupadd docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından kullanıcınızı gruba ekleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Oturumunuzu kapatıp açtıktan sonra değişiklikler etkili olacaktır, aşağıdaki komutu kullanarak da aktive edebilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; newgrp docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından aşağıdaki komut ile Docker'ın başarı ile kurulduğunu kontrol edin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aşağıdaki gibi bir çıktı vermelidir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fserver@localhost:~$  docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
e6590344b1a5: Pull complete
Digest: sha256:c41088499908a59aae84b0a49c70e86f4731e588a737f1637e73c8c09d995654
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adım 2 : SELinux'un Kapatılması
&lt;/h3&gt;

&lt;p&gt;SELinux (Security-Enhanced Linux), Linux sistemlerinde erişim kontrolünü daha sıkı ve ayrıntılı hale getirmek için kullanılan, zorunlu erişim kontrolü (MAC) sağlayan bir güvenlik modülüdür. Bazı sağıtımlarda &lt;strong&gt;AppArmor&lt;/strong&gt; isimli sistem de benzer görevi üstlenebilir.&lt;/p&gt;

&lt;p&gt;NVIDIA ekran kartını containerlere aktarma konusunda sorunlu bir süreç yaşamamak adına test ortamımızda geçici olarak kapatacağız.&lt;/p&gt;

&lt;p&gt;Aşağıdaki komutu kullanarak SELinux yapılandırma dosyasına erişin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo vi /etc/selinux/config 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından aşağdaki satırı;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELINUX=enforcing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu şekilde değiştirin;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELINUX=disabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından sunucunuzu yeniden başlatın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo reboot now
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut ile kontrol edin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fserver@localhost:~$ sestatus
SELinux status:                 disabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  NVIDIA Container Toolkit
&lt;/h2&gt;

&lt;p&gt;NVIDIA Container Toolkit, kullanıcıların GPU hızlandırmalı container oluşturmasına ve çalıştırmasına olanak tanıyan bir kütüphaneler bütünüdür.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adım 1 : NVIDIA Container Toolkit Yüklenmesi
&lt;/h3&gt;

&lt;p&gt;DNF repolarını yapılandırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından NVIDIA Container Toolkit paketlerini yükleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf install -y nvidia-container-toolkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paketler yüklendikten sonra container runtime yapılandırmasını yapın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nvidia-ctk runtime configure --runtime=docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından Docker servisinizi restart edin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aşağıdaki komut ile işlemleri doğrulayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı aşağıdaki gibi olmalıdır:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
0622fac788ed: Pull complete
Digest: sha256:6015f66923d7afbc53558d7ccffd325d43b4e249f41a6e93eef074c9505d2233
estart dockerStatus: Downloaded newer image for ubuntu:latest
Mon May 12 19:01:45 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.144                Driver Version: 570.144        CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GTX 1050 Ti     Off |   00000000:01:00.0 Off |                  N/A |
|  0%   38C    P8            N/A  /   72W |      11MiB /   4096MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tebrikler, başarı ile containerlerinizde NVIDIA kartınızı çalıştırdınız !&lt;/p&gt;

&lt;h2&gt;
  
  
  Docker Compose ile Container Orkestrasyonu
&lt;/h2&gt;

&lt;p&gt;Docker Compose, çoklu Docker containeri tek bir YAML dosyasıyla tanımlayıp birlikte çalıştırmayı sağlayan bir orkestrasyon aracıdır.&lt;/p&gt;

&lt;p&gt;Bu araç ile tüm containerlerimizi ayağa kaldıracağız.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adım 1 : Docker Compose Geliştirme Ortamını Yapılandırın
&lt;/h3&gt;

&lt;p&gt;Kullanıcımın ev dizininde bir klasör açıyorum ve orada compose için bir YAML oluşturuyorum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd
mkdir localDeepseek
cd localDeepseek
touch docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından burada containerlerimizi oluşturacağız.&lt;/p&gt;

&lt;h4&gt;
  
  
  Adım 1.1 : Ollama AI Backend Yapılandırması
&lt;/h4&gt;

&lt;p&gt;Ollama, büyük dil modellerini (LLM) yerel olarak kolayca çalıştırmayı sağlayan, basit komutlarla model indirme ve yönetim imkanı sunan bir araçtır.&lt;/p&gt;

&lt;p&gt;docker-compose.yaml dosyasını açın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vi docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ve Ollama containerini eklemek için dosyanın içini doldurun :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOT ! YAML dosyası, girinti-çıkıntı duyarlıdır !&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: "3.8"

services:
  ollama:
    image: ollama/ollama
    ports:
      - 11434:11434    #ollama varsayılan olarak 11434/TCP kullandığından portları açıyoruz.
    command: serve
    volumes:
      - ollama:/root/.ollama #Ollama modellerini depoladığımız noktayı volume olarak yönlendiriyoruz.
    runtime: nvidia  # NVIDIA GPU desteği için gerekli,!!! CPU için kaldırın!!!

volumes:
  ollama:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Adım 1.2 : OpenWebUI ile Web Arayüzü Yapılandırması
&lt;/h4&gt;

&lt;p&gt;OpenWebUI, kullanıcıların web tarayıcısı üzerinden yapay zeka modellerini yönetmesini ve etkileşimde bulunmasını sağlayan açık kaynaklı bir kullanıcı arayüzüdür.&lt;/p&gt;

&lt;p&gt;docker-compose.yaml dosyasını açın ve OpenWebUI ile ilgili satırları ekleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vi docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ve OpenWebUI containerini eklemek için dosyanın içini doldurun, son hali aşağıdaki gibi olmalıdır :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: "3.8"

services:
  ollama:
    image: ollama/ollama
    ports:
      - 11434:11434    #ollama varsayılan olarak 11434/TCP kullandığından portları açıyoruz.
    command: serve
    volumes:
      - ollama:/root/.ollama #Ollama modellerini depoladığımız noktayı volume olarak yönlendiriyoruz.
    runtime: nvidia  # NVIDIA GPU desteği için gerekli

  webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - 8080:8080 # 8080 portundan dışarı açacağız.
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434  #Docker Compose servis isminden DNS çözer. 11434 açmıştık, bağlantısını yapıyoruz.
    volumes:
      - open-webui:/app/backend/data #Verilerin kalıcı olması için Volume bağladık
    depends_on:
      - ollama # Ollama açılmadan webui açılmayacak.

volumes:
  ollama:
  open-webui:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından dosyanızı kaydedin ve çıkın.&lt;/p&gt;

&lt;h4&gt;
  
  
  Adım 1.3 : Docker Compose ile Containerlerin Çalıştırılması
&lt;/h4&gt;

&lt;p&gt;Aşağıdaki komut ile çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İlk çalıştırdığınızda imajlar ineceğinden internet hızınıza bağlı olarak uzun sürebilir.&lt;/p&gt;

&lt;p&gt;Aşağıdaki komut ile healty olmasını bekleyin -unhealthy durumda başlayabilir, biraz bekleyin.-(up time 2 dk bulabiliyor):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;watch -n .1 docker ps -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı aşağıdaki gibi olmalıdır:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CONTAINER ID   IMAGE                                COMMAND               CREATED          STATUS                      PORTS                                             NAMES
b747790b7431   ghcr.io/open-webui/open-webui:main   "bash start.sh"       8 minutes ago    Up 7 minutes (healthy)      0.0.0.0:8080-&amp;gt;8080/tcp, [::]:8080-&amp;gt;8080/tcp       localdeepseek-webui-1
561e6827843e   ollama/ollama                        "/bin/ollama serve"   8 minutes ago    Up 7 minutes                0.0.0.0:11434-&amp;gt;11434/tcp, [::]:11434-&amp;gt;11434/tcp   localdeepseek-ollama-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından tarayıcınıza sunucuzun IP adresinden gidin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://&amp;lt;serverIP&amp;gt;:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Karşılama ekranında yönetici hesabınızı oluşturun ve ana ekrana gelin:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3fl5u71vq5caqojk3bb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3fl5u71vq5caqojk3bb.png" alt="Image description" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tebrikler, web arayüzüne bağlandınız !&lt;/p&gt;

&lt;h2&gt;
  
  
  Deepseek R1 İndirilmesi ve Kullanımı
&lt;/h2&gt;

&lt;p&gt;Çeşitli Deepseek modellerine Ollama sayfasından ulaşabilirsiniz.&lt;/p&gt;

&lt;p&gt;DeepSeek-R1:1.5B, DeepSeek tarafından geliştirilen ve yaklaşık 1.5 milyar parametreye sahip, açık kaynaklı, küçük boyutlu bir büyük dil modelidir. Biz de hafif olması için rehberberimizde bu modeli kullanacağız.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adım 1 : Docker Exec İle Ollama Üzerinden Modeli İndirin
&lt;/h3&gt;

&lt;p&gt;Aşağıdaki komut ile ollama container ID öğrenin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker ps -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktıdaki Container ID ile aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec &amp;lt;containerID&amp;gt; ollama run deepseek-r1:1.5b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Model , 1.1 GB olduğu için internet hızınıza bağlı olarak zaman alabilir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adım 2 : WebUI Üzerinden Modeli Kullanın ve GPU'yu Kontrol Edin
&lt;/h3&gt;

&lt;p&gt;Web arayüzüne geri dönün ve sayfayı yenileyin. Sol üstte modeli göreceksiniz: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqcjavej0iy4lx754z0c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqcjavej0iy4lx754z0c.png" alt="Deepseek" width="578" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fedora Server üzerinde aşağıdaki komutu girin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;watch -n .1 nvidia-smi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından bir prompt girin:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkglu0n3cn717cnn02dr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkglu0n3cn717cnn02dr.png" alt="Deepseek" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ve komut penceresinden NVIDIA ekran kartının kullanıldığını doğrulayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Every 0.1s: nvidia-smi                                                   localhost.localdomain: Mon May 12 23:07:04 2025
Mon May 12 23:07:04 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.144                Driver Version: 570.144        CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GTX 1050 Ti     Off |   00000000:01:00.0 Off |                  N/A |
|  0%   45C    P8            N/A  /   72W |    1537MiB /   4096MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A           70689      C   /usr/bin/ollama                        1524MiB |
+-----------------------------------------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Tebrikler, Deepseek R1'i yerel olarak çalıştırdınız !&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Rehber boyunca Proxmox üzerinde GPU Passthrough altyapısına uygun hale getirilmiş bir VM üzerinde Deepseek R1'i NVIDIA GPU ile yerel olarak çalıştırma adımlarını ele aldık.&lt;/p&gt;

&lt;p&gt;Sonraki yazılarımda OpenWebUI ve Cloudflare Tunnel ile dışarıdan erişim ile ilgili rehberimi genişleteceğim, kaçırmak istemiyorsanız takipte kalın.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>deepseek</category>
      <category>llm</category>
      <category>proxmox</category>
    </item>
    <item>
      <title>Proxmox Üzerinde NVIDIA GPU Passthrough Yapılandırması [Homelab]</title>
      <dc:creator>Berke Erçetin</dc:creator>
      <pubDate>Tue, 06 May 2025 19:30:47 +0000</pubDate>
      <link>https://dev.to/berke_eretin_3d5d6945cc1/proxmox-uzerinde-nvidia-gpu-passthrough-yapilandirmasi-homelab-1gk7</link>
      <guid>https://dev.to/berke_eretin_3d5d6945cc1/proxmox-uzerinde-nvidia-gpu-passthrough-yapilandirmasi-homelab-1gk7</guid>
      <description>&lt;p&gt;Günümüzde homelab sistemlerinde local AI eğitimi ve kullanımı gibi konular oldukça önem kazanıyor. Bu rehberde homelab (ev sunucusu) sistemlerinizde sunucunuza takılı NVIDIA ekran kartını sanal makineye nasıl aktaracağınızı göreceksiniz. &lt;/p&gt;

&lt;h3&gt;
  
  
  Gereksinimler:
&lt;/h3&gt;

&lt;p&gt;Bu kılavuz boyunca standart bir proxmox kurulumu yapmış olduğunuzu, temel proxmox yönetim işlemlerine hakim olduğunuzu ve Microcode benzeri post-install aşamalarınızı tamamladığınızı varsayacağım.&lt;/p&gt;

&lt;p&gt;Standart bir proxmox kurulumu yaptığınız hostta aşağıdaki özelliklerin var olduğuna / açık olduğundan emin olun:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VT-d,&lt;/li&gt;
&lt;li&gt;interrupt mapping,&lt;/li&gt;
&lt;li&gt;UEFI BIOS.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Kılavuz Boyunca Kullanacağım Sistem
&lt;/h3&gt;

&lt;p&gt;Anakart: MSI H110M PRO-D&lt;br&gt;
İşlemci: Intel Core I3 7100&lt;br&gt;
Ekran Kartı: NVIDIA GTX 1050 Tİ&lt;br&gt;
RAM: 8GB DDR4 2133MHZ&lt;br&gt;
Proxmox Versiyonu: PVE Virtual Environment 8.3.0&lt;br&gt;
Konuk İşletim Sistemi : Fedora 41 Server Edition&lt;/p&gt;
&lt;h2&gt;
  
  
  Başlangıç
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Adım 1 : GRUB Önyükleyisinin Yapılandırılması
&lt;/h3&gt;

&lt;p&gt;Proxmox sunucunuza SSH yapın veya web arayüzünde Node sekmesi altındaki Shell terminalini açın. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;İşlemleri, root veya sudoers grubuna üye bir kullanıcı ile "sudo" yetkisi ile yapmalısınız.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vi /etc/default/grub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu satırı arayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sonrasında CPU markanıza göre ayarlayın:&lt;/p&gt;

&lt;p&gt;Intel&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AMD&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Eğer passthrough başarısız olursa, bu satıra ek komutlar girmeniz gerekebilir.&lt;/p&gt;

&lt;p&gt;Bu ek parametreler, Proxmox’un sistemdeki GPU’ları kendi amaçları için kullanmamasını sağlar ve her PCI aygıtının ayrı bir IOMMU grubunda yer almasına yardımcı olur. Bu önemlidir çünkü, örneğin IOMMU grup 1 içerisinde GPU’nuzla birlikte CPU da yer alıyorsa, GPU geçişi başarısız olur.&lt;/p&gt;

&lt;p&gt;Ben bu yapılandırmayı kullanıyorum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off,efifb:off"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;/etc/default/grub dosyasını düzenleyip kaydettikten sonra aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update-grub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adım 2 : VFIO Modülleri
&lt;/h3&gt;

&lt;p&gt;Proxmox sistemimizde bazı VFIO modüllerine ihtiyaç vardır.&lt;/p&gt;

&lt;p&gt;VFIO (Virtual Function I/O) modülleri, fiziksel donanım aygıtlarının sanal makineler tarafından doğrudan ve güvenli şekilde kullanılabilmesini sağlayan Linux çekirdek bileşenleridir.&lt;/p&gt;

&lt;p&gt;/etc/modules dosyasını açın :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vi /etc/modules 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aşağıdaki girdileri dosyanın içine yazın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kaydedip çıkabilirsiniz.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adım 3: IOMMU Interrupt Remapping
&lt;/h3&gt;

&lt;p&gt;IOMMU Interrupt Remapping, fiziksel aygıtların gönderdiği kesme sinyallerinin sanal ortamlarda güvenli ve doğru şekilde işlemciye yönlendirilmesini sağlayan bir güvenlik ve izolasyon mekanizmasıdır.&lt;/p&gt;

&lt;p&gt;Aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" &amp;gt; /etc/modprobe.d/iommu_unsafe_interrupts.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;vfio_iommu_type1 modülüne ait allow_unsafe_interrupts=1 parametresi, interrupt yönlendirmesi desteklenmeyen sistemlerde passthrough yapılabilmesi için güvenli olmayan interruptlara izin verir.&lt;/p&gt;

&lt;p&gt;Aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "options kvm ignore_msrs=1" &amp;gt; /etc/modprobe.d/kvm.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;kvm modülüne ait ignore_msrs=1 parametresi, sanal makinede MSR (Model-Specific Register) hatalarının göz ardı edilmesini sağlayarak uyumluluk ve kararlılık artırır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adım 4: Sürücüleri Kara Listeye Almak
&lt;/h3&gt;

&lt;p&gt;PCI Passthrough işleminin başarılı olması için bu kartların proxmox tarafından init edilmemesi gerekir.&lt;/p&gt;

&lt;p&gt;Aşağıdaki komutları çalıştırarak ekran kartı sürücülerini kara listeye alın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "blacklist radeon" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adım 5: Ekran Kartının VFIO İçine Eklenmesi
&lt;/h3&gt;

&lt;p&gt;Aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lspci -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Komutun çıktısında ekran kartınızı işaret eden satırları bulun. Şuna benzemelidir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1) (prog-if 00 [VGA controller])

01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aşağıdaki komutu çalıştırın &lt;strong&gt;! Komuttaki rakamları, kendi çıktınızda bulunan rakamlar ile değiştirin !&lt;/strong&gt; :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lspci -n -s 01:00
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut ekran kartınızın vendor bilgilerini çıkartmalıdır:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;01:00.0 0300: 10de:1c82 (rev a1)
01:00.1 0403: 10de:0fb9 (rev a1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vendor bilgilerimi not alıyorum : 10de:1c82 ve 10de:0fb9.&lt;/p&gt;

&lt;p&gt;Şimdi Vendor bilgilerimizi VFIO içine ekleyelim: &lt;strong&gt;! Komuttaki rakamları, kendi çıktınızda bulunan rakamlar ile değiştirin !&lt;/strong&gt; :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "options vfio-pci ids=10de:1c82,10de:0fb9 disable_vga=1"&amp;gt; /etc/modprobe.d/vfio.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update-initramfs -u
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ve yeniden başlatın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reboot now
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Proxmox artık GPU Passthrough için hazır.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ekran Kartının Bir Sanal Makineye Aktarılması
&lt;/h2&gt;

&lt;p&gt;Bir adet sanal makine oluşturun. Ben Fedora Server 41 template üzerinden klonladım. &lt;br&gt;
&lt;strong&gt;Sanal makinenizi oluşturduktan sonra hemen boot etmeyin.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sanal makinemizi oluşturduktan sonra proxmox shell üzerinden sanal makinemizin ID'si ile yapılandırma dosyasına erişin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano /etc/pve/qemu-server/&amp;lt;vmID&amp;gt;.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Üç adet satırı ekleyin (varsa eskilerini silin):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;machine: q35
cpu: host,hidden=1,flags=+pcid
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kaydedip çıkın.&lt;/p&gt;

&lt;p&gt;Ardından Proxmox web arayüzü üzerinden sanal makinenizin hardware sekmesine gelin ve "Add" seçeneği ile bir adet PCI kartı ekleyin.&lt;/p&gt;

&lt;p&gt;RAW device olarak ekran kartınızı seçin. Ardından şu seçenekleri işaretleyin:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjs21gdlp50h35o8eup2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjs21gdlp50h35o8eup2.png" alt="Proxmox PCI-E" width="800" height="377"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;All Functions: YES
Rom-Bar: YES
Primary GPU: NO
PCI-Express: YES 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından makineyi başlatın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanal Makine Üzerinde Ekran Kartı Kurulumu
&lt;/h2&gt;

&lt;p&gt;Sanal makinenizin genel güncellemelerini yapın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dnf update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından restart edin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reboot now
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Şimdi açık kaynak NVIDIA nouveau sürücüsünün yüklenmiş olmasını bekleriz. &lt;strong&gt;-İstediğimiz bir durum değil.-&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kontrol etmek için aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lsmod | grep -E 'nvidia|nouveau'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aşağıdaki gibi bir çıktı vermiş ise nouveau sürücüsü yüklenmiştir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nouveau              3874816  0
drm_ttm_helper         16384  1 nouveau
ttm                   122880  2 drm_ttm_helper,nouveau
video                  81920  1 nouveau
gpu_sched              65536  1 nouveau
i2c_algo_bit           20480  1 nouveau
drm_gpuvm              45056  1 nouveau
drm_exec               12288  2 drm_gpuvm,nouveau
mxm_wmi                12288  1 nouveau
wmi                    32768  3 video,mxm_wmi,nouveau
drm_display_helper    311296  1 nouveau
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Şimdi tescilli NVIDIA sürücülerini yüklemelisiniz.&lt;/p&gt;

&lt;p&gt;Öncelikle tescilli rpmfusion reposunu yükleyin.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-41.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından aşağıdaki komutu çalıştırarak tescilli NVIDIA sürücüsünü yükleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf install akmod-nvidia
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İşlem tamamlandıktan sonra top komutu ile processlerimizi izleyin:&lt;/p&gt;

&lt;p&gt;top&lt;/p&gt;

&lt;p&gt;Komut tamamlansa bile akmod derlemeye devam ediyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  35278 akmods    20   0  167292 140140  15692 R  25.8   3.5   0:00.78 cc1
  35284 akmods    20   0   84260  55884  14296 R   7.6   1.4   0:00.23 cc1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;akmods kullanıcılı processlerin bitmesini bekleyin. Bittikten sonra kaybolacaklardır.&lt;/p&gt;

&lt;p&gt;Tekrar restart edelim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reboot now
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fedora Server 41 tekrar açıldıktan sonra tescilli sürücülerin yüklenmiş olduğunu doğrulamak için aşağıdaki komutu çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lsmod | grep -E 'nvidia|nouveau'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aşağıdaki gibi çıktı vermelidir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvidia_drm            151552  0
nvidia_modeset       1830912  1 nvidia_drm
nvidia_uvm           3997696  0
nvidia              97165312  2 nvidia_uvm,nvidia_modeset
drm_ttm_helper         16384  1 nvidia_drm
video                  81920  1 nvidia_modeset
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından nvidia-smi aracını kullanabilmek için gerekli paketleri yükleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf install xorg-x11-drv-nvidia-cuda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ve çalıştırın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvidia-smi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aşağıdaki gibi çıktı vermelidir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.144                Driver Version: 570.144        CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GTX 1050 Ti     Off |   00000000:01:00.0 Off |                  N/A |
|  0%   48C    P8            N/A  /   72W |       3MiB /   4096MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İşlemimiz tamamlanmıştır.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Rehber boyunca Proxmox üzerinde GPU Passthrough altyapısına uygun hale getirmeyi, sanal makineye fiziksel GPU atamasını gerçekleştirmeyi ve sanal makine içerisinde gerekli sürücü kurulumlarını adım adım ele aldık.&lt;/p&gt;

&lt;p&gt;Sanal makine üzerinde GPU ile AI çalıştırılması gibi sonraki yazılarıma ilgi duyuyorsanız takipte kalın.&lt;/p&gt;

</description>
      <category>proxmox</category>
      <category>virtualmachine</category>
      <category>nvidia</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
