AI server Build
Ubunut 24.04
[[:tech:Linux:AI Setup]] \\
====== Install all drivers needed for using V100 on Ubuntu 24.04 LTS ======
Setting up an enterprise data center GPU like the NVIDIA V100 (Volta architecture) on **Ubuntu 24.04 LTS** requires the proprietary driver and the CUDA Toolkit. Since the V100 is typically used in a headless server environment for compute, machine learning, and AI workloads, a **compute-only/headless driver installation** is ideal. This avoids dragging in unnecessary graphical desktop packages.
Here is the clean, streamlined method using the official NVIDIA network repositories for Ubuntu 24.04.
==== Step 1: Clean Up Existing Drivers ====
To prevent conflicts with generic open-source or older drivers, remove any current installations:
sudo apt-get purge 'nvidia\*' 'cuda\*' -y
sudo apt-get autoremove -y
==== Step 2: Install Linux Kernel Headers ====
Ensure you have the correct kernel headers installed so the NVIDIA kernel modules can compile properly:
sudo apt-get update
sudo apt-get install linux-headers-$(uname -r) build-essential -y
==== Step 3: Setup the NVIDIA & CUDA Network Repository ====
NVIDIA provides a repository pinned to Ubuntu 24.04 (noble). Fetch the repository configurations and GPG keys so apt can safely pull the latest stable packages:
# Download the repository pin file to set priority
wget \_64/cuda-ubuntu2404.pin
sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
# Download and install the repository package
wget \_64/cuda-keyring\_1.1-1\_all.deb
sudo dpkg -i cuda-keyring\_1.1-1\_all.deb
# Update apt package listings
sudo apt-get update
==== Step 4: Install the Drivers and CUDA Toolkit ====
For enterprise cards like the V100, the stable branch (such as the nvidia-driver-550-server or nvidia-driver-565-server depending on repository syncs) is highly recommended.
To fetch the **headless, data-center optimal drivers** alongside the CUDA toolkit, run:
sudo apt-get -y install cuda-toolkit-12-8 nvidia-headless-server-550 nvidia-utils-550
*Note: If you plan on deploying Docker containers that utilize the V100, you should install the container runtime package as well:* `sudo apt-get install -y nvidia-container-toolkit`
==== Step 5: Update Environment Variables ====
To ensure your system paths find the CUDA binaries, append them to your shell configuration (\~/.bashrc):
echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' \>\> \~/.bashrc
echo 'export LD\_LIBRARY\_PATH=/usr/local/cuda/lib64${LD\_LIBRARY\_PATH:+:${LD\_LIBRARY\_PATH}}' \>\> \~/.bashrc
source \~/.bashrc
==== Step 6: Reboot and Verify ====
Restart the machine to initialize the newly compiled kernel modules:
sudo reboot
Once the system is back up, verify that the OS recognizes the V100 and that the drivers are operational:
nvidia-smi
You should see an output matrix detailing your V100, its current temperature, power consumption, and the driver/CUDA version currently running.
====== GeForce 210 Driver Override Guide ======
We cannot fix this the ''nouveau'' driver cannot live with the V100 NVidia driver
====== Installing Docker on Ubuntu 24.04 ======
To install **Docker Engine** on **Ubuntu 24.04**, the official and recommended method is to set up Docker's official ''apt'' repository. This ensures you get the latest stable version and automatic future updates.
===== Step 1: Remove Conflicting Packages =====
Before starting, remove any default or unofficial Docker packages to prevent conflicts:
sudo apt remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
===== Step 2: Set Up the Docker Repository =====
Update your package index and install the prerequisite security certificates:
sudo apt update
sudo apt install -y ca-certificates curl gnupg
Next, add Docker's official GPG key to verify package authenticity:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://docker.com -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Add the stable repository to your system's ''apt'' sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://docker.com \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
===== Step 3: Install Docker Engine & Plugins =====
Update your repository index to include Docker's packages, then install Docker Engine, the CLI, and **Docker Compose V2**:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
===== Step 4: Verify the Installation =====
Check if the service is up and running:
sudo systemctl status docker
Run the default test container to verify it pulls and executes properly:
sudo docker run hello-world
----
===== Optional: Run Docker Without Sudo =====
By default, Docker requires root privileges. To run commands as a regular user, add yourself to the ''docker'' group:
* Create the group (usually exists already):
sudo groupadd docker
* Add your user to the group:
sudo usermod -aG docker $USER
* Apply the changes immediately without logging out:
newgrp docker
* Verify by running without ''sudo'':
docker run hello-world
For detailed troubleshooting or specific alternative guides, you can refer to the [[https://docker.com|Official Docker Engine Installation Docs]].
====== Enabling NVIDIA AI and GPU Acceleration on Docker ======
To enable NVIDIA AI and GPU acceleration on Docker, you must install and configure the **NVIDIA Container Toolkit**. This acts as the bridge that allows Docker containers to access your host machine's physical GPU.
Here is how to set it up on a Linux host (such as Ubuntu).
===== 1. Install Prerequisites =====
Ensure you have the official NVIDIA drivers installed on your host system, along with Docker Engine. Validate your driver installation by running:
nvidia-smi
//(You should see a table displaying your GPU information.)//
===== 2. Install the NVIDIA Container Toolkit =====
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
Add the official package repositories and install the toolkit:
# Add the NVIDIA package repository
curl -fsSL https://github.io | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
# Update package list and install
sudo apt-get update
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.19.1-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
===== 3. Configure the Docker Runtime =====
Configure the Docker daemon to automatically recognize the NVIDIA container runtime, then restart the Docker service:
# Configure Docker to use the NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
# Restart the Docker service to apply changes
sudo systemctl restart docker
===== 4. Verify GPU Access in Docker =====
Test the configuration by running a lightweight, official CUDA container. Passing the ''--gpus all'' flag tells Docker to expose your graphics cards to the container:
docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
If successful, the container will print out your host GPU details exactly like the native ''nvidia-smi'' command did.
----
===== Alternative: Docker Desktop (Windows / Mac) =====
If you are developing locally via Docker Desktop, you do not need to manually install the toolkit. Instead, you can leverage native AI features:
* **WSL 2 (Windows)**: Ensure WSL integration is turned on under **Settings > Resources > WSL Integration** in Docker Desktop.
* **Docker Model Runner (DMR)**: Go to **Settings > AI**, check **Enable Docker Model Runner**, and select **Enable GPU-backed inference** to pull and manage local AI models natively using commands like ''docker model run''.
If you plan to deploy enterprise-grade AI workloads, you can also authenticate your Docker client to the NVIDIA NGC Container Registry using an API key. This gives you direct access to fine-tuned, GPU-optimized AI models and microservices.
====== Installing LM Studio on Ubuntu 24.04 ======
To install LM Studio on Ubuntu 24.04 LTS, you have two primary options: the **headless lms daemon** (ideal for servers, command-line usage, or API orchestration) or the **AppImage** (for the full graphical interface).
---
===== Option 1: Headless Daemon (lms) =====
If you intend to use LM Studio for backend services, API hosting, or CI/CD, the ''lms'' daemon is the official, recommended approach.
==== 1. Install the Daemon ====
Run the following command in your terminal to download and execute the official installer:
curl -fsSL https://lmstudio.ai/install.sh | bash
==== 2. Usage ====
Once the installation script completes, you can interact with the service directly using the ''lms'' CLI.
To start the background service:
lms daemon up
**Note:** If you encounter an "Illegal instruction" error upon execution, ensure your system's ''libc'' and environment variables are fully updated. This can sometimes occur on bleeding-edge hardware configurations.
---
===== Option 2: Graphical AppImage (Full GUI) =====
If you require the standard LM Studio desktop interface, you must download the AppImage. Note that Ubuntu 24.04 enforces strict sandboxing rules that require manual adjustment.
==== 1. Download and Make Executable ====
Download the latest Linux AppImage from the official LM Studio website, then give it execution permissions:
chmod +x LM_Studio-*.AppImage
==== 2. Extract and Configure Sandbox ====
The application will likely fail to launch unless you fix the ''chrome-sandbox'' permissions. Extract the AppImage and update the owner permissions:
# Extract the AppImage
./LM_Studio-*.AppImage --appimage-extract
# Navigate to the extracted folder
cd squashfs-root
# Fix sandbox permissions
sudo chown root:root chrome-sandbox
sudo chmod 4755 chrome-sandbox
==== 3. Launch the Application ====
You can now run the application from within the extracted directory:
./lm-studio
If you still encounter sandboxing issues and prefer to bypass it, you can launch with the ''--no-sandbox'' flag (use with caution):
./lm-studio --no-sandbox
---
===== Troubleshooting & Performance =====
^ Issue ^ Resolution ^
| **Missing Dependencies** | Install base libraries: \\ sudo apt install libatk1.0-0 libatk-bridge2.0-0 libcups2 libgdk-pixbuf2.0-0 libgtk-3-0 libpango-1.0-0 libcairo2 libxcomposite1 libxdamage1 libasound2t64 libatspi2.0-0 |
| **Hardware Acceleration** | For integrated or discrete GPUs, ensure your drivers (such as ''intel-media-va-driver-non-free'' for Intel setups) are properly configured via ''mesa'' to ensure local model inference acceleration. |