From 0f1ff9fa2e101be45b55303e21e3ace65b0a48c2 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 31 Dec 2016 01:22:49 +0100 Subject: first commit --- doc/build/pcie_passthrough.aux | 30 ++ doc/build/pcie_passthrough.log | 787 +++++++++++++++++++++++++++++++++++++++ doc/build/pcie_passthrough.out | 11 + doc/build/pcie_passthrough.pdf | Bin 0 -> 33177 bytes doc/makefile | 2 + doc/pcie_passthrough.tex | 233 ++++++++++++ doc/sources/links.txt | 33 ++ doc/sources/pcie_passthrough.odt | Bin 0 -> 22178 bytes scripts/vfio-bind | 12 + scripts/vfio-pcie-bind.service | 10 + 10 files changed, 1118 insertions(+) create mode 100644 doc/build/pcie_passthrough.aux create mode 100644 doc/build/pcie_passthrough.log create mode 100644 doc/build/pcie_passthrough.out create mode 100644 doc/build/pcie_passthrough.pdf create mode 100644 doc/makefile create mode 100644 doc/pcie_passthrough.tex create mode 100644 doc/sources/links.txt create mode 100644 doc/sources/pcie_passthrough.odt create mode 100755 scripts/vfio-bind create mode 100644 scripts/vfio-pcie-bind.service diff --git a/doc/build/pcie_passthrough.aux b/doc/build/pcie_passthrough.aux new file mode 100644 index 0000000..beaf444 --- /dev/null +++ b/doc/build/pcie_passthrough.aux @@ -0,0 +1,30 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand*\HyPL@Entry[1]{} +\HyPL@Entry{0<>} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduzione}{1}{section.1}} +\@writefile{toc}{\contentsline {section}{\numberline {2}Limitazioni}{1}{section.2}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Funzionamento (In grandi linee)}{1}{section.3}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Hardware Requirements}{2}{section.4}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Software Requirements}{2}{section.5}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Hardware utilizzato}{2}{section.6}} +\@writefile{toc}{\contentsline {section}{\numberline {7}BIOS Settings}{2}{section.7}} +\@writefile{toc}{\contentsline {section}{\numberline {8}Sistema Operativo}{2}{section.8}} +\@writefile{toc}{\contentsline {section}{\numberline {9}Kernel Modules and GRUB}{3}{section.9}} +\@writefile{toc}{\contentsline {section}{\numberline {10}GPU Settings}{3}{section.10}} +\@writefile{toc}{\contentsline {section}{\numberline {11}Driver binding}{4}{section.11}} +\newlabel{skylakeigpu}{{11}{5}{i915 Skylake iGPU support}{section*.2}{}} diff --git a/doc/build/pcie_passthrough.log b/doc/build/pcie_passthrough.log new file mode 100644 index 0000000..fef8383 --- /dev/null +++ b/doc/build/pcie_passthrough.log @@ -0,0 +1,787 @@ +This is XeTeX, Version 3.14159265-2.6-0.99992 (TeX Live 2015/dev/Debian) (preloaded format=xelatex 2016.12.21) 21 DEC 2016 23:56 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**pcie_passthrough.tex +(./pcie_passthrough.tex +LaTeX2e <2014/05/01> +Babel <3.9l> and hyphenation patterns for 79 languages loaded. +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/09/12 v5.6 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/05/08 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count88 +\Gm@cntv=\count89 +\c@Gm@tempcnt=\count90 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@layoutwidth=\dimen107 +\Gm@layoutheight=\dimen108 +\Gm@layouthoffset=\dimen109 +\Gm@layoutvoffset=\dimen110 +\Gm@dimlist=\toks15 +) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) + + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) +Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package hobsub Info: Skipping package `ifvtex' (already loaded). +Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: pdfTeX >= 1.30 not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode not found. +Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +) +Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) +Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) +Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) +Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +) +\@linkdim=\dimen111 +\Hy@linkcounter=\count91 +\Hy@pagecounter=\count92 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count93 + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4443. +Package hyperref Info: Link nesting OFF on input line 4448. +Package hyperref Info: Hyper index ON on input line 4451. +Package hyperref Info: Plain pages OFF on input line 4458. +Package hyperref Info: Backreferencing OFF on input line 4463. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4688. +\c@Hy@tempcnt=\count94 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5041. +\XeTeXLinkMargin=\dimen112 +\Fld@menulength=\count95 +\Field@Width=\dimen113 +\Fld@charsize=\dimen114 +Package hyperref Info: Hyper figures OFF on input line 6295. +Package hyperref Info: Link nesting OFF on input line 6300. +Package hyperref Info: Hyper index ON on input line 6303. +Package hyperref Info: backreferencing OFF on input line 6310. +Package hyperref Info: Link coloring OFF on input line 6315. +Package hyperref Info: Link coloring with OCG OFF on input line 6320. +Package hyperref Info: PDF/A mode OFF on input line 6325. +LaTeX Info: Redefining \ref on input line 6365. +LaTeX Info: Redefining \pageref on input line 6369. +\Hy@abspage=\count96 +\c@Item=\count97 +\c@Hfootnote=\count98 +) + +Package hyperref Message: Driver (autodetected): hxetex. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hxetex.def +File: hxetex.def 2012/11/06 v6.83m Hyperref driver for XeTeX + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2012/11/06 v6.83m Hyperref: PDF Unicode definition (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/stringenc.sty +Package: stringenc 2011/12/02 v1.10 Convert strings between diff. encodings (HO +) +) +\pdfm@box=\box26 +\c@Hy@AnnotLevel=\count99 +\HyField@AnnotCount=\count100 +\Fld@listcount=\count101 +\c@bookmark@seq@number=\count102 + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package rerunfilecheck Info: Feature \pdfmdfivesum is not available +(rerunfilecheck) (e.g. pdfTeX or LuaTeX with package `pdftexcmds'). + +(rerunfilecheck) Therefore file contents cannot be checked efficien +tly +(rerunfilecheck) and the loading of the package is aborted. +) +\Hy@SectionHShift=\skip43 +) +(/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty +Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks +\OuterFrameSep=\skip44 +\fb@frw=\dimen115 +\fb@frh=\dimen116 +\FrameRule=\dimen117 +\FrameSep=\dimen118 +) +(/usr/share/texmf/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty +Package: fontspec 2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTeX + +(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +Package: expl3 2014/09/15 v5423 L3 programming layer (loader) + +(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3-code.tex +Package: expl3 2014/09/15 v5423 L3 programming layer (code) +L3 Module: l3bootstrap 2014/08/23 v5354 L3 Bootstrap code + +(/usr/share/texlive/texmf-dist/tex/latex/etex-pkg/etex.sty +Package: etex 1998/03/26 v2.0 eTeX basic definition package (PEB) +\et@xins=\count103 +) +L3 Module: l3names 2014/08/22 v5343 L3 Namespace for primitives +L3 Module: l3basics 2014/08/24 v5364 L3 Basic definitions +L3 Module: l3expan 2014/08/22 v5349 L3 Argument expansion +L3 Module: l3tl 2014/08/24 v5359 L3 Token lists +L3 Module: l3str 2014/08/24 v5368 L3 Strings +L3 Module: l3seq 2014/08/23 v5354 L3 Sequences and stacks +L3 Module: l3int 2014/09/14 v5421 L3 Integers +\c_max_int=\count104 +\l_tmpa_int=\count105 +\l_tmpb_int=\count106 +\g_tmpa_int=\count107 +\g_tmpb_int=\count108 +L3 Module: l3quark 2014/08/23 v5354 L3 Quarks +L3 Module: l3prg 2014/08/23 v5354 L3 Control structures +\g__prg_map_int=\count109 +L3 Module: l3clist 2014/08/23 v5354 L3 Comma separated lists +L3 Module: l3token 2014/09/15 v5422 L3 Experimental token manipulation +L3 Module: l3prop 2014/08/23 v5354 L3 Property lists +L3 Module: l3msg 2014/08/24 v5358 L3 Messages +L3 Module: l3file 2014/08/24 v5369 L3 File and I/O operations +\l_iow_line_count_int=\count110 +\l__iow_target_count_int=\count111 +\l__iow_current_line_int=\count112 +\l__iow_current_word_int=\count113 +\l__iow_current_indentation_int=\count114 +L3 Module: l3skip 2014/08/23 v5354 L3 Dimensions and skips +\c_zero_dim=\dimen119 +\c_max_dim=\dimen120 +\l_tmpa_dim=\dimen121 +\l_tmpb_dim=\dimen122 +\g_tmpa_dim=\dimen123 +\g_tmpb_dim=\dimen124 +\c_zero_skip=\skip45 +\c_max_skip=\skip46 +\l_tmpa_skip=\skip47 +\l_tmpb_skip=\skip48 +\g_tmpa_skip=\skip49 +\g_tmpb_skip=\skip50 +\c_zero_muskip=\muskip11 +\c_max_muskip=\muskip12 +\l_tmpa_muskip=\muskip13 +\l_tmpb_muskip=\muskip14 +\g_tmpa_muskip=\muskip15 +\g_tmpb_muskip=\muskip16 +L3 Module: l3keys 2014/08/23 v5354 L3 Key-value interfaces +\g__keyval_level_int=\count115 +\l_keys_choice_int=\count116 +L3 Module: l3fp 2014/08/22 v5336 L3 Floating points +\c__fp_leading_shift_int=\count117 +\c__fp_middle_shift_int=\count118 +\c__fp_trailing_shift_int=\count119 +\c__fp_big_leading_shift_int=\count120 +\c__fp_big_middle_shift_int=\count121 +\c__fp_big_trailing_shift_int=\count122 +\c__fp_Bigg_leading_shift_int=\count123 +\c__fp_Bigg_middle_shift_int=\count124 +\c__fp_Bigg_trailing_shift_int=\count125 +L3 Module: l3box 2014/08/23 v5354 L3 Experimental boxes +\c_empty_box=\box27 +\l_tmpa_box=\box28 +\l_tmpb_box=\box29 +\g_tmpa_box=\box30 +\g_tmpb_box=\box31 +L3 Module: l3coffins 2014/08/23 v5354 L3 Coffin code layer +\l__coffin_internal_box=\box32 +\l__coffin_internal_dim=\dimen125 +\l__coffin_offset_x_dim=\dimen126 +\l__coffin_offset_y_dim=\dimen127 +\l__coffin_x_dim=\dimen128 +\l__coffin_y_dim=\dimen129 +\l__coffin_x_prime_dim=\dimen130 +\l__coffin_y_prime_dim=\dimen131 +\c_empty_coffin=\box33 +\l__coffin_aligned_coffin=\box34 +\l__coffin_aligned_internal_coffin=\box35 +\l_tmpa_coffin=\box36 +\l_tmpb_coffin=\box37 +\l__coffin_display_coffin=\box38 +\l__coffin_display_coord_coffin=\box39 +\l__coffin_display_pole_coffin=\box40 +\l__coffin_display_offset_dim=\dimen132 +\l__coffin_display_x_dim=\dimen133 +\l__coffin_display_y_dim=\dimen134 +L3 Module: l3color 2014/08/23 v5354 L3 Experimental color support +L3 Module: l3candidates 2014/08/24 v5366 L3 Experimental additions to l3kernel +\l__box_top_dim=\dimen135 +\l__box_bottom_dim=\dimen136 +\l__box_left_dim=\dimen137 +\l__box_right_dim=\dimen138 +\l__box_top_new_dim=\dimen139 +\l__box_bottom_new_dim=\dimen140 +\l__box_left_new_dim=\dimen141 +\l__box_right_new_dim=\dimen142 +\l__box_internal_box=\box41 +\l__coffin_bounding_shift_dim=\dimen143 +\l__coffin_left_corner_dim=\dimen144 +\l__coffin_right_corner_dim=\dimen145 +\l__coffin_bottom_corner_dim=\dimen146 +\l__coffin_top_corner_dim=\dimen147 +\l__coffin_scaled_total_height_dim=\dimen148 +\l__coffin_scaled_width_dim=\dimen149 +) +(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/l3unicode-data.def +File: l3unicode-data.def 2014/08/12 v5276 L3 Unicode data +) +(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +File: l3xdvidpfmx.def 2014/08/24 v5366 L3 Experimental driver: xdvipdfmx +)) +(/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +Package: xparse 2014/09/15 v5423 L3 Experimental document command parser +\l__xparse_current_arg_int=\count126 +\l__xparse_m_args_int=\count127 +\l__xparse_mandatory_args_int=\count128 +\l__xparse_processor_int=\count129 +\l__xparse_v_nesting_int=\count130 +) +\l_fontspec_script_int=\count131 +\l_fontspec_language_int=\count132 +\l_fontspec_strnum_int=\count133 +\l__fontspec_tmpa_dim=\dimen150 +\l__fontspec_tmpb_dim=\dimen151 +\l__fontspec_tmpc_dim=\dimen152 +Variant \tl_gset:cV already defined; not changing it on line 71 + +(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-patches.sty +Package: fontspec-patches 2014/06/21 v2.4a Font selection for XeLaTeX and LuaLa +TeX +LaTeX Info: Redefining \em on input line 38. +LaTeX Info: Redefining \emph on input line 46. +LaTeX Info: Redefining \- on input line 49. +................................................. +. LaTeX info: "xparse/redefine-command" +. +. Redefining command \oldstylenums with sig. 'm' on line 144. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \liningnums with sig. 'm' on line 148. +................................................. +) +(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty +Package: fontspec-xetex 2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTe +X + +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1enc.def +File: eu1enc.def 2010/05/27 v0.1h Experimental Unicode font encodings +) +LaTeX Font Info: Try loading font information for EU1+lmr on input line 100. + + +(/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmr.fd +File: eu1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +)) +(/usr/share/texlive/texmf-dist/tex/xelatex/xunicode/xunicode.sty +File: xunicode.sty 2011/09/09 v0.981 provides access to latin accents and many +other characters in Unicode lower plane + +(/usr/share/texmf/tex/latex/tipa/t3enc.def +File: t3enc.def 2001/12/31 T3 encoding +LaTeX Font Info: Try loading font information for EU1+lmss on input line 357 +. + +(/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmss.fd +File: eu1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +)) +\tipaTiiicode=\count134 +\tipasavetokens=\toks16 +\tipachecktokens=\toks17 + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2014/04/25 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: xetex.def on input line 91. + +(/usr/share/texlive/texmf-dist/tex/xelatex/xetex-def/xetex.def +File: xetex.def 2014/07/25 v4.03 LaTeX color/graphics driver for XeTeX (RRM/JK) + +)) +\Gin@req@height=\dimen153 +\Gin@req@width=\dimen154 +)) +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \fontspec with sig. 'O{}mO{}' on line 41. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \setmainfont with sig. 'O{}mO{}' on line 47. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \setsansfont with sig. 'O{}mO{}' on line 53. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \setmonofont with sig. 'O{}mO{}' on line 59. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \setmathrm with sig. 'O{}mO{}' on line 68. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \setboldmathrm with sig. 'O{}mO{}' on line 72. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \setmathsf with sig. 'O{}mO{}' on line 76. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \setmathtt with sig. 'O{}mO{}' on line 80. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \newfontfamily with sig. 'mO{}mO{}' on line 99. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \newfontface with sig. 'mO{}mO{}' on line 103. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \defaultfontfeatures with sig. 't+om' on line 112. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \addfontfeatures with sig. 'm' on line 170. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \newfontfeature with sig. 'mm' on line 181. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \newAATfeature with sig. 'mmmm' on line 189. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \newopentypefeature with sig. 'mmm' on line 197. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \aliasfontfeature with sig. 'mm' on line 226. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \aliasfontfeatureoption with sig. 'mmm' on line 228. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \newfontscript with sig. 'mm' on line 233. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \newfontlanguage with sig. 'mm' on line 259. +................................................. +................................................. +. LaTeX info: "xparse/define-command" +. +. Defining command \DeclareFontsExtensions with sig. 'm' on line 279. +................................................. +Variant \prop_gput:cnV already defined; not changing it on line 662 +Variant \prop_gput:cnx already defined; not changing it on line 663 +\l__fontspec_tmp_int=\count135 +LaTeX Info: Redefining \itshape on input line 2193. +LaTeX Info: Redefining \slshape on input line 2198. +LaTeX Info: Redefining \scshape on input line 2203. +LaTeX Info: Redefining \upshape on input line 2208. + +(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg))) +(/usr/share/texlive/texmf-dist/tex/latex/ms/ragged2e.sty +Package: ragged2e 2009/05/21 v2.1 ragged2e Package (MS) + +(/usr/share/texlive/texmf-dist/tex/latex/ms/everysel.sty +Package: everysel 2011/10/28 v1.2 EverySelectfont Package (MS) +) +\CenteringLeftskip=\skip51 +\RaggedLeftLeftskip=\skip52 +\RaggedRightLeftskip=\skip53 +\CenteringRightskip=\skip54 +\RaggedLeftRightskip=\skip55 +\RaggedRightRightskip=\skip56 +\CenteringParfillskip=\skip57 +\RaggedLeftParfillskip=\skip58 +\RaggedRightParfillskip=\skip59 +\JustifyingParfillskip=\skip60 +\CenteringParindent=\skip61 +\RaggedLeftParindent=\skip62 +\RaggedRightParindent=\skip63 +\JustifyingParindent=\skip64 +) +\g__file_internal_ior=\read1 +\g__fontspec_family_LatinModernMono_int=\count136 +................................................. +. fontspec info: "no-font-shape" +. +. Could not resolve font Latin Modern Mono/B (it probably doesn't exist). +................................................. +................................................. +. fontspec info: "defining-font" +. +. Font family 'LatinModernMono(0)' created for font 'Latin Modern Mono' with +. options [Ligatures=TeX]. +. +. This font family consists of the following shapes: +. +. * 'normal' with NFSS spec.: +. <->"Latin Modern Mono/OT:script=latn;language=DFLT;mapping=tex-text;" +. +. * 'small caps' with NFSS spec.: +. +. and font adjustment code: +. +. +. * 'italic' with NFSS spec.: +. <->"Latin Modern Mono/I/OT:script=latn;language=DFLT;mapping=tex-text;" +. +. * 'small caps' with NFSS spec.: +. +. and font adjustment code: +. +. +. * 'bold italic' with NFSS spec.: +. <->"Latin Modern Mono/BI/OT:script=latn;language=DFLT;mapping=tex-text;" +. +. * 'bold small caps' with NFSS spec.: +. +. and font adjustment code: +. +................................................. + +(build/pcie_passthrough.aux) +\openout1 = `pcie_passthrough.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for EU1/lmr/m/n on input line 15. +LaTeX Font Info: ... okay on input line 15. +LaTeX Font Info: Checking defaults for T3/cmr/m/n on input line 15. +LaTeX Font Info: Try loading font information for T3+cmr on input line 15. + (/usr/share/texmf/tex/latex/tipa/t3cmr.fd +File: t3cmr.fd 2001/12/31 TIPA font definitions +) +LaTeX Font Info: ... okay on input line 15. + +*geometry* driver: auto-detecting +*geometry* detected driver: xetex +*geometry* verbose mode - [ preamble ] result: +* driver: xetex +* paper: a4paper +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(56.9055pt, 483.69687pt, 56.9055pt) +* v-part:(T,H,B)=(101.40665pt, 591.5302pt, 152.11pt) +* \paperwidth=597.50787pt +* \paperheight=845.04684pt +* \textwidth=483.69687pt +* \textheight=591.5302pt +* \oddsidemargin=-15.36449pt +* \evensidemargin=-15.36449pt +* \topmargin=-7.86334pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=10.0pt +* \footskip=30.0pt +* \marginparwidth=57.0pt +* \marginparsep=11.0pt +* \columnsep=10.0pt +* \skip\footins=9.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +\AtBeginShipoutBox=\box42 +Package hyperref Info: Link coloring OFF on input line 15. +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count137 +) +LaTeX Info: Redefining \ref on input line 15. +LaTeX Info: Redefining \pageref on input line 15. +LaTeX Info: Redefining \nameref on input line 15. + +(build/pcie_passthrough.out) (build/pcie_passthrough.out) +\@outlinefile=\write3 +\openout3 = `pcie_passthrough.out'. + + +ABD: EverySelectfont initializing macros +LaTeX Info: Redefining \selectfont on input line 15. +LaTeX Font Info: Try loading font information for EU1+lmtt on input line 15. + + +(/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmtt.fd +File: eu1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OT1+lmr on input line 17. + +(/usr/share/texmf/tex/latex/lm/ot1lmr.fd +File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OML+lmm on input line 17. + +(/usr/share/texmf/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMS+lmsy on input line 17. + + +(/usr/share/texmf/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMX+lmex on input line 17. + + +(/usr/share/texmf/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <12> on input line 17. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8> on input line 17. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 17. + + +LaTeX Font Warning: Font shape `EU1/LatinModernMono(0)/bx/n' undefined +(Font) using `EU1/LatinModernMono(0)/m/n' instead on input line 18 +. + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/se-ascii-print.def +File: se-ascii-print.def 2011/12/02 v1.10 stringenc: Printable ASCII characters + +) +Underfull \hbox (badness 10000) in paragraph at lines 41--49 + + [] + +[1 + +] +Underfull \hbox (badness 10000) in paragraph at lines 91--97 + + [] + +[2] +Underfull \hbox (badness 10000) in paragraph at lines 108--111 + + [] + + +Overfull \hbox (8.05139pt too wide) in paragraph at lines 131--135 +\EU1/lmtt/m/n/10 Per evitare che Debian utilizzi la GPU all’avvio si deve modif +icare le impostazioni dell’initramfs + [] + +[3] +Overfull \hbox (3.80313pt too wide) in paragraph at lines 182--184 +[]\EU1/lmtt/m/n/10 Con questo script possiamo collegare il driver per la virtua +lizzazione a qualsiasi dispositivo + [] + + +Overfull \hbox (3.80139pt too wide) in paragraph at lines 199--204 +[]\EU1/lmtt/m/n/10 Nel mio caso gli indirizzi da passare alla VM sono `0000:02: +00.0' per il video e `0000:02:00.1' + [] + +[4] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 233. + [5] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 233. + (build/pcie_passthrough.aux) +Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 233. +Package atveryend Info: Empty hook `AtEndAfterFileList' on input line 233. + + +LaTeX Font Warning: Some font shapes were not available, defaults substituted. + +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 233. + ) +Here is how much of TeX's memory you used: + 20633 strings out of 493727 + 385917 string characters out of 6147889 + 428536 words of memory out of 5000000 + 23828 multiletter control sequences out of 15000+600000 + 15153 words of font info for 41 fonts, out of 8000000 for 9000 + 1328 hyphenation exceptions out of 8191 + 46i,6n,59p,10388b,388s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on build/pcie_passthrough.pdf (5 pages). diff --git a/doc/build/pcie_passthrough.out b/doc/build/pcie_passthrough.out new file mode 100644 index 0000000..1bc2fe0 --- /dev/null +++ b/doc/build/pcie_passthrough.out @@ -0,0 +1,11 @@ +\BOOKMARK [1][-]{section.1}{Introduzione}{}% 1 +\BOOKMARK [1][-]{section.2}{Limitazioni}{}% 2 +\BOOKMARK [1][-]{section.3}{Funzionamento\040\(In\040grandi\040linee\)}{}% 3 +\BOOKMARK [1][-]{section.4}{Hardware\040Requirements}{}% 4 +\BOOKMARK [1][-]{section.5}{Software\040Requirements}{}% 5 +\BOOKMARK [1][-]{section.6}{Hardware\040utilizzato}{}% 6 +\BOOKMARK [1][-]{section.7}{BIOS\040Settings}{}% 7 +\BOOKMARK [1][-]{section.8}{Sistema\040Operativo}{}% 8 +\BOOKMARK [1][-]{section.9}{Kernel\040Modules\040and\040GRUB}{}% 9 +\BOOKMARK [1][-]{section.10}{GPU\040Settings}{}% 10 +\BOOKMARK [1][-]{section.11}{Driver\040binding}{}% 11 diff --git a/doc/build/pcie_passthrough.pdf b/doc/build/pcie_passthrough.pdf new file mode 100644 index 0000000..3be1c0d Binary files /dev/null and b/doc/build/pcie_passthrough.pdf differ diff --git a/doc/makefile b/doc/makefile new file mode 100644 index 0000000..05e0b81 --- /dev/null +++ b/doc/makefile @@ -0,0 +1,2 @@ +all: + xelatex --output-directory=build pcie_passthrough.tex diff --git a/doc/pcie_passthrough.tex b/doc/pcie_passthrough.tex new file mode 100644 index 0000000..1528593 --- /dev/null +++ b/doc/pcie_passthrough.tex @@ -0,0 +1,233 @@ +\documentclass[a4paper,10pt]{article} + +\usepackage[outer=2cm,inner=2cm]{geometry} +\usepackage[hidelinks]{hyperref} +\usepackage{framed} +\usepackage{lmodern} + +\usepackage{fontspec} +\usepackage{ragged2e} +\setmainfont{Latin Modern Mono} + +\title{PCIe GPU passthrough on Debian} +\author{Nao Pross} + +\begin{document}\tt + \maketitle + + \section{Introduzione} + Recentemente grazie all'evoluzione delle tecnologie di virtualizzazione \`e + diventato possibile passare direttamente un dispositivo collegato in uno + slot PCI ad una macchina virtuale, che può quindi usufruire dell'hardware a + performance quasi nativa. Un computer configurato per funzionare in tale + maniera apparirà come se fossero due computer distinti con due monitors (o + ad uno con un kvm switch). Il vantaggio di un setup del genere è la + possibilità di cambiare immediatamente da un sistema operativo all’altro + senza dover attendere che ma macchina si riavvii (in un dualboot) e si + evitano potenziali problemi come Windows Update che rendono il PC inusabile. + + \section{Limitazioni} + Come ogni sistema si ha delle limitazioni quali + \begin{itemize} + \item Per poter vedere l'uscita video della VM si deve collegare un + display ad una delle uscite della scheda grafica passata + \item Non \`e possibile passare la iGPU ad una VM (\`e possibile ma con + altre tecnologie ancora sperimentali) + \item Non \`e possibile passare una GPU discreta di un laptop (es NVIDIA + Optimus) poich\`e non \`e possibile visualizzare il video in uscita + \end{itemize} + + \section{Funzionamento (In grandi linee)} + Le macchine virtuali vengono emulate grazie ad un software chiamato QEMU che + supporta il passaggio di hardware PCI alla VM, inoltre QEMU utilizza un + estensione chiamata KVM che permette di creare delle macchine virtuali + collegate alla kernel dunque ottimizzate. Altrimenti QEMU dovrebbe emulare + l’intero processore su cui viene virtualizzato il sistema operativo. Infine + per gestire questi due componenti LibVirt è un software che salva le + configurazioni di QEMU in dei file XML e che permette alle VM di essere + tenute accese in background. \\ + + Passando una scheda video in PCI ad una macchina virtuale permette di + utilizzare la potenza grafica hardware che sarebbe altrimenti emulata (le + grafichce virtuali di QEMU non sono per niente ottimizzate, per tali scopi è + meglio utilizzare VirtualBox o VMWare Fusion). Quindi per poter vedere la + grafica della macchina virtuale si deve collegare un monitor ad una delle + entrate della scheda video. + + \section{Hardware Requirements} + \begin{itemize} + \item Intel processor with iGPU (or 2 GPUs) + \item Processor with VT-x and VT-d + \item NVIDIA or AMD graphics card (2 if with no iGPU) + \item Motherboard with VT-d support + \item Motherboard with UEFI based bootloader + \item Motherboard with IOMMU support (per configurazioni avanzate) + \end{itemize} + + \section{Software Requirements} + \begin{itemize} + \item Linux Kernel with iommu\_groups support ( kernel >= 3.9 ) + \end{itemize} + + \section{Hardware utilizzato} + Per questo questo test ho usato una configurazione hardware esagerata, anche + con un sistema decisamente meno costoso \`e possibile realizzare il + progetto. + \begin{itemize} + \item ASUS Z170-A motherboard + \item Intel Core i7 Skylake 6700 CPU with Intel Graphics 530 + \item MSI NVIDIA GTX1050Ti OC 4GB + \item 32GB DDR4 + \end{itemize} + + \section{BIOS Settings} + Per incominciare è necessario controllare che nel BIOS siano attivate le + tecnologie di virtualizzazione VT-x e VT-d. Inoltre se si vuole utilizzare + la iGPU in alcune motherboard (come nel mio caso) si deve modificare un + impostazione nel bios per non disattivarla qundo viene inserita una scheda + grafica secondaria. + + \section{Sistema Operativo} + Per avere un sistema stabile consiglio di utilizzare Debian Linux poiché + essendo utilizzato soprattuto nei servers il ciclo di testing e updates è + molto lento in modo da avere sempre un supporto legacy e un sistema stabile. + Purtroppo però attualmente (12.2016) Debian 8 Jessie ha ancora la kernel + 3.16 quindi si deve abilitare il supporto backport per poter installare una + versione aggiornata della kernel. \\ + + Prima di installare il sistema operativo è consigliato rimuovere la GPU che + si utilizzerà per il passthrough dallo slot PCI per evitare che Linux si + autoconfiguri per utilizzare i suoi driver grafici. Una volta installato il + sistema si devono installare i seguenti pacchetti: + \begin{framed}\raggedright + \% sudo apt-get install \textbackslash \\ + ~ qemu-kvm libvirt-bin virtinst bridge-utils virt-manager ssh-askpass ovmf + \end{framed} + + \section{Kernel Modules and GRUB} + Normalmente Debian viene con GRUB2 preinstallato come bootloader, se si + dovesse avere un altro bootloader si deve semplicemente passare gli stessi + parametri alla kernel quando si avvia. \\ + + Dalla kernel 3.9 Linux ha introdotto gli iommu\_groups che permettono di + mappare dispositivi di memoria reale ad indirizzi virtuali che possono + essere a loro volta passati alla VM. Per poter utilizzare questa + funzionalit\`a la si deve abilitare inoltre \`e necessario anche il supporto + degli ACS per poter suddividere i sottocomponenti del gruppo iommu (per + esempio le porte individuali di un estensione di USB via PCI). Per attivare + le funzionalit\`a si deve passare alla kernel i seguenti parametri: + \begin{framed}\raggedright \footnotesize + \# file: /etc/default/grub \\ + ... \\ + GRUB\_DEFAULT\_CMDLINE\_LINUX\_DEFAULT="intel\_iommu=on iommu=1 pcie\_acs\_override=downstream" \\ + ... + \end{framed} + Per aggiornale le impostazioni installate + \begin{framed}\raggedright + \% sudo update-grub + \end{framed} + + \section{GPU Settings} + Per evitare che Debian utilizzi la GPU all’avvio si deve modificare le + impostazioni dell’initramfs in maniera tale che il modulo della kernel non + venga avviato. Per sapere il nome del modulo della kernel caricato per la + GPU si può usare il seguente comando (nel mio caso la scheda è una NVIDIA): + \begin{framed}\raggedright \scriptsize + \% lspci -nnk | grep -i -A2 nvidia \\ + 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] [10de:1c82] (rev a1) \\ + ~~~~~~~~Subsystem: Micro-Star International Co., Ltd. [MSI] GP107 [GeForce GTX 1050 Ti] [1462:8c96] \\ + ~~~~~~~~Kernel driver in use: nouveau \\ + -- \\ + 02:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fb9] (rev a1) \\ + ~~~~~~~~Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8c96] \\ + ~~~~~~~~Kernel driver in use: snd\_hda\_intel + \end{framed} + Nel file di configurazione + \begin{framed}\raggedright + \# file: /etc/modprobe.d/blacklist.conf \\ + ... \\ + blacklist nouveau + \end{framed} + Infine per aggiornare la configurazione + \begin{framed}\raggedright + \% sudo update-initramfs -u + \end{framed} + + \section{Driver binding} + Per passare un dispositivo ad una VM si deve indicare alla kernel di + utilizzare il modulo `vfio-pci', perci\`o \`e necessario inizializzare + questi dispositivi all'avvio. Per questo possiamo usare questo script preso + da \href{https://www.reddit.com/r/pcmasterrace/comments/3lno0t/gpu_passthrough_revisited_an_updated_guide_on_how/?ref=share&ref_source=link}{qui} + salvandolo come `/usr/local/bin/vfio-bind'. + \begin{framed}\raggedright + \# file: /usr/local/bin/vfio-bind + \begin{verbatim} +#!/bin/bash + +modprobe vfio-pci + +for dev in "$@"; do + vendor=$(cat /sys/bus/pci/devices/$dev/vendor) + device=$(cat /sys/bus/pci/devices/$dev/device) + if [ -e /sys/bus/pci/devices/$dev/driver ]; then + echo $dev > /sys/bus/pci/devices/$dev/driver/unbind + fi + echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id +done \end{verbatim} + \end{framed} + Attivando la flag per poterlo eseguire: + \begin{framed}\raggedright + \% sudo chmod +x /usr/local/bin/vfio-bind + \end{framed} + Con questo script possiamo collegare il driver per la virtualizzazione a + qualsiasi dispositivo PCI nella seguente maniera: + \begin{framed}\raggedright + \% sudo vfio-bind + \end{framed} + Per trovare l'indizirro dei dispositivi che vogliamo passare utilizziamo di + nuovo il seguente comando: + \begin{framed}\raggedright \scriptsize + \% lspci -nnk | grep -i -A2 nvidia \\ + 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] [10de:1c82] (rev a1) \\ + ~~~~~~~~Subsystem: Micro-Star International Co., Ltd. [MSI] GP107 [GeForce GTX 1050 Ti] [1462:8c96] \\ + ~~~~~~~~Kernel driver in use: nouveau \\ + -- \\ + 02:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fb9] (rev a1) \\ + ~~~~~~~~Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8c96] \\ + ~~~~~~~~Kernel driver in use: snd\_hda\_intel + \end{framed} + Nel mio caso gli indirizzi da passare alla VM sono `0000:02:00.0' per il + video e `0000:02:00.1' per l'audio. Successivamente possiamo automatizzare + la configurazione in modo che il driver per la virtualizzazione venga + avviato subito all'avvio della macchina. Quindi lo facciamo con una unit di + SystemD. + \begin{framed}\raggedright + \# file: /etc/systemd/system/vfio-pci-bind.service + + \begin{verbatim} +[Unit] +Description=Bind PCI devices to the virtio driver + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/vfio-bind 0000:02:00.0 0000:02:00.1 + +[Install] +WantedBy=multi-user.target +Before=libvirt-guests.service \end{verbatim} + \end{framed} + + \section*{Appendici} + \subsection*{i915 Skylake iGPU support} \label{skylakeigpu} + Attualmente (12.2016) i driver grafici per i nuovi processori intel di + architettura skylake sono disponibili e relativamente stabili dalle kernel + 4.7+, quindi nella mia installazione di debian ho deciso di utilizzare il + backport della kernel 4.8.0. Per abilitare i backports si deve aggiungere + un nuovo repo nel file `/etc/apt/sources.list'. + \begin{framed}\raggedright + \# file: /etc/apt/sources.list \\ + deb http://ftp.debian.org/debian jessie-backports main non-free + \end{framed} + Successivamente si deve aggiornare la kernel e i driver grafici mesa + +\end{document} diff --git a/doc/sources/links.txt b/doc/sources/links.txt new file mode 100644 index 0000000..bd1e48f --- /dev/null +++ b/doc/sources/links.txt @@ -0,0 +1,33 @@ +i915 skylake driver fix (see thread) +http://forums.debian.net/viewtopic.php?f=6&t=125136&start=45 + +Debian tutorial +https://www.reddit.com/r/linuxmasterrace/comments/3qk9ee/my_notes_on_kvmqemu_vgapassthrough_on_debian/ + +Arch tutorial +https://www.reddit.com/r/pcmasterrace/comments/2z0evz/gpu_passthrough_or_how_to_play_any_game_at_near/ +https://www.reddit.com/r/pcmasterrace/comments/3lno0t/gpu_passthrough_revisited_an_updated_guide_on_how/ + +ACS +https://lkml.org/lkml/2013/6/18/582 +https://lime-technology.com/forum/index.php?topic=48010.0 +https://github.com/zman0900/linux-vfio-aur + +IOMMU +https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit +https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/sect-iommu-deep-dive.html + +Intel passthrough (?!?) +https://www.reddit.com/r/linux_gaming/comments/3ez95g/does_vtd_gpu_passthrough_work_for_intel/ + +Windows 7 installer stuff +https://lime-technology.com/forum/index.php?topic=41652.0 + +Windows NVIDIA drivers fix +https://lime-technology.com/forum/index.php?topic=38664.0 + +Windows Audio Fix + +http://forums.guru3d.com/showthread.php?t=378044 +http://vfio.blogspot.ch/2014/09/vfio-interrupts-and-how-to-coax-windows.html?m=1 +https://www.reddit.com/r/linux/comments/3z3g87/help_audio_problems_after_pci_passthrough_with_kvm/ diff --git a/doc/sources/pcie_passthrough.odt b/doc/sources/pcie_passthrough.odt new file mode 100644 index 0000000..4d1b241 Binary files /dev/null and b/doc/sources/pcie_passthrough.odt differ diff --git a/scripts/vfio-bind b/scripts/vfio-bind new file mode 100755 index 0000000..f87f9c2 --- /dev/null +++ b/scripts/vfio-bind @@ -0,0 +1,12 @@ +#!/bin/bash + +modprobe vfio-pci + +for dev in "$@"; do + vendor=$(cat /sys/bus/pci/devices/$dev/vendor) + device=$(cat /sys/bus/pci/devices/$dev/device) + if [ -e /sys/bus/pci/devices/$dev/driver ]; then + echo $dev > /sys/bus/pci/devices/$dev/driver/unbind + fi + echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id +done diff --git a/scripts/vfio-pcie-bind.service b/scripts/vfio-pcie-bind.service new file mode 100644 index 0000000..f27dda6 --- /dev/null +++ b/scripts/vfio-pcie-bind.service @@ -0,0 +1,10 @@ +[Unit] +Description=Bind PCIe devices to the virtio driver on boot + +[Serivce] +Type=oneshot +ExecStart=/usr/local/bin/vfio-bind 0000:02:00.0 0000:02:00.1 0000:04:00.00 + +[Install] +WantedBy=multi-user.target +Before=libvirt-guests.service -- cgit v1.2.1