首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ARM / Armbian Jessie中安装系统-在错误的内核版本中编译的模块

在ARM / Armbian Jessie中安装系统-在错误的内核版本中编译的模块
EN

Unix & Linux用户
提问于 2016-04-03 10:33:35
回答 1查看 1K关注 0票数 1

在过去的几天里,我已经做了几次尝试,试图在我的Lamobo R1中安装并运行Armbian5.0/DebianJessie8.0中的系统。

安装后,使用:

代码语言:javascript
复制
apt-get install -t jessie-backports sysdig sysdig-dkms dkms 

运行时会出现以下错误:

代码语言:javascript
复制
# sysdig
Unable to load the driver
error opening device /dev/sysdig0. Make sure you have root credentials and that the sysdig-probe module is loaded.

在几天前的第一次尝试中,我注意到模块不在/lib/modules/4.4.1-sunxi/updates/dkms/sysdig-probe.ko中,并在/var/lib/dkms/sysdig/0.5.1/build/main.c中评论了asm-offsets.h的包含。

我还必须在内核目录make scripts中运行/usr/src/linux-headers-4.4.1-sunxi

在此之后,我运行/usr/lib/dkms/dkms_autoinstaller start并编译了该模块。但是,当运行时,错误是相同的。

insmod说:

代码语言:javascript
复制
#insmod /lib/modules/4.4.1-sunxi/updates/dkms/sysdig-probe.ko
insmod: ERROR: could not insert module /lib/modules/4.4.1-sunxi/updates/dkms/sysdig-probe.ko: Invalid module format

运行modinfo:

代码语言:javascript
复制
modinfo /lib/modules/4.4.1-sunxi/updates/dkms/sysdig-probe.ko 

产出:

代码语言:javascript
复制
filename:       /lib/modules/4.4.1-sunxi/updates/dkms/sysdig-probe.ko
author:         sysdig inc
license:        GPL
depends:        
vermagic:       4.4.1 SMP mod_unload ARMv7 p2v8 
parm:           max_consumers:Maximum number of consumers that can     simultaneously open the devices (uint)
parm:           verbose:Enable verbose logging (bool)

所以很明显,这个模块的内核版本是错误的。

现在,即使在安装的时候,它也写着:

代码语言:javascript
复制
#apt-get install -t jessie-backports sysdig sysdig-dkms dkms 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
sysdig is already the newest version.
The following NEW packages will be installed:
  dkms sysdig-dkms
0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.
Need to get 0 B/137 kB of archives.
After this operation, 821 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Selecting previously unselected package dkms.
(Reading database ... 72251 files and directories currently installed.)
Preparing to unpack .../dkms_2.2.0.3-2_all.deb ...
Unpacking dkms (2.2.0.3-2) ...
Selecting previously unselected package sysdig-dkms.
Preparing to unpack .../sysdig-dkms_0.5.1-1~bpo8+1_all.deb ...
Unpacking sysdig-dkms (0.5.1-1~bpo8+1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up dkms (2.2.0.3-2) ...
Setting up sysdig-dkms (0.5.1-1~bpo8+1) ...
Loading new sysdig-0.5.1 DKMS files...
First Installation: checking all kernels...
Building only for 4.4.1-sunxi
Building initial module for 4.4.1-sunxi
Done.

sysdig-probe:
Running module version sanity check.
  - Original module
    - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.1-sunxi/updates/dkms/

depmod....

DKMS: install completed.

同样,sysdig-probe.ko,尽管它被编译成4.4.1-sunxi的消息,却是为4.4.1内核而不是4.4.1-sunxi编译的。

我的uname -r输出: 4.4.1-sunxi.我既没有安装4.4.1内核,也没有安装4.4.1源代码。

代码语言:javascript
复制
root@ruir:/usr/src# ls -la
total 16
drwxr-xr-x  4 root root 4096 Apr  3 11:06 .
drwxr-xr-x 11 root root 4096 Oct 23 21:04 ..
drwxr-xr-x 25 root root 4096 Mar 30 21:29 linux-headers-4.4.1-sunxi
drwxr-xr-x  2 root root 4096 Apr  3 11:06 sysdig-0.5.1

因此,我的问题是,Linux中是否有任何文件/配置项,我可以将其修改为4.4.1-sunxi而不是4.4.1?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2016-04-03 10:53:11

我不得不在/lib/modules/4.4.1-sunxi/build中更改以下4.4.1到4.4.1-sunxi的事件

代码语言:javascript
复制
    include/generated/utsrelease.h:#define UTS_RELEASE "4.4.1"
    include/config/auto.conf.cmd:ifneq "$(KERNELVERSION)" "4.4.1"
    include/config/kernel.release:4.4.1

在此之后,我能够用正确的版本安装sysdig/编译sysdig-probe.ko

因此,虽然一些脚本执行uname -r (或接受其他内核版本)并输出它们为此做了正确的工作,但在幕后,至少部分模块编译似乎要参考相应的内核版本文件来调整编译模块的版本。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/273983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档