[Bugfix][API-593][syslog]Removed Adding busybox to the SDK puts the system in emergency mode. This section describes how to set the size and number of syslog files

Change-Id: I576c4bc003fde951dae2e74b339b1b1271e2f480
diff --git a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/busyboxmakefile.patch b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/busyboxmakefile.patch
new file mode 100755
index 0000000..b795cbd
--- /dev/null
+++ b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/busyboxmakefile.patch
@@ -0,0 +1,10 @@
+--- busybox-1.29.3/Makefile	2018-09-10 02:56:44.000000000 +0800
++++ busybox-1.29.3/Makefilenew	2022-09-29 10:53:50.416226016 +0800
+@@ -493,6 +493,7 @@
+ 		util-linux/ \
+ 		util-linux/volume_id/ \
+ 
++libs-y += -ldl
+ endif # KBUILD_EXTMOD
+ 
+ ifeq ($(dot-config),1)
diff --git a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
index 76c6618..43e9fc9 100755
--- a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
+++ b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
@@ -1,23 +1,63 @@
-diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
-index 266657f..7db5c16 100644
---- a/sysklogd/syslogd.c
-+++ b/sysklogd/syslogd.c
-@@ -74,6 +74,8 @@
- #include <sys/sem.h>
+--- busybox-1.29.3/sysklogd/syslogd.c	2018-07-02 19:23:06.000000000 +0800
++++ busybox-1.29.3/sysklogd/syslogdnew.c	2022-09-29 13:47:26.318538618 +0800
+@@ -165,6 +165,8 @@
+ 
+ #include <sys/un.h>
+ #include <sys/uio.h>
++#include <dlfcn.h>
++
+ 
+ #if ENABLE_FEATURE_REMOTE_LOG
+ #include <netinet/in.h>
+@@ -176,6 +178,9 @@
  #include <sys/shm.h>
  #endif
+ 
 +#define ENABLE_FEATURE_SYSLOGD_CFG 1
 +#define ENABLE_FEATURE_ROTATE_LOGFILE 1
- 
++int (*lynq_get_value)(char *file, char *section, char *key, char *tmp);
  
  #define DEBUG 0
-@@ -1063,6 +1065,9 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv)
+ 
+@@ -1102,6 +1107,13 @@
+ {
+ 	int opts;
+ 	char OPTION_DECL;
++    
++    void *handle_uci;
++    static char get_propty_log_data[64] = {0};
++    int lynq_syslog_filesize = 100*1024*1024;
++    int lynq_syslog_rotate = 10;
++    const char *lynq_libpath_uci = "/lib64/liblynq-uci.so";
++    
+ #if ENABLE_FEATURE_REMOTE_LOG
+ 	llist_t *remoteAddrList = NULL;
+ #endif
+@@ -1157,6 +1169,27 @@
  	//umask(0); - why??
  	write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
  
-+	G.logFileSize = 10*1024*1024;
-+	G.logFileRotate = 10;
-+	
++    handle_uci = dlopen(lynq_libpath_uci,RTLD_NOW); 
++    lynq_get_value = (int (*)(void))dlsym(handle_uci,"lynq_get_value");
++    if(NULL != lynq_get_value)
++    {
++        memset(get_propty_log_data,0,64);
++        if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_size",get_propty_log_data))
++        {
++            lynq_syslog_filesize = atoi(get_propty_log_data);
++            printf("lynq_syslog_filesize:%d\n",lynq_syslog_filesize);
++        }
++        memset(get_propty_log_data,0,64);
++        if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_rotate",get_propty_log_data))
++        {
++            lynq_syslog_rotate = atoi(get_propty_log_data);
++            printf("lynq_syslog_rotate:%d\n",lynq_syslog_rotate);
++        }
++    }
++
++	G.logFileSize = lynq_syslog_filesize;
++	G.logFileRotate = lynq_syslog_rotate;
++
  	do_syslogd();
  	/* return EXIT_SUCCESS; */
  }
diff --git a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend
old mode 100644
new mode 100755
index a4b7b21..dfe933d
--- a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend
+++ b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox_%.bbappend
@@ -17,6 +17,7 @@
                    file://coredump-start \
                    file://coredump-handler.sh \
                    file://0001-Revert-remove-systemd-support.patch \
+                   file://busyboxmakefile.patch \                   
                  "
 inherit systemd
 
diff --git a/src/lynq/lib/liblynq-log/include/liblog/lynq_deflog.h b/src/lynq/lib/liblynq-log/include/liblog/lynq_deflog.h
index 667ae1a..1217b24 100755
--- a/src/lynq/lib/liblynq-log/include/liblog/lynq_deflog.h
+++ b/src/lynq/lib/liblynq-log/include/liblog/lynq_deflog.h
@@ -13,6 +13,10 @@
 void lynq_log_warning(const char *format,...);

 void lynq_log_info(const char *format,...);

 void lynq_log_debug(const char *format,...);

+int lynq_syslog_set_file_size(int value);

+int lynq_syslog_get_file_size(void);

+int lynq_syslog_set_file_rotate(int value);

+int lynq_syslog_get_file_rotate(void);

 

 

 #ifndef USER_LOG_TAG 

diff --git a/src/lynq/lib/liblynq-log/log-riltel/log.c b/src/lynq/lib/liblynq-log/log-riltel/log.c
index c59374b..4c606dc 100755
--- a/src/lynq/lib/liblynq-log/log-riltel/log.c
+++ b/src/lynq/lib/liblynq-log/log-riltel/log.c
@@ -365,3 +365,85 @@
     return ;
 }
 
+
+/**
+ * @brief Set the syslog file size
+ * 
+ * @param syslog file size (M)
+ * @return 0:success other:fial 
+ */
+int lynq_syslog_set_file_size(int value)
+{
+    char lynq_syslog_data[64] = {0};
+
+    if(value <10)
+    {
+      value = 10;  
+    }
+    else if(value > 1024)
+    {
+        value = 1024;
+    }
+    snprintf(lynq_syslog_data,sizeof(lynq_syslog_data),"%d",(value*1024*1024));//Converts bytes to M
+    return lynq_set_value(LOG_UCI_MODULE,"syslog_flie_size", lynq_syslog_data);
+}
+
+/**
+ * @brief Get the syslog file size
+ * 
+ * @param log data
+ * @return 10-1024:success -1:fial 
+ */
+int lynq_syslog_get_file_size(void)
+{
+    int lynq_syslog_size = 0;
+    char lynq_syslog_data[64] = {0};
+	if(0 == lynq_get_value(LOG_UCI_FILE, LOG_UCI_MODULE, "syslog_flie_size", lynq_syslog_data))
+	{
+        lynq_syslog_size = ((atoi(lynq_syslog_data)) / 1024) /1024;
+        return lynq_syslog_size;
+    }
+    return -1;
+}
+
+/**
+ * @brief Set the syslog file rotate
+ * 
+ * @param syslog file rotate number
+ *
+ * @return 0:success other:fial 
+ */
+int lynq_syslog_set_file_rotate(int value)
+{
+    char lynq_syslog_data[64] = {0};
+
+    if(value < 0)
+    {
+        value = 0;
+    }
+    else if(value > 100)
+    {
+        value = 100;
+    }
+
+    snprintf(lynq_syslog_data,sizeof(lynq_syslog_data),"%d",value);
+    return lynq_set_value(LOG_UCI_MODULE,"syslog_flie_rotate", lynq_syslog_data);
+}
+
+/**
+ * @brief Example Set the number of syslog files cut
+ * 
+ * @param log data
+ * @return 10-1024:success -1:fial 
+ */
+int lynq_syslog_get_file_rotate(void)
+{
+    int lynq_syslog_rotate = 0;
+    char lynq_syslog_data[64] = {0};
+	if(0 == lynq_get_value(LOG_UCI_FILE, LOG_UCI_MODULE, "syslog_flie_rotate", lynq_syslog_data))
+	{
+        lynq_syslog_rotate = atoi(lynq_syslog_data);
+        return lynq_syslog_rotate;
+    }
+    return -1;
+}
\ No newline at end of file