148 lines
10 KiB
HTML
148 lines
10 KiB
HTML
<!doctype html>
|
|
<html lang="en-us">
|
|
<head>
|
|
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script // Phoenix's Personal Blog</title>
|
|
<link rel="shortcut icon" href="/favicon.ico" />
|
|
<meta charset="utf-8" />
|
|
<meta name="generator" content="Hugo 0.83.0" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta name="author" content="Phoenix" />
|
|
<meta name="description" content="" />
|
|
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
|
|
|
|
|
<meta name="twitter:card" content="summary"/>
|
|
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script"/>
|
|
<meta name="twitter:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www."/>
|
|
|
|
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script" />
|
|
<meta property="og:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www." />
|
|
<meta property="og:type" content="article" />
|
|
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/macvlan/" /><meta property="article:section" content="posts" />
|
|
<meta property="article:published_time" content="2020-05-18T00:00:00+00:00" />
|
|
<meta property="article:modified_time" content="2020-05-18T00:00:00+00:00" />
|
|
|
|
|
|
|
|
</head>
|
|
<body>
|
|
<header class="app-header">
|
|
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
|
<h2>Phoenix's Personal Blog</h2>
|
|
<nav class="app-header-menu">
|
|
<a class="app-header-menu-item" href="/">Home</a>
|
|
|
|
|
|
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
|
</nav>
|
|
<p>Land of random projects i do.</p>
|
|
<div class="app-header-social">
|
|
|
|
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
|
|
<title>Github</title>
|
|
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
|
</svg>
|
|
</a>
|
|
|
|
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
|
|
<title>Twitter</title>
|
|
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
|
</svg>
|
|
</a>
|
|
|
|
</div>
|
|
</header>
|
|
<main class="app-container">
|
|
|
|
<article class="post">
|
|
<header class="post-header">
|
|
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough - macvlan Script</h1>
|
|
<div class="post-meta">
|
|
<div>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
|
|
<title>calendar</title>
|
|
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
|
</svg>
|
|
May 18, 2020
|
|
</div>
|
|
|
|
</div>
|
|
</header>
|
|
<div class="post-content">
|
|
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash"><span style="color:#ff79c6">#!/bin/sh
|
|
</span><span style="color:#ff79c6"></span><span style="color:#6272a4"># Last Edited: 2020-05-18</span>
|
|
<span style="color:#6272a4"># From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/</span>
|
|
|
|
<span style="color:#6272a4"># Let host and guests talk to each other over macvlan.</span>
|
|
<span style="color:#6272a4"># Configures a macvlan interface on the hypervisor.</span>
|
|
<span style="color:#6272a4"># Run this on the hypervisor (e.g. in /etc/rc.local)</span>
|
|
<span style="color:#6272a4"># Made for IPv4; need modification for IPv6.</span>
|
|
<span style="color:#6272a4"># Meant for a simple network setup with only eth0,</span>
|
|
<span style="color:#6272a4"># and a static (manual) ip config.</span>
|
|
<span style="color:#6272a4"># Evert Mouw, 2013. Slightly modified in 2020.</span>
|
|
|
|
<span style="color:#8be9fd;font-style:italic">HWLINK</span><span style="color:#ff79c6">=</span>enp34s0
|
|
<span style="color:#8be9fd;font-style:italic">MACVLN</span><span style="color:#ff79c6">=</span>macvlan0
|
|
<span style="color:#8be9fd;font-style:italic">TESTHOST</span><span style="color:#ff79c6">=</span>www.google.com
|
|
|
|
<span style="color:#6272a4"># ------------</span>
|
|
<span style="color:#6272a4"># test if interface already exists</span>
|
|
<span style="color:#6272a4"># ------------</span>
|
|
<span style="color:#ff79c6">if</span> ip link show | grep <span style="color:#f1fa8c">"</span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c">@</span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">"</span> > /dev/null
|
|
<span style="color:#ff79c6">then</span>
|
|
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">"Link </span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c"> already exists on </span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">."</span>
|
|
<span style="color:#8be9fd;font-style:italic">exit</span>
|
|
<span style="color:#ff79c6">fi</span>
|
|
|
|
<span style="color:#6272a4"># ------------</span>
|
|
<span style="color:#6272a4"># wait for network availability</span>
|
|
<span style="color:#6272a4"># ------------</span>
|
|
|
|
<span style="color:#ff79c6">while</span> ! ping -q -c <span style="color:#bd93f9">1</span> <span style="color:#8be9fd;font-style:italic">$TESTHOST</span> > /dev/null
|
|
<span style="color:#ff79c6">do</span>
|
|
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">"</span><span style="color:#8be9fd;font-style:italic">$0</span><span style="color:#f1fa8c">: Cannot ping </span><span style="color:#8be9fd;font-style:italic">$TESTHOST</span><span style="color:#f1fa8c">, waiting another 5 seconds."</span>
|
|
sleep <span style="color:#bd93f9">5</span>
|
|
<span style="color:#ff79c6">done</span>
|
|
|
|
<span style="color:#6272a4"># ------------</span>
|
|
<span style="color:#6272a4"># get network config</span>
|
|
<span style="color:#6272a4"># ------------</span>
|
|
|
|
<span style="color:#8be9fd;font-style:italic">IP</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip address show dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep <span style="color:#f1fa8c">"inet "</span> | awk <span style="color:#f1fa8c">'{print $2}'</span><span style="color:#ff79c6">)</span>
|
|
<span style="color:#8be9fd;font-style:italic">NETWORK</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep -v default | awk <span style="color:#f1fa8c">'{print $1}'</span><span style="color:#ff79c6">)</span>
|
|
<span style="color:#8be9fd;font-style:italic">GATEWAY</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep default | awk <span style="color:#f1fa8c">'{print $3}'</span><span style="color:#ff79c6">)</span>
|
|
|
|
<span style="color:#6272a4"># ------------</span>
|
|
<span style="color:#6272a4"># setting up $MACVLN interface</span>
|
|
<span style="color:#6272a4"># ------------</span>
|
|
|
|
ip link add <span style="color:#8be9fd;font-style:italic">$MACVLN</span> link <span style="color:#8be9fd;font-style:italic">$HWLINK</span> <span style="color:#8be9fd;font-style:italic">type</span> macvlan mode bridge
|
|
ip address add <span style="color:#8be9fd;font-style:italic">$IP</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
|
|
ip link <span style="color:#8be9fd;font-style:italic">set</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> up
|
|
|
|
<span style="color:#6272a4"># ------------</span>
|
|
<span style="color:#6272a4"># routing table</span>
|
|
<span style="color:#6272a4"># ------------</span>
|
|
|
|
<span style="color:#6272a4"># empty routes</span>
|
|
ip route flush dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span>
|
|
ip route flush dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
|
|
|
|
<span style="color:#6272a4"># add routes</span>
|
|
ip route add <span style="color:#8be9fd;font-style:italic">$NETWORK</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> metric <span style="color:#bd93f9">0</span>
|
|
|
|
<span style="color:#6272a4"># add the default gateway</span>
|
|
ip route add default via <span style="color:#8be9fd;font-style:italic">$GATEWAY</span></code></pre></div>
|
|
|
|
</div>
|
|
<div class="post-footer">
|
|
|
|
</div>
|
|
</article>
|
|
|
|
</main>
|
|
</body>
|
|
</html>
|