--- title: Proxmox description: Bare-metal Hypervisor Virtualization Platform showHero: false author: wompmacho date: '2026-04-11' lastmod: '2026-04-11' tags: ['virtualization', 'self-hosted', 'linux', 'kvm', 'lxc'] --- ## What is Proxmox? Proxmox Virtual Environment (VE) is a powerful, open-source Bare-metal Hypervisor / virtualization management platform. It integrates two virtualization technologies—Kernel-based Virtual Machine (KVM) for virtual machines and Linux Containers (LXC) for lightweight container-based virtualization—into a single, easy-to-manage solution with a web-based interface. > [!NOTE] I actually set this up a while ago, just now getting around to document things. I have run a few itterations of proxmox, the current is my main compute note in my setup hosting most of my docker containers, game-servers, dns resolver / sink etc. --- ## When choosing CPU... Currently I am running `Proxmox > Ubuntu VM > code-server` for a nice CitC (client in the cloud) like interface I can use to access my projects / documentation and code from anywhere. Had some issues when I wanted to integrate gemini code assistant extension into my code-server instance. *Turns out*: in version v2.56 they switched over to a more moderen cpu instruction set / in order to optimize for moderen ai-assisted workflows. Older default cpu architextures (*like the one used by my ubuntu vm at the time*) are missing some newer instruction sets that are required for the extension to run. > [!NOTE] I struggled with this for a few weeks until I finally looked a bit deeper / aided by gemini `xD` This is generally only a problem when you are creating a vm for the first time, so when making a vm; consider its uses and if it would make sense to not use the default options like I did. Luckily; they are interchangable on proxmox vms and do not require any sort of reinstalation like you would on a normal OS. ### Code Assist on a VM The "The Gemini Code Assist server crashed 5 times" error can occur when using code-server or VS Code. This crash, identified by the SIGILL (Illegal Instruction) signal, is usually due to a hardware mismatch. #### The Problem This is caused by a modern Instructions set on "Generic" Hardware. Starting with version 2.56, the Gemini Code Assist server binary needs the `AVX` (Advanced Vector Extensions) instruction set. Proxmox often sets a VM's CPU type to kvm64. This hides these instructions for compatibility. When the extension tries to run an AVX command on a CPU that doesn't "have" it, the process crashes. #### The Solution - Step 1: Diagnosing the CPU: A command can check for the required instruction flags. In the Ubuntu terminal, run: ```sh lscpu | grep -i 'avx\|aes\|pclmul' ``` The Result: If the output shows aes, but avx and pclmul are missing, the virtual processor is too "basic". - Step 2: The Immediate Fix (Downgrade) To fix this, roll back to a version before these requirements were enforced: 1. Go to the Extensions tab in VS Code. 2. Click the gear icon for Gemini Code Assist and select "Install Another Version...". 3. Choose v2.55.x or earlier. 4. Important: Uncheck "Auto Update" to prevent it from breaking again. - Step 3: The Long-Term Fix (Proxmox CPU Passthrough) The best fix is to expose the physical CPU's features to the VM. No reinstallation is required. How to change to "Host" Processor in Proxmox: 1. Shut down the Ubuntu VM. 2. Log into your Proxmox Web UI. 3. Select the VM > Hardware > Processors. 4. Double-click Type and change it from Default (kvm64) to host. 5. Restart the VM. ### Why use "Host"? Setting the type to host passes the physical CPU's features—including AVX—directly to your Ubuntu instance. This fixes the Gemini crash and can improve performance. - In host mode, the VM executes code directly on the physical hardware. - This results in lower CPU latency and better performance in high-demand applications like databases, compilation (GCC/Clang), and web servers. - Modern software often needs specific "shortcuts" in modern CPUs. - AVX/AVX2/AVX-512: These are important for math-heavy tasks and AI. - AES-NI: Speeds up encryption, which makes SSH, VPNs, and HTTPS faster. - PCLMULQDQ: Speeds up data integrity checks and modern security protocols. - The Linux scheduler can more intelligently place tasks on the right cores. - The VM can sometimes access hardware-level performance counters, which is vital if you are doing any low-level debugging or performance profiling. - If you want to run Docker with specialized isolation or even run a VM inside a VM (Nested Virtualization), host mode is usually the most stable way to pass through the necessary "VMX" (Intel) or "SVM" (AMD) flags. - Modern CPUs have hardware-level protections (like Execute Disable Bit or SMEP/SMAP) that protect against memory injection attacks. Generic CPU models often disable these to ensure the VM can boot on any old server; host mode enables them fully.