commonplace
  • Commonplace
  • AWS
    • Control Tower
      • Building a Scalable and Secure Multi-VPC AWS Network Infrastructure
    • Talks / Articles
      • Encrypting Everything with AWS (SEP402)
      • The Tension Between Absolutes & Ambiguity in Security (SEC310)
      • Best practices for authoring AWS CloudFormation (DOP302-R1)
    • Useful Links
    • Notes
      • awscli
      • Cloudformation
        • Using Parameters
  • Infrastructure Security
    • Amazon Web Services
      • Tools
    • Tools
  • Security
    • Articles
      • If You're Not Doing Continuous Asset Management You're Not Doing Security | Daniel Miessler
      • Living Off the Land
        • Living Off The Land: Part 2
    • Cryptography
      • Shamir Secret Sharing Algorithm
    • Distros
      • REMnux
    • DoD
    • Email
    • GPG
    • Shodan
    • SSH
  • Resources
    • AWS Toolbox
    • CTF
      • AWS
    • Dev Setup
      • Windows Terminal
    • Documentation
      • MOCK Press Release Template
      • Design Document Template
    • Docker
      • Notes
      • Configure Docker w/TLS for WSL
    • Kubernetes
      • Raspberry Pi 4 (4GB) Cluster
    • Linux
      • zsh config
      • Users and Groups
    • Python
      • AWS
        • Lambda
      • Random Strings
    • Security News
    • Tools
    • Unity SSDLC
    • vscode
      • Cloudformation
    • Windows
      • WSL2
        • Scratchpad
        • Install a GUI (xfce)
        • Creating Additional WSL2 Instances
    • Youtubers
      • youtube-dl snippets
  • Lab
    • Building a Better Workstation
      • Notes / Guide
  • Misc
    • Notes
      • youtube-dl
  • Recipes
Powered by GitBook
On this page
  • Resources
  • Limitations

Was this helpful?

  1. Lab

Building a Better Workstation

Objective: To run Linux natively as my primary operating system, reserving Windows for only the tasks in which it excels (e.g. Gaming) while achieving near-native performance of the Windows VM.

Previousyoutube-dl snippetsNextNotes / Guide

Last updated 4 years ago

Was this helpful?

Resources

What

Where

Level1Tech Forums

IOMMU Explanation / Guide

#!/bin/bash

echo "Please be patient. This may take a couple seconds."



	#Initializing the list of all IOMMU groups
	GROUP=`find /sys/kernel/iommu_groups/ -type l | cut -d '/' -f 5,7 --output-delimiter='-'`


	for i in $GROUP; do


		#K holds the group number
		k=`echo $i | cut -d '-' -f 1`

		#L holds the address
		l=`echo $i | cut -d '-' -f 2`

		#J holds the part of the address that's pasted into lspci to get the name
		j=`echo $i | cut -d ':' -f 2,3,4`
		
		#M holds the kernel driver in use
		m=`lspci -k -s $j | grep "Kernel driver in use"`
		
		echo -n  "Group: "

		#This if-statement is here for proper alignment. If group is less than 10, a space is added.
		if [ $k -lt 10 ]
			then
				echo -n " $k  "
			else
				echo -n " $k "
		fi

		#Outputting the address
		echo -n " $l "

		#Outputting the name and id
		echo -n "`lspci -nn | grep $j | cut -d ' ' -f 2-`"
		
		#Only displays "   Driver:" if m is not an empty string
		if ! [ -z "$m" ]
			then
				echo -n "   Driver:"
		fi
		
		#Outputting the kernel driver in use
		echo "$m" | cut -d ':' -f 2


	#The output is sorted numerically based on the second space-separated field.
	done | sort -nk2

Limitations

  • KVM switching for inputs

    • LookingGlass has quirks

  • Current hardware has poor vt-d support

https://github.com/pavolelsig/IOMMU-viewer
https://forum.level1techs.com/c/hardware/motherboards
https://www.youtube.com/channel/UCToFb-mcTsoyyf3muma9r9w