一、? 環境準備
1. 鏡像燒錄
鏡像燒錄可以在任何操作系統內執?,這?以在Windows系統為例,使用balenaEtcher?具,快速燒錄鏡像到Micro SD卡中。
本章節所需的軟/硬件如下:
軟件相關:balenaEtcher制卡?具、openEuler鏡像
硬件相關:TF卡(64G存儲卡)、讀卡器
balenaEtcher制卡?具下載
點擊鏈接進行下載安裝balenaEtcher?具即可。
下載鏈接:https://etcher.balena.io/#download-etcher
openEuler鏡像下載
點擊鏈接下載openEuler鏡像即可。
下載鏈接:Orange Pi - Orangepi
鏡像燒錄
將插入TF卡的讀卡器與電腦連接,然后打開balenaEtcher?具,選擇剛剛下載的鏡像文件,然后選擇TF卡進行燒錄即可。
注意:下載下來的鏡像文件是.xz格式的壓縮包,要先解壓出.img文件,選擇.img文件進行燒錄。
等待TF卡燒錄完成拔出讀卡器。
2. 連接開發板
將燒錄好的TF卡插入香橙派中,連接電源啟動即可。TF卡一直插在香橙派中,不拔出。
首次連接,我們需要使用HDMI線與顯示屏相連,同時插入鍵盤鼠標才能完成配置操作。在聯網后,記下香橙派的IP地址便可用Vscode、MobaXterm等遠程連接的軟件進行遠程連接。
本章節所需的軟/硬件如下:
軟件:Vscode、MobaXterm(任選其一或多個皆可)
硬件:OrangePi AIpro-20t規格?橙派、電源線、HDMI線、顯?器、?
標、鍵盤
首次配置
開發板開機成功后進行登錄操作。
登錄賬號:HwHiAiUser,密碼:Mind@123(root密碼也是這個)
進入桌面后,點擊相應WiFi輸入密碼進行連接。連接成功后,右鍵選擇“Connection Information”記錄下香橙派的IP地址用于同一局域網下遠程連接。
MobaXterm連接
使用MobaXterm可以連接命令行也可以連接圖形化界面。
首先我們進行命令行的連接。點擊上方的“Session”后選擇“SSH”,然后填入香橙派IP地址,指定登錄用戶(可選)后,點擊“OK”則遠程連接成功。連接端口為22。
連接遠程桌面,我們也是點擊上方的“Session”,但選擇“VNC”,然后填入香橙派IP地址,連接端口為5901,點擊“OK”則遠程連接成功。
Vscode連接
下載好Vscode后安裝以下插件備用。
點擊“遠程資源管理器”,點擊SSH后的加號添加遠程連接,輸入“ssh HwHiAiUser@你的香橙派實際IP”后回車。然后選擇剛剛添加的遠程連接,點擊箭頭后輸入密碼即可連接成功。
連接成功后需要注意,遠程的插件要重新安裝一下。想要在Vscode遠程編輯器中運行Python代碼,安裝Python擴展即可。
3. 軟件環境升級
Toolkit升級(8.0.0_linux-aarch64)
打開終端,使用root??,root??密碼:Mind@123。
su – root
刪除鏡像中已安裝CANN包釋放磁盤空間,防?安裝新的CANN包時報錯磁盤空間不?。
cd /usr/local/Ascend/ascend-toolkit
rm -rf *
下載鏈接:社區版資源下載-資源下載中心-昇騰社區
選擇Ascend-cann-toolkit_8.0.0_linux-aarch64.run進行下載。此處我使用wget命令進行下載。下載完成后賦予其執行權限,然后運行安裝。安裝過程中需要手動輸入一次Y。
wget?https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.0/Ascend-cann-toolkit_8.0.0_linux-aarch64.run
chmod +x Ascend-cann-toolkit_8.0.0_linux-aarch64.run
./Ascend-cann-toolkit_8.0.0_linux-aarch64.run –install
出現Ascend-cann-toolkit_8.0.0_linux-aarch64 install success則安裝成功。
將source /usr/local/Ascend/ascend-toolkit/set_env.sh加入到/etc/profile文件末尾并加載環境變量。
vi /etc/profile
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /etc/profile
Kernels升級(310b_8.0.0_linux-aarch64)
打開終端,使用root??,root??密碼:Mind@123。
su – root
執?如下命令,獲取開發板NPU型號。
npu-smi info
下載鏈接:社區版資源下載-資源下載中心-昇騰社區
選擇Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run進行下載。此處我使用wget命令進行下載。下載完成后賦予其執行權限,然后運行安裝。安裝過程中需要手動輸入一次Y。
wget?https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.0/Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run
chmod +x Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run
./Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run –install
出現Ascend-cann-kernels-310b_8.0.0_linux-aarch64 install success則安裝成功。
MindSpore升級(MindSpore2.5.0)
打開終端,使用HwHiAiUser用戶。運行以下命令進行安裝。
pip install mindspore==2.5.0 -i?Simple Index
運行以下命令進行檢查是否安裝成功。
python -c “import mindspore;mindspore.set_device(‘Ascend’);mindspore.run_check()”
出現successfully則為成功。
Swap檢查與配置
打開終端,輸?如下命令,檢查Swap是否開啟:
free -m
正確輸出結果為:
如輸出的結果中Swap部分為0,則可在終端中輸入如下命令,配置Swap:
sudo fallocate -l 16G /swapfile
sudo chmod 600/swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo ‘/swapfile none swap sw 0 a’sudo tee -a /etc/fstab
完成配置后可再通過 free -m 檢查配置是否生效。
Gradio安裝
打開終端,輸?如下命令,安裝Gradio 4.44.0:
pip uninstall gradio -y
pip install gradio==4.44.0
Mindnlp安裝
打開終端,輸?如下命令,安裝Mindnlp(如已有最好先卸載,重新安裝):
pip install git+https://github.com/mindspore-lab/mindnlp.git@0.4
其他python依賴安裝
在運行代碼時,報錯顯示缺少什么包就使用pip安裝什么包。
二、? 運行代碼
1.?? 下載代碼
代碼地址:https://github.com/mindspore-courses/orange-pi-mindspore.git
打開終端,使用HwHiAiUser用戶。找一個你存放代碼的位置運行如下命令:
git clone?https://github.com/mindspore-courses/orange-pi-mindspore.git
下載代碼后,進入Online/training/01-DeepSeek-R1-Distill-Qwen-1.5B目錄,目錄中的三個py文件便是我們要運行的代碼。
2.?? 運行代碼
可以使用Vscode遠程連接開發環境,這樣運行調試更為方便。連接步驟之前已經給出,連接成功后打開代碼所在文件夾,打開相應代碼點擊右上角運行即可。
分別給出三個py文件運行成功的截圖。
deepseek-r1-distill-qwen-1.5b-lora.py
deepseek-r1-distill-qwen-1.5b-gradio.py
deepseek-r1-distill-qwen-1.5b-jit.py
三、常見問題
1. 無法連接外部網絡
在連接WiFi后,可以在局域網內連接香橙派,但是香橙派無法訪問外部網絡。
可以用以下方式解決:
1. 在運行命令`sudo ip route del default via 192.168.0.1 dev usb0`后問題解決,可以訪問外部網絡。(每次重啟后要重新執行命令)
2. 右鍵點擊圖形界面右上角的`“網絡->Edit Connections->選擇相應的問題連接(usb0)刪除”`即可。(永久生效)
2. 運行代碼時出現權限相關問題
運行代碼時出現“Permission denied”以及其他與當前登錄用戶相關的問題。
可以用以下方式解決:
從下載代碼開始,全程使用HwHiAiUser用戶,不要使用root用戶。同時注意代碼存放的位置,盡量放在HwHiAiUser用戶目錄下,避免引發文件權限的問題。
3. 運行代碼時提示Ascend顯存不足
運行代碼時出現Ascend顯存不足的相關提示信息,最后運行失敗。有Free memory size is less than half of total memory size.Device 0 Device MOC total size:24823529472 Device MOC free size:9051504640 may be other processes occupying this card, check as: ps -ef|grep python提示的。
可以用以下方式解決:
首先使用`ps -ef | grep python`命令查看是否有其他 Python 進程正在占用 NPU 導致顯存不足,有則`kill`相關進程。若無異常則使用`npu-smi info`命令查看顯存占用,如果發現異常最方便的方法就是使用`reboot`命令重啟設備。
4. 運行代碼時有RuntimeError以及ValueError
每次代碼運行到訓練或推理的部分就會報錯。
lora:`RuntimeError: aclnnGatherGetWorkspaceSize call failed, please check!`
gradio:`RuntimeError: aclnnCumsumGetWorkspaceSize call failed, please check!`
jit:`ValueError: Attention weights should be of size (1, 12, 6, 6), but is (1, 12, 6, 512)`
可以用以下方式解決:
檢查版本問題,尤其是Mindnlp的版本。
“`
Toolkit版本:8.0.0_linux-aarch64
Kernels版本:310b_8.0.0_linux-aarch64
MindSpore版本:MindSpore 2.5.0
Mindnlp版本:mindnlp 0.4.1
“`
即使Mindnlp版本號對應,但仍然建議你先卸載Mindnlp,然后運行`pip install git+https://github.com/mindspore-lab/mindnlp.git@0.4`命令重新安裝Mindnlp。
5. jit第二次對話報錯
運行jit的時候,在第二次對話的時候會報`RuntimeError: Sync stream error!`錯誤。
可以用以下方式解決:
使用`reboot`命令重啟設備。