# Ubuntu 24.04系统安装与NVIDIA RTX 4090显卡驱动配置指南
## 一、系统安装准备
### 1.1 安装介质制作
```bash
# 在现有Linux系统中创建启动U盘
# 首先识别U盘设备(假设为/dev/sdb)
sudo fdisk -l | grep Disk
# 下载Ubuntu 24.04 LTS镜像
wget https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
# 使用dd命令写入U盘(注意:会清空U盘所有数据)
sudo dd if=ubuntu-24.04-live-server-amd64.iso of=/dev/sdb bs=4M status=progress
sudo sync
# 验证写入结果
sudo fdisk -l /dev/sdb
```
### 1.2 BIOS/UEFI设置
安装前需正确配置系统固件:
1. **禁用安全启动(Secure Boot)** - NVIDIA驱动需要此设置
2. **启用UEFI模式** - 推荐使用UEFI而非传统BIOS
3. **调整启动顺序** - 设置U盘为首选启动设备
4. **禁用快速启动(Fast Boot)** - 确保硬件完全初始化
## 二、Ubuntu 24.04安装步骤
### 2.1 系统安装过程
安装时的重要选择:
```bash
# 安装过程中的关键配置
# 1. 语言选择: English (便于后续排查问题)
# 2. 键盘布局: US English
# 3. 安装类型: Ubuntu Server (最小化安装) 或 Ubuntu Desktop
# 4. 网络配置: 建议设置静态IP,便于远程访问
# 5. 存储配置: 使用整个磁盘,启用LVM (便于后续管理)
# 6. 用户设置: 创建管理员账户,启用SSH服务
```
### 2.2 安装后基础配置
```bash
# 首 次登录后更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础开发工具
sudo apt install -y build-essential git curl wget
# 配置网络(如需静态IP)
cat <<EOF | sudo tee /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
EOF
sudo netplan apply
# 验证网络连接
ping -c 3 google.com
```
## 三、NVIDIA RTX 4090驱动安装
### 3.1 安装前准备工作
```bash
# 1. 禁用Nouveau开源驱动
# 创建黑名单配置文件
cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
EOF
# 更新initramfs
sudo update-initramfs -u
# 2. 安装内核头文件和开发工具
sudo apt install -y linux-headers-$(uname -r) \
dkms \
gcc \
make
# 3. 切换到控制台模式(桌面环境需执行)
sudo systemctl isolate multi-user.target
# 或直接重启到控制台
sudo reboot
```
### 3.2 驱动安装方法选择
#### 方法A:使用NVIDIA官方.run文件
```bash
# 从NVIDIA官网下载最新驱动
# https://www.nvidia.com/Download/index.aspx
# 选择:RTX 4090 -> Linux 64-bit
# 下载驱动(以550.90.07版本为例)
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.90.07/NVIDIA-Linux-x86_64-550.90.07.run
# 添加执行权限
chmod +x NVIDIA-Linux-x86_64-550.90.07.run
# 运行安装程序
sudo ./NVIDIA-Linux-x86_64-550.90.07.run \
--dkms \
--silent \
--no-cc-version-check \
--install-libglvnd
# 安装选项说明:
# --dkms: 集成到DKMS内核模块管理
# --silent: 静默安装
# --no-cc-version-check: 跳过编译器版本检查
# --install-libglvnd: 安装GLVND库
```
#### 方法B:使用Ubuntu图形驱动PPA
```bash
# 添加图形驱动团队PPA
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
# 查看可用驱动版本
ubuntu-drivers devices
# 安装推荐驱动(通常是最新版)
sudo apt install -y nvidia-driver-550
# 或安装特定版本
sudo apt install -y nvidia-driver-550-server # 服务器版本
```
### 3.3 驱动安装验证
```bash
# 重启系统
sudo reboot
# 验证驱动安装
nvidia-smi
# 期望输出类似:
# +---------------------------------------------------------------------------------------+
# | NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 |
# |-----------------------------------------+----------------------+----------------------+
# | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
# | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
# | | | MIG M. |
# |=========================================+======================+======================|
# | 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 Off | Off |
# | 0% 34C P8 17W / 450W | 6MiB / 24564MiB | 0% Default |
# | | | N/A |
# +-----------------------------------------+----------------------+----------------------+
# 查看驱动详细信息
nvidia-smi -q | head -20
# 检查内核模块加载
lsmod | grep nvidia
# 验证OpenGL支持
glxinfo | grep -i "opengl"
```
## 四、CUDA与cuDNN安装配置
### 4.1 CUDA Toolkit安装
```bash
# 方法A:使用NVIDIA官方仓库
# 添加NVIDIA CUDA仓库
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
# 安装CUDA Toolkit(推荐版本)
sudo apt install -y cuda-toolkit-12-4
# 方法B:使用runfile安装
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
# 配置环境变量
cat <<EOF >> ~/.bashrc
export PATH=/usr/local/cuda-12.4/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:\$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-12.4
EOF
source ~/.bashrc
# 验证CUDA安装
nvcc --version
nvidia-smi
```
### 4.2 cuDNN安装
```bash
# 从NVIDIA开发者网站下载cuDNN
# 需要注册账户:https://developer.nvidia.com/cudnn
# 下载对应CUDA 12.4的cuDNN版本
# 解压并安装
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include/
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
# 验证cuDNN安装
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
```
## 五、性能优化与监控
### 5.1 电源管理模式配置
```bash
# 查看当前电源模式
sudo nvidia-smi -q | grep -A 3 "Power Management"
# 设置性能模式
sudo nvidia-smi -pm 1 # 启用持久模式
sudo nvidia-smi -pl 450 # 设置功率限制(单位:瓦)
<"iron.yunruiwater.cn"><"snake.sxyicheng.cn"><"tree.jsnjz.cn">
# 设置电源管理模式为自适应
sudo nvidia-settings -a "[gpu:0]/GPUPowerMizerMode=1"
# 可用模式:
# 0 = 自适应
# 1 = 最高性能
# 2 = 自动
```
### 5.2 显卡监控脚本
```bash
#!/bin/bash
# gpu_monitor.sh
# 监控GPU状态
monitor_gpu() {
while true; do
clear
echo "=== NVIDIA RTX 4090 监控 ==="
echo "时间: $(date)"
echo
# 显示基础信息
nvidia-smi --query-gpu=index,name,temperature.gpu,utilization.gpu,utilization.memory,power.draw,power.limit --format=csv
echo
echo "--- 进程信息 ---"
nvidia-smi pmon -c 1
echo
echo "按 Ctrl+C 退出"
sleep 2
done
}
# 记录GPU统计到文件
log_gpu_stats() {
while true; do
nvidia-smi --query-gpu=timestamp,temperature.gpu,utilization.gpu,utilization.memory,power.draw,clocks.gr,clocks.mem --format=csv,noheader >> ~/gpu_log.csv
sleep 30
done
}
# 根据参数选择模式
case "${1:-}" in
monitor)
monitor_gpu
;;
log)
log_gpu_stats
;;
*)
echo "用法: $0 {monitor|log}"
exit 1
;;
esac
```
## 六、常见问题解决
### 6.1 驱动安装失败处理
```bash
# 如果驱动安装失败,执行清理
sudo apt purge nvidia-* -y
sudo apt autoremove -y
# 彻底移除NVIDIA相关文件
sudo rm -rf /usr/lib/nvidia
sudo rm -rf /etc/X11/xorg.conf
# 重新生成内核模块依赖
sudo depmod -a
sudo update-initramfs -u
# 重启后重试安装
```
### 6.2 性能问题排查
```bash
# 检查显卡是否正确识别
lspci | grep -i nvidia
# 验证PCIe连接速度
nvidia-smi -q | grep -A 4 "Link Info"
# 检查内存时钟和图形时钟
nvidia-smi -q | grep -A 2 "Clocks"
# 测试CUDA功能
cat > test_cuda.cu << 'EOF'
#include <stdio.h>
#include <cuda_runtime.h>
int main() {
int deviceCount;
cudaGetDeviceCount(&deviceCount);
for (int i = 0; i < deviceCount; i++) {
cudaDeviceProp prop;
cudaGetDeviceProperties(&prop, i);
printf("Device %d: %s\n", i, prop.name);
printf(" Compute Capability: %d.%d\n", prop.major, prop.minor);
printf(" Memory: %zu MB\n", prop.totalGlobalMem / 1024 / 1024);
}
return 0;
}
EOF
nvcc test_cuda.cu -o test_cuda
./test_cuda
```
### 6.3 多用户/远程访问配置
```bash
# 允许非特权用户访问GPU
sudo groupadd nvidia-users
sudo usermod -aG nvidia-users $USER
# 创建udev规则
cat <<EOF | sudo tee /etc/udev/rules.d/70-nvidia.rules
# 允许nvidia-users组访问GPU
KERNEL=="nvidia*", MODE="0666", GROUP="nvidia-users"
EOF
# 重新加载udev规则
sudo udevadm control --reload-rules
sudo udevadm trigger
# 配置远程桌面(如需要)
sudo apt install -y xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
# 配置防火墙允许RDP
sudo ufw allow 3389/tcp
```
## 七、深度学习环境搭建
### 7.1 PyTorch安装
```bash
# 安装PyTorch with CUDA 12.4
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
# 验证PyTorch CUDA支持
python3 -c "import torch; print(f'PyTorch版本: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'设备数量: {torch.cuda.device_count()}')"
# 如果显示CUDA可用,测试张量计算
python3 -c "
import torch
x = torch.rand(1000, 1000).cuda()
y = torch.rand(1000, 1000).cuda()
z = x @ y
print(f'GPU计算完成,结果形状: {z.shape}')
"
```
### 7.2 TensorFlow安装
```bash
# 安装TensorFlow with GPU支持
pip3 install tensorflow[and-cuda]
# 验证安装
python3 -c "
import tensorflow as tf
print(f'TensorFlow版本: {tf.__version__}')
print(f'GPU设备列表: {tf.config.list_physical_devices(\"GPU\")}')
"
# 性能基准测试
cat > tf_benchmark.py << 'EOF'
import tensorflow as tf
import time
# 创建随机数据
size = 5000
with tf.device('/GPU:0'):
a = tf.random.normal([size, size])
b = tf.random.normal([size, size])
# 测试矩阵乘法性能
start = time.time()
c = tf.matmul(a, b)
end = time.time()
print(f'矩阵大小: {size}x{size}')
print(f'计算时间: {end-start:.2f}秒')
print(f'TFLOPS估算: {(2*size**3)/(end-start)/1e12:.2f}')
EOF
python3 tf_benchmark.py
```
## 八、系统维护脚本
```bash
#!/bin/bash
# nvidia_maintenance.sh
# 更新驱动
update_driver() {
echo "检查NVIDIA驱动更新..."
sudo apt update
sudo apt upgrade nvidia-driver-550 -y
sudo apt autoremove -y
}
# 清理缓存
clean_cache() {
echo "清理GPU缓存..."
sudo rm -rf ~/.nv
sudo rm -rf /tmp/nvidia*
# 清理CUDA缓存
find ~ -name "*.pyc" -delete
find ~ -name "__pycache__" -type d -exec rm -rf {} +
}
# 系统健康检查
health_check() {
echo "=== 系统健康检查 ==="
# 检查驱动状态
if nvidia-smi &>/dev/null; then
echo "✓ NVIDIA驱动运行正常"
else
echo "✗ NVIDIA驱动异常"
fi
# 检查温度
temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)
if [ "$temp" -lt 85 ]; then
echo "✓ GPU温度正常: ${temp}°C"
<"fomo.csxthr.com"><"dax.zhaiLimao.com"><"jushengyan.yunruiwater.cn">
else
echo "⚠ GPU温度偏高: ${temp}°C"
fi
# 检查内存使用
echo "GPU内存使用:"
nvidia-smi --query-gpu=memory.total,memory.used,memory.free --format=csv
}
# 主菜单
case "${1:-}" in
update)
update_driver
;;
clean)
clean_cache
;;
check)
health_check
;;
*)
echo "NVIDIA RTX 4090 维护工具"
echo "用法: $0 {update|clean|check}"
exit 1
;;
esac
```
按照本指南操作,可以在Ubuntu 24.04系统上成功安装并优化配置NVIDIA RTX 4090显卡驱动,为高性能计算和深度学习任务提供稳定可靠的基础环境。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19545/viewspace-3108744/ ,如需转载,请注明出处,否则将追究法律责任。