[!SUMMARY] Table of contents
- [[#Externally download libraries and drivers for both Wi-Fi and ethernet|Downloading the Wi-Fi drivers]]
- [[#Load them on a USB Drive, In a
driversFolder in the root of the USB drive|Installing the Wi-Fi drivers]]- [[#Run the following to finally install the ethernet driver|Installing the ethernet driver]]
- [[#Add Virtual Bridge|Adding the virtual bridge]]
- [[#And Now you should be able to access the Web GUI for Proxmox!|Conclusion]]
This summer, I finally decided to upgrade my PC. I got a 9070XT and a 9700X, along with a motherboard and PSU. As for the old parts, I put them into another build that I wanted to turn into my homelab.
I built the homelab PC, installed Proxmox on it, punched in the address of the Proxmox GUI in my browser and…nothing.
I hooked up a monitor to my Proxmox node and it turns out I can’t ping anything, local or WAN. The node is completely disconnected from the network.
After a bunch of digging, I figured out that Proxmox doesn’t have the drivers needed for my motherboard’s NIC, an intel i225-v (a 2.5 gig NIC). I needed to install the drivers myself. Oh goodie.
I’m going to take you on the journey I had to go through to get an internet connection setup on my Proxmox node, but before that, a quick disclaimer:
[!Disclaimer] This guide is not “optimal”. The dependencies needed to install the i225-v directly are a lot, so I decided to set up Wi-Fi first to be able to install all the dependencies needed for the driver. I don’t uninstall the Wi-Fi drivers, but you’re free to do so.
Now, Let’s get started.
Externally download libraries and drivers for both Wi-Fi and ethernet
The first thing you will need to do is download all the packages and drivers needed to setup Wi-Fi. after we setup a Wi-Fi connection, we can then run apt update and install all the dependencies for the ethernet driver.
[!warning] Careful! The last driver,
r8125, depends on your NIC model. Make sure to double check and download the appropriate Realtek driver for your NIC.
Here are the links to all the drivers you will need:
Drivers in order of install:
libnl-3-200_3.5.0-0.1_amd64
libnl-genl-3-200_3.5.0-0.1_amd64
libpcsclite1_1.9.5-3ubuntu1_amd64
libiw30_30~pre9-13.1ubuntu4_amd64
iw_5.16-1build1_amd64
wireless-tools_30~pre9-13.1ubuntu4_amd64
wpasupplicant_2%3a2.10-6ubuntu2.1_amd64
r8125-9.014.01
Load them on a USB Drive, In a drivers Folder in the root of the USB drive
That’s important, as the script below assumes that’s the location of the driver files.
Now that you have your USB stick with the drivers on it, plug it into the Proxmox node and log into the shell.
The first thing you need to do is mount the USB drive, and for that, you need to figure out what the USB stick is referenced as in the OS.
lsblk
You should be able to figure out which device is the USB stick from it’s size and other info. The ID will be in the format of /dev/<something>
Afterwards, We will make the folder to house the drivers, mount the USB stick and install the Wi-Fi Driver.
[!CAUTION] Pay attention to define the USB drive’s designation in the
mntcommand
mkdir -p /mnt/driversUSB
mkdir -p /opt/drivers
mount /dev/<USB_Drive_Designation> /mnt/driversUSB # CHANGE THE DRIVE DESIGNATION!
cd /mnt/driversUSB/drivers
cp -rf * /opt/drivers
cd /opt/drivers
dpkg -i libnl-3-200_3.5.0-0.1_amd64.deb
dpkg -i libnl-genl-3-200_3.5.0-0.1_amd64.deb
dpkg -i libpcsclite1_1.9.5-3ubuntu1_amd64.deb
dpkg -i libiw30_30~pre9-13.1ubuntu4_amd64.deb
dpkg -i iw_5.16-1build1_amd64.deb
dpkg -i wireless-tools_30~pre9-13.1ubuntu4_amd64.deb
dpkg -i wpasupplicant_2%3a2.10-6ubuntu2.1_amd64.deb
With that, you should be able to connect to Wi-Fi. Fill in the following scripts, but make sure to adjust the SSID, the password and the interface.
wpa_passphrase "<SSID>" '<PASSWORD>' | tee /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant -B -i <INTERFACE> -c /etc/wpa_supplicant/wpa_supplicant.conf
dhclient <INTERFACE>
Now, try to ping an address; 8.8.8.8, google.com or anything else. if it works, we can move on to the next step.
“But Omar, can’t i just stop here and use Wi-Fi?”
Unfortunately, to work with VMs and LXC containers in Proxmox, you need to make a virtual bridge for them to be able to talk with the internet, and Linux isn’t capable of creating bridges for wireless interfaces. you need to be connected via ethernet.
Run the following to finally install the ethernet driver:
apt update
apt install make build-essential pve-headers dkms
tar -xf r8125-9.014.01.tar.bz2
cd r8125-9.014.01
./autorun.sh
reboot now
After the reboot, check for the interfaces
ip link show
Confirm both the Wi-Fi and Ethernet interfaces exist
just to make sure, try pinging again, you should be able to get a response.
Add Virtual Bridge
Now that your node is connected to the internet, we need to create the virtual bridge for your VMs and containers. to do so, type in the command nano /etc/network/interfaces, and edit the file as follows. Again, make sure to pay attention to the interface names and adjust according to your computer.
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!
auto lo
iface lo inet loopback
auto <INTERFACE>
iface <INTERFACE> inet manual
auto vmbr0
iface vmbr0 inet static
address <THE IP ADDRESS YOU WANT>
gateway <YOUR ROUTER GATEWAY>
bridge-ports <INTERFACE>
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
Lastly, make sure The Web GUI points to the correct IP that you set in /etc/network/interfaces. Run nano /etc/hosts and adjust the IP address.
And Now you should be able to access the Web GUI for Proxmox!
Congratulations! Hope this guide was helpful in getting you out of a bind. I have a lot of other guides regarding Proxmox, including GPU passthrough and mapping, as well as a bunch of bootstrap scripts for a whole bunch of self hosted applications. make sure to check them out!