Ubuntu使用过程中遇到的问题
本文最后更新于:2021年1月8日 晚上
一、Ubuntu安装Caffe
前期
参照链接一步一步走
遇到的其他错误:
错误1
make runtest -j12
时,遇到.build_release/tools/caffe: error while loading shared libraries: libcudnn.so.6: cannot open shared object file: No such file or directory
- 由于用的zsh而不是bash,输入
nvcc -V
发现找不到nvcc指令,因此通过在终端输入bash
换回到bash环境,再运行make runtest -j12
,即可解决
错误2
make runtest -j12
和make pycaffe -j8
成功后,在python中import caffe
时报错。
- no module caffe,检查
~/bashrc
中是否添加了export PYTHONPATH=/home/xxx/caffe/python:$PYTHONPATH
- ImportError:No module named skimage.io,则通过
sudo apt-get install python-skimage
安装skimage
模块
错误3
caffe安装出现 “error : too few arguments in function call” 的错误
- 替换caffe-master\include\caffe\util中的”cudnn.hpp”
- 参考
错误4
2 errors detected in the compilation of “/tmp/tmpxft_0000339c_00000000-19_box_annotator_ohem_layer.compute_61.cpp1.ii”.
Makefile:595: recipe for target ‘.build_release/cuda/src/caffe/layers/box_annotator_ohem_layer.o’ failed
make: * [.build_release/cuda/src/caffe/layers/box_annotator_ohem_layer.o] Error 1
修改makefile, 319行附近部分改成:(加了-std=c++11)
ifeq ($(DEBUG), 1) COMMON_FLAGS += -DDEBUG -g -O0 -std=c++11 NVCCFLAGS += -G else COMMON_FLAGS += -DNDEBUG -O2 -std=c++11 endif
二、安装与卸载python3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
### 卸载python3.6
sudo apt autoremove python3.6
三、Screen的使用
- 安装:
sudo apt install screen
- 新建会话窗口:
scrren
或者screen -S name
- 退出当前窗口,回到主窗口(detach):
Ctrl+a+d
- 恢复会话窗口:
- 先通过
screen -ls
查看窗口列表, 再通过screen -r name
或者screen -r id
恢复窗口
- 先通过
- 杀死会话窗口:
screen -9 id
- 清除死去窗口:
screen -wipe
四、nvidia-smi后显卡驱动报错
查看显卡信息
amax@amax:~$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
解决方案
sudo apt-get update sudo apt-get install --no-install-recommends nvidia-384 libcuda1-384 nvidia-opencl-icd-384 sudo reboot
查看显卡驱动
sudo dpkg --list | grep nvidia-*
查看显卡型号
amax@amax:~$ lspci |grep VGA
02:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
参考链接
1.https://www.cnblogs.com/feifanrensheng/p/9974249.html
五、自定义截图快捷键
通过System settings/keyboard/shortcus/custom shortcuts
新建快捷键,
- Name输入
Screenshot
(自己定,能看懂就好) - Command输入
gnome-screenshot -a
(有个空格)
应用之后,会多出一行,单击Disabled
,按下Ctrl+Alt+A
(你要设置的快捷键)即可
六、重装系统流程
1)制作系统启动盘
- 工具:Rufus、Ubuntu镜像
2)开始安装系统
- 将U盘插到Amax主机上,安装UBuntu,选择非UEFI形式启动(很重要!!)
- 选择地点、设置用户名等等
3)安装显卡驱动
- 到NVIDIA官网下载对应版本的显卡驱动,如
NVIDIA-Linux-x86_64-430.50.run
- 赋予权限,
sudo chomod 777 NVIDIA-Linux-x86_64-430.50.run
- 开机后,按住
Ctrl+Alt+F1
进行命令行,通过sudo service lightdm stop
关闭相应服务 sudo init 3
- 通过
cd
切换到对应目录,安装驱动程序sudo ./NVIDIA-Linux-x86_64-430.50.run
- 之后,yes,no,no
- 安装完成后,通过
nvidia-smi
确认是否安装成功 - 最后,
sudo reboot
重启即可
4)修改源
- 备份原先的源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
- 修改源为阿里源、中科大源或者清华源
sudo gedit /etc/apt/sources.list
## 阿里源 16.04
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
## 中科大源
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
5)安装pip
sudo apt install python-pip
6)安装多个版本的CUDA和CUDNN
- 在NVIDIA官网下载Cuda9.0以及Cuda8.0
- 赋予读写权限,如
sudo chmod 777 cuda_8.0.61_375.26_linux.run
- 执行安装文件,如
./cuda_8.0.61_375.26_linux.run
- 修改环境变量
~/.bashrc
export PATH=\$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
- 创建软连接
cd /usr/local/ #切换路径
sudo rm -rf cuda
sudo ln -s cuda9.0 cuda #创建新的软连接
nvcc -V
7)安装搜狗输入法
七、增加虚拟内存
1)查看内存(非实时,后面m是单位)
ubuntu@amax:~$ free -m
total used free shared buff/cache available
Mem: 15711 1448 10962 93 3301 13761
Swap: 16060 0 16060
2)增加虚拟内存
复制磁盘空间:
sudo dd if=/dev/zero of=/swap_file bs=1024 count=2097152
2097152+0 records in 2097152+0 records out 2147483648 bytes (2.1 GB) copied, 45.1339 s, 47.6 MB/s
格式化swaps分区:
mkswap /swap_file
mkswap: /swap_file: warning: don't erase bootbits sectors ``on whole disk. Use -f to force. Setting up swapspace version 1, size = 2097148 KiB no label, UUID=e70c01f7-1117-46a5-ba36-955027112db6
开启swap分区:
swapon /swap_file
再次查看内存:
free -m
关闭swap分区:
swapoff -v /swap_file
在/etc/fstab 文件末端添加如下命令,可实现开机自动开启swap分区
/swap_file swap swap defaults 0 0
3)参考链接
【1】http://www.cnblogs.com/turingbrain/p/6531516.html
八、Ubuntu系统重启分辨率出错问题
Ubuntu安装完matlab后,重启系统,遇到了分辨率变成640x480的情况。
参考https://blog.csdn.net/QianQiYing/article/details/81535761,修改/etc/X11/xorg.conf
配置,重启后仍然没有解决。
之后,参考https://blog.csdn.net/qq_35379989/article/details/78934486
#修改grub中相应的分辨率内容 GRUB_GFXMODE
sudo gedit /etc/default/grub
#更新grub
sudo update-grub
重启,万事大吉!
九、修改系统默认的Python解释器
1)查看系统中是否安装Python3.X:
命令行输入 :whereis python3
如果已经安装,会返回安装地址。
如果没有安装,则使用以下命令安装:sudo apt-get install python3
2)转换方法
不修改默认设置,在命令行输入对应版本号即可使用对应版本的python
- 调用Python2.X:
python
- 调用Python3.X:
python3
修改默认python解释器
- python2.X修改为python3.X
#删除原有的Python连接文件
sudo rm /usr/bin/python
#建立指向Python3.X的连接
sudo ln -s /usr/bin/python3.5 /usr/bin/python
#把路径/usr/bin/加入环境变量PATH中(一般不需要这一步)
PATH=/usr/bin:$PATH
#验证,命令行输入python,就会输出新的版本。
python
- python3.X还原为python2.X
#删除原有的Python连接文件
sudo rm /usr/bin/python
#建立指向Python2.X的连接
sudo ln -s /usr/bin/python2.7 /usr/bin/python
十、同时安装Cuda 8.0和Cuda 9.0
1)查看当前cuda版本
amax@amax:/usr/local$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
2)下载cuda8.0
#赋予读写权限
sudo chmod 777 cuda_8.0.61_375.26_linux.run
#执行安装文件
./cuda_8.0.61_375.26_linux.run
3)下载对应的Cudnn
cudaV8.0.61 —- cudnn 6.0.21
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 6
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 21
4)修改~/.bashrc中的环境变量
export PATH=\$PATH:/usr/local/cuda/bin export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
5)创建软连接
- 9.0切换到8.0(注意终端路径)
amax@amax:/usr/local$ sudo rm -rf cuda
[sudo] password for amax:
amax@amax:/usr/local$ sudo ln -s /usr/local/cuda-8.0/ /usr/local/cuda
amax@amax:/usr/local$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
- 8.0切换到9.0(注意终端路径)
amax@amax:/usr/local$ sudo rm -rf cuda
[sudo] password for amax:
amax@amax:/usr/local$ sudo ln -s /usr/local/cuda-9.0/ /usr/local/cuda
amax@amax:/usr/local$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
6)参考链接
【1】CUDA8.0和9.0版本切换
【2】Ubuntu设置目录的读写权限
十一、设置别名alias
1)用法
alias [-p] [name[=value] ...]
- -p :显示全部已定义的别名
- name:新的名称
- value:要被替代的名称
2)实例
alias pls='sudo'
pls shutdown
alias cudnn-v='cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2'
cudnn-v
3)使别名永久生效
sudo gedit ~/.bahrc
#之后将上述实例中的命令添加到环境变量bashrc中
source ~/.bashrc #激活环境变量
4)参考链接
【1】alias
十二、清理缓存
# 切换管理员
su
# 保存到本地,防止丢数据
sync
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
十三、定时执行命令
1)Crontab基本格式
* * * * * command
分 时 日 月 周 命令
2)命令示例
# 每分钟执行一次
* * * * * command
# 每隔一小时执行一次
00 * * * * command
# 每小时的15和30分各执行一次 (,表示并列)
15,45 * * * * command
# 在每天8-11时中的15,45分各执行一次(-表示范围)
15,45 8-11 * * * command
# 每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
# 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
# 每天早上六点半执行某脚本
3)任务示例
假设我们的训练程序在『早上六点二十左右』跑完,作为知名赖床达人的自己不想起床怎么办?这时为了最大化利用显卡,我们便可以在『晚上』走的时候 设置 服务器在『早上六点半』自动执行测试脚本。
- 创建任务脚本
touch test.sh
nano test.sh
# 将所需命令写入到任务脚本中
#!/bin/zsh
cd ~/GWL/4T_Disk/Paper-2/PCL-ProMax/
nvidia-smi
source /home/amax/GWL/py35/bin/activate
python tools/test_net.py --cfg configs/baselines/vgg16_voc2007.yaml --load_ckpt Outputs/vgg16_voc2007/Sep19-08-40-59_amax-desktop_step/ckpt/model_step24999.pth --dataset voc2007test | tee test_0921_pcl_edge_ccnet.log
- 创建定时程序
touch test.cron
nano test.cron
30 6 * * 2 sh /home/amax/GWL/test.sh >> /home/amax/GWL/test.log 2>&1 &
- 添加定时任务
crontab test.cron
- 查看定时任务是否成功
crontab -l
- 确认cron是否已启动
ps aux | grep cron
- 躺好,继续睡大觉
4)参考
十四、Ubuntu16.04挂载新硬盘
师姐之前误输入了rm -rf *
o(╯□╰)o真实版从删库到跑路
重装系统后,发现4T机械硬盘无法挂载(T_T)
Error mounting /dev/sdb1 at /media/amax/9dd3868b-f498-4428-bccc-e658442f9692: Command-line `mount -t "ext4" -o "uhelper=udisks2,nodev,nosuid" "/dev/sdb1" "/media/amax/9dd3868b-f498-4428-bccc-e658442f9692"' exited with non-zero exit status 32: mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
1)问题原因
未成功挂载ext4
2)解决方案
#硬盘设备情况
ls /dev/sd*
#确保sdb为新硬盘,当其≤2T时,
sudo fdisk /dev/sdb
#当其>2T时,
sudo parted /dev/sdb
mklabel gpt #用gpt格式可以将3TB弄在一个分区里
unit TB #设置单位为TB
mkpart primary 0 4 #设置为一个主分区,大小为4TB,开始是0,结束是4
print #显示设置的分区大小
quit #退出parted程序
fdisk /dev/sdb
1、查看帮助:m
2、新建分区:n
3、创建逻辑分区:p
4、输入分区号以及指定分区大小: 依照提示,回车表示默认
5、检查分区情况(此时还未执行分区操作): Command(m for help):p
6、保存退出 Command(m for help):w
sudo mkfs -t ext4 /dev/sdb1 #格式化为ext4格式
sudo mkdir /home/4T
#查看sdb对应的UUID
ls -l /dev/disk/by-uuid/
#修改/etc/fstab,设置开机挂载
sudo vim /etc/fstab
#在最后一行加入如下内容
UUID=d765d835-4989-4bff-8ae8-116c654d4bba /home/4T ext4 defaults 0 2
对fstab进行说明:
<file system> <mount point> <type> <options> <dump> <pass>
1 2 3 4 5 6
- 文件系统的设备名,最初,该字段只包含待挂载分区的设备名(如/dev/sda1)。现在,除设备名外,还可以包含LABEL或UUID
- 文件系统挂载点,文件系统包含挂载点下整个目录树结构里的所有数据,除非其中某个目录又挂载了另一个文件系统
- 文件系统类型,下面是多数常见文件系统类型(ext3,tmpfs,devpts,sysfs,proc,swap,vfat)
- mount命令选项,mount选项包括noauto(启动时不挂载该文件系统)和ro(只读方式挂载文件系统)等。在该字段里添加用户或属主选项,即可允许该用户挂载文件系统。多个选项之间必须用逗号隔开。其他选项的相关信息可参看mount命令手册页(-o选项处)
- 转储文件系统,该字段只在用dump备份时才有意义。数字1表示该文件系统需要转储,0表示不需要转储
- 文件系统检查,该字段里的数字表示文件系统是否需要用fsck检查。0表示不必检查该文件系统,数字1示意该文件系统需要先行检查(用于根文件系统)。数字2则表示完成根文件系统检查后,再检查该文件系统
3)参考链接
【1】https://blog.csdn.net/qq_29729577/article/details/52057629
【2】https://lijunaccp.iteye.com/blog/751709
【3】https://blog.csdn.net/season_hangzhou/article/details/36423223
十五、各种修改项
1)修改主机名
- 查看主机名:
hostname
或者uname -a
- 临时修改主机名:
hostname 新主机名
- 永久修改主机名:
sudo nano /etc/hostname
,修改后,重启即可
2)修改用户密码
sudo passwd xxx(xxx为用户名)
3)NVIDIA显卡驱动重装
sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove
sudo reboot
sudo service lightdm stop
sudo ./NVIDIA-Linux-x86_64-418.56.run
sudo reboot
4)新建用户并添加管理员权限
sudo adduser xxx #用户名为xxx
sudo nano /etc/sudoers # 在root下添加xxx等,格式和root一样
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!