安裝驅動
驗證自己的電腦是否有一個可以支持CUDA的GPU
ubuntu的終端中輸入命令: lspci | grep -i nvidia
,會顯示出你的NVIDIA GPU版本信息,不過不是很詳細。
安裝相關依賴:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
驗證系統是否安裝了kernel header和 package development
在終端中輸入: uname -r
然後查看顯示結果是否和自己的要安裝要求的一樣,下載cuda安裝文件的時候,在那個界面的最下方有一個安裝指導書( Installation Guide for Linux),按照官網的指導應該是可以正確安裝的。
絕大部分人裝不上驅動,後面安裝不上cuda可能就是系統內核的版本過高,cuda要求系統內核是4.4,而現在的系統是4.15,降低系統內核後,問題一般就解決了
降低系統內核的方法就是直接用新內核替換舊內核,參考鏈接:
https://favoorr.github.io/2017/02/11/update-kernel-for-ubuntu/
https://oldpan.me/archives/install-cuda9-1-unable-to-locate-the-kernel-source
https://zhuanlan.zhihu.com/p/36979657
安裝內核
sudo apt-get install linux-headers-4.4.0-98-generic linux-image-4.4.0-98-generic
卸載舊內核
查詢目前安裝的內核
sudo dpkg --get-selections |grep linux
卸載舊內核
sudo apt remove linux-image-4.15.0-29-generic linux-image-4.15.0-45-generic等
卸載與4.15.0-29和4.15.0-45相關的linux-image*-generic,linux-headers*-generic
更新啓動引導
sudo update-grub
確認最新內核安裝情況
ls /boot/vmlinuz*
重啓
reboot
重啓後驗證
uname -a
如果上述方法不OK,進入/boot/
, 執行sudo rm -rf *4.15.0-45*
,sudo rm -rf *4.15.0-29*
修改/etc/default/grub中GRUB_DEFAULT="Ubuntu,Linux 4.4.0-98-generic"
最後執行sudo update-grub
來對你之前的設置進行更新
我的sudo dpkg --get-selections |grep linux
結果如下:
換內核後,建議執行以下更新:
sudo apt-get install build-essential
apt-get install linux-source
apt-get source linux-image-$(uname -r)
apt-get install linux-headers-$(uname -r)
禁用 nouveau驅動
終端中運行:$ lsmod | grep nouveau,如果有輸出則代表nouveau正在加載。需要我們手動禁掉nouveau。
Ubuntu的nouveau禁用方法:
a、在/etc/modprobe.d中創建文件blacklist-nouveau.conf
輸入命令:$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf (利用vi編輯器編輯和保存文件),個人覺得應gedit更方便
在文件中輸入一下內容:
blacklist nouveau
options nouveau modeset=0
b、執行:sudo update-initramfs -u
c、再執行:lsmod | grep nouveau
若無內容輸出,則禁用成功,若仍有內容輸出,請檢查操作,並重覆上述操作。如果重複多次還是不行,建議重啓電腦查看結果
安裝驅動
首先去官網 http://www.nvidia.com/Download/index.aspx?lang=en-us,
查看適合自己顯卡的驅動並下載:我的顯卡型號是GTX1080 Ti,系統是linux 64位,按照要求選擇後點擊search.,點擊下載就好了。查找的過程中可能需要翻牆,不翻牆可能點擊search沒反應
這裏我下載的是NVIDIA-Linux-x86_64-418.43.run
安裝顯卡驅動要先切換到文字界面,(按Ctrl+Alt+F1~F6).所以,啓動電腦後,先進入文字界面。然後,輸入命令 sudo service lightdm stop
現在可以安裝驅動了,進驅動目錄 ,然後: sudo sh ./NVIDIA-Linux-x86_64-418.43.run,按照提示一步步來~
此處選擇NO
完成後,再次重啓電腦。
安裝完成之後輸入以下指令進行驗證: sudo nvidia-smi,若列出了GPU的信息列表則表示驅動安裝成功
如果遇到了下圖所示的情況,說明驅動裝的有問題,先卸載後重新安裝
NVIDIA驅動卸載:
sudo /usr/bin/nvidia-uninstall
runfile安裝cuda
CUDA提供兩種安裝方式:package manager安裝和runfile安裝,個人覺得runfile安裝更方便一點
下載完後,用MD5 檢驗,如果序號不和,得重新下載
輸入命令:md5sum cuda_9.0.176_linux.run
安裝cuda
重啓電腦,進入登錄界面的時候,不要登錄進入桌面(否則可能會失敗,若不小心進入,請重啓電腦),直接按Ctrl+Alt+F1進入文本模式(命令行界面),登錄賬戶。
安裝cuda也需要禁用 nouveau驅動和 sudo service lightdm stop
關閉圖形化界面
切換到cuda安裝文件的路徑,執行sudo sh cuda_*_linux.run
,根據提示一步步操作:
注意:
選擇是否安裝nvidia驅動時,一定要選擇否: Install NVIDIA,因爲前面我們已經安裝了更加新的驅動了,所以這裏不要選擇安裝。其餘的都直接默認選擇是即可。
添加cuda路徑
輸入sudo vi /etc/profile
在最後添加
export PATH="/usr/local/cuda-8.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
並執行sourvc /etc/profile
如果後面使用pythonimport tensorflow
時報錯ImportError: libcudart.so.8.0: cannot open shared object file: No such file or directory
,大概率是沒有添加cuda路徑
輸入sudo service lightdm start
重新啓動圖形化界面。
同時按住Alt + ctrl +F7,返回到圖形化登錄界面,輸入密碼登錄。
驗證cuda是否安裝成功
編譯samples例子:
#編譯並測試設備 deviceQuery:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
#編譯並測試帶寬 bandwidthTest:
cd ../bandwidthTest
sudo make
./bandwidthTest
如果這兩個測試的最後結果都是Result = PASS,說明CUDA安裝成功啦。
參考鏈接:
https://blog.csdn.net/qlulibin/article/details/78714596
https://blog.csdn.net/wanzhen4330/article/details/81699769#%E5%A4%8D%E6%9D%82%E7%9A%84%E6%96%B9%E6%B3%95%E2%80%94%E2%80%94%E5%B8%A6%E9%A9%B1%E5%8A%A8%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95
CUDA卸載
CUDA默認安裝在 /usr/local/cuda-8.0下,用下面的命令卸載::
sudo /usr/local/cuda-8.0/bin/uninstall_cuda-8.0.pl
sudo rm -rf /usr/local/cuda-8.0/
安裝cudnn
cuda地址:https://developer.nvidia.com/rdp/cudnn-download
下載需要的cudnn,需先登錄
下載完cudnn-8.0-linux-x64-v6.0.tar將其解壓tar -xf cudnn-8.0-linux-x64-v6.0.tar
,可得到一個名爲cuda的文件夾
複製該文件夾下內容至cuda安裝路徑
cp ./cuda/include/cudnn.h /usr/local/cuda-8.0/include/
cp ./cuda/lib64/* /usr/local/cuda-8.0/lib64/
在後面python倒入tensorflow時,遇到個bug,ImportError: /usr/local/cuda-8.0/lib64/libcudnn.so.6: invalid ELF header
,可能是是由於我在Mac系統下解壓的cudnn文件,然後上傳到Linux系統,這樣導致的bug。直接在Linux系統執行tar -xf cudnn-8.0-linux-x64-v6.0.tar
,解決了問題
bug Ctrl+Alt+F1到F6黑屏
想通過Ctrl+Alt+F1到控制檯,得到的是黑屏。按Ctrl+Alt+F7可以返回到正常的圖形界面。
解決:
1.修改grub文件
sudo gedit /etc/default/grub
在打開的文件裏找到找到變量GRUB_CMDLINE_LINUX_DEFAULT,並修改
#GRUP_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUP_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1 nomodeset vga=791"
2.更新grub並重啓電腦
sudo update-grub
sudo reboot
ubuntu16.04配置網卡
查看網卡信息
輸入ifconfig命令查看網卡信息
配置網卡文件
輸入下面命令進行編輯網卡文件sudo vi /etc/network/interfaces
默認的文件內容如下:
auto lo
iface lo inet loopback
現在修改配置文件。修改方式有兩種
方式一:靜態ip
修改內容如下:下面的enp0s3需要改成自己的網卡名稱,就是上面第一步得到的信息。ip地址,掩碼網關,dns自己合理配置就行了。記得wq!保存退出。
auto enp0s3
iface enp0s3 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 159.226.39.1 8.8.8.8
方式二:動態獲取ip配置
auto enp0s3
iface enp0s3 inet dhcp
注意上面的網卡寫成自己的網卡名稱。記得wq!保存退出。
重啓網卡,重啓電腦
/etc/init.d/networking restart
service networking restart
reboot
重啓電腦後,ifconfig查看配置是否生效。測試ping www.baidu.com
參考鏈接:
https://blog.csdn.net/stay_zezo/article/details/80718369
https://www.cnblogs.com/yudar/p/4446975.html
Ubuntu實現遠程登陸之ssh
ssh: connect to host ****** port 22: Connection refused有以下兩種原因
- 檢查是否安裝了openssh-server
ps -e|grep ssh
如果只出現了一個ssh,說明沒有安裝,通過sudo apt install openssh-server
安裝
- sshd未啓動
service sshd restart
- 重新連接時,可能遇到的問題
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:GeXlCMdx5LINJhGZ+vEq+G97JqJtEGJ1PnYiZn3l/NE.
Please contact your system administrator.
Add correct host key in /Users/*/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/*/.ssh/known_hosts:9
ECDSA host key for 192.168.227.5 has changed and you have requested strict checking.
Host key verification failed.
解決辦法:
在正在操作的機器上執行
vi ~/.ssh/known_hosts
進入此目錄,刪除的192.168.227.5.**相關rsa的信息即可.
ffmpeg
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
掛載大於2T的硬盤
通過sudo fdisk -lu
可以看到將要掛載的硬盤
因fdisk分區最大隻能2T,所以這裏使用parted來分區.
執行命令parted /dev/sdX
,X替換成自己的盤符,這裏以sdb爲例
mcg@mcg:~$ sudo parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: /dev/sdb: unrecognised disk label
Model: LSI MRSASRoMB-8i (scsi)
Disk /dev/sdb: 4000GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel gpt
(parted) print
Model: LSI MRSASRoMB-8i (scsi)
Disk /dev/sdb: 4000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
(parted) mkpart primary 0 -1
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) quit
Information: You may need to update /etc/fstab.
格式化新硬盤: sudo mkfs.ext4 /dev/sdb1
創建硬盤將掛載位置:sudo mkdir /media/sdb1
掛載分區:sudo mount /dev/sdb1 /media/sdb1
查看磁盤分區的UUID:sudo blkid
/dev/sda1: UUID="a3d6a764-6c22-4c5a-b46c-08af57eecb6c" TYPE="ext4" PARTUUID="608683da-01"
/dev/sda5: UUID="2dbbd27f-cf0d-4af4-906d-5a1ab91e4000" TYPE="swap" PARTUUID="608683da-05"
/dev/sdb1: UUID="e4a6735c-bede-4baf-acd5-b5f2efb92678" TYPE="ext4" PARTLABEL="primary" PARTUUID="60873b4f-a21e-485b-9987-d8a59473a0b0"
/dev/sdc1: UUID="4d6e16bf-e399-42f0-a063-1960abc4bf7c" TYPE="ext4" PARTLABEL="primary" PARTUUID="5b94dc17-7646-4ce3-b8c2-7ec2c677b78f"
配置開機自動掛載:sudo vim /etc/fstab
因爲mount命令會在重啓服務器後失效,所以要將分區信息寫到/etc/fstab文件中讓它永久掛載:
加入:
UUID=e4a6735c-bede-4baf-acd5-b5f2efb92678 /media/sdb1 ext4 defaults 0 1
指令的具體說明:
<fs spec> <fs file> <fs vfstype> <fs mntops> <fs freq> <fs passno>
具體說明,以掛載/dev/sdb1爲例:
<fs spec>:分區定位,可以給UUID或LABEL,例如:UUID=6E9ADAC29ADA85CD或LABEL=software
<fs file>:具體掛載點的位置,例如:/data
<fs vfstype>:掛載磁盤類型,linux分區一般爲ext4,windows分區一般爲ntfs
<fs mntops>:掛載參數,一般爲defaults
<fs freq>:磁盤檢查,默認爲0
<fs passno>:磁盤檢查,默認爲0,不需要檢查
重啓系統:
修改完/etc/fstab文件後,運行sudo mount -a
,命令驗證一下配置是否正確。如果配置不正確可能會導致系統無法正常啓動。然後重啓系統
重啓系統後,通過df -lh
可以看出新掛載的硬盤:
Filesystem Size Used Avail Use% Mounted on
udev 63G 0 63G 0% /dev
tmpfs 13G 11M 13G 1% /run
/dev/sda1 228G 15G 202G 7% /
tmpfs 63G 200K 63G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sdc1 2.7T 73M 2.6T 1% /media/sdc1
/dev/sdb1 3.6T 68M 3.4T 1% /media/sdb1
tmpfs 13G 28K 13G 1% /run/user/108
tmpfs 13G 0 13G 0% /run/user/1000
參考鏈接:
https://www.cnblogs.com/EasonJim/p/7447000.html
vi命令的編輯模式下不能正常使用方向鍵和退格鍵的問題
步驟一,輸入下述命令以卸載vim-tiny:
sudo apt-get remove vim-common
步驟二,輸入下述命令以安裝vim-full:
sudo apt-get install vim
參考鏈接:https://blog.csdn.net/xiangwanpeng/article/details/54341229
添加用戶
adduser
首先用adduser命令添加一個普通用戶,命令如下:
#adduser tommy //添加一個名爲tommy的用戶
#passwd tommy //修改密碼
Changing password for user tommy.
New UNIX password: //在這裏輸入新密碼
Retype new UNIX password: //再次輸入新密碼
passwd: all authentication tokens updated successfully.
賦予root權限
修改sudo vi /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL
無桌面聯網
打開chrome瀏覽器,進去https://gw.ict.ac.cn/srun_portal_pc.php?ac_id=1&,右鍵,進入檢查,將腳本粘貼到 “console”裏面,回車
var qData = {"action": "login", "username": "xxx", "password": "xxxxxx", "ac_id": "1", "ip":"x.x.x.x"}
$.getJSON("https://gw.ict.ac.cn/cgi-bin/srun_portal", qData, function(data) {
if (data.error == "ok") {
$.cookie('access_token', data.access_token)
location.href = location.protocol + "//" + location.hostname + "/srun_portal_pc_succeed.php?ac_id=1&username=xxx&ip=x.x.x.x&access_token="+data.access_token
}
})
將username password ip換成自己的