This site uses cookies! Learn More

Utilizziamo i cookie per personalizzare i contenuti e gli annunci, fornire le funzioni dei social media e analizzare il nostro traffico. Inoltre forniamo informazioni sul modo in cui utilizzi il nostro sito alle agenzie pubblicitarie, agli istituti che eseguono analisi dei dati web e ai social media nostri partner.

Visualizza dettagli: italiaunix.com/cookies

Per proseguire con la navigazione del sito, devi accettare di utilizzare i nostri cookie :)

Luky

SuperWriter
  • Numero contenuti

    2
  • Iscritto

  • Ultima visita

Su Luky

  • Rank
    Nuovo utente
  • Compleanno 22.07.1997

Profile Information

  • Sesso Maschile
  • Residenza Ancona
  • Sistema operativo Arch Linux / Gentoo
  • Ambiente Grafico GNOME
  1. Calcolare le potenze in C

    Potrei sbagliarmi ma non dovresti compilare linkando il riferimento alla libreria math? (-lm come argomento a gcc sd non erro)
  2. Premessa teorica Salve a tutti, in questa guida illustrerò nel dettaglio come effettuare la virtualizzazione della vostra scheda video su una macchina virtuale, in modo da avere circa 95% delle prestazioni di una macchina fisica. Perché Di norma, qualsiasi programma che gestisce macchine virtuali, emula una scheda video software che, detta in parole povere, usa la CPU invece che la GPU fisica causando difficoltà nel rendering non solo di programmi 3d ma anche dell'usabilità in se del sistema operativo virtualizzato. E' una tecnologia che sta prendendo forma concreta in questi ultimi anni ma che rimane tutt'ora con molti problemi, ma per ora i risultati sono incoraggianti.  Esempi noti: LinusTechTips In un futuro ad esempio potrebbe trovare impiego all'utilizzo di un computer centralizzato come nell'esempio di Linus non solo per giocare ma anche in ambiti di computer grafica o dove è necessaria elaborazione GPU portando molti vantaggi oltre che alla sicurezza e all'utilizzo di ambienti virtualizzati da cui derivano sicurezza e controllo. La tecnologia che rende possibile tutto questo si chiama VT-D in particolare per intel, e consente accesso diretto a periferiche PCI della scheda madre bypassando il sistema operativo host. Dettagli qui: Sito intel Requisiti   - Supporto CPU con estensione VT-X e VT-D (Anche detta Intel® Virtualization Technology for Directed I/O)   - Supporto Scheda madre/chipset per VT-D   - 2 GPU, possibile utilizzare Intel IGPU sull'host   - Pazienza (Molto importante)    - 2 Schermi o un singolo schermo con più entrate in input   - Sistema Operativo Linux con kernel compilato con supporto per: PCI STUB DRIVER (Compilato come modulo preferibilmente) AMD/INTEL IOMMU SUPPORT Per verificare questo è possibile controllare la propria config attuale del kernel che certe distro offrono, in /proc/config.gz utilizzando un editor di testo.   QEMU Configurazione e Installazione Testato su: Arch Linux (canale rilascio testing)  Qemu + KVM con V-FIO Integrata Intel HD 530 (output DVI)  Scheda video AMD R9 380 (output HDMI) 1 Schermo LG IPS 224 Processore i5 6400 Scheda madre MSI H170 Gaming M3 Windows 10 Guide generali per ricerca di problemi o di configurazioni particolari: Arch Wiki https://www.pugetsystems.com/labs/articles/Multiheaded-NVIDIA-Gaming-using-Ubuntu-14-04-KVM-585/ Documentazione QEMU Ubuntu Forum RedHat Arch Forum Passi - Configurazione Bootloader per abilitare VT-D su linux e altre variabili particolari richieste con certe configurazioni - Eclusione dal sistema operativo host mettendo in blacklist i driver della GPU che vogliamo virtualizzare - Configurazione e assegnazione a vfio/pci-stub dell'indirizzo fisico della scheda video - Configurazione QEMU Premessa La guida è stata fatta seguendo ciò di cui il mio computer ha avuto bisogno, non è detto che questa esatta configurazione sia supportata anche dalla vostra, potrebbe essere necessario infatti aggiungere altri parametri al bootloader per evitare crash, problemi, reset improvvisi e kernel panic.  Rimane comunque una funzione sperimentale supportata solo da QEMU e KVM che presenta diversi problemi. ATTENZIONE  Se chiuderete la virtual machine sarete costretti a riavviare il computer per riavviarla una seconda volta. Può succedere che dovrete riavviare più di una volta il computer per far partire tutto correttamente. Può succedere in maniera del tutto casuale che la scheda video si blocchi, che linus chiama GPU resets. E' possibile che si verifichino kernel panic o crash dei moduli. E' stato inoltre accertato che alcune schede video NVIDIA hanno problemi di diverso genere utilizzando questa funzione. Configurazione Bootloader e verifica corretta del caricamento di IOMMU Con grub, per caricare iommu è necessario aggiungere alla commandline del kernel Per far ciò, possiamo modificare la config di default in con il vostro editor di testo preferito e aggiungendo in Per aggiornare il bootloader copiando la configurazione da voi creata, dare su archlinux      su Ubuntu Per verificare che tutto sia stato caricato correttamente digitare nel terminale  Dipendentemente dal processore, dovreste capire da voi se tutto ciò sia stato caricato completamente. Per avere un ulteriore conferma, controllare sul filesystem virtuale del kernel in    Se sono presenti cartelle, siete riusciti a caricare completamente l'estensione. Esclusione della GPU dall'host Per il corretto funzionamento della virtualizzazione è necessario che non siano caricati alcuni moduli kernel relativi alla vostra scheda da virtualizzare, dovrete quindi mettere in blacklist i driver radeon o nouveau a seconda della scheda video che utilizzate. Per far ciò, su ArchLinux ho modificato in   aggiungendo  Ovviamente, sostituirete radeon col driver che la vostra scheda video utilizza ATTENZIONE, CON FGLRX O NVIDIA potrebbe dare problemi. Si consiglia l'utilizzo dei driver open. In questo modo, al prossimo riavvio X.org partirà senza aver caricato i moduli della scheda video che vorrete virtualizzare. Necessario per il corretto caricamento. Configurazione e assegnazione a vfio/pci-stub dell'indirizzo fisico della scheda video   metodo vfio-pci (TESTATO) Caricamento moduli essenziali A seconda della distribuzione, potrebbe essere necessario assicurarsi che i moduli vfio e pci stub siano caricati nel initramfs. Su arch, modificare  e ricostruire l'initramfs con Assegnazione a vfio-pci Sempre in aggiungere con un editor di testo al file procediamo all'assegnazione degli indirizzi. Dove, separati da una virgola, inserirete l'indirizzo PCI della vostra scheda video, per vederli   Riavviando il vostro computer, potrete verificare se il modulo vfio-pci ha bindato correttamente la vostra GPU con Dovrebbe restituire qualcosa di simile a metodo pci-stub (NON PERSONALMENTE TESTATO) In caso abbiate problemi a bindare con vfio, potreste provare ad utilizzare il modulo pci-stub. Pci stub richiede alcune modifiche sempre al bootloader come spiegato in precedenza aggiungendo oltre a intel_iommu=on :   Sempre utilizzando gli indirizzi trovati in precedenza con lspci -n in /etc/mkinitcpio.conf invece Dopo aver ricreato l'initramfs con mkinitcpio -p linux e il bootloader con grub-mkconfig se è stato tutto eseguito correttamente   Differenze con ubuntu Il procedimento su ubuntu è lo stesso, ma in modo diverso dovremmo effettuare le operazioni qui descritte. Per avere meglio idea su procedimenti specifici a questa distribuzione in caso di problemi, consultate i link generali di aiuto in particolare sull'ubuntu forum. Al posto di bindare gli indirizzi con vfio-pci o con pci-stub è possibile utilizzare lo script utilizzato lì.  Caricamento moduli essenziali   aggiungendo   metodo Assegnazione PCI al posto di utilizzare GRUB solo con PCI-STUB (Solo ubuntu) e, sempre per pci-stub, aggiungere in  Ovviamente ricreando l'initramfs con update-initramfs Per vfio-pci il procedimento è uguale ad arch visto che modprobe.d è presente. Configurazione QEMU Se non avete avuto problemi con i passi precedenti, possiamo procedere con la configurazione della macchina virtuale vera e propria. Per far partire QEMU usiamo preferibilmente il bios-uefi (alias ovmf) Non starò a trattare su come configurare e creare una macchina virtuale con QEMU, per dettagli su come funziona QEMU   Alcune persone sono riuscite a farlo partire senza BIOS uefi virtualizzando la scheda video ma personalmente non l'ho testato, dipende comunque da come avviate il vostro sistema operativo guest e sopratutto come lo installate visto che non potrete cambiarlo in seguito.  sudo pacman -S ovmf sudo apt-get install ovmf I passi essenziali sono: Aggiungere BIOS UEFI (Testato) Aggiungere scheda video con vfio-pci (Testato) Premesso che abbiate ora già una macchina virtuale funzionante, prima di aggiungere vfio-pci effettuate delle prove. Questa è la mia configurazione, ho evidenziato ciò che è necessario al corretto caricamento della scheda video. Per creare la macchina virtuale ho utilizzato come controller del disco VirtIO che consiglio anche se le prestazioni avendo un SSD non sono delle migliori. Sconsiglio l'utilizzo di una partizione fisica come ho fatto io visto che i driver preinstallati che avevo utilizzato avviandolo come PC fisico si sono rivelati incompatibili con la macchina virtuale, è consigliabile quindi utilizzare una installazione pulita di WIndows 10 o altro. Il bios uefi tipicamente risiede in /usr/share/ovmf e dovrete caricarlo a mano.   Dopo di che, a seconda dell'output che utilizzate, switchate e vedrete la vostra macchina virtuale utilizzare la vostra scheda video fisica. Potete comodamente installare i driver della vostra scheda video e iniziare a provare qualche gioco. Dal momento che non sono riuscito a far funzionare tutto ciò con libvirt non so se per problemi di compatibilità, in caso di aggiornamenti aggiornerò il post per correggere eventuali errori o aggiungere altre cose. Ho fatto un video di quel che sono riuscito a far partire POST IN AGGIORNAMENTO