2016-11-18 5 views
0

特定のカーネルモジュールを挿入してカーネルモジュールが取り外されたときにデバイスノードを削除すると、自動的にデバイスノードを作成できるudevルールを見つけようとしています。udevルールを使用すると、カーネルモジュール上でデバイスノードを作成および削除する

+0

スタックオーバーフローは、プログラミングや開発の質問のためのサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 [Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306) – jww

+0

@jwwも参照してください。フィードバックに感謝いたします。実際には私の質問は直接プログラミング/スクリプトに関与していませんが、答えはありません。将来私はそれを念頭に置いて、開発者の質問のようには見えないという形で質問をします。 – aarshad

答えて

0

udevルールの詳細とudevadmツールの助けを借りて私は次のudevルールを導き出すことができました。私のカーネルモジュール名は "amdtPwrProf"です。

オンACTION == "add"デバイスノードが作成され、ACTION == "remove"はデバイスノードが削除されます。

# Create the device file when the module is inserted. 

SUBSYSTEM=="module", ACTION=="add", KERNEL=="amdtPwrProf", RUN+="/opt/codexl/amdtPwrProf_mknod.sh" 


# Remove the device file when the module is removed. 

SUBSYSTEM=="module", ACTION=="remove", KERNEL=="amdtPwrProf", RUN+="/bin/rm /dev/amdtPwrProf" 

スクリプト "amdtPwrProf_mknod.sh" の内容は、

mknod /dev/amdtPwrProf -m 666 c `cat /proc/amdtPwrProf/device` 0 
0

あなたはudevは、スクリプトを追加する

てみてくださいどのように機能するかを学ぶ必要があります:(rootとして)すると

cat >/path/to/myscript <<"eof" 
#!/bin/sh 

newfile=`mktemp /tmp/udev-test-XXXXXXXXXX` 
echo "$0 -- [email protected]" >$newfile 
set >>$newfile 
eof 
chmod +x /path/to/myscript 

echo >/etc/udev/rules.d/99-myscript.rules 'RUN+="/path/to/myscript"' 

service udev restart 

次に追加/デバイスを削除して見してみてください/tmp/udev-test-*

... man udevを参照し、その他のファイルを/etc/udev/rules.dあなたのパーソナルルールの競争を洗練して独自のスクリプトを作成してください。

+0

あなたのコメントをいただきありがとうございます。はい、私はすでにudevとudevのルールの基礎を知っていますが、主に特定のシナリオを解決することに興味がありました。さらにそれを掘り起こして解決策を見つけることができました。 – aarshad

関連する問題