summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNao Pross <naopross@thearcway.org>2016-12-31 01:22:49 +0100
committerNao Pross <naopross@thearcway.org>2016-12-31 01:22:49 +0100
commit0f1ff9fa2e101be45b55303e21e3ace65b0a48c2 (patch)
treebd513996463fee14c8e0264153ebcc3beb75f09e
downloadvfio-build-0f1ff9fa2e101be45b55303e21e3ace65b0a48c2.tar.gz
vfio-build-0f1ff9fa2e101be45b55303e21e3ace65b0a48c2.zip
first commit
-rw-r--r--doc/build/pcie_passthrough.aux30
-rw-r--r--doc/build/pcie_passthrough.log787
-rw-r--r--doc/build/pcie_passthrough.out11
-rw-r--r--doc/build/pcie_passthrough.pdfbin0 -> 33177 bytes
-rw-r--r--doc/makefile2
-rw-r--r--doc/pcie_passthrough.tex233
-rw-r--r--doc/sources/links.txt33
-rw-r--r--doc/sources/pcie_passthrough.odtbin0 -> 22178 bytes
-rwxr-xr-xscripts/vfio-bind12
-rw-r--r--scripts/vfio-pcie-bind.service10
10 files changed, 1118 insertions, 0 deletions
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<</S/D>>}
+\@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: <same size as paper>
+* 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
--- /dev/null
+++ b/doc/build/pcie_passthrough.pdf
Binary files 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 <indirizzi pci>
+ \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
--- /dev/null
+++ b/doc/sources/pcie_passthrough.odt
Binary files 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