S3C2410 RTC Driver 問題(轉)

1689阅读 0评论2008-11-22 I-linux
分类:LINUX

在 Linux 系統中的時鐘,可分為硬體時鐘及系統時鐘。硬體時鐘可以依賴輔助電源(電池)持續累計時間;而系統時鐘則每次重新啟動就會重置,所以一般 Linux 在開機時會做個和硬體時鐘同步的動作(hwclock -s),但是在 Embedded Linux 中是要手動操作的。

首先必須正確驅動 S3C2410RTC(Real-Time Clock) 模組才能使用 hwclock 指令,Linux 2.6.10 版本之後應該都有內建驅動,不過在 2.6.14.7 版本中有些問題,會跑出 Segmentation fault 訊息,需要作以下修改。

1. 重新編譯 Kernel 選項
# make menuconfig
在 Device Drivers —> Character devices —>
< > Enhanced Real Time Clock Support (不要選擇)
[*] S3C2410 RTC Driver

2. 修改 arch/arm/mach-s3c2410/mach-smdk2410.c
在 struct platform_device *smdk2410_devices[] 當中加入 &s3c_device_rtc,,這個結構已經在 arch/arm/mach-s3c2410/devs.c 定義,應該是忘記加了,修改好後再編譯即完成。

3. 確認驅動載入
Driver 有正確載入開機應該會有
S3C2410 RTC, (c) 2004 Simtec Electronics
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
並且有 /dev/misc/rtc 裝置

4. 使用 hwclock
先利用 date 指令調整好系統時間,再用 hwclock -w 寫入硬體時鐘,往後開機只要自動執行用 hwclock -s 即可抓到正確的時間囉!

5.假设您要设置的时间是 2008年1月3日18时24分
方法一:
date 010318242008(月日时分年)(完整书写)
方法二:
1》先设置日期
date -s 20080103
2》设置时间
date -s 18:24
+++++++++++++++++++++++++++++
如果要同时更改BIOS时间
在执行
hwclock -w

上一篇:linux下system函数介绍
下一篇:嵌入式Linux2.6 Kernel Module模板动态加载实例和常见问题解决方法