3. 开发环境搭建:安装Linux开发环境(Ubuntu 22.04);配置交叉编译工具链;安装DPU SDK与文档;连接DPU开发板并验证

好,咱们正式开始动手了。

这一章,说白了就是给你的电脑和DPU开发板「牵线搭桥」。环境搭不好,后面全是白忙活。我见过太多新手卡在这一步,其实没那么玄乎,跟着我一步步来就行。

3.1 为什么选Ubuntu 22.04?

你可能会问:为什么非得用Linux?Windows不行吗?

嗯,我个人的习惯是——做嵌入式开发,尤其是DPU/SmartNIC这种底层硬件,Linux是绕不开的。DPU的SDK、交叉编译工具链,几乎都是为Linux量身定做的。你在Windows上折腾WSL,最后还是会发现原生Linux最省心。

Ubuntu 22.04 LTS,是目前最稳的选择。我去年给一个客户搭环境,试了20.04和22.04,最后还是22.04的驱动兼容性最好。说白了,选它,就是选省事。

核心要求:

  • Ubuntu 22.04 LTS(64位)
  • 至少预留50GB磁盘空间(SDK+工具链+项目文件)
  • 内存建议16GB以上(编译DPU固件时很吃内存)

3.2 安装Ubuntu 22.04

这一步我就不啰嗦了,网上教程一大堆。我只说几个关键点:

  1. 双系统还是虚拟机? 我个人建议直接装双系统。虚拟机做DPU开发,USB透传和PCIe直通会出各种幺蛾子。我曾经在VMware上折腾了三天,最后发现是虚拟化层把DPU的DMA请求给过滤了……
  2. 分区怎么搞? 至少分三个区:/(根目录)30GB,/home 20GB,swap 跟内存一样大。如果你要存大量数据集,/home 可以再大点。
  3. 安装时断网。 嗯,这个技巧是我踩坑换来的。联网安装会下载更新,慢得要死,还容易中途失败。断网装完,再换国内源更新,快得多。

3.3 配置交叉编译工具链

交叉编译,说白了就是「在PC上编译,在DPU上运行」。为什么?因为DPU的CPU架构通常是ARM,而你的PC是x86。你不能直接在DPU上跑gcc,那太慢了。

我习惯用 aarch64-linux-gnu- 这套工具链。安装很简单:

sudo apt update
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

装完后验证一下:

aarch64-linux-gnu-gcc --version

如果看到版本号,说明成了。

小技巧: 你可以写个简单的hello.c,用交叉编译器编译,然后丢到DPU上跑。如果跑通了,说明工具链没问题。我每次搭新环境都这么干,省得后面出问题到处找原因。

3.4 安装DPU SDK与文档

SDK是DPU的灵魂。不同厂商的SDK不一样,但套路差不多。我这里以最常见的NVIDIA BlueField系列为例(其他厂商类似)。

下载SDK包(通常是一个 .deb.tar.gz):

wget https://example.com/dpu-sdk-22.10.tar.gz
tar -xzf dpu-sdk-22.10.tar.gz
cd dpu-sdk-22.10
sudo ./install.sh

安装过程中,脚本会自动配置环境变量。你可以在 ~/.bashrc 里看到类似这样的内容:

export DPU_SDK_PATH=/opt/dpu-sdk
export PATH=$PATH:$DPU_SDK_PATH/bin

记得 source ~/.bashrc 让它生效。

文档呢?我建议你把SDK自带的 docs/ 目录整个拷贝到本地。别指望每次查东西都去官网翻,离线文档才是真香。我曾经在客户现场没网,全靠本地文档救场。

注意: SDK版本一定要跟DPU开发板的固件版本匹配。不匹配的话,轻则API调用失败,重则DPU直接不认你的程序。我见过有人拿SDK 21.10去连固件22.04的板子,折腾了两天……

3.5 连接DPU开发板并验证

终于到了最激动人心的一步——把板子连上电脑。

连接方式通常有两种:

  • USB转串口:用于查看启动日志、进入uboot
  • 以太网:用于SSH登录、传输文件、远程调试

我一般先接串口线,确认板子能正常启动。用 screenminicom 连上去:

sudo screen /dev/ttyUSB0 115200

上电后,你会看到一串启动日志。如果看到 login: 提示,说明板子活了。

然后配置网络。给板子设一个静态IP(比如 192.168.1.100),你的电脑设成同网段(比如 192.168.1.10)。用网线直连,或者通过交换机。

验证网络连通:

ping 192.168.1.100

通了之后,SSH登录:

ssh root@192.168.1.100

默认密码一般是 rootadmin,具体看厂商文档。

最终验证: 在DPU上跑一个你之前交叉编译好的hello程序。如果输出正常,恭喜你——环境搭建成功!

3.6 本章知识体系一览

下面这张图,帮你把整个流程串起来。别嫌简单,环境搭建就是「搭桥」——桥搭好了,后面才能跑车。

开发环境搭建流程 安装Ubuntu 22.04 配置交叉编译工具链 安装DPU SDK与文档 连接DPU开发板 验证:运行hello程序 关键点: • 双系统优于虚拟机 • SDK版本必须匹配固件 • 先串口后网络,逐步验证

3.7 避坑指南

最后,分享几个我亲身踩过的坑:

  • 「板子连不上」:我曾经折腾了一下午,最后发现是串口线是坏的。换一根线就好了。所以,先怀疑硬件。
  • 「交叉编译的程序跑不起来」:大概率是动态链接库版本不对。用 file 命令看看可执行文件的架构,再用 ldd 检查依赖。我习惯静态编译,省心。
  • 「SDK安装报错」:先看日志。SDK安装脚本一般会写日志到 /tmp//var/log/。别瞎猜,看日志是最快的。

嗯,环境搭建就这些。别怕麻烦,这一步稳了,后面就顺了。


专注资料整理