instalando o sysdig no ARM / Armbian Jessie - módulo compilado na versão do kernel errada

1

Eu já fiz algumas tentativas nos últimos dias tentando instalar e executar o sysdig no Armbian 5.0 / Debian Jessie 8.0, no meu Lamobo R1.

Depois de instalá-lo com:

apt-get install -t jessie-backports sysdig sysdig-dkms dkms 

Quando executado, apresenta o seguinte erro:

# 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.

Na primeira tentativa, alguns dias atrás, notei que o módulo não estava sendo colocado em /lib/modules/4.4.1-sunxi/updates/dkms/sysdig-probe.ko e comentei a inclusão de asm-offsets.h em /var/lib/dkms/sysdig/0.5.1/build/main.c .

Eu também tive que executar make scripts no diretório do kernel /usr/src/linux-headers-4.4.1-sunxi .

Depois disso, corro /usr/lib/dkms/dkms_autoinstaller start e o módulo foi compilado. No entanto, ao executar o erro, é o mesmo.

Em execução, o insmod diz:

#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

Executando modinfo:

modinfo /lib/modules/4.4.1-sunxi/updates/dkms/sysdig-probe.ko 

Saídas:

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)

Então, obviamente, o módulo está com a versão errada do kernel.

Agora, mesmo quando estiver instalando, ele diz:

#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.

E novamente, o sysdig-probe.ko, apesar da mensagem que está sendo compilada para o 4.4.1-sunxi, está sendo compilado para o kernel 4.4.1 e não para o 4.4.1-sunxi.

Minha uname -r output: 4.4.1-sunxi. Eu não tenho nem o kernel 4.4.1, nem 4.4.1 fontes instaladas.

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

Então, minha pergunta é, existe algum item de arquivo / configuração no Linux que eu possa mudar para torná-lo compilar para 4.4.1-sunxi e não 4.4.1?

    
por Rui F Ribeiro 03.04.2016 / 12:33

1 resposta

1

Eu tive que alterar em /lib/modules/4.4.1-sunxi/build as seguintes ocorrências de 4.4.1 para 4.4.1-sunxi

    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

Depois disso, consegui instalar o sysdig / compile sysdig-probe.ko com a versão correta.

Então parece que enquanto alguns scripts fazem uname -r (ou aceitam outras versões do kernel) e saem fazendo o trabalho correto para isso, parece que nos bastidores pelo menos parte da compilação do módulo consulta a versão do kernel correspondente arquivos para ajustar a versão do módulo compilado.

    
por 03.04.2016 / 12:53