
Ubuntu日本語フォーラム

ログインしていません。
サスペンドから自動起動させようと思い、wakealarmに起動時間を書き込もうと思い、以下のようなテストを行いました。そこで以下のようなオペレートを行ったところ、wakealarmに書き込みができないことが分かり、質問させていただいた次第です。
実行した内容
$sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
$sudo sh -c "echo `date '+%s' -d '+ 5 minutes'` > /sys/class/rtc/rtc0/wakealarm"
$cat /sys/class/rtc/rtc0/wakealarm
を実行しましたがwakealarmには何も記載されたいませんでした。
そこで、テストとしてエディターでwakealarmを開き、任意の数字を入れ、保存しようとするとエラーがでて保存できませんでした。具体的には
viで、"wakealarm" E667: Fsync failed
のエラーでます。
Wakealarmおよびそのディレクトリの書き込み権限はrootであったので、sudo suで上記と同じ手順を実行しましたが同じ結果でした。Rootで
cp ./wakealarm wakealarm.copy
と実行すると
cp: 通常ファイル `wakealarm.copy' を作成できません: そのようなファイルやディレクトリはありません
とエラーが出ます。実行したディレクトリは755のパーミションがついており、ファイル自体は644,777でも同じ結果でした。
どうもwakealarmがある/sys/devices/pnp0/00:03/rtc/rtc0が書き込み禁止になっているような気がするのですがパーミション自体は問題ないような気がします。
Osは、Ubuntu12.04LSTです。
本件の原因、対策がお分かりの方がいらっしゃいましたらコメントいただければ幸です。
オフライン
/sys/class 以下のファイルは、デバイスへのシンボリック・リンクなので、一般のテキスト・ファイルではありません。
参考: http://www.wdic.org/w/TECH//sys/class
以下のページが、参考になると思います
http://transitive.info/2012/05/25/ubuntu-1204-acpi-wakeup/
オフライン
si様、早速のコメントありがとうございます。
シンボリックリンクの件、参考になりました。wakealarmが/sys/devices/pnp0/00:03/rtc/rtc0にあったので、何か特別なファイルかと思い、wakealarmを確認したのですが、これ自体はシンボリックリンクではなく通常ファイルのように見えました。
今後の参考にご存知でしたらお教えいただきたいのですが、このようなファイルは属性的には通常のテキストファイルですが、システム的に特別なファイルだと言う事でしょうか? なにか見極め方があるのでしたらお教えいただければ幸いです。
ご教授、ありがとうございました。
オフライン
Tomato による投稿:
このようなファイルは属性的には通常のテキストファイルですが、システム的に特別なファイルだと言う事でしょうか? なにか見極め方があるのでしたらお教えいただければ幸いです。
私も詳しいわけではありませんので、よく分かりませんが....
/sys 以下のファイルは、/dev 以下のファイルとは違い、通常のファイルとしか見えません。
Linux file hierarchy と、その役割を、知識として、覚えておく以外に無いのかもしれません。
参考: http://oxynotes.com/?p=5987
ただ、個別に見ていけば、ファイルサイズが、0 だったり、4096 だったりと、特別なサイズである事、タイムスタンプが起動した時の時間だったり、奇妙な時間だったりと、普通ではないことは確かなようです。
オフライン
Tomato による投稿:
今後の参考にご存知でしたらお教えいただきたいのですが、このようなファイルは属性的には通常のテキストファイルですが、システム的に特別なファイルだと言う事でしょうか? なにか見極め方があるのでしたらお教えいただければ幸いです。
この手のものは一種のファイルシステムとして実現されているので、mount コマンドでファイルシステムを確認すると判別できます。
典型的には以下のように、「type proc」や「type sysfs」といった名称で見えます。
普通のファイルシステムが「type ext4」などと表示されていることと比較すると分かりやすいと思います。
$ mount /dev/sda1 on / type ext4 (rw,errors=remount-ro) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type devtmpfs (rw,mode=0755) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
オフライン
hito様、コメントありがとうございます。
なるほど、mountで見るとそのTypeがわかるのですね。
勉強になりました。ありがとうございました。
オフライン