A few days ago, we discussed how to install Proxmox VE standalone edition. Today, we will see how to install Proxmox VE on Debian 11 bullseye in an Intel NUC mini PC and access Proxmox web dashboard. In addition, we will also discuss how to create a network bridge and how to setup Wireless network card as a bridge.
I recently bought an Intel NUC mini PC. The exact model of Intel NUC is NUC11PAHi3. The specification of my Intel NUC is Core i3 11th gen, with 32 GB RAM and 500 GB NVMe disk.
I decided to use my NUC PC to learn virtualization and deploy many VMs and containers for testing purpose. I already have experience with Proxmox VE, so I decided to install it. My plan was to install Debian 11 and then install Proxmox on top of Debian.
However, installing Proxmox VE on Debian bullseye in an latest Intel NUC wasn't easy, but I managed to get it working after several attempts. The main issue with latest Intel NUC is the drivers.
Debian linux-firmware and proxmox-firmware packages conflicts with each other. I can't install both. So I had to extract the firmware package and manually copy/paste the contents of the firmware package in order to install the Bluetooth and sound drivers on Debian after installing Proxmox. This is the tricky part.
I have split this tutorial in three sections. The first section explains how to install Debian 11 bullseye on Intel NUC11PAHi3 system. Then we will see how to update the Debian 11 system and install the required drivers.
The second section explains how to install Proxmox VE on Debian 11 in the Intel NUC PC and how to manually install the drivers. This is the main goal of this tutorial.
The third and final section includes the steps to access the Proxmox web dashboard, and how to create a network bridge to allow containers and virtual machines to interact with the host machine (i.e. Debian 11).
Let us get started.
Section 1 - Install Debian 11 Bullseye on Intel NUC
Installing Debian 11 bullseye is not a big deal. We already have documented the Debian 11 installation steps with screenshots in the link below.
I followed the exact steps of the above tutorial to install Debian 11 on my Intel NUC. The only minor change was I chose "Guided Partition - Use entire disk and set up encrypted LVM" option instead of "Manual partitioning" while partitioning the disk. You can choose your own partitioning scheme.
1.1. Add System User To Sudo Group
After installing Debian 11, you should add the system user that you created during OS installation to
sudo group to perform administrative actions.
To do so, switch to
root user by running the following command:
$ su -
And then run:
# usermod -aG sudo ostechnix
ostechnix in the above command with our own user name.
exit and hit ENTER to go back to the normal user prompt.
Log out and log back in to apply the changes. Now the user should be able to perform administrative tasks.
1.2. Update Software Sources
Next, we need to update the repository list. To do so, open Software center as
root user using command:
$ sudo software-properties-gtk
This will open Software & Updates section where you can select the main, contrib and non-free repositories.
Click Close button. You will be prompted to update the repositories sources. Click yes to agree to update repositories list.
If you don't have a graphical desktop on Debian, make sure you have added the following lines on your
/etc/apt/sources.list file to enable the aforementioned repositories.
deb http://deb.debian.org/debian/ bullseye main contrib non-free deb http://deb.debian.org/debian/ bullseye-updates main non-free contrib deb http://security.debian.org/debian-security bullseye-security main contrib non-free
Once the repository update task is completed, run the following commands to update Debian 11 system.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
$ sudo apt full-upgrade
Reboot your system to use the latest version. At this stage, you will have an updated Debian 11 system.
1.3. Install Bluetooth And Wireless Drivers
Even though we have an up-to-date Debian version, the Wifi and Bluetooth devices will not work in the latest Intel NUC models.
To install Wifi and Bluetooth drivers on Debian 11 in Intel NUC PC, you should install the firmware-iwlwifi package. This package is available only in non-free repository, so make sure you have enabled the non-free repository as shown in the previous steps.
$ sudo apt install firmware-iwlwifi
Once again, reboot your system.
Congratulations! You now have an updated Debian 11 OS with all drivers on the Intel NUC PC. Now Bluetooth Wifi drivers will work. You can connect to the any available Wifi networks and disconnect the wired connection if you don't need it.
Section 2 - Install Proxmox VE On Debian 11 In Intel NUC
The following steps are exclusively tested on an Intel NUC PC. However, the steps given below can be run on any system powered by Debian.
Step 1: Add IP address of your Proxmox system to hosts file
The hostname of your system must be resolvable via the hosts file. To do so, open
/etc/hosts file and add the IP address of your system.
$ sudo nano /etc/hosts
Update the IP address as shown below.
192.168.43.100 pvedebian.ostechnix.lan pvedebian
Replace the IP address and hostname with your own in the above file. Press
CTRL+O, and hit ENTER to save the file and hit CTRL+X to close it.
You can verify if the hostname is resolvable by running the following command:
$ hostname --ip-address
This should return the IP address of your Proxmox system.
Step 2: Add Proxmox VE Software Repositories
Run the following commands as sudo user to add Proxmox VE repository and GPG key.
$ sudo sh -c 'echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list'
$ sudo sh -c 'wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg'
Update the software repository list and upgrade your system:
$ sudo apt update
$ sudo apt full-upgrade
Step 3: Install Proxmox VE
Run the following command to install Proxmox VE on Debian in your Intel NUC PC.
$ sudo apt install proxmox-ve postfix open-iscsi
If you have a mail server in your network, you should configure postfix as a satellite system. Your existing mail server will then be the relay host which will route the emails sent by Proxmox VE to their final recipient.
If you don't have a mail server and If you don't know what to enter here, choose local only and choose OK and hit ENTER.
Leave the system name as is and hit ENTER to continue.
This will install Proxmox kernel and set it as a default kernel.
Finally, reboot your system.
$ sudo reboot
The system will now boot into Proxmox kernel by default.
Step 4: Install Bluetooth drivers, again
As stated earlier, once you installed Proxmox packages, the Bluetooth device will not work anymore in Intel NUC. Because, linux-firmware and proxmox-firmware packages conflicts with each other. So linux-firmware package along with firmware-iwlwifi package will be uninstalled during Proxmox installation.
To make the Bluetooth work again, you should have linux-firmware package installed. But proxmox won't allow it. You can install only either of the packages. So in order to fix Bluetooth issue, we need to manually install the drivers.
Download firmware-iwlwifi package from Debian packages site. The firmware-iwlwifi package contains the binary firmware for Intel Wireless cards supported by the iwl3945, iwl4965, and iwlwifi drivers.
Extract firmware-iwlwifi package anywhere in your local disk (just right click and choose extract). I extracted in
~/Downloads directory. Inside the firmware-iwlwifi folder, you will see a tar file named
data.tar.xz file too.
You will get two more folders namely
lib folder contains a directory named firmware, which contains all the driver files for Intel wireless and Bluetooth devices.
Go to the
lib/firmware folder using command:
$ cd Downloads/firmware-iwlwifi_20210315-3_all/lib/firmware/
Copy everything from here to your system's
$ sudo cp -r . /lib/firmware/
Finally, run the following command to update drivers in Kernel.
$ sudo update-initramfs -k all -u
This command will add all the drivers to Proxmox kernel and update it.
Reboot your system:
$ sudo reboot
Now the Bluetooth devices will start work again. You can verify if the Bluetooth driver is loaded or not using the following command:
$ sudo dmesg | grep tooth
If you see "Found device firmware: intel/ibt-xx-x-x.sfi" line in the output, your Bluetooth driver is loaded and it should be working already.
[ 3.815883] Bluetooth: Core ver 2.22 [ 3.815903] Bluetooth: HCI device and connection manager initialized [ 3.815906] Bluetooth: HCI socket layer initialized [ 3.815907] Bluetooth: L2CAP socket layer initialized [ 3.815910] Bluetooth: SCO socket layer initialized [ 3.822717] Bluetooth: hci0: Bootloader revision 0.4 build 0 week 30 2018 [ 3.823718] Bluetooth: hci0: Device revision is 2 [ 3.823720] Bluetooth: hci0: Secure boot is enabled [ 3.823721] Bluetooth: hci0: OTP lock is enabled [ 3.823722] Bluetooth: hci0: API lock is enabled [ 3.823722] Bluetooth: hci0: Debug lock is disabled [ 3.823723] Bluetooth: hci0: Minimum firmware build 1 week 10 2014 [ 3.824545] Bluetooth: hci0: Found device firmware: intel/ibt-19-0-4.sfi [ 4.075405] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 4.075408] Bluetooth: BNEP filters: protocol multicast [ 4.075411] Bluetooth: BNEP socket layer initialized [ 5.694039] Bluetooth: hci0: Waiting for firmware download to complete [ 5.694725] Bluetooth: hci0: Firmware loaded in 1826345 usecs [ 5.694798] Bluetooth: hci0: Waiting for device to boot [ 5.709691] Bluetooth: hci0: Device booted in 14570 usecs [ 5.710945] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-19-0-4.ddc [ 5.712944] Bluetooth: hci0: Applying Intel DDC parameters completed [ 5.715964] Bluetooth: hci0: Firmware revision 0.0 build 121 week 7 2021 [ 5.776726] Bluetooth: hci0: MSFT filter_enable is already on [ 11.179777] Bluetooth: RFCOMM TTY layer initialized [ 11.179784] Bluetooth: RFCOMM socket layer initialized [ 11.179787] Bluetooth: RFCOMM ver 1.11
Section 3 - Access Proxmox Web Dashboard
Open your web browser and navigate to https://IP-Address:8006. You will see an security warning message. Just click "Advanced" button and then click "Accept the risk and Continue" button to bypass the warning message.
You will be pleased with the Proxmox login scree. Enter the user name (root) and its password that you set during Debian OS installation.
You will see "No Valid Subscription" message upon login.
This is normal. We haven't added Proxmox license yet, so this window will appear whenever you login to Proxmox dashboard. Click OK to close this window.
Now you will land into the Proxmox web dashboard where you can perform all sorts of Proxmox administration tasks, creating, editing, deleting VMs and containers.
Next, we should do the following two important tasks.
- Create a network bridge in order to let the containers and VMs to interact with the host system.
- Masquerading (NAT) with iptables.
Please note that you should do the following steps only;
- If you installed Proxmox on top of Debian. If you installed Proxmox standalone version, just skip this step.
- If you want to use Wireless device as network bridge.
3.1. Create Network Bridge For Containers And VMs
As I already mentioned, If you have installed Proxmox standalone version, you don't need to do this. A network bridge named vmbr0 will be automatically created and configured by default. However, if you installed Proxmox on Debian, you must create a network bridge manually.
Click the Proxmox host on the left pane. Click "Network" tab under "System" section. Click "Create" drop-down button on the right pane and click "Linux Bridge" option.
Enter the IP address and gateway for the network bridge and click Create button
Heads Up: Here, I left the field "Bridge ports" field blank. Because, I want to use my wireless device as a bridge. If you plan to use Ethernet card, you must mention the name of Ethernet card (E.g. enp89s0) in the Bridge ports field.
Click Apply Configuration button to apply the changes to take effect.
Done. we just created a network bridge for the containers and VMs.
3.2. Setup WiFi Network Interface As bridge (Masquerading (NAT) with iptables)
This step is also optional and needs to be done only when you want to use Wireless network device as a bridge instead of the Wired Ethernet network device.
/etc/network/interfaces file in your favorite editor:
$ sudo nano /etc/network/interfaces
Add the following lines below the vmbr0 section.
post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '192.168.1.0/24' -o wlo1 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.1.0/24' -o wlo1 -j MASQUERADE
Replace 192.168.1.0/24 with your own subnet and wlo1. You can get the name of the Wireless card with '
ip a' command.
Heads Up: Please note that your subnet should match with your network bridge's IP address. In this setup, my network bridge's IP address is
192.168.1.101/24 and subnet is
CTRL+O and ENTER to save the changes and press
CTRL+X to close the file.
Restart NetworkManager service and then reboot your system.
$ sudo systemctl restart NetworkManager
$ sudo reboot
That's it. At this stage, you must have a working Proxmox virtualization environment on Debian 11.
In this detailed guide, we discussed how to install Debian 11 bullseye on an Intel NUC PC. Then we learned how to install Proxmox VE on Debian 11 with Wireless and Bluetooth driver support.
We also saw how to access Proxmox Web interface and create a network bridge from the web dashboard. Finally. we concluded the tutorial with setting up a wireless network device as bridge.
In our upcoming guides, we will see how to how to create containers and VMs and various other Proxmox topics in detail.