[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:29800] Re: udev and /dev/cdrom, /dev/dvd, etc..
-
From:Naofumi Honda
-
Date:Tue, 2 Jun 2009 00:49:42 +0900 (JST)
- Subject: [plamo:29800] Re: udev and /dev/cdrom, /dev/dvd, etc..
- From: Naofumi Honda <honda@xxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 2 Jun 2009 00:49:56 +0900
- User-agent: Mutt/1.5.17 (2007-11-01)
本多です
自分につける事にします。
# rc.Sの処理、その他改善の判断はお任せします。
どうしても/dev/cdromの消える現象の詳細と理由を述べないといけないようですね。
私は家と職場に複数のmachinesを持っています。この現象(/dev/cdromが消える)
は1台を除き全て発生します。でも1台は発生しません。簡単な調査でなぜ
発生しなかの理由も判ります。どうしてこう錯綜するのでしょう。。。
#ちなみに、私の環境下では発生があたりまえです(1台を除き全て)。
#でもこのような事を言うのは無意味ですね。事象が発生する理由が全てです。
------------------------------------------------------------------------
さてこの現象は以下の理由で発生します(これは既に述べた事ですが繰替えします)
1) cdromを挿入すると"change" ueventが発生。
2) /etcはwrite可能なので/dev/.udev/tmp-*-70-*は参照されない事に注意する。
該当cdromのlink情報は/etc/udev/rule.d/70-*には存在しない。また、75-*
rulesはueventが"change”で"add"ではないので無視される。
3) よって該当するruleは発見されない。
4)udevは/dev/cdromのreferenceを1つ下げる。つまり0になるので/dev/cdromを削除する。
(udev/udev/udev-event.cのudev_event_execute_rules()及び
その中のudev_node_update_old_links()以下を参照せよ)
------------------------------------------------------------------------
ではなぜ私の1台は現象が発生しないのでしょうか?
簡単です。 "change" ueventが発生しないからです。もっと言うと一切
ueventはcd挿入で発生しません。これは、
udevadm monitor
もしくは
strace -fp "udevのpid"
をしてuevent or syscallsをみていれば簡単に判る事です。
Kernelで"change" ueventを発生するのはata-scsi-emulation(or acpi)の
時のみです。
#linux/driver/ata/libata_scsi.cのata_scsi_media_change_notify()と
#その呼出を参照せよ。
ですから、
*) hd?にattachされるcdromはkernel ueventなしで現象も発生しない!
*) ata?にattachされるcdromは"change" uevent発生で現象も発生!
#確か、どこかにideとscsi emulationのkernel eventの差と
#書いたと思いますが。。。
参考までに本当のscsi busに接続されたscsi devicesも即座には
"change" ueventは発生しません。
何故なら、target -> initiatorはscsi2の通常の状況では
起きえないからです。mediaを交換されたtargetはtargetのstateが
check conditionになりますがhostに通知する訳ではありません。
その後、何らかのscsi cmdがhostから発行された時に初めて
scsi statusでcheck conditionを知らせsense conditionを
hostが更に実行して初めてmedia changeを通知するのです。
- Follow-Ups
-
- [plamo:29801] Re: udev and /dev/cdrom, /dev/dvd, etc.., KATOH Yasufumi
[検索ページ]
[メール一覧]
Plamo ML 公開システム