0X00 問題描述
實驗室最近又增加了RTX2080Ti服務器,再給服務器裝系統的過程中,發現由usb引導安裝ubuntu時,出現由於顯卡不支持圖形化界面導致的黑屏。
boot設置:
選擇usb boot後:
黑屏且只有一個光標閃爍。
0X01 解決方法
一般這種情況都是由於顯卡與ubuntu桌面不兼容導致的,因此選擇跳過桌面加載過程,在usb boot是按control,進入設置界面:
在安裝頁面按F6選擇nomodeset模式,再選擇Install Ubuntu選項就可以進入正常的圖形化安裝界面:
0X02 安裝細節
一下就和正常安裝ubuntu一樣了,可以設置一下分區(拍得不是很清楚zzzzz):
這裏面/dev/nvme0n1是一個固態硬盤,也是我們裝入系統的盤。/dev/sda是一個機械硬盤,用來存儲數據。/dev/sdb是我安裝系統使用的閃存盤。具體的信息可以在下面的下拉菜單裏面找到。(依然看不清楚(;д;))。
知道了用處我們就可以做出分區選擇:將/dev/nvme0n1作爲根目錄(/)分區,使用ext4格式化;/dev/sda劃分256,000MB作爲交換分區(swap);其餘的使用ext4格式化爲數據分區(/data)。示例如下:
選擇根目錄分區:
選擇數據分區:
最終的分區狀態(模糊到變形ヽ(ー_ー)ノ):
接下來就可以開始安裝了,國內的同學建議安裝前不要聯網。ubuntu在安裝過程中會下載語言包等安裝包,斷開網絡可以顯著提高安裝速度,缺少的包可以在換了國內軟件源之後補上,安裝後就可以出現登錄界面了:
可以看到界面比較簡單,分辨率較低。這是由於我們沒有使用完整的圖形界面,後面會有解決方法。
0x03進一步配置
安裝成功後,我們就可以開始配置一臺基本的深度學習服務器了,首先就是更換國內的軟件源。先備份原有的源文件
sudo cp /etc/apt/sources.list sources.list.bak
創建自己的source.list文件,將國內源地址複製進去,這裏從下面得到清華軟件源的地址:
有了國內源,就可以較快安裝並更新系統軟件了,首先更新軟件列表
sudo apt-get update
接下來安裝並開啓ssh服務
sudo apt-get install openssh-server
sudo service ssh start
如果沒安裝ifconfig命令,可以使用
sudo apt install net-tools
查看本機ip
ifconfig | grep inet
這樣我們就可以從自己的電腦上遠程配置服務器了,不用在機房裏面吃灰(;へ:)。
0x04 nvidia顯卡驅動安裝
安裝之前,可以先更新一下軟件(如果你計劃不安裝最近版本,謹慎更新軟件,會引入許多高版本的依賴)
sudo apt-get upgrade
nvidia顯卡驅動可以從nvidia顯卡驅動下載,根據自己的顯卡型號選擇對應的驅動。安裝時,參考官方的安裝教程nvidia安裝教程。
首先確定滿足最小的依賴選項最小依賴項。我這裏只缺少GNU make以及gcc,所以安裝
sudo apt install make
sudo apt install gcc
這裏我使用nvidia .run文件安裝,比較簡單。首先停止圖形化界面:
發現並沒有圖形化界面,這與我們之前的發現也一致。
卸載之前的nvidia驅動:
sudo apt autoremove –purge nvidia-*
更改驅動文件權限
chmod 777 <nvidia驅動名稱>.run
直接執行就可以了
./<nvidia驅動名稱>.run
可能會跳出這些界面:
gcc版本等於或者稍微高於版本都是可以的
選擇好這些選項nvidia驅動就安裝好了,可以執行nvidia-smi命令驗證一下:
這時候我們選擇重啓計算機,系統不會正常顯示圖形界面,而是會出現:
這是由於我們並沒有可以從nvidia顯卡運行的圖形化界面,但系統已經正常啓動了,我們可以通過ssh登錄系統,啓動圖形化界面。
首先安裝:
sudo apt install lightdm
安裝過程選擇lightdm,並啓動
sudo service lightdm start
再重啓計算機,就可以有正常的界面了
可以看到分辨率高了不少,同時顯卡也在運行界面:
至此我們顯卡與圖形界面不匹配的ubuntu系統安裝就完成了。
0x05 cuda及cudnn安裝
cuda以及cudnn安裝都很簡單,參考官方教程就可以了
其中,安裝cuda最簡單的方式就是下載對應的.run文件,然後執行
chmod 777 <cuda安裝文件名>.run
./<cuda安裝文件名>.run
如果你需要的nvidia顯卡驅動較高,安裝過程選擇就不安裝nvidia顯卡驅動。
這樣的cuda基本上可以運行,但如果需要編譯有cuda依賴的程序,可能會有找不到cuda的情況,這時可以將cuda路徑添加到系統路徑裏面(按需調整路徑)
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
經過這樣的操作,就可以直接複製cudnn文件
tar -xzvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
把握起見,可以編譯一下cuda或者cudnn的驗證程序,或者直接運行深度學習框架測試。