diff --git a/mbtk/liblynq_lib/src/lynq_alarm.c b/mbtk/liblynq_lib/src/lynq_alarm.c
index 2722854..461a045 100755
--- a/mbtk/liblynq_lib/src/lynq_alarm.c
+++ b/mbtk/liblynq_lib/src/lynq_alarm.c
@@ -5,47 +5,84 @@
 #include "lynq_alarm.h"
 #include "mbtk_str.h"
 
-int lynq_set_wakealarm(unsigned long time_sec)
+
+bool rtc_flag = FALSE;
+int lynq_rtc_service_init(void)
+{
+    int ret = 0;
+    if(!rtc_flag)
+    {
+        rtc_flag = TRUE;
+        ret = 1;
+    }
+    else
+    {
+        ret = -1;
+    }
+    return ret;
+}
+
+int lynq_rtc_service_deinit(void)
+{
+    int ret = 0;
+    if(rtc_flag)
+    {
+        rtc_flag = FALSE;
+        ret = 0;
+    }
+    else{
+        ret = -1;
+    }
+
+    return ret;
+}
+
+int lynq_set_wakealarm(unsigned long time_sec,int src_id,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify )
 {
     UNUSED(time_sec);
     if(time_sec < 1 || time_sec > pow(2, 28)) {
         return -1;
     }
 
-    return 0;
+    return -1;
 }
 
-int lynq_set_poweralarm(unsigned long time_sec)
+//int lynq_set_poweralarm(unsigned long time_sec)
+int lynq_set_poweralarm(unsigned long time_sec,int src_id)
 {
     UNUSED(time_sec);
     if(time_sec < 1 || time_sec > pow(2, 28)) {
         return -1;
     }
+    char buf[50] ={0};
+    sprintf(buf, "rtcwake -d rtc0 -s %d -m on &", time_sec);
+    system(buf);
 
     return 0;
 }
 
 // min:1 max:2^28
-ssize_t wakealarm(char *buffer)
+ssize_t wakealarm(char *buffer,int src_id,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify )
 {
     UNUSED(buffer);
     if(str_empty(buffer)) {
         return -1;
     }
-    return lynq_set_wakealarm(atol(buffer));
+    return lynq_set_wakealarm(atol(buffer), src_id, rtc_id, wakealarm_notify);
 }
 
 // min:1 max:2^28
-ssize_t poweralarm(char *buffer)
+ssize_t poweralarm(char *buffer,int src_id)
 {
     UNUSED(buffer);
     if(str_empty(buffer)) {
         return -1;
     }
-    return lynq_set_poweralarm(atol(buffer));
+    return lynq_set_poweralarm(atol(buffer), 0);
 }
 
-int cancel_wakealarm(void)
+ssize_t cancel_wakealarm(int src_id, int rtc_id)
 {
-    return 0;
-}
\ No newline at end of file
+    return -1;
+}
+
diff --git a/mbtk/liblynq_lib/src/lynq_time.c b/mbtk/liblynq_lib/src/lynq_time.c
index 55f3ef3..8f432f0 100644
--- a/mbtk/liblynq_lib/src/lynq_time.c
+++ b/mbtk/liblynq_lib/src/lynq_time.c
@@ -303,7 +303,8 @@
 // system time set to RTC
 int lynq_set_rtc_time(void)
 {
-    system("hwclock --systohc");
+//    system("hwclock --systohc");
+    system("hwclock -w rtc0");
     return 0;
 }
 
