x86デバイスで実行されるビルドルート生成カーネル(3.6.11)とルートファイルシステムがあります。これはbusyboxを使用し、それを使用してBIOSハードウェアクロックを設定しようとしますhwclock
。電話をかけるたびに、次のエラーが発生しますhwclock
。
can't open '/dev/misc/rtc': No such file or directory
/dev/rtc
私のシステムにはデバイスファイルが1つしかないので、これを理解しています。ただし、使用して開こうとしましたが、メッセージで失敗したことがstrace
わかります。hwclock
/dev/rtc
open("/dev/rtc",O_READONLY|O_LARGEFILE) = -1 ENODEV (No such device)
/dev/rtcN
/proc/driver/rtc
カーネル設定のデバイスドライバセクションで、リアルタイムクロックのカーネル設定を確認した後、(文字デバイス)と(rtc0のprocfs)オプションが有効になっていることがわかります。また、PCスタイルの「CMOS」プラットフォームRTCドライバのみを選択しました。しかし、ここのヘルプセクションで以下を読んでいます。
すべてのPCまたはACPIベースのシステムだけでなく、他のマザーボードのリアルタイムクロックの直接サポートを受けるには、ここで「はい」を選択してください。特にPCサウスブリッジ、DS12887またはM48T86、いくつかの多機能またはLPCバスチップなどと互換性のあるオリジナルMC146818です。
システムは、このドライバが使用するプラットフォームデバイスを定義する必要があります。そうしないと、そのデバイスにアクセスできなくなります。
なぜ "/dev/rtc"ファイルを開くことができないのか混乱しています。それは存在し、私が電話すると出力を取得します。
cat /proc/driver/rtc
デバイスを登録するために実行する必要がある他のタスクはありますか?ドライバをモジュールに変更してinsmod
起動後に作業を実行することもできますが、それが良いアイデアかどうかはわかりません。誰もがこの問題を解決する方法を提案したり、問題が何であるかについての詳細を得ることができますか?
編集するオンラインで読んで実行して、dmesg | grep -i rtc
次のような結果を得ました。
[ ... ] RTC time: 16:01:07, date 09/24/13
[ ... ] rtc_cmos 00:02: RTC can wake from S4
[ ... ] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[ ... ] rtc0: alarms up to one year, y3k, 114 bytes nvram
/dev/rtc0
これは私がなぜ静的デバイステーブルを使用しているのか疑問に思います。それでは、それを使用しないので、デバイスノードをbuildroot
提供するために変更する必要がありますか?/dev/rtc0
udev
ベストアンサー1
症状のいくつかは説明できますが、出勤方法についてはお話できませんhwclock
。
言葉の意味を混同することが多い。装備Unix環境で。これは次のことを意味できます。
- 文字またはブロックデバイスタイプのファイルシステムエントリ。
- このファイルシステムノードの背後にあるカーネルエンティティ。
- ハードウェアバスに接続された論理オブジェクトです。
- ハードウェアコンポーネントを物理的に分離します。
[No such device] メッセージに次の単語が表示されます。装備カーネルエンティティを表します。デバイスを登録したカーネルエンティティがないようです/dev/rtc
。 dmesg 出力によると、CMOS RTC ドライバがカーネルに存在し、RTC が見つかり、番号が 0 に指定されました。
デバイス(カーネルエンティティの意味でも)はデバイスファイル(上記の最初の意味)を介してアクセスされ、識別するタイプ(文字またはデバイス)、キー番号、マイナー番号で識別されます。名前はカーネルとは関係がないため、正しいファイルが見つかる限り、/dev/rtc
vsには問題ありません。デバイス番号が正しいことを確認してください。/dev/rtc0
hwclock
/dev/rtc
crw------- 1 root root 254, 0 Sep 24 13:29 /dev/rtc
/dev/rtc
シンボリックリンクの場合はへのリンクでなければならず、rtc0
上記のようにデバイス番号(254,0)を持たなければなりません。