本文主要是介绍傲腾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 2libdaxctl: 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里的搜索功能,通过经验发现,好像是输入的不能有符号和空格,要不然查不到;被查的可有空格,但凡出现符号之后的字符都查不到。
这篇关于傲腾AD模式用作内存的操作步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!