//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
看显卡类型
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
lspci | grep -i nvidia
# 输出如下
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2216 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 1aef (rev a1)
https://admin.pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci
查询显卡类型
Name: GA106 [RTX A2000 12GB]
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装适合本机显卡的nvidia驱动
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
https://blog.csdn.net/ytusdc/article/details/132403852?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-132403852-blog-143232570.235^v43^pc_blog_bottom_relevance_base9&spm=1001.2101.3001.4242.1&utm_relevant_index=3
# 锁定内核版本
sudo apt-mark hold linux-image-generic linux-headers-generic
# 如需恢复更新执行
sudo apt-mark unhold linux-image-generic linux-headers-generic
# 检查锁定状态:
apt-mark showhold
ubuntu-drivers devices
modalias : pci:v000010DEd00002571sv000017AAsd00001611bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-570 - distro non-free
driver : nvidia-driver-570-server - distro non-free
driver : nvidia-driver-535 - distro non-free
driver : nvidia-driver-535-server-open - distro non-free recommended
driver : nvidia-driver-535-open - distro non-free
driver : nvidia-driver-570-server-open - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-570-open - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
sudo apt install nvidia-driver-535 (nvidia-driver-535-server-open是服务器驱动 不能用)
lsmod | grep nouveau查看通用驱动nouveau是否安装
禁用nouveau
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
末尾插入:
blacklist nouveau
options nouveau modeset=0
sudo reboot
lsmod | grep nouveau
sudo apt-get purge libnvidia-compute-535-server:i386 libnvidia-decode-535-server:i386 libnvidia-encode-535-server:i386 libnvidia-fbc1-535-server:i386
sudo apt-get autoremove
sudo apt-get autoclean
# 检查是否还有NVIDIA相关包
dpkg -l | grep -i nvidia
# 清理配置文件
sudo find /etc -name "*nvidia*" -exec rm -rf {} \; 2>/dev/null || true
# 清理库文件残留
sudo find /usr/lib -name "*nvidia*" -exec rm -rf {} \; 2>/dev/null || true
sudo find /usr/lib/i386-linux-gnu -name "*nvidia*" -exec rm -rf {} \; 2>/dev/null || true
sudo update-initramfs -u
sudo apt install nvidia-driver-535 (nvidia-driver-535-server-open是服务器驱动 不能用)
sudo update-initramfs -u
sudo reboot
nvidia-smi应该可以正常输出了
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装cuda
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
下载匹配驱动的安装包
nvidia-smi 右上角显示的版本
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run
https://blog.csdn.net/weixin_43889476/article/details/124468958(安装中注意事项 尤其是取消 驱动安装 勾选 (上下箭头移动 空格勾选/取消勾选))
touch
#!/bin/bash ubuntu_.sh
vim ubuntu_.sh
echo "正在配置CUDA 12.2环境变量..."
# 备份原有的.bashrc文件
cp ~/.bashrc ~/.bashrc.backup.$(date +%Y%m%d%H%M%S)
# 添加CUDA环境变量到.bashrc
cat >> ~/.bashrc << 'EOF'
# CUDA 12.2 Environment Setup
export CUDA_HOME=/usr/local/cuda-12.2
export PATH=/usr/local/cuda-12.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LIBRARY_PATH
EOF
echo "环境变量配置完成!"
echo "请执行以下命令使配置生效:"
echo "source ~/.bashrc"
echo "或者重新启动终端"
# 验证配置
echo -e "\n验证配置:"
echo "CUDA_HOME: $CUDA_HOME"
echo "PATH中的CUDA路径: /usr/local/cuda-12.2/bin"
echo "LD_LIBRARY_PATH中的CUDA路径: /usr/local/cuda-12.2/lib64"
chmod +x ubuntu_.sh
./ubuntu_.sh
source ~/.bashrc
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
构建cuda docker
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
docker构建流程:
mkdir xxx
cd xxx
touch Dockerfile
vim Dockerfile
# 基于您现有的SFM镜像
FROM sfm_docker:opencv
# 添加NVIDIA CUDA官方APT源
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
gnupg2 \
ca-certificates \
&& wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb \
&& dpkg -i cuda-keyring_1.0-1_all.deb \
&& rm -rf /var/lib/apt/lists/*
# 更新包列表并安装CUDA运行时
RUN apt-get update && apt-get install -y --no-install-recommends \
cuda-cudart-12-2 \
cuda-command-line-tools-12-2 \
cuda-libraries-12-2 \
cuda-minimal-build-12-2 \
&& rm -rf /var/lib/apt/lists/*
# 设置CUDA环境变量
ENV CUDA_HOME=/usr/local/cuda-12.2
ENV PATH=${CUDA_HOME}/bin:${PATH}
ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
# 创建符号链接
RUN ln -s /usr/local/cuda-12.2 /usr/local/cuda
# 验证安装
RUN nvidia-smi || echo "CUDA环境配置完成"
docker build -t xxx .
docker run -it --gpus all -v ~/Mytool/ros2_test/sfm-cuda-upgrade:/app/data sfm_docker:cuda-opencv /bin/bash
sudo apt-get update
sudo apt-get install pip
sudo apt install -y cuda-toolkit-12-2
cmake -DCMAKE_PREFIX_PATH=/app/data/libtorch -DCUDA_NVCC_FLAGS="-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80" -Wno-dev ..
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
OpenSplat
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
~/Mytool/ros2_test/sfm-cuda-upgrade/OpenSplat/build$ meshlab ./splat.ply
部分编译Opensplat
部分编译color-map
本地编译liteviz-gs-master
target_link_libraries(liteviz-core
GLU
depends::glad
depends::glfw
depends::imgui
depends::tinyply
depends::tbb
depends::eigen # 原cmakelists没有这一行 编译失败
)
方法一:启用 X11 转发(推荐)
宿主机配置
在运行 Docker 容器前,允许本地 X 服务器接受容器连接:
xhost +local: # 重要 允许本地连接 运行容器时挂载 X11 套接字 使用以下命令启动容器:
bash
Copy Code
docker run -it --rm --gpus all\
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/Mytool/ros2_test/sfm-cuda-upgrade:/app/data \
gaussian-splatting \
/bin/bash
apt-get install -y x11-apps
./viewer --lazy-load /app/data/OpenSplat/build/splat.ply
apt-get install -y x11-apps