モジュール: x86/モジュール: 誤った再配置ターゲットをスキップ

モジュール: x86/モジュール: 誤った再配置ターゲットをスキップ

次のように、Debian 10(v4l2loopback)でモジュールをコンパイルしようとしています。

sudo apt-get install linux-headers-$(uname -r)
git clone https://github.com/umlaeute/v4l2loopback.git
cd v4l2loopback/
make -j4
sudo make install
sudo modprobe v4l2loopback

これによりエラーが発生します。

modprobe: ERROR: could not insert 'v4l2loopback': Exec format error

問題が何であるかを調べようとしています。 (この問題についていくつかの質問があります。https://github.com/umlaeute/v4l2loopback/issues/208またはhttps://github.com/umlaeute/v4l2loopback/issues/296しかし、問題は私のシステム構成に関連しているようですv4l2loopback。)

1. 確認dmesg

これが何を意味するのかわかりません。

[   48.264449] v4l2loopback: loading out-of-tree module taints kernel.
[   48.264505] v4l2loopback: module verification failed: signature and/or required key missing - tainting kernel
[   48.264610] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 00000000d85e721d, val ffffffffc0ba115b

2. カーネルヘッダーがカーネルインストールと一致することを確認する

次の出力を見ると、両方が一致すると考えられます。

$ sudo modinfo v4l2loopback 
filename:       /lib/modules/4.19.0-2-amd64/extra/v4l2loopback.ko
license:        GPL
author:         Vasily Levin, IOhannes m zmoelnig <[email protected]>,Stefan Diewald,Anton Novikovet al.
description:    V4L2 loopback video device
depends:        videodev
retpoline:      Y
name:           v4l2loopback
vermagic:       4.19.0-2-amd64 SMP mod_unload modversions

$ uname -a
Linux pingu1 4.19.0-2-amd64 #1 SMP Debian 4.19.16-1 (2019-01-17) x86_64 GNU/Linux

したがって、これは問題ではありません。

3. モジュールのビルドに使用されるツールチェーンは、カーネルのビルドに使用されるツールチェーンと同じですか?

カーネルは次のように構築されているようですgcc version 8.2.0

$ cat /proc/version
Linux version 4.19.0-2-amd64 ([email protected]) (gcc version 8.2.0 (Debian 8.2.0-14)) #1 SMP Debian 4.19.16-1 (2019-01-17)

モジュールが何で作られたのかを知る方法がわかりません。私の推測は次のとおりです。

$ gcc --version
gcc (Debian 8.3.0-6) 8.3.0

そうですね。8.2.0これは8.3.0マイナーバージョンの変更なので、何も起こりません。

4.depmod以前に実行modprobe

違いはありません。問題のモジュールには依存関係がないため、何の影響もなかったと思います。

次に何をすべきかを助ける人がいますか?

ベストアンサー1

私も同じ問題がありましたが、カーネルヘッダを再インストールして問題を解決できました。

sudo apt update && sudo apt upgrade
sudo apt remove --purge linux-headers-*
sudo apt autoremove && sudo apt autoclean
sudo apt install linux-headers-generic

おすすめ記事