[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