web-dev-qa-db-ja.com

mdevとは何ですか?/ dev / *ノードをLinuxで作成する方法は?

私たちのLinuxカーネルは2.6.31で、busyboxが組み込まれた組み込みMIPSプロセッサーで実行されています。

初期化スクリプト(rcS)はmdevを次のように開始します:

echo "/sbin/stbhotplug" > /proc/sys/kernel/hotplug
mdev -s

Linuxのユーティリティmdevが何をしているのか誰にも教えてもらえますか?

Stbhotplugはイーサネットインターフェイスを処理するスクリプトであるため、自動ホットプラグを行うように見えます。

また、与えられたrootfsにはコンソールデバイスしかありません。つまり、/dev/console/devの唯一のファイルです。

ただし、システムの実行中は、/devディレクトリにデバイスファイルがいっぱいになります(/dev/mtdなど)。

私が尋ねる理由は、/dev/ubi_ctrlが見つからない、または/dev/ubi1が見つからないというエラーが時々発生するためです。

Linuxはどのように、またはいつこれらのデバイスを作成しますか?

ありがとう。

11
user626201
3
MountainRider

mdevは、組み込みデバイスで使用するためのudevの軽量な代替品です。どちらも/devでのデバイスファイルの作成と、特定のイベントが発生したときのアクションの開始を処理します。

6
Daniel Böhmer

mdevは基本的に、事前設定されたデバイスファイルのセットに対してmknodを呼び出します。

選択肢がある場合は、代わりに使用します。

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

特別なdevtmpfsファイルシステムを/devに自動的にマウントし、モジュールがinsmodに独自のデバイスファイルを自動的に作成できるようにします。次に例を示します。 https://stackoverflow.com/questions/ 5970595/how-to-create-a-device-node-from-the-init-module-code-of-a-linux-kernel-module/45531867#45531867

これはBuildrootとほとんどのディストリビューションが現在デフォルトで行っていることです。