Gönderen Konu: [Nasıl] QEMU KVM Kullanarak GPU Geçişi.  (Okunma sayısı 4374 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı karasu

  • Newbie
  • *
  • İleti: 267
[Nasıl] QEMU KVM Kullanarak GPU Geçişi.
« : 03 Mart 2016 - 20:17:39 »
Arch linux Qemu / KVM ile VGA geçişi.

Merhaba.

Qemu/KVM ile bir sanal makine oluşturup, mevcut ekran kartlarımızdan birini bu sanal makineye nasıl aktarırız onu inceliyeceğiz. Kuruluma başlamadan önce bilgisayar bileşenlerimizi sanallaştırmaya uygun hale getirmeliyiz.



Öncelikle işlemcinizin AMD-V yada İntel VT-d sanallaştırma teknolojisini destekliyor olması gerekiyor. İşlemci modelinizin bu teknolojilerden birini destekleyip desteklemdiğini öğrenmek için amd veya intel'in kendi sitesinden işlemcinizin özelliklerini  bulabilirsiniz. Yada alttaki linkten hızlıca kontrol edebilirsiniz.

https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware



Ayrıca VGA ekran kartı geçişi yapıcaksanız, sisteminizde en az iki adet ekran kartı bulunması şart.



Benim kurulumunu anlatacağım sistemin özellikleri alttaki listede yazdım. Ben Nvidia GTX770 ekran kartını sanal makinenin kullanımına vericeğim, evsahibi makinemde ise AMD HD 4850 ekran kartını kullanacağım.

Sanal makineye AMD ekran kartını aktarmak Nvidia ekran kartlarına göre daha çok ayar istediği için, Nvidia aktarımını anlatacağım. Rehberdeki yönergeleri izleyerek AMD ekran kartını'da rahatça aktarabilirsiniz.

 
Alıntı
Arch Linux

GIGABYTE 990FXA-UD3 v1.2

AMD FX 8350

32GB 1600mhz

ASUS GTX 770 DCII 2GB

HIS AMD 4850 512MB

250GB SAMSUNG SSD 850 EVO

2TB SEAGATE HDD

Microsoft SideWinder X4 Keyboard.

A4tech Bloody V7 core3 mouse.

27" philips monitör hdmı+dvi+vga

24" philips monitör dvi+vga


Ben sistemimdeki 27" monitörü evsahibi ve sanal makinenin ortaklaşa kullanımına vericeğim. HD4850 ekran kartını monitörün DVI portuna ve GTX 770 ekran kartını monitörün hdmi portuna bağladım.



 Şimdi anakartımızın biosundan sanallaştırma desteklerini ve evsahibi makinenin açılacağı ekran kartını seçelim.



Advanced BIOS Features bölümüne girin.

http://i.imgur.com/QsCdj44.jpg" alt="" class="bbc_img" />



Virtualization seçeneğini Enabled olarak işaretleyin.

http://i.imgur.com/5nUYhNe.jpg" alt="" class="bbc_img" />



IOMMU support seçeneğini Enabled olrak işaretleyin.

http://i.imgur.com/tpl17ZX.jpg" alt="" class="bbc_img" />



Evsahibi sistemin kullanıcağı ekran kartını öncelikli ekran kartı olarak seçin.

Benim sisteminde PCI Slot'a GTX770 takılı, PEG0 boş, PEG1 ise HD 4850 takılı.

PEG1 seçiyorum sistemin açılışı için.

http://i.imgur.com/PkXg0Tu.jpg" alt="" class="bbc_img" />



Ayarlarını kaydetip, biostan çıkıyoruz.



Eğer linux çekirdeğini kendiniz elle kurduysanız sanallaştırma ve iommu desteğini çekirdekten açmanız gerekebilir.



Öncelikle bir terminal programı açıp, sistemimizin uygunluğunu kontrol edelim.

AMD için
Kod: [Seç]
$ dmesg | grep AMD-Vi
[    1.251534] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[    1.251536] AMD-Vi: Interrupt remapping enabled
[    1.262644] AMD-Vi: Lazy IO/TLB flushing enabled


Intel için
Kod: [Seç]
$ dmesg|grep -e DMAR -e IOMMU
[    0.000000] ACPI: DMAR 0x00000000BDCB1CB0 0000B8 (v01 INTEL  BDW      00000001 INTL 00000001)
[    0.000000] Intel-IOMMU: enabled
[    0.028879] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a
[    0.028883] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap d2008c20660462 ecap f010da
[    0.028950] IOAPIC id 8 under DRHD base  0xfed91000 IOMMU 1
[    0.536212] DMAR: No ATSR found
[    0.536229] IOMMU 0 0xfed90000: using Queued invalidation
[    0.536230] IOMMU 1 0xfed91000: using Queued invalidation
[    0.536231] IOMMU: Setting RMRR:
[    0.536241] IOMMU: Setting identity map for device 0000:00:02.0 [0xbf000000 - 0xcf1fffff]
[    0.537490] IOMMU: Setting identity map for device 0000:00:14.0 [0xbdea8000 - 0xbdeb6fff]
[    0.537512] IOMMU: Setting identity map for device 0000:00:1a.0 [0xbdea8000 - 0xbdeb6fff]
[    0.537530] IOMMU: Setting identity map for device 0000:00:1d.0 [0xbdea8000 - 0xbdeb6fff]
[    0.537543] IOMMU: Prepare 0-16MiB unity mapping for LPC
[    0.537549] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[    2.182790] [drm] DMAR active, disabling use of stolen memory


Eğer komut çıktıları yukarıdaki gibi ise hiç bır sorun yok demektir.



Sanal makine kurulumuna başlamadan önce gtx770 ekran kartını sanallaştırma için uygun hale getirelim. Öncelikle "lspci -nk" komutu ile ekran kartının bilgilerini öğrenelim.
Kod: [Seç]
$ lspci -nk
01:00.0 0300: 10de:1184 (rev a1)
Subsystem: 1043:8465
Kernel driver in use: nouveau
Kernel modules: nouveau
01:00.1 0403: 10de:0e0a (rev a1)
Subsystem: 1043:8465
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel


10de:1184 ve 10de:0e0a numaralarını bir köşeye kaydedin.

"Kernel driver in use:" Aygıtın hangi modül tarafından kullanıldığını gösterir.

"Kernek modules:" Aygıtı hangi modüllerin kullanabileceğini gösterir.



Ekran kartını sanal makinede kullanabilmek için kartın kullanımını vfio-pci  veya pci-stub  modüllerinden birine devrettirmemiz gerekiyor. Sisteminiz vfio-pci modülünü desktekliyor ise vfio-pci kullanın, eğer sisteminiz vfio-pci modülünü deskteklemiyor ise pci-stub modülünü kullanabilirsiniz.

"vfio-pci" modülünü kullanabilmeniz için linux çekirdek sürümünüzün 4.1 den büyük olması gerekiyor.

Sisteminizde vfio-pci modülünü test etmek için "modprobe vfio-pci" komutunu çalıştırın.


Kod: [Seç]
sudo modprobe vfio-pci

Hiçbir hata mesajı vermez ise sisteminiz vfio-pci modülünü destekliyor demektir.

"modprobe: FATAL: Module vfio-pci not found" mesajını alrısanız pci-stub modülünü kullanarak devam etmeniz gerkiyor.



"lspci -nk" sonucu edindiğimiz ekran kartının bilgilerindeki 10de:1184 ve 10de:0e0a numaralarını kullanarak ekran kartını ve üzerindeki ses kartını nouveau'nun ve snd_hda_intel'in kullanımından çıkartıp vfio-pci veya pci_stub modülünün kullanımına vereceğiz.



Sisteminizdeki çalışan modüllerin listesini görmek için "lsmod" moutunu kullanabilirsiniz. Sisteminizdeki kullanılabilir tüm modüllerin listesini görmek için "$ ls -R /lib/modules/`uname -r`/kernel/ > /home/<username>/modüllistesi" komutunu kullanabilirsiniz. Çok uzun bir liste home dizinizde modüllistesi adıyla sizi bekliyor.
Kod: [Seç]
$ lsmod
Module                  Size  Used by
kvm_amd                65536  0
kvm                   507904  1 kvm_amd
....


vfio-pci ile

yukarıdaki listede zaten kvm ve kvm-amd modülleri yüklü görünüyor, o yüzden sisteme ekliyeceğim modüller sadece vfio modülleri olacak.
Kod: [Seç]
sudo nano /etc/modules-load.d/vfiopci.conf
#kvm
#kvm-intel
#kvm-amd
vfio
vfio-pci
vfio_iommu_type1
vfio_virqfd


Kod: [Seç]
sudo nano /etc/modprobe.d/vfiopci.conf
options vfio-pci ids=10de:1184,10de:0e0a


sistemi yendein başlattıktan sonra alttaki göründüğü gibi ekran kartı ve üzerindeki ses kartı artık vfio-pci modülünün kullanımına geçti.
Kod: [Seç]
$ lspci -nk
01:00.0 0300: 10de:1184 (rev a1)
       Subsystem: 1043:8465
       Kernel driver in use: vfio-pci
       Kernel modules: nouveau
01:00.1 0403: 10de:0e0a (rev a1)
       Subsystem: 1043:8465
       Kernel driver in use: vfio-pci
       Kernel modules: snd_hda_intel




pci-stub ile


Kod: [Seç]
sudo nano /etc/modules-load.d/pcistub.conf
pci-stub


Kod: [Seç]
sudo nano /etc/modprobe.d/pcistub.conf
options pci-stub ids=10de:1184,10de:0e0a


sistemi yendein başlattıktan sonra alttaki göründüğü gibi ekran kartı ve üzerindeki ses kartı artık pci-stub modülünün kullanımına geçti.
Kod: [Seç]
$ lspci -nk
01:00.0 0300: 10de:1184 (rev a1)
        Subsystem: 1043:8465
        Kernel driver in use: pci-stub
        Kernel modules: nouveau
01:00.1 0403: 10de:0e0a (rev a1)
        Subsystem: 1043:8465
        Kernel driver in use: pci-stub
        Kernel modules: snd_hda_intel




Sadece ekran kartı gibi özel cihazlar için bu sisteme ihtiyaç var usb portları ve usb portu kullanan cihazları anlık olarak olmasada sanal makineyi başlatmadan önce geçişini yapabilirsiniz. Ben klavye, fare ve HP p1102 yazıcıyı sanal makine üzerindeki bir cihaz olarak kullanabildim ve yazıcıdan çıktı aldım. Ama yazıcıyı kapatıp açtıktan sonra yazıcıya bir daha bağlanamadım ve sanal windows'u yeniden başlatmamda işe yaramadı, komple sanal makineyi kapatıp tekrar virt-manager'dan başlatınca yine yazıcı çalıştı. Eğer yazıcı gibi kapatılıp açılan yada çıkartılıp takrar takılan usb bellek kullanmayı düşünüyorsanız, elimde olmadığı için deniyemiyorum ama usb çoklayıcı bir cihazı sanal makineye aktarıp onun üzerinden tak çıkart işlemleri yapmak daha iyi bir çözüm olucak gibi görünüyor.

edit:(usb cihazlar anlık olarak geçebiliyor. usb belleklerle test ettim, yazıcıyıda test ediceğim ondada sorun çıkacağını sanmıyorum.)



Sanallaştırma programlarını kuralım. Ben virt manger görsel olarak sanal makinenizi yenetebilmenizi sağlar, isteğe bağlıdır ben virt-manager üzerinden anlatacağım.

sudo pacman -S virt-manager qemu ovmf bridge-utils xorg-xrandr rpmextract



Her sanal makine açılışında root şifresi sormaması için kullanıcınızı kvm ve libvirt gurublarına dahil edin.
Kod: [Seç]
sudo gpasswd --add <username> kvm
sudo gpasswd --add <username> libvirt


Eğer sisteminizi her yeniden başlattığınızda virt-manager tarafından ağ bağlantısı uyarısı almak istemiyorsanız, network bağlantızı bir köprü bağlantı üzerinden yapmanızda fayda var. Köprü bağlantısı oluşturmak için bir çok yöntem mevcut, ben Network Manager ve virt manager ile köprü bağlantı oluşturmayı göstereceğim.



Network Manager ile köprü bağlantısı oluşturmak.



Bağlantı düzenleyici programını açın.

Bağlantı > Ekle > Köprü

http://i.imgur.com/Q3cOVXm.png" alt="" class="bbc_img" />



STP'yi devre dışı bırakın.

Köprülenmiş bağlantı eklemek için ekle butonuna tıklayın.

http://i.imgur.com/B6qcNEs.png" alt="" class="bbc_img" />



Aygıta sınırla: seçeneğinden köprü oluştracağımız ethernet arayüzünü seçin.

http://i.imgur.com/8Y40BA6.png" alt="" class="bbc_img" />



Ethernek arayüzünün otomatik bağlanması için attaki gibi işaretleyin.

http://i.imgur.com/nCh66jY.png" alt="" class="bbc_img" />



Arayüz adı: kısmına br0 yazın bu oluşturduğumuz köprü bağlantısını arayüz adı olucak.

http://i.imgur.com/PLuWJzO.png" alt="" class="bbc_img" />



eski ethernet bağlantınızı ya devre dışı bırakın yada silin. artık internete körpü bağlantısı ile bağlanacağız.



Virt Manager ile köprü bağlantısı oluşturmak.

Eğer köprü bağlantıyı Network Manager ile yaptıysanız, virt manager ile köprü bağlantısı oluşturma adımını atlayın.

Virt manager ile ağ bağlantılarınızı düzenlemek istiyorsanız, network-manager paketini ve network-manager-gnome paketini sisteminizden silmeniz gerekiyor, virt manager network manager yazılımını desteklemiyor.
Kod: [Seç]
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo pacman -R network-manager network-manager-gnome


Şuan internetiniz yok merak etmeyin birazdan gelicek. Virt Manager programını açıp alttaki adımları yaparak bir köprü bağlantısı oluşturun.

virt-manager > Düzenle > Bağlantı Detayları

http://i.imgur.com/wbrvUgh.png" alt="" class="bbc_img" />



Bağlantı Detayları > Arayüz Ekle

http://i.imgur.com/XC8KF1n.png" alt="" class="bbc_img" />



Başlatma modunu onboot olarak ayarlayın, köprülenecek olan aygıtı bağlantıyı seçin (debian jessie'de ağ kartımın adı eth0, stretch'te ise enp6s0) ve Bitir'i tıklayın.

http://i.imgur.com/ra4ztTR.png" alt="" class="bbc_img" />



Bu işlem 30 saniye civarı sürmekte

http://i.imgur.com/nQmOddh.png" alt="" class="bbc_img" />



http://i.imgur.com/MGQ0jbb.png" alt="" class="bbc_img" />



NOT: Bağlantı Detayları penceresini lütfen kapatmayın daha bu pencere ile işimiz olucak.

Artık internete girebiliyor olmanız lazım. Iceweasel ile kontrol edebilirsiniz.



şimdi bilgisayarınızı yeniden başlatın.

sudo reboot



iso ve disk imajlarını kullanıcı dizininde düzgün bir şekilde hazırlayalım.

http://i.imgur.com/N3hIraH.png" alt="" class="bbc_img" />



Bios dizininde sanal makinenin kullanıcağı OVMF UEFI bios paketi bulunmakta,  OVMF bios paketini indirip kurmak için alttaki linkten bir edk2.git-ovmf-x64-0-20160226.b1562.g014b472.noarch.rpm dosyasını indirin.



https://www.kraxel.org/repos/jenkins/edk2/
Kod: [Seç]
# rpmextract.sh edk2.git-ovmf-x64-0-20160226.b1562.g014b472.noarch.rpm
# cp -R ./usr/share/* /usr/share


gerekli dosyaların yüklenip yüklenmediğini kontrol edin, sonuç alttaki gibi olmalı.
Kod: [Seç]
$ ls /usr/share/edk2.git/ovmf-x64/*pure*.fd
/usr/share/edk2.git/ovmf-x64/OVMF-pure-efi.fd
/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd
/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd


şimdi ovmf bios dosyalarımızın dizinini qemu'ya gösterelim.
Kod: [Seç]
# nano /etc/libvirt/qemu.conf

Alıntı
nvram = [

  "/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd:/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd",

]

Kod: [Seç]
#systemctl restart libvirtd.service


Driver dizininde ise eğer sanal makinenize windows kuracaksanız eğer windows için sanal makine sürücülerine ihtiyaç ducaksınız. SCSI sürücü, Ağ kartı sürücü, PCI-bus sürücü gibi. Bu sürücüleri toplu halde alttaki linkten iso dosyası olarak indirebilirsiniz. Ben windows 10 kurulumu yapıcağım için stabil sürümde windows 10 sürücüleri malesef henüz bulunmuyor latest versiyonunu kullanıyorum. Windows7 kuracak olanlar stabil sürümü kullanabilirler. Yaklaşık 55 mb civarı.

https://fedoraproject.org/wiki/Windows_Virtio_Drivers



stabil (virtio-win-0.1.102.iso)

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso



latest (virtio-win-0.1.112.iso)

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso



Driver dizininde ayrıca kendi oluşturduğum bir program arşivi iso dosyası bulunmakta. Bu iso dosyasında nvidia driver ve çeşitli test programları mevcut. Kurulum esnasında samba ile uğraşmak istemediğim için bir iso dosyasını sanal makineye cdrom olarak yerleştirmek daha kolayıma geldi. Sizde program arşivinizi bir iso dosyasına çevirmek isterseniz. K3b yada brasero gibi cd yazma programlarından kolayca faydalanabilirsiniz.



Hdd dizininde şuan için herhangi bir disk dosyası yok, sanal makine için bu dizinde bir disk dosyası oluşturacağım, Varsayılan olarak /var/lib/libvirt/images dizini içerisinde tutulur. Benim makinemde sadece /home dizini normal harddisk üzerinde bulunduğu için. Sanal makineleri normal harddisk üzerinde çalıştırmayı tercih ediyorum.



İso dizininde ise kurulumu yapacağım işletim sisteminin cd imajı bulunmakta. Windows 10 şuan için microsoft'un kendi web sitesinden indirilebilmekte.



Şimdi driver, hdd ve iso dizinlerini virt manager programına birer disk havuzu olarak gösterelim. Böylece bu dizinler içindeki iso ve disk dosyalarını virt manager görebilecek ve biz bu disk havuzlarında yeni diskler oluşturabilceğiz.

Bağlantı Detayları > Depolama > Havuz Ekle

Bir havuz adı yazıp İleri butonunu tıklayın.

http://i.imgur.com/G6tRBFu.png" alt="" class="bbc_img" />



Driver iso kalıplarının bulunduğu dizini hedef yoluna girip Bitir butonuna tıklayın.

http://i.imgur.com/hDoxxyg.png" alt="" class="bbc_img" />



driver, hdd ve iso havuzlarını yukarıdaki gibi Depolama alanlarına ekleyin.

http://i.imgur.com/qdYJO8V.png" alt="" class="bbc_img" />



Artık sanal makinemizi oluşturabiliriz.

http://i.imgur.com/azpdEqp.png" alt="" class="bbc_img" />



http://i.imgur.com/ka5yqgx.png" alt="" class="bbc_img" />



AMD 8350 için sanal makineye 8, 6 ve 4 çekirdek ayırarak test ettim, 4 çekirdek verilmiş haliyle bilgisayar çok daha iyi sonuç verdi.

http://i.imgur.com/2AKF5O6.png" alt="" class="bbc_img" />



Önceden oluşturduğumuz hdd dizininde bir disk imajı oluşturmak için Yönetilen ya da varolan diğer depolamayı seç'i işaretleyip gözat butonuna basın.

http://i.imgur.com/EcJL4Oz.png" alt="" class="bbc_img" />



Storage Pools(depolama havuzları) bölümünden hdd havuzunu seçin ve New Volume butonuna tıklayarak hdd havuzunda sanal bir disk imajı oluşturun.

http://i.imgur.com/I1g6HQa.png" alt="" class="bbc_img" />



Oluşturduğunuz image dosyasını tıklayıp Choose Volume butonuna tıklayın.

http://i.imgur.com/2IX6eIn.png" alt="" class="bbc_img" />



Kurulumdan önce konfigürasyonu kişiselleştiri işaretleyin.

Gelişmiş ayarlar kısmından daha önce oluşturduğumuz köprü bağlantısının seçili olup olmadığını kontrol edin.



Virt manager ile köprü bağlantısı oluşturduysanız direk açılır menüden oluşturduğunuz bağlantıyı seçebilirsiniz.

http://i.imgur.com/NhFQuwJ.png" alt="" class="bbc_img" />



Network Manager ile köprü bağlantısı oluşturduysanız, alttaki gibi bağlantının adını belirterek köprü bağlantısını kullanabilirsiniz.

http://i.imgur.com/WSobYHs.png" alt="" class="bbc_img" />



Bitir tuşuna bastığınızda sisteminiz oluşturulmadan önce bir ayar sayfası karşınıza gelicek.



http://i.imgur.com/NTsKC4b.png" alt="" class="bbc_img" />

Not: i440FX şuan için stabil bir çipset. Q35 çipsetine eğer gerçekten ihtiyacınız yoksa i440FX çipsetini kullanın.



İşlemci yapılandırmasında Host CPU yapılandırmasını kopyala'yı işaretleyin ve CPU topolojisini sisteminizin el verdiği ölçüde çekirdek sayısını değiştirerek ayarlayın.

Mevcut tahsis edilmiş alan bölümü sistemin ihtiyacına göre anlık olarak değişmekte siz 8 verdiğiniz halde arada sırada 1 olarak görürseniz şaşırmayın.

http://i.imgur.com/RKJ1ra5.png" alt="" class="bbc_img" />



Donanım Ekle butonunu kullanarak istediğiniz aygıtı sisteme ekliyebilirsiniz.

Virtio driver iso kalıbını ve rogram arsivi iso kalıbını şekildeki gibi cd rom olarak sisteme ekleyin. Sanal makineyi oluştururken göstermiş olduğunuz windows iso su "Kuruluma Başla" butonuna tıkladığınızda sisteme eklenicek, ayrıyetten bir daha cd rom olarak eklemeye gerek yok. Ben bu hatayı yaptığım için Windows'u açtıp bilgisayarıma girdiğimde karşımda ikitane windows cdsi gördüm.

http://i.imgur.com/BVSPLvL.png" alt="" class="bbc_img" />



ekran kartı ve ekran kartı üzerindeki ses kartını sanal makineye aktarmak için PCI Host Device bölümünden NVIDIA Corpration GK104 [GeForce GTX 770] ve  NVIDIA Corpration GK104 HDMI Audio Controller aygıtlarını tek tek sanal makineye ekleyin.

Bu iki aygıt bir birine bağlı olduğu için muhakak ikiside eklenmeli.

http://i.imgur.com/J69o4nV.png" alt="" class="bbc_img" />



Eğer Windows 7 ve üzeri bir işletim sistemi kuracaksanız ve sisteminizde tek bir monitör varsa Video aygıtını QXL yapabilirsiniz, böylece spice server kurup  çok hızlı bir sanal pencere oluşturabilirsiniz. Aksi halde virt-manger yada qemu pencersinde gösterilen sanal makine ekranı çalışmalarınız için çok ağır olacaktır.

http://i.imgur.com/lW2kQxz.png" alt="" class="bbc_img" />



Windows kurulumundan sonra sanal makineye kurduğunuz spice server ayarlarını sanal makine özelliklerinden ayarlayabilirsiniz.

http://i.imgur.com/dmJ2Ybq.png" alt="" class="bbc_img" />



Ben ilk olarak bir ide disk üzerinde sistem kurulumunu yapmıştım, gerçekten aşırı yavaş oluyor hatta en ufak disk yazım işleminde sistem takılıyor. Önerilen en iyi yapılandırma alttaki resimdeki gibi. Disk bus aygıtı sata modunda da gayet iyi verimli ama VirtIO en iyisi diyebilirim.

http://i.imgur.com/eD6jmfC.png" alt="" class="bbc_img" />



Disk ayarlarını yukarıdaki gibi yaptıktan sonra Uygula butonuna tıklayın.

Artık sanal makine kurulumuna başlayabiliriz. Kuruluma Başla butonuna tıklayın hemen ardından sistemi zorla kapatın. Sanal makinenin bios'unu UEFI bios'a çevireceğiz.

Ve eğer nvidia ekran kartı kullanıyorsanız yada windows üzerinde aygıt yöneticisini açtığınızda ekran kartınız düzgün çalışmıyorsa, açıklamasında code 10 veya code 14 gibi uyarılar görürseniz yapmanız gereken bir kaç basit işlem var, sonra uğraşmamak için bu işlemleri şimdi yapacağız.

http://i.imgur.com/t6pOGJ6.png" alt="" class="bbc_img" />



mevcut sanal makinelerin listesini görüntüleyin.

sudo virsh list –all



eğer benim gibi VI özürlüyseniz, sanal makineyi editlerken nano kullanmak isteyebilirsiniz.

export EDITOR=/usr/bin/nano

sudo  virsh edit <sanal mikene adı>



altta yazdığım "...." işareti her ne yazılı ise öyle bırakın etiket içindeki en alt satıra gidin anlamındadır.



<os> etiketinin içinde en alt satırına alttaki komutu ekleyin. Bu komut sisteminizin bios'unu UEFI bios'a çevirecek. yukarıda grafik ekranda yaptıysanız gerek yok.
Kod: [Seç]
<os>
....
    <loader readonly='yes' type='rom'>/usr/share/ovmf/OVMF.fd</loader>
</os>


#### Sadece Nvidia ekran kartları için####

Eğer Nvidia ekran kartı kullanıyorsanız. <features> etiketinin içinde en alt satıra <kvm> etiketini alttaki gibi ekleyin.
Kod: [Seç]
<features>
....
    <kvm>
      <hidden state='on'/>
    </kvm>
</features>


windows kurulum esnasında klavyenin donup kalmaması için. Alttaki satırı bulup silin.
Kod: [Seç]
<input type='tablet' bus='usb'/>


eğer varsa alttaki etiketleri kontrol edin.

<hyperv> etiketleri arsındaki herşeyi ve etiketin kendisini silin.

 <clock> etiketi arasındaki  hypervclock satırını silin.



Düzenlemeyi kaydedin ve virshten çıkın.

############################



Eğer sistemi başlattığınızda herhangi boot aygıtı bulunamaz ise sistemi yine zorla kapatın. Ve bir sonraki adımda gösterildiği gibi boot menü seçeneğini işaretleyin.

http://i.imgur.com/pw5iWRY.png" alt="" class="bbc_img" />



enable boot menu seçeneğini işaretleyip uygula butotnuna basın.

http://i.imgur.com/5wbYDz2.png" alt="" class="bbc_img" />



Artık sanal makineniz windows kurulumu için hazır.

sisteme eklediğimiz harddisk'i windows kurulumunun görmesi için. VirtIO sürücüsünü sisteme yüklememiz gerekiyor. Bunun için alttaki resimde görüldüğü gibi Sürücü Yükle linkine tıklayın.

http://i.imgur.com/LTJcjvV.png" alt="" class="bbc_img" />



Hatırladığınız gibi sistemimize virtio-win-0.1.112.iso dosyasını cdrom olarak eklemiştik. CD rom içinde /viostor/w10/amd64 dizinini seçip tamam butonunu tıklayın böylece disk sürücü sisteme yüklenicek ve eklemiş olduğumuz harddiske sistem kurulumu yapabileceğiz.

http://i.imgur.com/jAF0V4y.png" alt="" class="bbc_img" />



İleri butotnuna basıp devam edin.

http://i.imgur.com/lQ6UVGn.png" alt="" class="bbc_img" />



Artık harddiskimizde kullanıma hazır olduğuna göre, kurulumu tamamlaya bilirsiniz.

http://i.imgur.com/JuuE8Js.png" alt="" class="bbc_img" />



27" monitöre evsahibi(dvi) ve sanal makine(hdmi) ekrankartları takılı, yani monitör üzerinden girişleri seçerek ister sanal makine ister evsahibi makinenin görüntüsünü bu monitör üzerinde görebiliyoruz. Sanal makineyi açtığınızda monitör üzerindeki butonlar ile uğraşmadan, monitörün otomatik olarak sanal makineye geçmesi için startvm.sh ve stopvm.sh olarak iki adet shell dosyası yaratacağız. ( açık sanal makinenin sürekli kontrolü ile bu iki dosya tek bir dosyada olarakta toplana bilir. )

Startvm.sh dosyası virsh ile sanal makineyi başlatıcak ve monitörün sanal makine geçmesi için bu monitörü evsahibi makinenin kullanımından çıkartıcağız.



öncelikle sisteminizdeki monitörlerin hangi portlardan bağlandığını kontrol etmek için xrandr komutunu kullanın. (bu çıktı evsahibi makinede gtx770 kullanılırken alındı.)
Kod: [Seç]
$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DVI-I-1 disconnected (normal left inverted right x axis y axis)
DVI-D-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     60.02  
   1440x900      59.90  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       66.67    60.00    59.94  
   720x400       70.08  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)


Evsahibi makinede AMD HD4850 ekran kartı aktif ve şuan onun çıkışları üzerinden işlem yapmaktayız.



Startvm.sh
Kod: [Seç]
virsh start <sanalmakinenin adı>
xrandr --output DVI-0 --off
xrandr --output DVI-1 --auto --primary


Startvm.sh dosyasında yapılan işlemler sırasıyla.

   >sanal makineyi başlat.

   >DVI-0 portuna bağlı olan monitörü kapat.

   >DVI-1 portuna takılı olan monitörü birincil monitör yap.





Stopvm.sh
Kod: [Seç]
virsh shutdown <sanalmakinenin adı>
xrandr --output DVI-1 --off
xrandr --output DVI-0 --auto --primary
sleep 5
xrandr --output DVI-1 --auto --right-of DVI-0


Stopvm.sh dosyasında yapılan işlemler Startvm.sh dosyasındakilere kıyasla birazdaha fazla ve sleep komutu monitörünüze göre ufak bir ayar istiyebilir, yapılan işlemlerin özeti sırasıyla alttaki gibi.

   >Sanal makineyi düzgünce kapat (fişini çekmeden)

   >DVI-1 portuna bağlı olan monitörü kapat, DVI-0 portuna bağlı olan monitör evsahibi makine için zaten kapalı, böylece sistemimdeki tüm monitörleri kapattım.

   >DVI-0 portuna bağlı olan monitörü birincil monitör olarak aç.

   >DVI-0 portuna bağlı olan monitörün kedine gelmesi için 5 saniye süre tanı, ekrana görüntü gelmesi gerekmez, görüntü daha sonrada gelebilir. Önemli olan sistemin monitörün bir birlerini algılaması için bir miktar süre tanınması. bu süreyi monitörünüzün tepki süresine göre değiştirebilirsiniz. Ben 5 saniye süre tanımazsam eğer DVI-1 portuna takılı olan monitör açıldığında masaüstü resmi gelmiyor, siyah bir duvar kağıdı ile açılıyor ve üzerinde hiçbir şekilde farenin sağ tıklama butonu ile menü açamıyorum ama herhangi bir program penceresini bu monitöre taşıyabiliyorum (kde plasma5 için böyle belki diğer masaüstlerinde sorun olmuyordur).  

   >DVI-1 portuna bağlı olan monitörü DVI-0 portuna bağlı olan monitörün sağında aç.



Windows kurulumu hakkında desteğe ihtiyacınız olursa, tek yapmanız gereken https://duckduckgo.com/ adresinde "windows kurulumu" diye aratmak.

Elimden gelidğince Qemu/KVM ile ekran kartı geçişini anlatmaya çalıştım, umarım faydalı bir yazı olmuştur.

İyi günler dilerim.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı karasu

  • Newbie
  • *
  • İleti: 267
Re: QEMU KVM Kullanarak GPU Geçişi.
« Yanıtla #1 : 03 Mart 2016 - 20:26:39 »
Hazırlık ve testlerde beni hiç yalnız(rahat) bırakmayan kızım aryaya yardımlarından dolayı çok teşekkür ederim :D





XFCE masaüstü kullanırken.

http://i.imgur.com/ccff7xW.png" alt="" class="bbc_img" />

Plasma5 masaüstü kullanırken.

http://i.imgur.com/N8gcFJz.png" alt="" class="bbc_img" />
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı hsngrms

  • İleti: 1.707
Re: QEMU KVM Kullanarak GPU Geçişi.
« Yanıtla #2 : 03 Mart 2016 - 23:02:12 »
Oldukça detaylı bir anlatım olmuş ellerine emeğine sağlık :)



Kızın ne kadar tatlı öyle Allah bağışlasın. Çilek gibi de giydirmişsiniz :D
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı karasu

  • Newbie
  • *
  • İleti: 267
Re: QEMU KVM Kullanarak GPU Geçişi.
« Yanıtla #3 : 04 Mart 2016 - 00:37:03 »
çok teşekkür ederim ustat çok saol :D çeliğimizi güzel giydirmezsek dövüyo bizi. :D
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı cokomoko

  • İleti: 508
Re: QEMU KVM Kullanarak GPU Geçişi.
« Yanıtla #4 : 04 Mart 2016 - 11:52:57 »
@karasu anlatımı yeni gördüm tam inceleyemedim ancak sana söylediğim bir yerde rpmextract komutunu yanlış dosyaya yönlendirmişsin:
Alıntı
Bios dizininde sanal makinenin kullanıcağı OVMF UEFI bios paketi bulunmakta, OVMF bios paketini indirip kurmak için alttaki linkten bir edk2.git-ovmf-x64-0-20160226.b1562.g014b472.noarch.rpm dosyasını indirin.



https://www.kraxel.org/repos/jenkins/edk2/



Kod: Tümünü seç

# rpmextract.sh edk2.git-ovmf-x64-0-20150223.b877.ga8577b3.noarch.rpm

# cp -R ./usr/share/* /usr/share

rpmextract.sh edk2.git-ovmf-x64-0-20160226.b1562.g014b472.noarch.rpm   olmalı. Ben acil çıkıyorum akşama bakacağım tam olarak.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »
\'\'Eğer 386BSD ben Linux\'a başladığımda var olsaydı, Linux büyük bir olasılıkla olmazdı.\"

......................................................Linus Torvalds....................................................

\"Birgün herkes Archer olacak!\"

Çevrimdışı karasu

  • Newbie
  • *
  • İleti: 267
Re: QEMU KVM Kullanarak GPU Geçişi.
« Yanıtla #5 : 04 Mart 2016 - 12:00:20 »
Alıntı yapılan: "cokomoko"
@karasu anlatımı yeni gördüm tam inceleyemedim ancak sana söylediğim bir yerde rpmextract komutunu yanlış dosyaya yönlendirmişsin:
Alıntı
Bios dizininde sanal makinenin kullanıcağı OVMF UEFI bios paketi bulunmakta, OVMF bios paketini indirip kurmak için alttaki linkten bir edk2.git-ovmf-x64-0-20160226.b1562.g014b472.noarch.rpm dosyasını indirin.



https://www.kraxel.org/repos/jenkins/edk2/



Kod: Tümünü seç

# rpmextract.sh edk2.git-ovmf-x64-0-20150223.b877.ga8577b3.noarch.rpm

# cp -R ./usr/share/* /usr/share

rpmextract.sh edk2.git-ovmf-x64-0-20160226.b1562.g014b472.noarch.rpm   olmalı. Ben acil çıkıyorum akşama bakacağım tam olarak.

 Evet  hemen düzeltiyorum :D

edit: düzeltemiyorum :D izin vermiyor forum.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı cokomoko

  • İleti: 508
Re: QEMU KVM Kullanarak GPU Geçişi.
« Yanıtla #6 : 04 Mart 2016 - 20:42:15 »
Ben o bölümü düzelttim kalanına sonra bakacağım. Bu arada çok tatlı bir kızın var, zaten önceden bahsetmiştin ondan, sanırım senin bilgisayara göz dikmişti :) , umarım bu paylaşımların bir yedeğini alıyorsundur, ona da güzel bir hatıra olur.



Okudum, gayet güzel olmuş, emeğine sağlık. Ayrıca virtuo-win için aur'da paket var, oradan da kurulabilir  https://aur.archlinux.org/packages/virtio-win
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »
\'\'Eğer 386BSD ben Linux\'a başladığımda var olsaydı, Linux büyük bir olasılıkla olmazdı.\"

......................................................Linus Torvalds....................................................

\"Birgün herkes Archer olacak!\"

Çevrimdışı karasu

  • Newbie
  • *
  • İleti: 267
Re: [Nasıl] QEMU KVM Kullanarak GPU Geçişi.
« Yanıtla #7 : 06 Mart 2016 - 11:51:28 »
Beğenmene sevindim @cokomoko. Evet benim bilgisayara karşı bir zaafı var, yiğenlerimin masamın yanında durup ekrana bakmasına bile kızıyo :D annesine izin veriyor sadece.



Yedeklerini odt belgelesi olarak saklıyorum. Daha henüz kendi sitemi açamadım, localdede kuramadım... drupal ile güzel bir site yapmayı düşünüyorum, ders ve notları paylaşabileceğim. umarım yakın zamanda hayata geçiririm.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »