Ubuntu-22.04配置笔记

Updated on April 26, 2023


I. 设备信息与双系统安装

联想拯救者Y9000P (2023):

硬件 型号 参数
CPU Intel Core i9-13900HX 16G 24核 32线程
GPU NVIDIA GeForce RTX 4060 Max-Q 8G 3072核
  • 查看CPU名称:cat /proc/cpuinfo | grep 'model name' |uniq

  • 查看CPU个数:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

  • 查看CPU核心数:cat /proc/cpuinfo | grep "cpu cores" | uniq

  • 查看线程数:cat /proc/cpuinfo | grep "processor" | sort -u | wc -l

  • 查看内存大小及占用:free -m

双系统的安装:参考B站视频


II. 基本工具安装

1. 更新安装工具

1
sudo apt-get update

2. 安装GCC和相关依赖库

1
sudo apt install build-essential

3. 安装CMake

1
sudo apt-get install cmake

4. 安装ifconfig命令的依赖,用于查看IP

1
sudo apt install net-tools

5. 安装SSH

1
sudo apt install ssh

6. 安装Vim编辑器

1
sudo apt-get install vim

7. 安装tree工具

1
sudo apt-get install tree

8. 安装git工具

1
sudo apt-get install git

9. 安装pip3

1
sudo apt install python3-pip

对于无法用apt-getapt命令安装的软件,一般需手动下载deb文件,这里以QQ的安装为例:

QQ官网下载对应的deb文件,如linuxqq_3.1.1-11223_amd64.deb

终端中使用dpkg命令来安装:

1
sudo dpkg -i linuxqq_3.1.1-11223_amd64.deb

III. SSH访问

1. 基本访问

使用SSH远程访问时,需保证「被访问设备和当前设备在同一局域网下」(内网穿透除外)

(a) 终端输入ifconfig命令,可以看到类似如下的输出
1
2
3
4
5
6
7
8
9
10
wlp0s20f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.2.94 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fda2:8861:fa9c:2e00:31d6:3bb0:db54:490c prefixlen 64 scopeid 0x0<global>
inet6 fe80::ec85:28a0:6630:cd18 prefixlen 64 scopeid 0x20<link>
inet6 fda2:8861:fa9c:2e00:20d8:4eff:d0d8:94a6 prefixlen 64 scopeid 0x0<global>
ether 70:d8:23:49:b2:36 txqueuelen 1000 (Ethernet)
RX packets 689401 bytes 985074662 (985.0 MB)
RX errors 0 dropped 5 overruns 0 frame 0
TX packets 161665 bytes 18899855 (18.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

其中inet 192.168.2.94后的数字即为IP地址;

  • 若访问失败,可在ubuntu图形界面的网络设置部分二次确认IP地址。
(b) 访问的语句形如
1
ssh username@192.168.2.94

注意,如果被访问设备重装了系统,访问时会出现如下的报错

1
2
3
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

此时,需要输入命令

1
ssh-keygen -R 192.168.2.94

随后便可正常访问

(c) 若要终止访问,输入
1
exit

2. 设置远程端不休眠

这一部分参考CSDN文章

(a) 输入systemctl status sleep.target命令查看系统休眠状态:
1
2
3
4
○ sleep.target - Sleep
Loaded: loaded (/lib/systemd/system/sleep.target; static)
Active: inactive (dead)
Docs: man:systemd.special(7)

如上述所示,若Loaded后面显示loaded,则会自动休眠,此时需要将其调整为masked状态。

(b) 使用命令sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

随后再次用systemctl status sleep.target查看休眠状态,若看到其为masked,即已设置成功。

(c) 对于笔电,为防止合盖休眠等问题,先使用如下命令安装第三方软件:
1
sudo apt install gnome-tweaks

安装成功后,在图形界面使用gnome-tweaks命令运行该软件,会跳出一个窗口,在选项里选择取消「笔记本盖子关闭时挂起」的选项即可。


IV. CUDA配置

  • 仅适用于搭载Nvidia显卡的机器

  • 显卡官方算力数据:link

  • GPU详细参数查询网站:link

1. 显卡检测与BIOS设置

使用命令lspci | grep 'VGA'来查看显卡信息,输出诸如:

1
2
00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-S UHD Graphics (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile] (rev a1)

可以看到我的显卡为”GeForce RTX 4060 Max-Q / Mobile”

若检测不到,并输出形如

1
2
00:02.0 VGA compatible controller: Intel Corporation Device a788 (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 28e0 (rev a1)

的信息,则可使用如下命令安装相关依赖

1
sudo update-pciids

重启系统后即可

笔记本如果同时启用了独显与核显的话,会导致CUDA的驱动安装失败。

进入BIOS设置,并关闭混显:

  1. security – security boot,设置为disable
  2. configuration – graphics devices,设置为discrete graphic (即独显模式)

这一部分参考CSDN文章

联想拯救者系列进入BIOS的方法为:开机快速按f2

2. 预备工作

  1. 禁用nouveau(Ubuntu自带的驱动)

    a) 用Vim打开如下文件

    1
    sudo vim /etc/modprobe.d/blacklist.conf 

    b) 在文件末尾添加如下语句,随后保存

    1
    2
    blacklist nouveau
    options nouveau modeset=0

    c) 终端输入如下命令,随后重启电脑

    1
    sudo update-initramfs -u

    d) 输入如下命令,若无任何输出,则禁用成功

    1
    lsmod | grep nouveau
  2. 安装lightdm(需要这个作为桌面显示管理器,因为后面要禁用原本的图形界面)

1
sudo apt-get install lightdm

3. 安装Toolkit与Driver

在安装Toolkit的同时,会自动安装匹配的Driver,因此选择直接安装Toolkit.

由于这一部分的安装折腾了很多次才成功,并有重复存在,所以我无法保证我所记述的步骤100%有效,但大概率是没问题的。

  1. 官网选择想要安装的Toolkit版本(这里是12.1版本),并选择Linux -- x86_64 -- Ubuntu --22.04 -- runfile (local),注意最后一个一定要选runfile (local)

  2. 终端输入官网给的第一个链接,用以下载安装包,但先不要用第二个命令安装

    1
    wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
  3. 使用命令sud进入tty模式(这是为了关闭现有图形界面以安装驱动)。若进不去,则使用键盘按ctrl + alt + f1,其中f1可更换为f2 ~ f6中的一个;

  • 注意:tty模式需要在本机上操作,不可远程ssh

a. [tty模式] 输入用户名和密码;

b. [tty模式] 输入如下命令以禁用X server

1
sudo service lightdm stop

c. [tty模式] 进入刚刚下载好安装包的目录,赋予运行权限:

1
sudo chmod +x cuda_12.1.0_530.30.02_linux.run

d. [tty模式] 运行安装文件

1
sudo ./cuda_12.1.0_530.30.02_linux.run

e. [tty模式] 此时会进入安装界面,注意勾选Driver(一般是默认勾选),随后安装

f. [tty模式] 安装成功后,使用如下命令返回图形界面

1
sudo service lightdm restart

接着重启系统。

若前述安装成功,则输入nvidia-smi命令,可以看到Driver的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02 Driver Version: 530.30.02 CUDA Version: 12.1 |
|-----------------------------------------+----------------------+----------------------+
| 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 4060 L... Off| 00000000:01:00.0 Off | N/A |
| N/A 39C P8 2W / 55W| 397MiB / 8188MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1027 G /usr/lib/xorg/Xorg 236MiB |
| 0 N/A N/A 1675 G /usr/bin/gnome-shell 158MiB |
+---------------------------------------------------------------------------------------+

但此时用于查看Toolkit信息的nvcc -V命令还无法正常输出版本信息,这是因为还没有配置环境变量。

4. 配置环境变量

a) 打开bashrc文件:

1
vim ~/.bashrc

b) 在文件末尾添加如下语句(注意安装的版本号)

1
2
export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

c) 保存文件并在终端输入

1
source ~/.bashrc

以激活环境变量

d) 此时再输入nvcc -V,即可看到正确的版本信息:

1
2
3
4
5
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0

5. *卸载

若要更换新版本的Driver和Toolkit,一般需要先卸载旧版本。

a) 卸载Toolkit

1
sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*"

b) 卸载Driver

1
sudo apt-get --purge remove "*nvidia*"

6. *配置CuDNN

安装成功后可通过如下命令确认CuDNN版本

1
2
cd /usr/include/
cat cudnn_version.h

可以看到我的版本为

1
2
3
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 2

即8.9.2版本

7. *Cupy安装

在完成好前述的CUDA配置后,对于cuda toolkit的12.x版本,使用如下命令即可

1
pip3 install cupy-cuda12x

其它版本请参考官网

8. *解决驱动突然无法显示的情况

1
2
sudo apt-get install dkms
sudo dkms install -m nvidia -v 530.30.02

V) Conda配置

1. 在官网下载.sh安装文件,例如

1
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

2. 赋予可执行权限

1
chmod +x ./Anaconda3-2023.03-Linux-x86_64.sh 

3. 运行安装文件

1
./Anaconda3-2023.03-Linux-x86_64.sh 
  • 注意:在安装的最后不要选择initialize conda!

4. 安装成功后在vi ~/.bashrc文件的末尾添加环境变量,随后使其立即生效

1
export PATH="/home/ym/opt/anaconda3/bin:$PATH"

e) 若配置成功,输入conda -V即可显示conda的版本信息


VI) 一些C++计算库安装

1. 安装OpenBLAS和LAPACK

1
sudo apt install libopenblas-dev liblapack-dev

2. 安装OpenMP

1
sudo apt-get install libomp-dev

VII) 修改ulimit

1. 打开如下文件

1
sudo vim /etc/security/limits.conf

2. 在文件中添加如下语句,随后保存

1
2
3
4
* hard nofile 65535
* soft nofile 65535
root hard nofile 65535
root soft nofile 65535

3. 打开下面的文件

1
sudo vim /etc/pam.d/su

4. 注释掉下面的语句

1
session required pam_limits.so

5. 重启

此时再输入ulimit -n,此时会显示为65535


VIII) Vim个性化

1. 在环境变量中用vi来命名vim

命令vi ~/.bashrc ,添加:

1
alias vi='vim' 

随后使其生效source ~/.bashrc

2. 打开Vim配置文件vi ~/.vimrc,添加如下内容即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"关闭vim一致性原则
set nocompatible
"显示行号
set number
"设置在编辑过程中右下角显示光标的行列信息
set ruler
"在状态栏显示正在输入的命令
set showcmd
"设置历史记录条数
set history=1000
"设置取消备份 禁止临时文件的生成
set nobackup
set noswapfile
"设置匹配模式
set showmatch
"设置C/C++方式自动对齐
set autoindent
set cindent
"开启语法高亮功能
syntax enable
syntax on
"指定配色方案为256色
set t_Co=256
"设置搜索时忽略大小写
set ignorecase
"配置backspace的工作方式
set backspace=indent,eol,start
"设置在vim中可以使用鼠标
set mouse=a
"设置tab宽度
set tabstop=4
"设置自动对齐空格数
set shiftwidth=4
"设置退格键时可以删除4个空格
set smarttab
set softtabstop=4
"将tab键自动转换为空格
set expandtab
"设置编码方式
set encoding=utf-8
"自动判断编码时 依次尝试以下编码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"检测文件类型
filetype on
"针对不同的文件采取不同的缩进方式
filetype indent on
"允许插件
filetype plugin on
"启动智能补全
filetype plugin indent on
"允许在编辑模式下复制粘贴
set mouse=c
syntax on