傲腾AD模式用作内存的操作步骤

背景

产生的报错如下:

ERROR: "set_pmem_node" [drivers/dax/kmem.ko] undefined!
scripts/Makefile.modpost:103: recipe for target 'modules-modpost' failed
make[1]: *** [modules-modpost] Error 1
Makefile:1301: recipe for target 'modules' failed
make: *** [modules] Error 2

libdaxctl: daxctl_insert_kmod_for_mode: dax1.0: a modalias lookup list was not created
error reconfiguring devices: No such device or address

从源码构建ndctl和daxctl以及傲腾AD模式用作内存的操作步骤 非常建议直接去这个原文看。

debug

把之前的namespace删除了

sudo ndctl destroy-namespace --force namespace1.0

开始之前应该删除旧的及其相关依赖吧

sudo apt-get --purge remove daxctl
sudo apt-get --purge remove ndctl

第一步先下载依赖:

sudo apt install -y git gcc g++ autoconf automake asciidoc asciidoctor bash-completion xmlto libtool pkg-config libglib2.0-0 libglib2.0-dev libfabric1 libfabric-dev doxygen graphviz pandoc libncurses5 libkmod2 libkmod-dev libudev-dev uuid-dev libjson-c-dev libkeyutils-dev libiniparser1 libiniparser-dev bc meson

进入到我的工作台

cd 

下载源码(注意根据内核版本选这个的版本)

wget https://github.com/pmem/ndctl/archive/refs/tags/v66.zip

解压

unzip .zip 

进入到源码文件夹

cd 

Build

meson setup build
meson compile -C build

安装

sudo meson install -C build

参考原文
https://docs.pmem.io/ndctl-user-guide/installing-ndctl/installing-ndctl-from-source-on-linux

注意

要注意编译内核时是选项选择:

< Y >: 模块驱动编译到内核中,启动时自动加载。也对应*号
< N >: 空格:表示该功能不编译到内核中,即新的内核将不支持该功能。 也对应_
< M >:模块会被编译,但是不会被编译到内核中,只是生成.o文件,我们可以收集这些.o文件做到linux的文件系统中,然后用insmod实现动态加载。

如果出现这个报错
在这里插入图片描述
如果按照这个链接的开头检查过内核和系统版本上的支持没问题,那么多半就是内核编译时有选项没有开启了。
在这里插入图片描述
xconfig的点和勾对应menuconfig的M和Y。

xconfig里的搜索功能,通过经验发现,好像是输入的不能有符号和空格,要不然查不到;被查的可有空格,但凡出现符号之后的字符都查不到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值