DS1307 RTC 설정 ?
글쓴이: manpage / 작성시간: 화, 2015/04/14 - 11:49오전
부팅 시 RTC에 있는 내용이 시스템에 반영되지 않아서 문의 드립니다.
아래 처럼 수동으로 설정하면 동작됩니다.
뭘 잘못했는지 알 수가 없습니다.
고수님의 조언을 부탁드립니다.
제반 사항
- OS: Linux 2.6.34
- CPU : MPC8309
- RTC : DS1307
- i2c-1로 RTC detect, get, set 정상 (i2cdump, i2cset, i2cget)
[dts 파일]
i2c@3000 {
#address-cells = <1>;
#size-cells = <0>;
cell-index = <0>;
compatible = "fsl-i2c";
reg = <0x3000 0x100>;
interrupts = <14 0x8>;
interrupt-parent = <&ipic>;
clock-frequency = <400000>;
dfsrr;
rtc@68 {
compatible = "dallas,ds1307";
reg = <0x68>;
};
};
[arch/powerpc/platforms/83xx/platform 파일]
static struct i2c_board_info __initdata ds1307_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-ds1307", 0x68),
.type = "ds1307",
},
};
static int setup_rtc (void)
{
printk(KERN_INFO "RTC: Register DS1307/8 I2C devices.\n");
return i2c_register_board_info(0, ds1307_i2c_devices, ARRAY_SIZE(ds1307_i2c_devices));
}
machine_device_initcall(pmc8309_som, setup_rtc);
Device Drivers --->
<*> Real Time Clock --->
[*] Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
[ ] RTC debug support
*** RTC interfaces ***
[*] /sys/class/rtc/rtcN (sysfs)
[*] /proc/driver/rtc (procfs for rtc0)
[*] /dev/rtcN (character devices)
*** I2C RTC drivers ***
<*> Dallas/Maxim DS1307/37/38/39/40, ST M41T00, EPSON RX-8025
[script 파일]
/bin/mknod /dev/rtc c `awk "\\$2==\"rtc\" {print \\$1}" /proc/devices` 0
#if ( /usr/sbin/i2cdetect -y 1 | grep -q 68 ) ; then
# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
#fi
[부팅 메시지]
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 16299k freed
RTC: Register DS1307/8 I2C devices.
JFFS2 version 2.2. (NAND) ⓒ 2001-2006 Red Hat, Inc.
. . . .
i2c /dev entries driver
mpc-i2c e0003000.i2c: clock 400000 Hz (dfsrr=6 fdr=2)
mpc-i2c e0003100.i2c: clock 400000 Hz (dfsrr=6 fdr=2)
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (7914 buckets, 31656 max)
CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack module option or
sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
ctnetlink v0.93: registering with nfnetlink.
xt_time: kernel timezone is -0000
ip_tables: (C) 2000-2006 Netfilter Core Team
ClusterIP Version 0.8 loaded successfully
arp_tables: (C) 2002 David S. Miller
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
NET: Registered protocol family 15
drivers/rtc/hctosys.c: unable to open rtc device (rtc0) <-- 반영되지 않은 부분
RAMDISK: gzip image found at block 0
[내용 확인]
cat /proc/devices
89 i2c
254 rtc
ls -al /dev/rtc*
crw-r--r-- 1 root root 254, 0 Jan 1 09:00 /dev/rtc
hwclock
hwclock: can't open '/dev/misc/rtc': No such file or directory
ls -al /sys/class/rtc 내용 없음
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
ls -al /dev/rtc*
lrwxrwxrwx 1 root root 4 Jan 1 09:12 /dev/rtc -> rtc0
crw-r--r-- 1 root root 254, 0 Jan 1 09:12 /dev/rtc0
위의 명령을 입력하면 /sys/class/rtc/rtc0/에 파일들이 정상으로 올라옴.
cat /proc/driver/rtc <-- 위 명령을 실행하기 전에는 없음
rtc_time : 23:42:37
rtc_date : 2011-09-01
24hr : yes
date
Thu Jan 1 09:14:27 KST 1970
hwclock -s
date
Thu Sep 1 23:43:19 KST 2011Forums:


댓글 달기