DPU 型号:MBF2M516A-CEEOT (全高半长 (FHHL) DPU)
DPU 类型:NVIDIA BlueField-2 Ethernet DPU
操作系统:ubuntu20.04
参考文档:
https://docs.nvidia.com/networking/display/BlueFieldDPUOSLatest/NVIDIA+BlueField+DPU+Platform+Operating+System+v3.9.3.1+Documentation
硬件安装手册:
https://docs.nvidia.com/networking/display/BlueField2DPUENUG
DOCA开发手册:
https://docs.nvidia.com/networking/display/BlueField2DPUENUG
安装过程所需要的包的下载页面:
https://developer.nvidia.com/networking/doca
一共需要3个安装包,这里我使用了1.5.0版本的,如下:
doca-dpu-repo-ubuntu2004-local_1.5.0055-1.5.8.1.0.1.1.bf.3.9.3.12383.11.signed_arm64.deb
doca-host-repo-ubuntu2004_1.5.0-0.2.2.1.5.0055.1.5.8.1.0.1.1_amd64.deb
DOCA_1.5.0_BSP_3.9.3_Ubuntu_20.04-11.signed.bfb
安装参考这里:
https://docs.nvidia.com/doca/sdk/installation-guide-for-linux/index.html#installation-files
下面是我的安装过程:
主机端操作:
这一部分可以直接参考上面链接的教程。
1.卸载老版本的DOCA
host# for f in $( dpkg --list | grep doca | awk '{print $2}' ); do echo $f ; apt remove --purge $f -y ; done
host# sudo apt-get autoremove
2. install doca-tools
sudo dpkg -i doca-host-repo-ubuntu2004_1.5.0-0.2.2.1.5.0055.1.5.8.1.0.1.1_amd64.deb
sudo apt-get update
sudo apt-get install doca-tools
目前为止没有发生报错
sudo apt-get install doca-cx-tools
这一步发生报错,报错信息如下:
sun@sun-G3-3590:~$ sudo apt-get install doca-cx-tools
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
doca-cx-tools 已经是最新版 (1.5.0-0.2.2)。
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
doca-cx-tools : 依赖: doca-cx-prime-tools (= 1.5.0055-1) 但是它将不会被安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。
于是按照提示安装依赖:
sudo apt-get install doca-cx-prime-tools
显示另一个报错:
sun@sun-G3-3590:~$ sudo apt-get install doca-cx-prime-tools
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列【新】软件包将被安装:
doca-cx-prime-tools
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 366 个软件包未被升级。
有 3 个软件包没有被完全安装或卸载。
需要下载 0 B/1,884 B 的归档。
解压缩后会消耗 13.3 kB 的额外空间。
获取:1 file:/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo main/ doca-cx-prime-tools 1.5.0055-1 [1,884 B]
(正在读取数据库 ... 系统当前共安装有 318918 个文件和目录。)
准备解压 .../doca-cx-prime-tools_1.5.0055-1_amd64.deb ...
正在解压 doca-cx-prime-tools (1.5.0055-1) ...
dpkg: 处理归档 /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-prime-tools_1.5.0055-1_amd64.deb (--unpack)时出错:
正试图覆盖 /etc/profile.d/doca-runtime.sh,它同时被包含于软件包 doca-prime-tools 1.5.0055-1
在处理时有错误发生:
/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-prime-tools_1.5.0055-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
于是对dpkg加入强制覆盖选项 [--force-overwrite]
sun@sun-G3-3590:~$ sudo dpkg -i --force-overwrite /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-prime-tools_1.5.0055-1_amd64.deb
(正在读取数据库 ... 系统当前共安装有 318918 个文件和目录。)
准备解压 .../doca-cx-prime-tools_1.5.0055-1_amd64.deb ...
正在解压 doca-cx-prime-tools (1.5.0055-1) ...
dpkg: 警告: 由于开启了 --force 选项,以下问题被忽略:
dpkg: 警告: 正试图覆盖 /etc/profile.d/doca-runtime.sh,它同时被包含于软件包 doca-prime-tools 1.5.0055-1
正在设置 doca-cx-prime-tools (1.5.0055-1) ...
然后运行:
sudo apt-get -f install
sun@sun-G3-3590:~$ sudo apt-get -f install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 366 个软件包未被升级。
有 3 个软件包没有被完全安装或卸载。
解压缩后会消耗 0 B 的额外空间。
正在设置 mlnx-fw-updater (5.8-1.0.1.1) ...
Initializing...
Attempting to perform Firmware update...
No devices found!
正在设置 ibdump (6.0.0-1.58101) ...
正在设置 doca-cx-tools (1.5.0-0.2.2) ...
再次运行:sudo apt install doca-cx-tools
sun@sun-G3-3590:~$ sudo apt install doca-cx-tools
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
doca-cx-tools 已经是最新版 (1.5.0-0.2.2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 366 个软件包未被升级。
发现直接就安装上了。
3. install software on host
按照官网的命令运行:
sudo apt install -y doca-runtime doca-sdk
这里没有发生报错,但是下面的命令发生了类似的错误,解决方法也类似:
sun@sun-G3-3590:~$ sudo apt install -y doca-cx-runtime doca-cx-sdk
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
doca-cx-runtime 已经是最新版 (1.5.0-0.2.2)。
doca-cx-sdk 已经是最新版 (1.5.0-0.2.2)。
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
doca-cx-prime-runtime : 依赖: doca-cx-libs 但是它将不会被安装
依赖: doca-cx-apps 但是它将不会被安装
doca-cx-prime-sdk : 依赖: libdoca-cx-libs-dev 但是它将不会被安装
依赖: doca-cx-apps-dev 但是它将不会被安装
依赖: doca-cx-samples 但是它将不会被安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。
按照提示,运行:
sun@sun-G3-3590:~$ sudo apt --fix-broken install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在修复依赖关系... 完成
将会同时安装下列软件:
doca-cx-apps doca-cx-apps-dev doca-cx-libs doca-cx-samples libdoca-cx-libs-dev
下列【新】软件包将被安装:
doca-cx-apps doca-cx-apps-dev doca-cx-libs doca-cx-samples libdoca-cx-libs-dev
升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 364 个软件包未被升级。
有 4 个软件包没有被完全安装或卸载。
需要下载 0 B/657 kB 的归档。
解压缩后会消耗 3,541 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 file:/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo main/ doca-cx-libs 1.5.0055-1 [221 kB]
获取:2 file:/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo main/ doca-cx-apps 1.5.0055-1 [53.9 kB]
获取:3 file:/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo main/ libdoca-cx-libs-dev 1.5.0055-1 [314 kB]
获取:4 file:/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo main/ doca-cx-apps-dev 1.5.0055-1 [51.2 kB]
获取:5 file:/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo main/ doca-cx-samples 1.5.0055-1 [16.7 kB]
(正在读取数据库 ... 系统当前共安装有 324459 个文件和目录。)
准备解压 .../doca-cx-libs_1.5.0055-1_amd64.deb ...
正在解压 doca-cx-libs (1.5.0055-1) ...
dpkg: 处理归档 /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-libs_1.5.0055-1_amd64.deb (--unpack)时出错:
正试图覆盖 /etc/ld.so.conf.d/doca-runtime-x86_64-linux-gnu.conf,它同时被包含于软件包 doca-libs 1.5.0055-1
dpkg-deb: 错误: 粘贴 子进程被信号(断开的管道) 终止了
准备解压 .../doca-cx-apps_1.5.0055-1_amd64.deb ...
正在解压 doca-cx-apps (1.5.0055-1) ...
dpkg: 处理归档 /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-apps_1.5.0055-1_amd64.deb (--unpack)时出错:
正试图覆盖 /opt/mellanox/doca/applications/nat/bin/doca_nat,它同时被包含于软件包 doca-apps 1.5.0055-1
准备解压 .../libdoca-cx-libs-dev_1.5.0055-1_amd64.deb ...
正在解压 libdoca-cx-libs-dev (1.5.0055-1) ...
dpkg: 处理归档 /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/libdoca-cx-libs-dev_1.5.0055-1_amd64.deb (--unpack)时出错:
正试图覆盖 /etc/profile.d/doca-sdk-x86_64-linux-gnu.sh,它同时被包含于软件包 libdoca-libs-dev 1.5.0055-1
dpkg-deb: 错误: 粘贴 子进程被信号(断开的管道) 终止了
准备解压 .../doca-cx-apps-dev_1.5.0055-1_amd64.deb ...
正在解压 doca-cx-apps-dev (1.5.0055-1) ...
dpkg: 处理归档 /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-apps-dev_1.5.0055-1_amd64.deb (--unpack)时出错:
正试图覆盖 /opt/mellanox/doca/applications/VERSION,它同时被包含于软件包 doca-apps-dev 1.5.0055-1
由于已经达到 MaxReports 限制,没有写入 apport 报告。
准备解压 .../doca-cx-samples_1.5.0055-1_amd64.deb ...
正在解压 doca-cx-samples (1.5.0055-1) ...
dpkg: 处理归档 /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-samples_1.5.0055-1_amd64.deb (--unpack)时出错:
正试图覆盖 /opt/mellanox/doca/samples/common.c,它同时被包含于软件包 doca-samples 1.5.0055-1
由于已经达到 MaxReports 限制,没有写入 apport 报告。
在处理时有错误发生:
/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-libs_1.5.0055-1_amd64.deb
/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-apps_1.5.0055-1_amd64.deb
/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/libdoca-cx-libs-dev_1.5.0055-1_amd64.deb
/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-apps-dev_1.5.0055-1_amd64.deb
/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-samples_1.5.0055-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
对这5个包逐一进行处理:(这5条命令一个一个执行)
sun@sun-G3-3590:~$ sudo dpkg -i --force-overwrite /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-libs_1.5.0055-1_amd64.deb
sun@sun-G3-3590:~$ sudo dpkg -i --force-overwrite /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-apps_1.5.0055-1_amd64.deb
sun@sun-G3-3590:~$ sudo dpkg -i --force-overwrite /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/libdoca-cx-libs-dev_1.5.0055-1_amd64.deb
sun@sun-G3-3590:~$ sudo dpkg -i --force-overwrite /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-apps-dev_1.5.0055-1_amd64.deb
sun@sun-G3-3590:~$ sudo dpkg -i --force-overwrite /usr/share/doca-host-repo-ubuntu2004-1.5.0/repo/pool/doca-cx-samples_1.5.0055-1_amd64.deb
最后执行:
sun@sun-G3-3590:~$ sudo apt-get -f install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 364 个软件包未被升级。
有 4 个软件包没有被完全安装或卸载。
解压缩后会消耗 0 B 的额外空间。
正在设置 doca-cx-prime-sdk (1.5.0055-1) ...
正在设置 doca-cx-prime-runtime (1.5.0055-1) ...
正在设置 doca-cx-sdk (1.5.0-0.2.2) ...
正在设置 doca-cx-runtime (1.5.0-0.2.2) ...
运行:
sudo apt install -y doca-runtime doca-sdk
sun@sun-G3-3590:~$ sudo apt install -y doca-runtime doca-sdk
[sudo] sun 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
doca-runtime 已经是最新版 (1.5.0-0.2.2)。
doca-sdk 已经是最新版 (1.5.0-0.2.2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 364 个软件包未被升级。
没有报错,继续按照官网的步骤,运行:
sun@sun-G3-3590:~$ sudo apt install -y doca-extra
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列【新】软件包将被安装:
doca-extra
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 364 个软件包未被升级。
需要下载 0 B/50.8 MB 的归档。
解压缩后会消耗 50.9 MB 的额外空间。
获取:1 file:/usr/share/doca-host-repo-ubuntu2004-1.5.0/repo main/ doca-extra 0.0.8-1 [50.8 MB]
正在选中未选择的软件包 doca-extra。
(正在读取数据库 ... 系统当前共安装有 324474 个文件和目录。)
准备解压 .../doca-extra_0.0.8-1_amd64.deb ...
正在解压 doca-extra (0.0.8-1) ...
正在设置 doca-extra (0.0.8-1) ...
到这里主机上的驱动和软件已经安装完成了
继续运行官网的命令:
sun@sun-G3-3590:~$ sudo mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices
Unloading MST PCI module (unused) - Success
Unloading MST PCI configuration module (unused) - Success
sun@sun-G3-3590:~$ sudo mlxconfig -d /dev/mst/mt41686_pciconf0 -y reset
Reset configuration for device /dev/mst/mt41686_pciconf0? (y/n) [n] : y
Applying... Failed!
-E- Failed to open the device
这里有错误可能是因为我还没有插入DPU
sun@sun-G3-3590:~$ sudo systemctl status rshim
● rshim.service - rshim driver for BlueField SoC
Loaded: loaded (/lib/systemd/system/rshim.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-03-15 19:03:41 CST; 28min ago
Docs: man:rshim(8)
Main PID: 90071 (rshim)
Tasks: 2 (limit: 18909)
Memory: 424.0K
CGroup: /system.slice/rshim.service
└─90071 /usr/sbin/rshim
3月 15 19:03:41 sun-G3-3590 systemd[1]: Starting rshim driver for BlueField SoC...
3月 15 19:03:41 sun-G3-3590 systemd[1]: Started rshim driver for BlueField SoC.
这里显示DPU所需要的rshim驱动已经安装完成了。
(后续的操作我会持续记录)