背景
本文记录Mellanox驱动加载报错Unknown symbol psample_sample_packet和tls_get_record以及tls_validate_xmit_skb的解决过程以及解决方法
快速回忆
modprobe psample
modprobe tls
解决过程
insmod的时候报错:
[Thu May 1 20:11:19 2025] mlx5_core: Unknown symbol psample_sample_packet (err -2)
[Thu May 1 20:11:19 2025] mlx5_core: Unknown symbol tls_get_record (err -2)
[Thu May 1 20:11:19 2025] mlx5_core: Unknown symbol tls_validate_xmit_skb (err -2)
使用modprobe加载正常,这三个参数属于其他模块:
OFED编译的ko也找不到:
内核查不到:
然后查看内核配置,是系统的配置:
然后搜索:find / -name “*.ko” |grep -i act
然后加载:
没有效果
最后通过加载psample和tls的内核模块解决:
还有一个办法,直接用modprobe来加载会自动加载。
其他
关于psample和tls:
psample
和tls
是Linux内核中的两个不同模块
psample
模块主要用于数据包采样。它允许系统对网络数据包进行选择性的采样,以便进行流量分析、监控和统计等操作。通过配置相关参数,psample
可以按照一定的规则从网络数据流中抽取部分数据包,并将这些采样数据包传递给特定的处理程序或应用程序进行进一步分析。例如,可以根据数据包的源地址、目的地址、端口号、协议类型等条件来确定是否对某个数据包进行采样。常用于网络性能监测、网络安全审计以及流量特征分析等领域。
tls
模块通常指的是传输层安全(Transport Layer Security)相关的内核模块,它主要用于实现网络通信中的加密和安全认证功能。基于TLS协议,tls
模块在网络数据包传输过程中对数据进行加密处理,确保数据的保密性和完整性。
尝试过更换25.01、23.10、5.8都有问题怀疑是OFED和内核版本搭配,最终都不是。
这里反映了mlx5_core这个模块的依赖并未标注上psample和tls。
另外对于modprobe会更加有效,但是有些场景如果存在多个ko以及系统自带ko要注意。
后面再insmod mlx ko之前需要加载下psample和tls