Adding a 2.5G NIC to an EliteDesk 800 G3
Oct 3, 2024 • elitedesk
I switched my router from a Raspberry Pi 4 to an EliteDesk 800 G3. In this post I want to share how I installed an additional NIC to it and the issues I ran into.
For the past two years, my home network relied on a Raspberry Pi 4 running OpenWRT as the main router. It worked fine for the most part. However, after upgrading my internet from 200Mbps to 1Gbps, routing all traffic through a WireGuard VPN quickly hit the Pi's limit at around 600Mpbs. Without going much into detail, I decided to repurpose my Proxmox server, an EliteDesk 800 G3 @ i5-7500T, as the new router.
Upgrading the Hardware
I received a package and unboxed it. There it was: my new 2.5G NIC! The plan was simple: connect it to my EliteDesk, use the built-in NIC as the WAN port and the new NIC as the LAN port. Let me tell you how it went...
First, I unplugged the EliteDesk and opened the case. Then I had to remove the caddy to access the WiFi slot. This was pretty straight forward. I took out the SSD, removed the two screws at the bottom and one at the top, and disconnected the small SATA cable located next to the top screw hole.
The next step was to insert the small part of the NIC into the WiFI slot. But since I didn't have any fitting screws lying around for it, I had to "borrow" one from the FlexIO card, which I was planning to remove later anyways.
While I was at it, I unscrewed the other two screws and pulled out the FlexIO card. There's a great tutorial on how to do it:
Once this was done, I needed something to secure the NIC to the motherboard. And what's better than a 3D printed part? There's a bunch of free models available on Thingiverse and Printables, specifically designed for the G3/G4. For this project, I chose this one, because it was the easiest one to print.
But there was just a slight problem. It was incompatible with the NIC. The screws didn't align with the screw holes. Most of the available models are designed for Realtek NICs, which I assume are more commonly used. And for a good reason. I'll come back to that later.
To be a bit creative, I decided to test out my new unused $5 soldering iron that I bought on AliExpress. Without much thought, I placed the NIC into the printed part, turned on the iron, and poked a hole through the plastic on both sides.
And as expected, the simulation generated another problem: the screws were too short. Fortunately, I had some longer screws lying around that I had ordered for my other Portal Gun project. They fit in perfectly. With a bit of force, I managed to screw them in tight. So tight, that my NIC now identified itself as is/bent...
Ehhh, whatever... just some minor cosmetic issues. It was time to attach it to the motherboard. At least this was my initial idea. It turned out, the thing didn't even fit in!
Maybe if I removed the CPU cooler, installed the NIC, and then reattached the CPU cooler? Nope.
After spending half an hour on it, I gave up on the idea of having a nice looking back panel and decided to let it dangle around there.
With that problem set aside, it was time to reassemble everything. First the SSD caddy, then the lid. Done.
Configuring the Software
So... the next logical step was to power on the PC. After just a second, I heard... a beep? Why was it now beeping? I previously turned off the speaker in the BIOS. After connecting my mouse, keyboard, and monitor to the EliteDesk, it seemed like I managed to reset the CMOS somehow. It was time to smash the F10 key again to enter the BIOS, disable secure boot, enable all the VTx things, select power on after power loss and last but not least, disable the audio.
Since I was already in the BIOS, it was a good opportunity to check if the NIC was detected. To my surprise, it was!
Next, it was time to boot into Proxmox and configure the network. Not much needed to be done. The system already detected the NIC and added it as enp1s0
to the list. All I had to do was enable autostart for the port, bind vmbr1
to enp1s0
(LAN) and vmbr0
to eno1
(WAN). In case something would go wrong in the future, I also created a third bridge and assigned the USB dongle as a management port on another subnet. This allows me to connect to the Proxmox instance directly.
Since I already used virtualized ports on the OPNsense VM, there was nothing more to do :)