全網(wǎng)最詳細(xì)搭建Win10+WSL2+Ubuntu-22.04LTS+CUDA+Xfce4+noVNC個(gè)人工作站
- 本文主要解決的問題點(diǎn):
- win10下使用Ubuntu系統(tǒng)
- 解決WSL默認(rèn)不支持systemD的BUG
- 物理機(jī)顯卡可在Ubuntu系統(tǒng)直通使用
- Ubuntu系統(tǒng)界面圖形可視化
- 圖形界面漢化
- Ubuntu系統(tǒng)下使用拼音輸入法
- 不需要物理機(jī)安裝任何軟件即可通過(guò)web直接訪問Ubuntu
- 配置Firefox和Pycharm
- 解決WSL下的noVNC剪貼板不能與WIN共享的BUG
- 講解Xfce4桌面使用的tricks
- 美化Windows終端
- 整理不易,希望大家點(diǎn)贊關(guān)注+收藏????
- 下面是我搭建過(guò)程中的一些經(jīng)驗(yàn),希望能夠幫助到有相關(guān)需求的朋友、伙伴們????
1. Windows10更新
- 為了避免很多不必要的麻煩,請(qǐng)將Windows10更新至最新版本,若不更新,則可能會(huì)導(dǎo)致Microsoft Store無(wú)法成功下載Ubuntu系列的軟件,后面還會(huì)有一些奇葩的BUG。
- Windows10無(wú)法更新,缺少文件或損壞等情況,請(qǐng)下載微軟官方的win10自動(dòng)更新工具
- 除了win10更新工具還有win11等,如果使用win10更新工具則會(huì)將win10更新至最新版,而不會(huì)自動(dòng)更新至win11,因?yàn)槲疫@里已經(jīng)使用過(guò)該更新工具,所以不會(huì)顯示下載頁(yè)面,而是立即更新。下載之后,得到一個(gè)exe軟件,直接雙擊使用即可,更新過(guò)程需要一些時(shí)間,過(guò)程有些慢…
- 我的win10版本號(hào)如下:
2. 基于WSL2安裝Ubuntu-22.04LTS
- 以管理員的身份打開powerShell
- 運(yùn)行下面指令以確保開啟適用于 Linux 的 Windows 子系統(tǒng)(WSL)和虛擬機(jī)平臺(tái)配置項(xiàng),然后開機(jī)重啟
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 下載Linux內(nèi)核更新程序包,主要是將WSL更新至WSL2,下載安裝即可
- 兩種方案安裝Ubuntu-22.04LTS
- 方案一:
- 這個(gè)方案比較簡(jiǎn)單,直接在C盤安裝,在Microsoft Store里搜索Ubuntu,下載相應(yīng)版本即可,目前我嘗試過(guò)Ubuntu-20.04LTS和Ubuntu-22.04LTS都能夠正常安裝
- 然后打開相應(yīng)Ubuntu即可直接安裝,第一次打開安裝需要等待一段時(shí)間,設(shè)置用戶名和密碼即可,使用
wsl -l -v
命令查看安裝的version是否為2,若顯示當(dāng)前不是 WSL 2 版本,通過(guò)命令wsl --set-version Ubuntu-22.04 2
進(jìn)行設(shè)置 WSL 的默認(rèn)版本 - 由于我的C盤大小為715G,比較大,就將Ubuntu系統(tǒng)文件直接裝在C盤里,在固態(tài)硬盤里啟動(dòng)系統(tǒng)和使用系統(tǒng)軟件響應(yīng)速度會(huì)比機(jī)械硬盤快一些,然后將Python的虛擬環(huán)境和Pycharm運(yùn)行的項(xiàng)目(下面也有提到)搭建到機(jī)械硬盤上即可,這樣可以有效節(jié)省C盤空間,下面講一下如何使用virtualenv搭建Python虛擬環(huán)境:
sudo apt-get install virtualenv
安裝virtualenv,virtualenv --version
檢查virtualenv 版本,最后使用virtualenv -p /usr/bin/python3.10 /d/my_envPy3.10
將環(huán)境搭建到物理機(jī)的D盤上,因?yàn)槲业腃盤和D盤在同一張固態(tài),當(dāng)Pycharm加載環(huán)境時(shí),加載速度影響不大,稍微慢一丟丟(跨系統(tǒng))
- 這個(gè)方案比較簡(jiǎn)單,直接在C盤安裝,在Microsoft Store里搜索Ubuntu,下載相應(yīng)版本即可,目前我嘗試過(guò)Ubuntu-20.04LTS和Ubuntu-22.04LTS都能夠正常安裝
- 方案二:
- 考慮到有很多伙伴的C盤空間有限,想將其裝到其他盤。這就要依靠wsl的export和import功能了,可使用
wsl --help
查看wsl的指令,export主要是打包系統(tǒng)分發(fā)文件,而import是導(dǎo)入系統(tǒng)分發(fā)文件 - 使用
wsl --export Ubuntu-22.04 D:\Ubuntu-22.04.tar
將系統(tǒng)分發(fā)導(dǎo)出到D盤,然后使用wsl --unregister Ubuntu-22.04
注銷系統(tǒng),即系統(tǒng)文件從C盤中徹底卸載并刪除,最后使用wsl --import Ubuntu-22.04 D:\meiwu_WSL D:\Ubuntu-22.04.tar
將系統(tǒng)導(dǎo)入到D盤。就實(shí)現(xiàn)了系統(tǒng)轉(zhuǎn)移
- 考慮到有很多伙伴的C盤空間有限,想將其裝到其他盤。這就要依靠wsl的export和import功能了,可使用
- 方案一:
- apt換源(根據(jù)個(gè)人需求),其實(shí)目前Ubuntu在國(guó)內(nèi)也有相應(yīng)的鏡像站,換源與否,其速度也慢不了多少,我個(gè)人就沒有進(jìn)行換源,擔(dān)心使用其他源下載的依賴包跟系統(tǒng)不兼容,導(dǎo)致出現(xiàn)系列BUG。源內(nèi)容可參考:Ubuntu 22.04換國(guó)內(nèi)源 清華源 阿里源 中科大源 163源,更多源可自行查詢,以下是相應(yīng)的換源指令
# 備份初始源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
# 編輯sources.list文件
sudo vim /etc/apt/sources.list
# 更新
sudo apt-get update
sudo apt-get upgrade
3. WSL開啟systemd
- WSL默認(rèn)不支持systemd,我個(gè)人也嘗試了網(wǎng)上很多方法,不是無(wú)效,就是強(qiáng)制開啟對(duì)系統(tǒng)造成影響
- 本人嘗試的最佳解決方案:若要Linux系統(tǒng)使用systemd作為其init系統(tǒng),使用systemctl命令管理Linux服務(wù),則需要確定WSL版本是0.67.6或更高版本,使用
wsl --version
進(jìn)行查看,若無(wú)法正常查看版本,則WSL版本過(guò)低導(dǎo)致的,請(qǐng)使用wsl --update
進(jìn)行更新至最新版即可,如下是我的WSL版本 - 使用
wsl -d Ubuntu-22.04
進(jìn)入系統(tǒng),依次運(yùn)行下面指令
# 新建wsl.conf文件
sudo nano /etc/wsl.conf
# 將以下內(nèi)容添加到wsl.conf并保存文件
[automount]
root = /
options = "metadata"
[boot]
systemd = true
# 關(guān)閉wsl
wsl --shutdown
# 重新啟動(dòng)Ubuntu,運(yùn)行sudo systemctl status命令或systemctl ,即可看到Systemd服務(wù)
- 使用
sudo systemctl status
驗(yàn)證systemctl命令是否可用,下圖為成功運(yùn)行的案例截圖
4. 配置noVNC通過(guò)web訪問Ubuntu-22.04
- 安裝vncserver
sudo apt-get install tightvncserver
- 查看安裝安裝的vncserver
which vncserver /usr/bin/vncserver
- 啟動(dòng)vncserver,并設(shè)置窗口大小,其中vncserver :1設(shè)置為1,要運(yùn)行noVNC的端口為5900+1,即5901
sudo vncserver :1 -geometry 1902x902 -name meiwu -depth 24
- 查看端口,若無(wú)netstat,根據(jù)提示安裝即可
sudo apt-get install netstat
sudo netstat -npl | grep 59
- 殺死端口(若不需要此窗口,則可進(jìn)行殺死)
sudo vncserver -kill :1
- 克隆github上的noVNC項(xiàng)目
sudo git clone https://github.com/novnc/noVNC
-
cd ./noVNC/utils/
進(jìn)入到noVNC的utils文件夾下,執(zhí)行以下指令
# 創(chuàng)建安全連接,一路回車即可
sudo openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
# 運(yùn)行noVNC,若不進(jìn)行l(wèi)isten設(shè)置,默認(rèn)web監(jiān)聽端口為6080,websockify代理將自動(dòng)裝載證書,設(shè)置密碼
./novnc_proxy --vnc localhost:5901 --listen 5555
- 在web輸入
http://localhost:5555/vnc.html
即可訪問Ubuntu-22.04,其中l(wèi)ocalhost可以替換成服務(wù)端ip,使用ifconfig
進(jìn)行查看,只需關(guān)注inet - 輸入密碼,連接之后,可以看到灰屏桌面,說(shuō)明配置成功,接下來(lái)就要為Ubuntu-22.04進(jìn)行配置桌面
5. Ubuntu-22.04配置圖形化界面并進(jìn)行漢化
- 圖形化界面,我選擇的是Xfce4,因?yàn)槠浒惭b簡(jiǎn)便,并且輕量化
- 安裝Xfce4和相應(yīng)擴(kuò)展包
sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies
- 桌面漢化
# 選擇語(yǔ)言和編碼
dpkg-reconfigure locales
# 防止出現(xiàn)亂碼,選擇以下選項(xiàng)
en_US ISO-8859-1
zh_CN GB2312
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_TW BIG5
zh_TW.UTF-8 UTF-8
# 接下來(lái)選擇默認(rèn)語(yǔ)言字體,選擇:
zh_CN.UTF-8
# 查看當(dāng)前系統(tǒng)字體
vim /etc/default/locale
# 安裝語(yǔ)言字體包
sudo apt-get install fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp
# 重新進(jìn)入U(xiǎn)buntu-22.04
wsl -t Ubuntu-22.04 # 退出
wsl -d Ubuntu-22.04 # 啟動(dòng)
- 之后即可看到漢化版的Xfce4桌面了
6. 安裝Fcitx實(shí)現(xiàn)中英文輸入
- 安裝
sudo apt-get install fcitx fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-libpinyin
- 設(shè)置-增加輸入法
- 設(shè)置-中英文切換快捷鍵
7. 配置Firefox
- 查看是否有Firefox殘余依賴和相關(guān)包
# 查看
dpkg --get-selections | grep firefox
# 若有,則卸載
sudo apt-get purge <相關(guān)包>
- 將Mozilla 團(tuán)隊(duì) PPA 添加到軟件源列表
sudo add-apt-repository ppa:mozillateam/ppa
- 更改 Firefox 包的優(yōu)先級(jí)以確保首選 PPA/deb/apt 版本的 Firefox,復(fù)制并粘貼整個(gè)代碼
echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
' | sudo tee /etc/apt/preferences.d/mozilla-firefox
- 希望自動(dòng)安裝未來(lái)的 Firefox版本
echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
- 運(yùn)行以下命令通過(guò) apt-get 安裝 Firefox
sudo apt-get install firefox
- 安裝完之后,可以在Xfce4桌面點(diǎn)擊放大鏡icon進(jìn)行查看,直接將其拉到桌面即可創(chuàng)建Firefox啟動(dòng)器,在Firefox的setting中設(shè)置中文簡(jiǎn)體即可
8. 配置Pycharm解釋器
- 進(jìn)入Pycharm官網(wǎng)下載linux的社區(qū)版本
- 在相應(yīng)的路徑下,執(zhí)行解壓命令
sudo tar -zxvf ./pycharm-community-2022.3.tar.gz -C ./
- 在xfce4桌面右擊,創(chuàng)建pycharm啟動(dòng)器,命令部分放入pycharm的bin下是pycharm.sh即可
9. 實(shí)現(xiàn)win系統(tǒng)與Ubuntu-22.04共享剪貼板
- 目前并未排查清楚WSL中的Ubuntu系統(tǒng)不能通過(guò)noVNC中的剪貼板與win進(jìn)行共享剪貼內(nèi)容,個(gè)人認(rèn)為WSL中的Ubuntu系統(tǒng)與noVNC的兼容性不是很好,Ubuntu-20.04也出現(xiàn)類似的問題,但是物理系統(tǒng)為Ubuntu-22.04時(shí),并未出現(xiàn)類似問題
- 解決方案:依靠autocutsel來(lái)間接實(shí)現(xiàn),autocutsel的編碼并不支持中文剪貼,所以剪貼中文時(shí)會(huì)出現(xiàn)亂碼
- 若有伙伴知道更好的解決方案,可留言或私信告知我,謝謝????
- 安裝autocutsel
sudo apt-get install autocutsel
- 編輯
~/.vnc/xstartup
,實(shí)現(xiàn)打開vncserver服務(wù)即可在后臺(tái)運(yùn)行autocutsel
# 編輯
sudo vi ~/.vnc/xstartup
# 加入以下內(nèi)容
autocutsel -f
- 我的
~/.vnc/xstartup
文件內(nèi)容
#!/bin/sh
xrdb "$HOME/.Xresources"
xsetroot -solid grey
autocutsel -f
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
10. 使用物理顯卡
- 查看物理機(jī)顯卡驅(qū)動(dòng),可以看到我的顯卡驅(qū)動(dòng)最高可支持CUDA12.1.98版本,配置CUDA版本比驅(qū)動(dòng)版本低即可,在這里我配置的是CUDA12.0
-
CUDA下載官網(wǎng),按照官網(wǎng)提供的指令依次執(zhí)行即可
- 配置CUDA環(huán)境變量–超級(jí)用戶
# 編輯超級(jí)用戶~/.bashrc
sudo -s
vi ~/.bashrc
#將以下內(nèi)容添加到末尾
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#更新~/.bashrc
source ~/.bashrc
#更新依賴
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
#檢查是否安裝成功,若返回相應(yīng)版本信息,則安裝成功
nvcc -V
- 配置CUDA環(huán)境變量–個(gè)人用戶
# 退出超級(jí)用戶
exit
sudo vi ~/.bashrc
#將以下內(nèi)容添加到末尾,Esc退出編輯,:wq保存并退出vi
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#檢查是否安裝成功,若返回相應(yīng)版本信息,則安裝成功
nvcc -V
- 為執(zhí)行nvidia-smi添加軟連接,若不添加,則無(wú)法識(shí)別nvidia-smi指令
ln -s /usr/lib/wsl/lib/nvidia-smi /usr/local/bin
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-722705.html
- 配置cudnn,進(jìn)入cudnn官網(wǎng)下載對(duì)應(yīng)CUDA版本的cudnn,我下載的是cuDNN v8.8.0。第一次下載需要注冊(cè)cudnn賬號(hào),我是先下載至物理機(jī),然后再解壓至WSL的Ubuntu當(dāng)中。
- 從物理機(jī)解壓cuDnn至Ubuntu,從Ubuntu中可以看到c,d,e,f其實(shí)對(duì)應(yīng)的就是物理機(jī)上的c、d、e、f盤
- 將E盤中的cudnn解壓至Ubuntu的當(dāng)前位置,并將相應(yīng)的cudnn文件復(fù)制至cuda相應(yīng)的文件夾下
sudo tar -xvf ../../mnt/e/cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz -C ./
sudo cp -P cudnn-linux-x86_64-8.8.0.121_cuda12-archive/lib/* /usr/local/cuda-12.0/lib64/
sudo cp cudnn-linux-x86_64-8.8.0.121_cuda12-archive/include/cudnn.h /usr/local/cuda-12.0/include/
sudo chmod a+r /usr/local/cuda-12.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-12.0/lib64/*
- 安裝pytorch的gpu版本,進(jìn)入Pytorch官網(wǎng)選擇pytorch版本,然后執(zhí)行官網(wǎng)給的指令即可
- 測(cè)試pytorch的gpu是否有效
import torch
print(torch.__version__) # 查看torch當(dāng)前版本號(hào)
print(torch.cuda.is_available()) # 查看當(dāng)前cuda是否適用于當(dāng)前版本的pytorch,返回bool值,若為True,則可用
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-722705.html
- 驗(yàn)證模型訓(xùn)練是否可行,若報(bào)錯(cuò)
Could not load library libcudnn_cnn_infer.so.8
,請(qǐng)執(zhí)行sudo apt-get install nvidia-driver-515
,然后重啟即可。下圖為測(cè)試結(jié)果,模型可正常訓(xùn)練并使用物理GPU
11. 使用Xfce4的tricks
- 創(chuàng)建啟動(dòng)器,這樣就不需要每次都在終端中啟動(dòng)Pycharm,在上面也提到創(chuàng)建的方法和步驟
- Xfce4的默認(rèn)使用Debian終端模擬器,并不好用,我們可以通過(guò)設(shè)置默認(rèn)使用Xfce-terminal,其實(shí)我們?cè)谏厦姘惭b的xfce4的擴(kuò)展包里面就集成了Xfce-terminal,我們之間設(shè)置就好,設(shè)置Firfox瀏覽器作為默認(rèn)瀏覽器的方法也是一樣
12. Windows終端美化
- 若嫌棄win10的cmd不好用,可以去微軟商店下載Windows-Terminal
- 然后win+R,鍵入wt即可打開,在設(shè)置里面有個(gè)
打開JSON文件
即可設(shè)置主題和樣式
若要轉(zhuǎn)載請(qǐng)注明出處??,謝謝????
參考資料
- Win10 下安裝配置WSL2
- ubuntu配置novnc通過(guò)web訪問服務(wù)器
- xfce桌面漢化(命令)
- 如何在 Ubuntu 22.04 上安 Firefox.Deb(不是How to Install Firefox as a .Deb on Ubuntu 22.04 (Not a Snap)
- 虛擬機(jī)使用主機(jī)顯卡(hyper-v和WSL2)
到了這里,關(guān)于全網(wǎng)最詳細(xì)搭建Win10+WSL2+Ubuntu-22.04LTS+CUDA+Xfce4+noVNC個(gè)人工作站的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!