Red Hat Enterprise Linux で hwclock コマンドを実行すると timed out エラーが発生する
Environment
Red Hat Enterprise Linux
Issue
- 一部のシステムでは、
hwclockコマンドを実行すると、以下のメッセージが表示されます。
# hwclock --show
select() to /dev/rtc to wait for clock tick timed out
- ハードウェアクロックをシステムクロックと同期しても、同じエラーが表示されます。
# hwclock --systohc
select() to /dev/rtc to wait for clock tick timed out
- 上述のタイムアウトメッセージが原因で、再起動するたびにシステムの時間が変わります。
Resolution
hwclock コマンドで --directisa オプションを使用すると、ISA マシンで発生した問題は解決します。このオプションを指定して、明示的な I/O 命令を使用して、/dev/rtc デバイスを使用せずにハードウェアにアクセスします。
たとえば以下のようになります。
# hwclock --show --directisa
Sun 26 Apr 2009 12:10:11 PM IST -0.910523 seconds
# hwclock --systohc --directisa
#
--directisa オプションの詳細は、man hwclock を実行して man ページを参照してください。
再起動時にハードウェアクロックを同期しながら、--directisa オプションが使用されるようにするには、/etc/sysconfig/clock ファイルに以下のパラメーターを追加します。
# cat /etc/sysconfig/clock
ZONE="Asia/Calcutta"
UTC=false
ARC=false
CLOCKFLAGS="--directisa"
このパラメーターを追加後、次回システムを再起動すると、正しいシステム時間が表示されます。
Root Cause
hwclock コマンドは、ハードウェアクロックを問い合わせたり、設定したりするために使用されます。hwclock は、デフォルトでは /dev/rtc デバイスを使用してハードウェアクロックにアクセスします (rtc デバイスドライバーから送られるとみなします)。
タイムアウトエラーメッセージは、ISA マシンでのみ表示されます。再起動時に Red Hat Enterprise Linux が hwclock --systohc コマンドを使用してハードウェアクロックをシステムクロックで同期するため、再起動するたびにシステム時間が変わります。ただし、このタイムアウトエラーが原因で、システムが同期を実行できません。
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
