Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Windows7ge

Member
  • Content Count

    5,104
  • Joined

  • Last visited


Reputation Activity

  1. Like
    Windows7ge got a reaction from Origami Cactus for a status update, I'm currently working on getting my thoughts together for the very low power, very hi   
    I'm currently working on getting my thoughts together for the very low power, very high capacity offsite storage solution and something I wanted to talk about is how important of a feature Staggered spin-up can be as I don't believe I'll have it so it's possible I'll have to change my plans.
     
    As I've disassembled a small system I had idling doing nothing I've scavenged it's Corsair SF450. It's an 80 Plus Gold SFX form factor PSU. Tiny little thing. I can make a SFX to ATX bracket on the 3D printer so this would save me the money of buying a PSU for this server. However, that really depends. And this is where staggered spin-up is a desirable feature.
     
    The motherboard I plan to use is the ASRock Rack C2750D4I it's Mini-ITX and uses three separate SATA controllers:
    I plan to occupy 9 or all 12 of those ports.
     
    The drives I'm currently planning to go with are the Seagate Ironwolf NAS 10TB 7200RPM drives. Looking up their data sheet:

    Each drive will pull about 1.97A @ 12V & 0.58A @ 5V on initial spin-up (on the DC side of the PSU - worse on the AC side). This means for a total of 12 drives for all of them to spin-up at once I need to account for a minimal potential current draw of almost 24A @ 12V & 7A at 5V. My little SF450 can do 37.5A & 20A respectively so I should be OK but just barely as I have to account for all the other hardware in the system.
     
    I plan to control the RAID with ZFS and I only plan to SSH in and update this backup on a 24hr basis so using S.M.A.R.T. I'll have the drives spin down when not in use as they won't be for most hours of the day. Hopefully S.M.A.R.T. is smart enough to stagger the spin-up. If not I'll be pulling all those Amps every time the pool needs to spin-up.
     
    And that's only 12 drives. Imagine 30/45/60+ (~60A/~90A/~120A) staggered spin-up gets to be an important feature as you scale up.
  2. Like
    Windows7ge got a reaction from dual290x for a status update, So I may have finally figured out what was has been causing my Windows WHEA_UNCORRECT   
    So I may have finally figured out what was has been causing my Windows WHEA_UNCORRECTABLE_ERRORs and Linux to stop recognizing my NIC and Kernel Panicking.
     
    According to the ASUS PRIME X399-A my 5V rail is 4.5V. Now this would be less concerning if this was while under load but this was while idling in the BIOS. For a lot of electronics they market that +/- 10% is within operating spec but if you're already @10% and the system isn't being stressed I can see that going far enough to cause the system issues. I validated that this was the cause by plugging in my 10-ish year old Kingwin Lazer 1000W and running the system for a week or two. All issues disappeared and the BIOS reported the 5V rail as ~5V.
     
    So the problem PSU is a original Corsair AX1200i

    Quite frankly I'm disappointing. This is a pre-mature death. I bought this back in 2013 so it's only currently about 6.5 years old and I've never pulled over 750W-ish from it ever so it's had an easy life.
     
    Now I've always had a habit of dismantling things because I just have a very curious nature. Also for dusting things out. To my surprise though and very unexpectedly I've never actually voided the warranty sticker on this thing:

    So, I'm going to see what happens if I try to cash in on the warranty. For the AXi series specifically Corsair currently offers a 10 year warranty of which I'm only in ~6.5 years. Was it 10 years 6.5 years ago? No idea but I've already sent them a message though their support website so we're going to find out.
     
    I do hope all they ask for is the PSU itself if it's approved and not all the cables since I may have voided the warranty on those if that's possible. To buy the updated unit today would cost $340 + tax & shipping (for me would = >$400) so I'm really hoping they let me replace this under warranty.
     
    One of the reasons I switched to Linux in the first place was just to try and get away from WHEA_UNCORRECTABLE_ERRORs but seeing Linux have errors of it's own kind of cancelled it out. Even if replacing the PSU does fix my problems with Windows I don't think I'll be going back. Windows in a VM with GPU pass-though and some CPU/RAM optimization performs almost as well and I'm just liking working with something different.
     
    Though Ubuntu 19.04 is having some buggy issues of it's own I need to research and work out.
  3. Like
    Windows7ge got a reaction from dual290x for a status update, So I may have finally figured out what was has been causing my Windows WHEA_UNCORRECT   
    So I may have finally figured out what was has been causing my Windows WHEA_UNCORRECTABLE_ERRORs and Linux to stop recognizing my NIC and Kernel Panicking.
     
    According to the ASUS PRIME X399-A my 5V rail is 4.5V. Now this would be less concerning if this was while under load but this was while idling in the BIOS. For a lot of electronics they market that +/- 10% is within operating spec but if you're already @10% and the system isn't being stressed I can see that going far enough to cause the system issues. I validated that this was the cause by plugging in my 10-ish year old Kingwin Lazer 1000W and running the system for a week or two. All issues disappeared and the BIOS reported the 5V rail as ~5V.
     
    So the problem PSU is a original Corsair AX1200i

    Quite frankly I'm disappointing. This is a pre-mature death. I bought this back in 2013 so it's only currently about 6.5 years old and I've never pulled over 750W-ish from it ever so it's had an easy life.
     
    Now I've always had a habit of dismantling things because I just have a very curious nature. Also for dusting things out. To my surprise though and very unexpectedly I've never actually voided the warranty sticker on this thing:

    So, I'm going to see what happens if I try to cash in on the warranty. For the AXi series specifically Corsair currently offers a 10 year warranty of which I'm only in ~6.5 years. Was it 10 years 6.5 years ago? No idea but I've already sent them a message though their support website so we're going to find out.
     
    I do hope all they ask for is the PSU itself if it's approved and not all the cables since I may have voided the warranty on those if that's possible. To buy the updated unit today would cost $340 + tax & shipping (for me would = >$400) so I'm really hoping they let me replace this under warranty.
     
    One of the reasons I switched to Linux in the first place was just to try and get away from WHEA_UNCORRECTABLE_ERRORs but seeing Linux have errors of it's own kind of cancelled it out. Even if replacing the PSU does fix my problems with Windows I don't think I'll be going back. Windows in a VM with GPU pass-though and some CPU/RAM optimization performs almost as well and I'm just liking working with something different.
     
    Though Ubuntu 19.04 is having some buggy issues of it's own I need to research and work out.
  4. Funny
    Windows7ge got a reaction from wkdpaul for a status update, Alright, note to self. Do NOT configure Default Gateways on internal networks that do   
    Alright, note to self. Do NOT configure Default Gateways on internal networks that do not contain an external route while using Linux. Windows finds it's way around it but Linux goes "Oh, so you want me to use THAT ONE now for all Internet bound traffic even though I already have a functioning link to a router.". Like, no I'm just pointing you to the file server I didn't say shit about taking a different route to the Internet. Then when it finds it doesn't work it just quits like "Yeah this isn't working. I know that other network with a function connection exists but just yea, no. DNS_PROBE_FINISHED_NO_INTERNET"
  5. Informative
    Windows7ge got a reaction from TopHatProductions115 for a status update, Were you able to read my response message to your RAID1/10 question yesterday?   
    Were you able to read my response message to your RAID1/10 question yesterday?
  6. Agree
    Windows7ge got a reaction from Jtalk4456 for a status update, Has anybody ever heard of a power outage killing a port on a router/switch? My power   
    Has anybody ever heard of a power outage killing a port on a router/switch?
     
    My power just went out for about 30~45mins and when it came back on I went back to my desktop to see I had no Internet.
     
    With some pretty quick troubleshooting I went though:
    Can I ping the Default Gateway? No. Is it a software issue on the computer? Connected the Ethernet cable to another computer. Still no Internet. What about Wi-Fi? Wi-Fi is fine. Internet's active. So it's only a wired issue. Are any IP's being handed out? Yes. Class B addresses on a /16 subnet...the router's DHCP pool is suppose to hand out Class C w/ /24. Suspicious. Is the link between the Router and the Switch good? No, no link-up or activity LED indicators. Test the cable. T-568B all 8 wires test good, no shorts. Check the router, try another port. Everything came back up. Link-up & activity. Try the previous port again. Dead, no activity. I know power surges can hurt unprotected equipment but an AC power failure I've not heard of killing Ethernet ports.
  7. Like
    Windows7ge got a reaction from Den-Fi for a status update, So it came to my attention despite by best efforts that for what I shoved in this box   
    So it came to my attention despite by best efforts that for what I shoved in this box the airflow is simply inefficient.

    It's the iStarUSA D-410 and it only has 2 places to mount fans. One on the left & right of the chassis. If I built something normal inside it it'd be fine but I had to go over the top and it's just not getting enough air.
     
    Right now these are the temps:
    Server Idle - Factory Lid: Server 100% Load - Factory Lid CPU1: 41°C CPU1: 69°C CPU1 VRM: 44°C CPU1 VRM: 74°C CPU2: 42°C CPU2: 73°C CPU2 VRM: 45°C CPU2 VRM: 76°C System: 35°C System: 50°C Intel X540: 60°C Intel X540: 75°C So I just finished constructing this contraption:

    The original plan included 3D printing the fan grills but I remembered that I had these Silverstone filters laying around so that saved me the trouble.
     
    So after putting this in place of the original lid:

    Idle temps weren't impacted much but load temps improved significantly across the board.
    Server Idle - Custom Lid: Server 100% Load - Custom Lid: CPU1: 39°C CPU1: 63°C CPU1 VRM: 42°C CPU1 VRM: 70°C CPU2: 40°C CPU2: 67°C CPU2 VRM: 43°C CPU2 VRM: 70°C System: 33°C System: 46°C Intel X540: 58°C Intel X540: 68°C Whenever the day comes that I mount this in a rack I'll have to leave at least 1U between it and whatever server will sit above it. Or fill it with something incredibly short like a rack mount power strip or a router/switch, etc.
     
    So that's one more problem solved. 😀
  8. Like
    Windows7ge got a reaction from Den-Fi for a status update, So it came to my attention despite by best efforts that for what I shoved in this box   
    So it came to my attention despite by best efforts that for what I shoved in this box the airflow is simply inefficient.

    It's the iStarUSA D-410 and it only has 2 places to mount fans. One on the left & right of the chassis. If I built something normal inside it it'd be fine but I had to go over the top and it's just not getting enough air.
     
    Right now these are the temps:
    Server Idle - Factory Lid: Server 100% Load - Factory Lid CPU1: 41°C CPU1: 69°C CPU1 VRM: 44°C CPU1 VRM: 74°C CPU2: 42°C CPU2: 73°C CPU2 VRM: 45°C CPU2 VRM: 76°C System: 35°C System: 50°C Intel X540: 60°C Intel X540: 75°C So I just finished constructing this contraption:

    The original plan included 3D printing the fan grills but I remembered that I had these Silverstone filters laying around so that saved me the trouble.
     
    So after putting this in place of the original lid:

    Idle temps weren't impacted much but load temps improved significantly across the board.
    Server Idle - Custom Lid: Server 100% Load - Custom Lid: CPU1: 39°C CPU1: 63°C CPU1 VRM: 42°C CPU1 VRM: 70°C CPU2: 40°C CPU2: 67°C CPU2 VRM: 43°C CPU2 VRM: 70°C System: 33°C System: 46°C Intel X540: 58°C Intel X540: 68°C Whenever the day comes that I mount this in a rack I'll have to leave at least 1U between it and whatever server will sit above it. Or fill it with something incredibly short like a rack mount power strip or a router/switch, etc.
     
    So that's one more problem solved. 😀
  9. Like
    Windows7ge got a reaction from Den-Fi for a status update, So it came to my attention despite by best efforts that for what I shoved in this box   
    So it came to my attention despite by best efforts that for what I shoved in this box the airflow is simply inefficient.

    It's the iStarUSA D-410 and it only has 2 places to mount fans. One on the left & right of the chassis. If I built something normal inside it it'd be fine but I had to go over the top and it's just not getting enough air.
     
    Right now these are the temps:
    Server Idle - Factory Lid: Server 100% Load - Factory Lid CPU1: 41°C CPU1: 69°C CPU1 VRM: 44°C CPU1 VRM: 74°C CPU2: 42°C CPU2: 73°C CPU2 VRM: 45°C CPU2 VRM: 76°C System: 35°C System: 50°C Intel X540: 60°C Intel X540: 75°C So I just finished constructing this contraption:

    The original plan included 3D printing the fan grills but I remembered that I had these Silverstone filters laying around so that saved me the trouble.
     
    So after putting this in place of the original lid:

    Idle temps weren't impacted much but load temps improved significantly across the board.
    Server Idle - Custom Lid: Server 100% Load - Custom Lid: CPU1: 39°C CPU1: 63°C CPU1 VRM: 42°C CPU1 VRM: 70°C CPU2: 40°C CPU2: 67°C CPU2 VRM: 43°C CPU2 VRM: 70°C System: 33°C System: 46°C Intel X540: 58°C Intel X540: 68°C Whenever the day comes that I mount this in a rack I'll have to leave at least 1U between it and whatever server will sit above it. Or fill it with something incredibly short like a rack mount power strip or a router/switch, etc.
     
    So that's one more problem solved. 😀
  10. Funny
    Windows7ge got a reaction from wkdpaul for a status update, Alright, note to self. Do NOT configure Default Gateways on internal networks that do   
    Alright, note to self. Do NOT configure Default Gateways on internal networks that do not contain an external route while using Linux. Windows finds it's way around it but Linux goes "Oh, so you want me to use THAT ONE now for all Internet bound traffic even though I already have a functioning link to a router.". Like, no I'm just pointing you to the file server I didn't say shit about taking a different route to the Internet. Then when it finds it doesn't work it just quits like "Yeah this isn't working. I know that other network with a function connection exists but just yea, no. DNS_PROBE_FINISHED_NO_INTERNET"
  11. Like
    Windows7ge got a reaction from 2FA for a status update, Alright. This was a right pain in the ass and I knew it was going to take forever to   
    Alright. This was a right pain in the ass and I knew it was going to take forever to get working right (~2 weeks...). I now have a Windows 10 VM running on QEMU & virt-manager with GPU passthough working on Ubuntu 19.04.
     
    The physical system:

     
    THREADRIPPER 1950X 16C/32T
    64GB DDR4 2400MHz
    2x R9 290X
    2x SFP+ 10Gbit NIC.
     
    In addition to QEMU & virt-manager I got Looking Glass working which lets me view what the passed-though GPU is displaying at near 1:1 performance without plugging a display into the GPU. (I'll explain why the GPU has an HDMI in it in a bit.)
     
    So this is what I see between my two monitors.

    Windows VM hardware:
    CPU: 8C/16T Threadripper (shows up as an EYPC - Something about the VM enabling CPU features and Threadripper doesn't exist so it defaults to EPYC since it's kind of based on it)
    32GB of RAM
    10Gbit NIC bridge (virtio)
    R9 290X
     
    The ports on the back of my desktop work differently now too.

     
    The left stack of four USB3.0 ports belong to windows. They are connected to a AMD Family 17h Model 00h-0fh USB3.0 Host Controller which exists in it's own IOMMU group. The two beneath the Ethernet port and everything right belong to Linux on other controllers in other groups. In the first photo the bottom GPU belongs to Windows. The top GPU belongs to Linux. The BCM57810S has had one 10G port connected to a bridge and passed though to Windows. This means both clients can run full 10Gig with no bottleneck.
     
    This is an accurate representation of how my experience went following the setup steps:
    Disabling the GPU driver (incorporating vfio-pci in place) Are you using two identical GPU's? Oh boy that's an extra step. Enable IOMMU support in the system kernel. (amd_iommu=on) Update grup Make sure you use the right prefixes or else your GPU won't pass-though correctly. All you gotta do is check /sys/bus/pci/devices. OK, sounds easy enooly f***ing s***:  lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.0 -> ../../../devices/pci0000:00/0000:00:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.2 -> ../../../devices/pci0000:00/0000:00:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.0 -> ../../../devices/pci0000:00/0000:00:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.1 -> ../../../devices/pci0000:00/0000:00:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.3 -> ../../../devices/pci0000:00/0000:00:01.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:02.0 -> ../../../devices/pci0000:00/0000:00:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.0 -> ../../../devices/pci0000:00/0000:00:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.1 -> ../../../devices/pci0000:00/0000:00:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:04.0 -> ../../../devices/pci0000:00/0000:00:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.0 -> ../../../devices/pci0000:00/0000:00:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.1 -> ../../../devices/pci0000:00/0000:00:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.0 -> ../../../devices/pci0000:00/0000:00:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.1 -> ../../../devices/pci0000:00/0000:00:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.0 -> ../../../devices/pci0000:00/0000:00:14.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.3 -> ../../../devices/pci0000:00/0000:00:14.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.0 -> ../../../devices/pci0000:00/0000:00:18.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.1 -> ../../../devices/pci0000:00/0000:00:18.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.2 -> ../../../devices/pci0000:00/0000:00:18.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.3 -> ../../../devices/pci0000:00/0000:00:18.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.4 -> ../../../devices/pci0000:00/0000:00:18.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.5 -> ../../../devices/pci0000:00/0000:00:18.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.6 -> ../../../devices/pci0000:00/0000:00:18.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.7 -> ../../../devices/pci0000:00/0000:00:18.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.0 -> ../../../devices/pci0000:00/0000:00:19.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.1 -> ../../../devices/pci0000:00/0000:00:19.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.2 -> ../../../devices/pci0000:00/0000:00:19.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.3 -> ../../../devices/pci0000:00/0000:00:19.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.4 -> ../../../devices/pci0000:00/0000:00:19.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.5 -> ../../../devices/pci0000:00/0000:00:19.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.6 -> ../../../devices/pci0000:00/0000:00:19.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.7 -> ../../../devices/pci0000:00/0000:00:19.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.1 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.2 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:01.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:02.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:03.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:04.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:09.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:05:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0/0000:05:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:08:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0/0000:08:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.0 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.1 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.0 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.1 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.0 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.2 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.3 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.0 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.2 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.3 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.0 -> ../../../devices/pci0000:40/0000:40:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.2 -> ../../../devices/pci0000:40/0000:40:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.0 -> ../../../devices/pci0000:40/0000:40:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.1 -> ../../../devices/pci0000:40/0000:40:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:02.0 -> ../../../devices/pci0000:40/0000:40:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.0 -> ../../../devices/pci0000:40/0000:40:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.1 -> ../../../devices/pci0000:40/0000:40:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:04.0 -> ../../../devices/pci0000:40/0000:40:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.0 -> ../../../devices/pci0000:40/0000:40:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.1 -> ../../../devices/pci0000:40/0000:40:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.0 -> ../../../devices/pci0000:40/0000:40:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.1 -> ../../../devices/pci0000:40/0000:40:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:41:00.0 -> ../../../devices/pci0000:40/0000:40:01.1/0000:41:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.0 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.1 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.0 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.2 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.3 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.0 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.2 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.2 *autistic screeching*
    Did you remember to over-ride that GPU driver?...no...Return to Step 1.
    DO YOU EVEN HUGEPAGES!?!
    Let's make a RAMDisk so no matter what you're doing your system is taking up >32GB of RAM at all times. Weather the VM is running or not...
    Check your system kernel to make sure all of our driver over-rides are in place at boot. Are they? No? Have fun figuring out how to add them manually. 😀
    Alright I'll let you use the GUI for 5 mins.
    MORE CLI!!!!!!!!
    I should mention at any point in this guide if you f*** up a system file you may render your desktop unusable and will be forced to re-install Linux. I told you that before we started right?
    You should pin your vcpus to your real CPUs in association to the NUMA Node closest to the GPU you're passing though. How do I do that? Hmmmn...good question. Google it!
    You know that thing you did in Step 3? Well, you f***ed it up. FIX IT!
    I don't even know what to have you do now. You're suppose to be HERE but you're over THERE. When you do this THAT'S suppose to happen but THIS happens instead. You're on your own. Google is your friend
    Did Google help? No? START COMPLETELY OVER! RE-INSTALL LINUX! Time to setup Looking Glass yay!...I'm not going to tell you how to do that either get Googling. Does it start? Yes. Does it say your GPU is there? Yes. Does it crash? Only a little. YOU DID IT!!! So after all of that I have a near native performance Windows install in a QEMU VM with 1/2 the systems resources accross the board. What else is there to do with this much CPU/RAM? The reason the passed-though GPU has an HDMI cable is because (and I think this is stupid) on the AMD GPU side every GPU AMD made after the Radeon HD 7XXX series (beginning of R7/9) AMD changed how their GPUs respond when no monitor is connected. The older GPU's would keep outputting to the display even when one wasn't there. Now, post 7XXX series the GPU effectively shuts down some major functions unless a display is detected. This breaks Looking Glass. It relies on a stream being output to a "monitor" so one must be plugged in.
     
    Now the dummy plugs you use to see AMD GPU crypto miners using should do the trick just as well but I don't know how to make one so I just sacrificed a port on my monitor. If Looking Glass ever stops working while I'm in the middle of something it'll help as an emergency backup.
     
    Now even right now this isn't working entirely as it was meant to. Looking Glass is suppose to act as a KVM accepting mouse & keyboard input. Keyboard worked fine for me. Mouse didn't work for jacks***. This is why I passed though one of my USB3.0 controllers. I just so happen to have a 2 system KVM switch. All I have to do is press a button and it will switch me in-between the Linux & Windows systems. Not 100% what I wanted but it works well enough. This enables me to overlap Linux windows on top of Looking Glass in the event I need more Linux desktop at a given time. Makes it so I don't have to dedicate a display to Windows.
     
    Fun project, like someone mentioned there were a lot of online resources. The most detailed guide I followed was designed for Pop OS 19.04 (debian) but it wasn't hard to adapt to Ubuntu 19.04 (debain). I'm going to use this for some applications that I just cant get away from. Wine is not great for most of the .exe Windows applications I want to run and I have yet to find Linux alternatives for all of them. This will let me have the best of both worlds.
     
    @Twilight I did it!
  12. Like
    Windows7ge got a reaction from 2FA for a status update, Alright. This was a right pain in the ass and I knew it was going to take forever to   
    Alright. This was a right pain in the ass and I knew it was going to take forever to get working right (~2 weeks...). I now have a Windows 10 VM running on QEMU & virt-manager with GPU passthough working on Ubuntu 19.04.
     
    The physical system:

     
    THREADRIPPER 1950X 16C/32T
    64GB DDR4 2400MHz
    2x R9 290X
    2x SFP+ 10Gbit NIC.
     
    In addition to QEMU & virt-manager I got Looking Glass working which lets me view what the passed-though GPU is displaying at near 1:1 performance without plugging a display into the GPU. (I'll explain why the GPU has an HDMI in it in a bit.)
     
    So this is what I see between my two monitors.

    Windows VM hardware:
    CPU: 8C/16T Threadripper (shows up as an EYPC - Something about the VM enabling CPU features and Threadripper doesn't exist so it defaults to EPYC since it's kind of based on it)
    32GB of RAM
    10Gbit NIC bridge (virtio)
    R9 290X
     
    The ports on the back of my desktop work differently now too.

     
    The left stack of four USB3.0 ports belong to windows. They are connected to a AMD Family 17h Model 00h-0fh USB3.0 Host Controller which exists in it's own IOMMU group. The two beneath the Ethernet port and everything right belong to Linux on other controllers in other groups. In the first photo the bottom GPU belongs to Windows. The top GPU belongs to Linux. The BCM57810S has had one 10G port connected to a bridge and passed though to Windows. This means both clients can run full 10Gig with no bottleneck.
     
    This is an accurate representation of how my experience went following the setup steps:
    Disabling the GPU driver (incorporating vfio-pci in place) Are you using two identical GPU's? Oh boy that's an extra step. Enable IOMMU support in the system kernel. (amd_iommu=on) Update grup Make sure you use the right prefixes or else your GPU won't pass-though correctly. All you gotta do is check /sys/bus/pci/devices. OK, sounds easy enooly f***ing s***:  lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.0 -> ../../../devices/pci0000:00/0000:00:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.2 -> ../../../devices/pci0000:00/0000:00:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.0 -> ../../../devices/pci0000:00/0000:00:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.1 -> ../../../devices/pci0000:00/0000:00:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.3 -> ../../../devices/pci0000:00/0000:00:01.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:02.0 -> ../../../devices/pci0000:00/0000:00:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.0 -> ../../../devices/pci0000:00/0000:00:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.1 -> ../../../devices/pci0000:00/0000:00:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:04.0 -> ../../../devices/pci0000:00/0000:00:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.0 -> ../../../devices/pci0000:00/0000:00:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.1 -> ../../../devices/pci0000:00/0000:00:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.0 -> ../../../devices/pci0000:00/0000:00:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.1 -> ../../../devices/pci0000:00/0000:00:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.0 -> ../../../devices/pci0000:00/0000:00:14.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.3 -> ../../../devices/pci0000:00/0000:00:14.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.0 -> ../../../devices/pci0000:00/0000:00:18.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.1 -> ../../../devices/pci0000:00/0000:00:18.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.2 -> ../../../devices/pci0000:00/0000:00:18.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.3 -> ../../../devices/pci0000:00/0000:00:18.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.4 -> ../../../devices/pci0000:00/0000:00:18.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.5 -> ../../../devices/pci0000:00/0000:00:18.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.6 -> ../../../devices/pci0000:00/0000:00:18.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.7 -> ../../../devices/pci0000:00/0000:00:18.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.0 -> ../../../devices/pci0000:00/0000:00:19.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.1 -> ../../../devices/pci0000:00/0000:00:19.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.2 -> ../../../devices/pci0000:00/0000:00:19.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.3 -> ../../../devices/pci0000:00/0000:00:19.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.4 -> ../../../devices/pci0000:00/0000:00:19.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.5 -> ../../../devices/pci0000:00/0000:00:19.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.6 -> ../../../devices/pci0000:00/0000:00:19.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.7 -> ../../../devices/pci0000:00/0000:00:19.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.1 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.2 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:01.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:02.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:03.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:04.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:09.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:05:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0/0000:05:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:08:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0/0000:08:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.0 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.1 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.0 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.1 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.0 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.2 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.3 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.0 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.2 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.3 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.0 -> ../../../devices/pci0000:40/0000:40:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.2 -> ../../../devices/pci0000:40/0000:40:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.0 -> ../../../devices/pci0000:40/0000:40:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.1 -> ../../../devices/pci0000:40/0000:40:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:02.0 -> ../../../devices/pci0000:40/0000:40:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.0 -> ../../../devices/pci0000:40/0000:40:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.1 -> ../../../devices/pci0000:40/0000:40:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:04.0 -> ../../../devices/pci0000:40/0000:40:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.0 -> ../../../devices/pci0000:40/0000:40:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.1 -> ../../../devices/pci0000:40/0000:40:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.0 -> ../../../devices/pci0000:40/0000:40:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.1 -> ../../../devices/pci0000:40/0000:40:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:41:00.0 -> ../../../devices/pci0000:40/0000:40:01.1/0000:41:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.0 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.1 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.0 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.2 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.3 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.0 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.2 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.2 *autistic screeching*
    Did you remember to over-ride that GPU driver?...no...Return to Step 1.
    DO YOU EVEN HUGEPAGES!?!
    Let's make a RAMDisk so no matter what you're doing your system is taking up >32GB of RAM at all times. Weather the VM is running or not...
    Check your system kernel to make sure all of our driver over-rides are in place at boot. Are they? No? Have fun figuring out how to add them manually. 😀
    Alright I'll let you use the GUI for 5 mins.
    MORE CLI!!!!!!!!
    I should mention at any point in this guide if you f*** up a system file you may render your desktop unusable and will be forced to re-install Linux. I told you that before we started right?
    You should pin your vcpus to your real CPUs in association to the NUMA Node closest to the GPU you're passing though. How do I do that? Hmmmn...good question. Google it!
    You know that thing you did in Step 3? Well, you f***ed it up. FIX IT!
    I don't even know what to have you do now. You're suppose to be HERE but you're over THERE. When you do this THAT'S suppose to happen but THIS happens instead. You're on your own. Google is your friend
    Did Google help? No? START COMPLETELY OVER! RE-INSTALL LINUX! Time to setup Looking Glass yay!...I'm not going to tell you how to do that either get Googling. Does it start? Yes. Does it say your GPU is there? Yes. Does it crash? Only a little. YOU DID IT!!! So after all of that I have a near native performance Windows install in a QEMU VM with 1/2 the systems resources accross the board. What else is there to do with this much CPU/RAM? The reason the passed-though GPU has an HDMI cable is because (and I think this is stupid) on the AMD GPU side every GPU AMD made after the Radeon HD 7XXX series (beginning of R7/9) AMD changed how their GPUs respond when no monitor is connected. The older GPU's would keep outputting to the display even when one wasn't there. Now, post 7XXX series the GPU effectively shuts down some major functions unless a display is detected. This breaks Looking Glass. It relies on a stream being output to a "monitor" so one must be plugged in.
     
    Now the dummy plugs you use to see AMD GPU crypto miners using should do the trick just as well but I don't know how to make one so I just sacrificed a port on my monitor. If Looking Glass ever stops working while I'm in the middle of something it'll help as an emergency backup.
     
    Now even right now this isn't working entirely as it was meant to. Looking Glass is suppose to act as a KVM accepting mouse & keyboard input. Keyboard worked fine for me. Mouse didn't work for jacks***. This is why I passed though one of my USB3.0 controllers. I just so happen to have a 2 system KVM switch. All I have to do is press a button and it will switch me in-between the Linux & Windows systems. Not 100% what I wanted but it works well enough. This enables me to overlap Linux windows on top of Looking Glass in the event I need more Linux desktop at a given time. Makes it so I don't have to dedicate a display to Windows.
     
    Fun project, like someone mentioned there were a lot of online resources. The most detailed guide I followed was designed for Pop OS 19.04 (debian) but it wasn't hard to adapt to Ubuntu 19.04 (debain). I'm going to use this for some applications that I just cant get away from. Wine is not great for most of the .exe Windows applications I want to run and I have yet to find Linux alternatives for all of them. This will let me have the best of both worlds.
     
    @Twilight I did it!
  13. Like
    Windows7ge got a reaction from 2FA for a status update, Alright. This was a right pain in the ass and I knew it was going to take forever to   
    Alright. This was a right pain in the ass and I knew it was going to take forever to get working right (~2 weeks...). I now have a Windows 10 VM running on QEMU & virt-manager with GPU passthough working on Ubuntu 19.04.
     
    The physical system:

     
    THREADRIPPER 1950X 16C/32T
    64GB DDR4 2400MHz
    2x R9 290X
    2x SFP+ 10Gbit NIC.
     
    In addition to QEMU & virt-manager I got Looking Glass working which lets me view what the passed-though GPU is displaying at near 1:1 performance without plugging a display into the GPU. (I'll explain why the GPU has an HDMI in it in a bit.)
     
    So this is what I see between my two monitors.

    Windows VM hardware:
    CPU: 8C/16T Threadripper (shows up as an EYPC - Something about the VM enabling CPU features and Threadripper doesn't exist so it defaults to EPYC since it's kind of based on it)
    32GB of RAM
    10Gbit NIC bridge (virtio)
    R9 290X
     
    The ports on the back of my desktop work differently now too.

     
    The left stack of four USB3.0 ports belong to windows. They are connected to a AMD Family 17h Model 00h-0fh USB3.0 Host Controller which exists in it's own IOMMU group. The two beneath the Ethernet port and everything right belong to Linux on other controllers in other groups. In the first photo the bottom GPU belongs to Windows. The top GPU belongs to Linux. The BCM57810S has had one 10G port connected to a bridge and passed though to Windows. This means both clients can run full 10Gig with no bottleneck.
     
    This is an accurate representation of how my experience went following the setup steps:
    Disabling the GPU driver (incorporating vfio-pci in place) Are you using two identical GPU's? Oh boy that's an extra step. Enable IOMMU support in the system kernel. (amd_iommu=on) Update grup Make sure you use the right prefixes or else your GPU won't pass-though correctly. All you gotta do is check /sys/bus/pci/devices. OK, sounds easy enooly f***ing s***:  lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.0 -> ../../../devices/pci0000:00/0000:00:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.2 -> ../../../devices/pci0000:00/0000:00:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.0 -> ../../../devices/pci0000:00/0000:00:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.1 -> ../../../devices/pci0000:00/0000:00:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.3 -> ../../../devices/pci0000:00/0000:00:01.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:02.0 -> ../../../devices/pci0000:00/0000:00:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.0 -> ../../../devices/pci0000:00/0000:00:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.1 -> ../../../devices/pci0000:00/0000:00:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:04.0 -> ../../../devices/pci0000:00/0000:00:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.0 -> ../../../devices/pci0000:00/0000:00:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.1 -> ../../../devices/pci0000:00/0000:00:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.0 -> ../../../devices/pci0000:00/0000:00:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.1 -> ../../../devices/pci0000:00/0000:00:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.0 -> ../../../devices/pci0000:00/0000:00:14.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.3 -> ../../../devices/pci0000:00/0000:00:14.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.0 -> ../../../devices/pci0000:00/0000:00:18.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.1 -> ../../../devices/pci0000:00/0000:00:18.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.2 -> ../../../devices/pci0000:00/0000:00:18.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.3 -> ../../../devices/pci0000:00/0000:00:18.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.4 -> ../../../devices/pci0000:00/0000:00:18.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.5 -> ../../../devices/pci0000:00/0000:00:18.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.6 -> ../../../devices/pci0000:00/0000:00:18.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.7 -> ../../../devices/pci0000:00/0000:00:18.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.0 -> ../../../devices/pci0000:00/0000:00:19.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.1 -> ../../../devices/pci0000:00/0000:00:19.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.2 -> ../../../devices/pci0000:00/0000:00:19.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.3 -> ../../../devices/pci0000:00/0000:00:19.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.4 -> ../../../devices/pci0000:00/0000:00:19.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.5 -> ../../../devices/pci0000:00/0000:00:19.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.6 -> ../../../devices/pci0000:00/0000:00:19.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.7 -> ../../../devices/pci0000:00/0000:00:19.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.1 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.2 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:01.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:02.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:03.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:04.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:09.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:05:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0/0000:05:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:08:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0/0000:08:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.0 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.1 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.0 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.1 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.0 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.2 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.3 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.0 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.2 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.3 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.0 -> ../../../devices/pci0000:40/0000:40:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.2 -> ../../../devices/pci0000:40/0000:40:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.0 -> ../../../devices/pci0000:40/0000:40:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.1 -> ../../../devices/pci0000:40/0000:40:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:02.0 -> ../../../devices/pci0000:40/0000:40:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.0 -> ../../../devices/pci0000:40/0000:40:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.1 -> ../../../devices/pci0000:40/0000:40:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:04.0 -> ../../../devices/pci0000:40/0000:40:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.0 -> ../../../devices/pci0000:40/0000:40:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.1 -> ../../../devices/pci0000:40/0000:40:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.0 -> ../../../devices/pci0000:40/0000:40:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.1 -> ../../../devices/pci0000:40/0000:40:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:41:00.0 -> ../../../devices/pci0000:40/0000:40:01.1/0000:41:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.0 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.1 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.0 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.2 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.3 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.0 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.2 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.2 *autistic screeching*
    Did you remember to over-ride that GPU driver?...no...Return to Step 1.
    DO YOU EVEN HUGEPAGES!?!
    Let's make a RAMDisk so no matter what you're doing your system is taking up >32GB of RAM at all times. Weather the VM is running or not...
    Check your system kernel to make sure all of our driver over-rides are in place at boot. Are they? No? Have fun figuring out how to add them manually. 😀
    Alright I'll let you use the GUI for 5 mins.
    MORE CLI!!!!!!!!
    I should mention at any point in this guide if you f*** up a system file you may render your desktop unusable and will be forced to re-install Linux. I told you that before we started right?
    You should pin your vcpus to your real CPUs in association to the NUMA Node closest to the GPU you're passing though. How do I do that? Hmmmn...good question. Google it!
    You know that thing you did in Step 3? Well, you f***ed it up. FIX IT!
    I don't even know what to have you do now. You're suppose to be HERE but you're over THERE. When you do this THAT'S suppose to happen but THIS happens instead. You're on your own. Google is your friend
    Did Google help? No? START COMPLETELY OVER! RE-INSTALL LINUX! Time to setup Looking Glass yay!...I'm not going to tell you how to do that either get Googling. Does it start? Yes. Does it say your GPU is there? Yes. Does it crash? Only a little. YOU DID IT!!! So after all of that I have a near native performance Windows install in a QEMU VM with 1/2 the systems resources accross the board. What else is there to do with this much CPU/RAM? The reason the passed-though GPU has an HDMI cable is because (and I think this is stupid) on the AMD GPU side every GPU AMD made after the Radeon HD 7XXX series (beginning of R7/9) AMD changed how their GPUs respond when no monitor is connected. The older GPU's would keep outputting to the display even when one wasn't there. Now, post 7XXX series the GPU effectively shuts down some major functions unless a display is detected. This breaks Looking Glass. It relies on a stream being output to a "monitor" so one must be plugged in.
     
    Now the dummy plugs you use to see AMD GPU crypto miners using should do the trick just as well but I don't know how to make one so I just sacrificed a port on my monitor. If Looking Glass ever stops working while I'm in the middle of something it'll help as an emergency backup.
     
    Now even right now this isn't working entirely as it was meant to. Looking Glass is suppose to act as a KVM accepting mouse & keyboard input. Keyboard worked fine for me. Mouse didn't work for jacks***. This is why I passed though one of my USB3.0 controllers. I just so happen to have a 2 system KVM switch. All I have to do is press a button and it will switch me in-between the Linux & Windows systems. Not 100% what I wanted but it works well enough. This enables me to overlap Linux windows on top of Looking Glass in the event I need more Linux desktop at a given time. Makes it so I don't have to dedicate a display to Windows.
     
    Fun project, like someone mentioned there were a lot of online resources. The most detailed guide I followed was designed for Pop OS 19.04 (debian) but it wasn't hard to adapt to Ubuntu 19.04 (debain). I'm going to use this for some applications that I just cant get away from. Wine is not great for most of the .exe Windows applications I want to run and I have yet to find Linux alternatives for all of them. This will let me have the best of both worlds.
     
    @Twilight I did it!
  14. Like
    Windows7ge got a reaction from 2FA for a status update, Alright. This was a right pain in the ass and I knew it was going to take forever to   
    Alright. This was a right pain in the ass and I knew it was going to take forever to get working right (~2 weeks...). I now have a Windows 10 VM running on QEMU & virt-manager with GPU passthough working on Ubuntu 19.04.
     
    The physical system:

     
    THREADRIPPER 1950X 16C/32T
    64GB DDR4 2400MHz
    2x R9 290X
    2x SFP+ 10Gbit NIC.
     
    In addition to QEMU & virt-manager I got Looking Glass working which lets me view what the passed-though GPU is displaying at near 1:1 performance without plugging a display into the GPU. (I'll explain why the GPU has an HDMI in it in a bit.)
     
    So this is what I see between my two monitors.

    Windows VM hardware:
    CPU: 8C/16T Threadripper (shows up as an EYPC - Something about the VM enabling CPU features and Threadripper doesn't exist so it defaults to EPYC since it's kind of based on it)
    32GB of RAM
    10Gbit NIC bridge (virtio)
    R9 290X
     
    The ports on the back of my desktop work differently now too.

     
    The left stack of four USB3.0 ports belong to windows. They are connected to a AMD Family 17h Model 00h-0fh USB3.0 Host Controller which exists in it's own IOMMU group. The two beneath the Ethernet port and everything right belong to Linux on other controllers in other groups. In the first photo the bottom GPU belongs to Windows. The top GPU belongs to Linux. The BCM57810S has had one 10G port connected to a bridge and passed though to Windows. This means both clients can run full 10Gig with no bottleneck.
     
    This is an accurate representation of how my experience went following the setup steps:
    Disabling the GPU driver (incorporating vfio-pci in place) Are you using two identical GPU's? Oh boy that's an extra step. Enable IOMMU support in the system kernel. (amd_iommu=on) Update grup Make sure you use the right prefixes or else your GPU won't pass-though correctly. All you gotta do is check /sys/bus/pci/devices. OK, sounds easy enooly f***ing s***:  lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.0 -> ../../../devices/pci0000:00/0000:00:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:00.2 -> ../../../devices/pci0000:00/0000:00:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.0 -> ../../../devices/pci0000:00/0000:00:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.1 -> ../../../devices/pci0000:00/0000:00:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:01.3 -> ../../../devices/pci0000:00/0000:00:01.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:02.0 -> ../../../devices/pci0000:00/0000:00:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.0 -> ../../../devices/pci0000:00/0000:00:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:03.1 -> ../../../devices/pci0000:00/0000:00:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:04.0 -> ../../../devices/pci0000:00/0000:00:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.0 -> ../../../devices/pci0000:00/0000:00:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:07.1 -> ../../../devices/pci0000:00/0000:00:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.0 -> ../../../devices/pci0000:00/0000:00:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:08.1 -> ../../../devices/pci0000:00/0000:00:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.0 -> ../../../devices/pci0000:00/0000:00:14.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:14.3 -> ../../../devices/pci0000:00/0000:00:14.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.0 -> ../../../devices/pci0000:00/0000:00:18.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.1 -> ../../../devices/pci0000:00/0000:00:18.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.2 -> ../../../devices/pci0000:00/0000:00:18.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.3 -> ../../../devices/pci0000:00/0000:00:18.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.4 -> ../../../devices/pci0000:00/0000:00:18.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.5 -> ../../../devices/pci0000:00/0000:00:18.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.6 -> ../../../devices/pci0000:00/0000:00:18.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:18.7 -> ../../../devices/pci0000:00/0000:00:18.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.0 -> ../../../devices/pci0000:00/0000:00:19.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.1 -> ../../../devices/pci0000:00/0000:00:19.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.2 -> ../../../devices/pci0000:00/0000:00:19.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.3 -> ../../../devices/pci0000:00/0000:00:19.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.4 -> ../../../devices/pci0000:00/0000:00:19.4 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.5 -> ../../../devices/pci0000:00/0000:00:19.5 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.6 -> ../../../devices/pci0000:00/0000:00:19.6 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:00:19.7 -> ../../../devices/pci0000:00/0000:00:19.7 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.1 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:01:00.2 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:01.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:02.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:03.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:04.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:02:09.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:05:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:02.0/0000:05:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:08:00.0 -> ../../../devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:09.0/0000:08:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.0 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:09:00.1 -> ../../../devices/pci0000:00/0000:00:01.3/0000:09:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.0 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0a:00.1 -> ../../../devices/pci0000:00/0000:00:03.1/0000:0a:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.0 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.2 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0b:00.3 -> ../../../devices/pci0000:00/0000:00:07.1/0000:0b:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.0 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.2 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:0c:00.3 -> ../../../devices/pci0000:00/0000:00:08.1/0000:0c:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.0 -> ../../../devices/pci0000:40/0000:40:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:00.2 -> ../../../devices/pci0000:40/0000:40:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.0 -> ../../../devices/pci0000:40/0000:40:01.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:01.1 -> ../../../devices/pci0000:40/0000:40:01.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:02.0 -> ../../../devices/pci0000:40/0000:40:02.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.0 -> ../../../devices/pci0000:40/0000:40:03.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:03.1 -> ../../../devices/pci0000:40/0000:40:03.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:04.0 -> ../../../devices/pci0000:40/0000:40:04.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.0 -> ../../../devices/pci0000:40/0000:40:07.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:07.1 -> ../../../devices/pci0000:40/0000:40:07.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.0 -> ../../../devices/pci0000:40/0000:40:08.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:40:08.1 -> ../../../devices/pci0000:40/0000:40:08.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:41:00.0 -> ../../../devices/pci0000:40/0000:40:01.1/0000:41:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.0 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:42:00.1 -> ../../../devices/pci0000:40/0000:40:03.1/0000:42:00.1 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.0 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.2 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.2 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:43:00.3 -> ../../../devices/pci0000:40/0000:40:07.1/0000:43:00.3 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.0 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.0 lrwxrwxrwx 1 root root 0 Aug 3 09:02 0000:44:00.2 -> ../../../devices/pci0000:40/0000:40:08.1/0000:44:00.2 *autistic screeching*
    Did you remember to over-ride that GPU driver?...no...Return to Step 1.
    DO YOU EVEN HUGEPAGES!?!
    Let's make a RAMDisk so no matter what you're doing your system is taking up >32GB of RAM at all times. Weather the VM is running or not...
    Check your system kernel to make sure all of our driver over-rides are in place at boot. Are they? No? Have fun figuring out how to add them manually. 😀
    Alright I'll let you use the GUI for 5 mins.
    MORE CLI!!!!!!!!
    I should mention at any point in this guide if you f*** up a system file you may render your desktop unusable and will be forced to re-install Linux. I told you that before we started right?
    You should pin your vcpus to your real CPUs in association to the NUMA Node closest to the GPU you're passing though. How do I do that? Hmmmn...good question. Google it!
    You know that thing you did in Step 3? Well, you f***ed it up. FIX IT!
    I don't even know what to have you do now. You're suppose to be HERE but you're over THERE. When you do this THAT'S suppose to happen but THIS happens instead. You're on your own. Google is your friend
    Did Google help? No? START COMPLETELY OVER! RE-INSTALL LINUX! Time to setup Looking Glass yay!...I'm not going to tell you how to do that either get Googling. Does it start? Yes. Does it say your GPU is there? Yes. Does it crash? Only a little. YOU DID IT!!! So after all of that I have a near native performance Windows install in a QEMU VM with 1/2 the systems resources accross the board. What else is there to do with this much CPU/RAM? The reason the passed-though GPU has an HDMI cable is because (and I think this is stupid) on the AMD GPU side every GPU AMD made after the Radeon HD 7XXX series (beginning of R7/9) AMD changed how their GPUs respond when no monitor is connected. The older GPU's would keep outputting to the display even when one wasn't there. Now, post 7XXX series the GPU effectively shuts down some major functions unless a display is detected. This breaks Looking Glass. It relies on a stream being output to a "monitor" so one must be plugged in.
     
    Now the dummy plugs you use to see AMD GPU crypto miners using should do the trick just as well but I don't know how to make one so I just sacrificed a port on my monitor. If Looking Glass ever stops working while I'm in the middle of something it'll help as an emergency backup.
     
    Now even right now this isn't working entirely as it was meant to. Looking Glass is suppose to act as a KVM accepting mouse & keyboard input. Keyboard worked fine for me. Mouse didn't work for jacks***. This is why I passed though one of my USB3.0 controllers. I just so happen to have a 2 system KVM switch. All I have to do is press a button and it will switch me in-between the Linux & Windows systems. Not 100% what I wanted but it works well enough. This enables me to overlap Linux windows on top of Looking Glass in the event I need more Linux desktop at a given time. Makes it so I don't have to dedicate a display to Windows.
     
    Fun project, like someone mentioned there were a lot of online resources. The most detailed guide I followed was designed for Pop OS 19.04 (debian) but it wasn't hard to adapt to Ubuntu 19.04 (debain). I'm going to use this for some applications that I just cant get away from. Wine is not great for most of the .exe Windows applications I want to run and I have yet to find Linux alternatives for all of them. This will let me have the best of both worlds.
     
    @Twilight I did it!
  15. Funny
    Windows7ge got a reaction from wkdpaul for a status update, Alright, note to self. Do NOT configure Default Gateways on internal networks that do   
    Alright, note to self. Do NOT configure Default Gateways on internal networks that do not contain an external route while using Linux. Windows finds it's way around it but Linux goes "Oh, so you want me to use THAT ONE now for all Internet bound traffic even though I already have a functioning link to a router.". Like, no I'm just pointing you to the file server I didn't say shit about taking a different route to the Internet. Then when it finds it doesn't work it just quits like "Yeah this isn't working. I know that other network with a function connection exists but just yea, no. DNS_PROBE_FINISHED_NO_INTERNET"
  16. Funny
    Windows7ge got a reaction from wkdpaul for a status update, Alright, note to self. Do NOT configure Default Gateways on internal networks that do   
    Alright, note to self. Do NOT configure Default Gateways on internal networks that do not contain an external route while using Linux. Windows finds it's way around it but Linux goes "Oh, so you want me to use THAT ONE now for all Internet bound traffic even though I already have a functioning link to a router.". Like, no I'm just pointing you to the file server I didn't say shit about taking a different route to the Internet. Then when it finds it doesn't work it just quits like "Yeah this isn't working. I know that other network with a function connection exists but just yea, no. DNS_PROBE_FINISHED_NO_INTERNET"
  17. Funny
    Windows7ge got a reaction from wkdpaul for a status update, Alright, note to self. Do NOT configure Default Gateways on internal networks that do   
    Alright, note to self. Do NOT configure Default Gateways on internal networks that do not contain an external route while using Linux. Windows finds it's way around it but Linux goes "Oh, so you want me to use THAT ONE now for all Internet bound traffic even though I already have a functioning link to a router.". Like, no I'm just pointing you to the file server I didn't say shit about taking a different route to the Internet. Then when it finds it doesn't work it just quits like "Yeah this isn't working. I know that other network with a function connection exists but just yea, no. DNS_PROBE_FINISHED_NO_INTERNET"
  18. Funny
    Windows7ge got a reaction from wkdpaul for a status update, Alright, note to self. Do NOT configure Default Gateways on internal networks that do   
    Alright, note to self. Do NOT configure Default Gateways on internal networks that do not contain an external route while using Linux. Windows finds it's way around it but Linux goes "Oh, so you want me to use THAT ONE now for all Internet bound traffic even though I already have a functioning link to a router.". Like, no I'm just pointing you to the file server I didn't say shit about taking a different route to the Internet. Then when it finds it doesn't work it just quits like "Yeah this isn't working. I know that other network with a function connection exists but just yea, no. DNS_PROBE_FINISHED_NO_INTERNET"
  19. Like
    Windows7ge got a reaction from dual290x for a status update, Thought I'd share this because I like the idea. You know how mini-redundant server po   
    Thought I'd share this because I like the idea. You know how mini-redundant server power supplies have a little piezoelectric speaker in them that tells you when a PSU fails? Well, I have a project in the near future that could use such feature but for a non-redundant pair of PSU's (considering how expensive redundant ones are this is much cheaper). So I have this:

    The idea here is the battery would be kept charged by the TP4056 fed by the PSU 5V rail, the relay would be wired in a NC config and be held high (open) by the 5V rail of the PSU. If the PSU were to lose power the relay would switch shorting the connection allowing power to flow to the DC-DC 5V OUT which would in turn drive the piezoelectric speaker (your indicator that the PSU failed).
     
    I realized that if I'm to use two ATX PSUs I could use a pair of relays and wire them up in such a way that each powers the opposing units piezoelectric speaker. This would eliminate the battery and make it so it keeps beeping forever.
     
    Unfortunately I just discovered this speaker can't be driven by any normal 5V. It doesn't resonate the drum so to speak. Skanky Sylveon do you know of any small easily driven speakers like this?
  20. Like
    Windows7ge got a reaction from Skanky Sylveon for a status update, Hiya, I got a little electronics project and I'm wondering if you could check my logi   
    Hiya, I got a little electronics project and I'm wondering if you could check my logic before I build something that may just burst into flames as soon as I turn it on.
     
    Pretty simple project, I'm looking to power a 140mm fan off an old cellphone charger (instead of a ATX PSU that I shorted Green to Black). The charger is capable of outputting 0.7A @ 5V. If I understand the fundamentals of electricity correctly I should be able to use a MT3608 to step 5V up to 12V. I assume this will result in whatever load I put on the 12V output to draw 2.4x as many amps on the 5V input so a 0.13A fan should draw 0.312A from the charger. Of course this would be based off of 100% efficiency.
     
    So my questions are:
     
    Am I correct in assuming the MT3608 will draw 2.4x the amps as what it's supplying with an output of 12V?
    How much loss of efficiency should I account for? 5%, 10%, 25%? The chip will only be passively cooled so I'm aware as heat goes up efficiency goes down. Or is > doubling the input voltage asking too much? I'd hope I shouldn't need to account for 100% but if I do the charger is capable of 0.7A so...
     
    Thoughts?
  21. Like
    Windows7ge got a reaction from Queen Chrysallis for a status update, So I was suppose to post an update about this over a week (or was it two...) ago but   
    So I was suppose to post an update about this over a week (or was it two...) ago but I suffer from something I like to call perpetual procrastination and my request for troubleshooting means this update is out-of-order to my last one so we're going backwards in time here.
     
    Here's the X399 motherboard with the CPU installed:

    This thing has a lot of expansion options. The plan is to run my two GPUs in the 1st & 4th slots then install my 20Gbit NIC in the bottom-most slot.
     
    People keep going on about how huge the IHS is on TR and the amount of TIM that's needed to cover it so I thought I'd share my method:

    That's it. That's my method. A custom cut piece of graphite.
     
    The waterblock does look amazing:

    and it's heavy, like really heavy so I wouldn't be afraid to POST the system prior to pluming it up.
     
    This all worked out quite well. Using HWiNFO & Prime95 for testing I saw 
    Idle temp: 34°C
    Max temp: 59.5°C
     
    I could probably get that down a bit if I used actual thermal paste but I don't feel the mess would be worth it. With all 16 cores active under Prime95 it only turboed up to 3.65GHz which is a far cry from the 4.2GHz clock you can see it hit in the BIOS. I do plan on doing some overclocking (not extreme) but I think I'm going to replace my power supply first. It's 6 years old and the BIOS reports the 5V rail dipping under 4.5V. What supports my reason for trusting this is having the system under a high load and it spontaneously shutdown/restarts. Typical of not getting enough power. The PSU comes with a 10 year warranty and I'm debating weather or not to try and pursue that before buying a brand new one. It's worth a shot. Save a couple $100.
     
    In server related news I said I was going to make an update on that damn Intel X540 in the server. I whipped together a model fan duct and printed it out. It's worth noting to make sure you check all the settings before you export to .gcode to prevent this:

    Left was set to "course" as in it skips layers (a lot of layers) to make it print faster. I didn't realize it until the print was done.
    Right was set to fine. There's some issues on the layers the screw holes are on. I don't know why that happened but it's solid and hold together fine.
     
    The chassis's stock PCI_e I/O shields were oddly convenient for this situation since it made it so I could actually adjust this contraption up & down:

    Testing it before I installed it it moves a lot of air.
     
    Getting it installed:

    You can see that silver heatsink. That is 1/3rd of the full X540 heatsink.
     
    With everything closed up before this mod the X540 was hitting 80°C with the CPU's going full tilt. Now it maxes out at 73°C. It's better but that's about as much as I can do for it unless I were to source some small blower style fans and inserted them in-between the HBA's.
     
    In other server related news I still plan on building the very power efficient, very dense (end goal being >= 100TB) 10Gbit capable backup storage server that will backup the SSD server and act as offsite backup but unfortunately life has gotten in the way and I'm forced to postpone that for at least a few months.
     
    Reasons?
    I decided my desktop has BSOD/Kernel paniced for the last time which prompted upgrading it (with the money that was to go to the server).
    Rent costs money...who figured?
    College tuition
     
    If I happen to find a source of income beside my current income maybe it'll happen sooner but we'll have to wait and see.
  22. Like
    Windows7ge got a reaction from Queen Chrysallis for a status update, So I was suppose to post an update about this over a week (or was it two...) ago but   
    So I was suppose to post an update about this over a week (or was it two...) ago but I suffer from something I like to call perpetual procrastination and my request for troubleshooting means this update is out-of-order to my last one so we're going backwards in time here.
     
    Here's the X399 motherboard with the CPU installed:

    This thing has a lot of expansion options. The plan is to run my two GPUs in the 1st & 4th slots then install my 20Gbit NIC in the bottom-most slot.
     
    People keep going on about how huge the IHS is on TR and the amount of TIM that's needed to cover it so I thought I'd share my method:

    That's it. That's my method. A custom cut piece of graphite.
     
    The waterblock does look amazing:

    and it's heavy, like really heavy so I wouldn't be afraid to POST the system prior to pluming it up.
     
    This all worked out quite well. Using HWiNFO & Prime95 for testing I saw 
    Idle temp: 34°C
    Max temp: 59.5°C
     
    I could probably get that down a bit if I used actual thermal paste but I don't feel the mess would be worth it. With all 16 cores active under Prime95 it only turboed up to 3.65GHz which is a far cry from the 4.2GHz clock you can see it hit in the BIOS. I do plan on doing some overclocking (not extreme) but I think I'm going to replace my power supply first. It's 6 years old and the BIOS reports the 5V rail dipping under 4.5V. What supports my reason for trusting this is having the system under a high load and it spontaneously shutdown/restarts. Typical of not getting enough power. The PSU comes with a 10 year warranty and I'm debating weather or not to try and pursue that before buying a brand new one. It's worth a shot. Save a couple $100.
     
    In server related news I said I was going to make an update on that damn Intel X540 in the server. I whipped together a model fan duct and printed it out. It's worth noting to make sure you check all the settings before you export to .gcode to prevent this:

    Left was set to "course" as in it skips layers (a lot of layers) to make it print faster. I didn't realize it until the print was done.
    Right was set to fine. There's some issues on the layers the screw holes are on. I don't know why that happened but it's solid and hold together fine.
     
    The chassis's stock PCI_e I/O shields were oddly convenient for this situation since it made it so I could actually adjust this contraption up & down:

    Testing it before I installed it it moves a lot of air.
     
    Getting it installed:

    You can see that silver heatsink. That is 1/3rd of the full X540 heatsink.
     
    With everything closed up before this mod the X540 was hitting 80°C with the CPU's going full tilt. Now it maxes out at 73°C. It's better but that's about as much as I can do for it unless I were to source some small blower style fans and inserted them in-between the HBA's.
     
    In other server related news I still plan on building the very power efficient, very dense (end goal being >= 100TB) 10Gbit capable backup storage server that will backup the SSD server and act as offsite backup but unfortunately life has gotten in the way and I'm forced to postpone that for at least a few months.
     
    Reasons?
    I decided my desktop has BSOD/Kernel paniced for the last time which prompted upgrading it (with the money that was to go to the server).
    Rent costs money...who figured?
    College tuition
     
    If I happen to find a source of income beside my current income maybe it'll happen sooner but we'll have to wait and see.
  23. Like
    Windows7ge got a reaction from Queen Chrysallis for a status update, So I was suppose to post an update about this over a week (or was it two...) ago but   
    So I was suppose to post an update about this over a week (or was it two...) ago but I suffer from something I like to call perpetual procrastination and my request for troubleshooting means this update is out-of-order to my last one so we're going backwards in time here.
     
    Here's the X399 motherboard with the CPU installed:

    This thing has a lot of expansion options. The plan is to run my two GPUs in the 1st & 4th slots then install my 20Gbit NIC in the bottom-most slot.
     
    People keep going on about how huge the IHS is on TR and the amount of TIM that's needed to cover it so I thought I'd share my method:

    That's it. That's my method. A custom cut piece of graphite.
     
    The waterblock does look amazing:

    and it's heavy, like really heavy so I wouldn't be afraid to POST the system prior to pluming it up.
     
    This all worked out quite well. Using HWiNFO & Prime95 for testing I saw 
    Idle temp: 34°C
    Max temp: 59.5°C
     
    I could probably get that down a bit if I used actual thermal paste but I don't feel the mess would be worth it. With all 16 cores active under Prime95 it only turboed up to 3.65GHz which is a far cry from the 4.2GHz clock you can see it hit in the BIOS. I do plan on doing some overclocking (not extreme) but I think I'm going to replace my power supply first. It's 6 years old and the BIOS reports the 5V rail dipping under 4.5V. What supports my reason for trusting this is having the system under a high load and it spontaneously shutdown/restarts. Typical of not getting enough power. The PSU comes with a 10 year warranty and I'm debating weather or not to try and pursue that before buying a brand new one. It's worth a shot. Save a couple $100.
     
    In server related news I said I was going to make an update on that damn Intel X540 in the server. I whipped together a model fan duct and printed it out. It's worth noting to make sure you check all the settings before you export to .gcode to prevent this:

    Left was set to "course" as in it skips layers (a lot of layers) to make it print faster. I didn't realize it until the print was done.
    Right was set to fine. There's some issues on the layers the screw holes are on. I don't know why that happened but it's solid and hold together fine.
     
    The chassis's stock PCI_e I/O shields were oddly convenient for this situation since it made it so I could actually adjust this contraption up & down:

    Testing it before I installed it it moves a lot of air.
     
    Getting it installed:

    You can see that silver heatsink. That is 1/3rd of the full X540 heatsink.
     
    With everything closed up before this mod the X540 was hitting 80°C with the CPU's going full tilt. Now it maxes out at 73°C. It's better but that's about as much as I can do for it unless I were to source some small blower style fans and inserted them in-between the HBA's.
     
    In other server related news I still plan on building the very power efficient, very dense (end goal being >= 100TB) 10Gbit capable backup storage server that will backup the SSD server and act as offsite backup but unfortunately life has gotten in the way and I'm forced to postpone that for at least a few months.
     
    Reasons?
    I decided my desktop has BSOD/Kernel paniced for the last time which prompted upgrading it (with the money that was to go to the server).
    Rent costs money...who figured?
    College tuition
     
    If I happen to find a source of income beside my current income maybe it'll happen sooner but we'll have to wait and see.
  24. Like
    Windows7ge got a reaction from Queen Chrysallis for a status update, So I was suppose to post an update about this over a week (or was it two...) ago but   
    So I was suppose to post an update about this over a week (or was it two...) ago but I suffer from something I like to call perpetual procrastination and my request for troubleshooting means this update is out-of-order to my last one so we're going backwards in time here.
     
    Here's the X399 motherboard with the CPU installed:

    This thing has a lot of expansion options. The plan is to run my two GPUs in the 1st & 4th slots then install my 20Gbit NIC in the bottom-most slot.
     
    People keep going on about how huge the IHS is on TR and the amount of TIM that's needed to cover it so I thought I'd share my method:

    That's it. That's my method. A custom cut piece of graphite.
     
    The waterblock does look amazing:

    and it's heavy, like really heavy so I wouldn't be afraid to POST the system prior to pluming it up.
     
    This all worked out quite well. Using HWiNFO & Prime95 for testing I saw 
    Idle temp: 34°C
    Max temp: 59.5°C
     
    I could probably get that down a bit if I used actual thermal paste but I don't feel the mess would be worth it. With all 16 cores active under Prime95 it only turboed up to 3.65GHz which is a far cry from the 4.2GHz clock you can see it hit in the BIOS. I do plan on doing some overclocking (not extreme) but I think I'm going to replace my power supply first. It's 6 years old and the BIOS reports the 5V rail dipping under 4.5V. What supports my reason for trusting this is having the system under a high load and it spontaneously shutdown/restarts. Typical of not getting enough power. The PSU comes with a 10 year warranty and I'm debating weather or not to try and pursue that before buying a brand new one. It's worth a shot. Save a couple $100.
     
    In server related news I said I was going to make an update on that damn Intel X540 in the server. I whipped together a model fan duct and printed it out. It's worth noting to make sure you check all the settings before you export to .gcode to prevent this:

    Left was set to "course" as in it skips layers (a lot of layers) to make it print faster. I didn't realize it until the print was done.
    Right was set to fine. There's some issues on the layers the screw holes are on. I don't know why that happened but it's solid and hold together fine.
     
    The chassis's stock PCI_e I/O shields were oddly convenient for this situation since it made it so I could actually adjust this contraption up & down:

    Testing it before I installed it it moves a lot of air.
     
    Getting it installed:

    You can see that silver heatsink. That is 1/3rd of the full X540 heatsink.
     
    With everything closed up before this mod the X540 was hitting 80°C with the CPU's going full tilt. Now it maxes out at 73°C. It's better but that's about as much as I can do for it unless I were to source some small blower style fans and inserted them in-between the HBA's.
     
    In other server related news I still plan on building the very power efficient, very dense (end goal being >= 100TB) 10Gbit capable backup storage server that will backup the SSD server and act as offsite backup but unfortunately life has gotten in the way and I'm forced to postpone that for at least a few months.
     
    Reasons?
    I decided my desktop has BSOD/Kernel paniced for the last time which prompted upgrading it (with the money that was to go to the server).
    Rent costs money...who figured?
    College tuition
     
    If I happen to find a source of income beside my current income maybe it'll happen sooner but we'll have to wait and see.
  25. Like
    Windows7ge got a reaction from Origami Cactus for a status update, So it has been almost 3.5 years since my desktops last major upgrade and with the box   
    So it has been almost 3.5 years since my desktops last major upgrade and with the box that got delivered today it's going to get one very soon.

    1st gen 1950X and you can read what motherboard it is from what's on the front of the box. Opted against 2950X since for whatever reason it would have cost 330 extra dollars and I'm pretty sure I wouldn't see $330 extra performance that I can't get out of some overclocking.
     
    Now I'm just waiting on the new waterblock. It should be delivered tomorrow. I picked it because I just think it's the greatest looking:

    Oh look a watermark from the website i ripped the pic off of. Or at least I'm gonna pray it's a watermark. Here's the sauce for those interested.
    I'm excited. I haven't had an AMD rig in over 6 years.
     
    I kind of wonder if the TR line of chips are based off of AMD's EYPC server line-up but with unlocked multipliers and such. I could Google it but that requires effort that I don't feel like I have right now...I'm lazy.
     
    In server related news the new Delta fans showed up and I got them installed. Four of them replaced the two Noctua NF-A9's that came with the two Noctua NH-D9L's and YEAH they move A LOT more air. The Noctuas are only 0.1A each while these Deltas are 0.6A. I am surprised though. They say 45dBA but after installing them they're actually not that bad. I mean, they're not quiet. I wouldn't want to sleep next to them but they're not intolerable either. By data-center server fan standards they're quite tame. Solid 9/10 would recommend.
     
    Also going on is I'm finding when I put the server under a good load using something like BOINC paired with 16 Hyper-V VM's the internal case temp is causing that damn built-in Intel-X540 to run hotter than I'm really comfortable with. I do have an idea though as part of the heatsink lines up with an empty I/O slot. I think I can 3D print a fan duct that a tiny fan attaches to then attach that to the I/O shield. It won't blow air over the entirety of the heatsink due to it's position but it should knock enough degrees off of it to where I'll be happy with what it's sitting at. That's tomorrow's projects. I might make an update about it depending on how it goes.
     
    That's all I have for tonight.
×