助け合いフォーラム

LinuC

LinuC Lv2-201(Ver10.0)

21653

公開日 2024/01/01

「modules.dep ファイルはカーネルモジュールそれぞれが、別のどのカーネルモジュールに依存しているかという依存関係情報が書かれているファイルです。modules.dep.bin はそれをコンピュータが処理する形式に変換したものです。
これらファイルを利用して依存関係を解決しているコマンドの代表に modprobe があります。」

とあるのですが依存関係を解決してくれるというのはどう解決をするのでしょうか?
必要なカーネルモジュールが存在していた場合ハードディスクからメモリにロードするのでしょうか?
依存解決の具体的なプロセスを簡単に確認したかったです。


f fujii1992

2024/01/01 17:07

modules.dep ファイルはカーネルモジュールそれぞれが、別のどのカーネルモジュールに依存しているかという依存関係情報が記載されているファイルですが modprobeを実行するとmodules.dep ファイルをもとにハードディスクからコンパイル済みのモジュールがメモリにロードされるということらしいです

2024/01/01 14:33

例えば私のRaspberryPi上でip_tablesというモジュールの情報を見るとこう書いてあります。

$ modinfo ip_tables
filename:       /lib/modules/5.10.83-v8+/kernel/net/ipv4/netfilter/ip_tables.ko
alias:          ipt_icmp
description:    IPv4 packet filter
author:         Netfilter Core Team <coreteam@netfilter.org>
license:        GPL
srcversion:     746D0FEB4FFADDBD962E6BA
depends:        x_tables
intree:         Y
name:           ip_tables
vermagic:       5.10.83-v8+ SMP preempt mod_unload modversions aarch64

depends: 行に x_tables に依存しているとの記載がありますので、実際にどうなるのかやってみるとこんな感じになります。

$ lsmod | grep tables
ip_tables              32768  0
x_tables               45056  1 ip_tables
$ sudo modprobe -r ip_tables
$ lsmod | grep tables
(1件も表示されない=ip_tablesと依存するx_tablesも同時に削除される)

$ sudo modprobe x_tables
$ lsmod | grep tables
x_tables               45056  0
(x_tables指定で組み込んでもip_tablesは組み込まれない)

$ sudo rmmod x_tables
$ sudo modprobe ip_tables
$ lsmod | grep tables
ip_tables              32768  0
x_tables               45056  1 ip_tables
(ip_tablesを組み込むと依存するx_tablesも同時に組み込まれる)


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?