Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    请问麻雀d1s用tina-sdk2.0打开 printk time,内核启动log还是没时间戳显示,如何解决?

    MR Series
    4
    15
    4632
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jmhh247 LV 6 last edited by

      如题

      no_printk_time.jpg

      1 Reply Last reply Reply Quote Share 0
      • tigger
        tigger LV 7 last edited by

        b445d3fe-eb8e-44c0-9c83-e6df9ec514e5-image.png

        c3e1d7e2-a65b-4492-92e0-ec5ee3f5346a-image.png

        R818 正常。

        J 1 Reply Last reply Reply Quote Share 0
        • YuzukiTsuru
          柚木 鉉 LV 9 last edited by

          没遇到过这样情况,可以试试删了kernel重新编译

          J 1 Reply Last reply Reply Quote Share 0
          • J
            jmhh247 LV 6 @tigger last edited by

            @tigger sdk1.0也可以,就是换成sdk2.0不会显示了。。。

            1 Reply Last reply Reply Quote Share 0
            • J
              jmhh247 LV 6 @YuzukiTsuru last edited by

              @yuzukitsuru 在 请问麻雀d1s用tina-sdk2.0打开 printk time,内核启动log还是没时间戳显示,如何解决? 中说:

              没遇到过这样情况,可以试试删了kernel重新编译

              大佬,没遇到过这样情况:是指在麻雀d1s硬件+sdk2.0上吗

              我试了删除lichee/linux-5.4里面的vmlinux重新编译,还是不行

              实际选择别的内核驱动,都是可以正常编译进内核的,说明编译过程还是有效的吧。

              YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
              • YuzukiTsuru
                柚木 鉉 LV 9 @jmhh247 last edited by

                @jmhh247 是,我这里都会显示

                J 1 Reply Last reply Reply Quote Share 0
                • J
                  jmhh247 LV 6 @YuzukiTsuru last edited by

                  @yuzukitsuru 在 请问麻雀d1s用tina-sdk2.0打开 printk time,内核启动log还是没时间戳显示,如何解决? 中说:

                  @jmhh247 是,我这里都会显示

                  好奇怪,大佬方便给个内核的.config看看吗,和其它dts应该没关系吧

                  YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
                  • YuzukiTsuru
                    柚木 鉉 LV 9 @jmhh247 last edited by

                    @jmhh247 我按默认的就可以用了

                    J 1 Reply Last reply Reply Quote Share 0
                    • J
                      jmhh247 LV 6 @YuzukiTsuru last edited by

                      @yuzukitsuru 在 请问麻雀d1s用tina-sdk2.0打开 printk time,内核启动log还是没时间戳显示,如何解决? 中说:

                      @jmhh247 我按默认的就可以用了

                      扎心了。。。

                      1 Reply Last reply Reply Quote Share 0
                      • Referenced by  J jmhh247 
                      • YuzukiTsuru
                        柚木 鉉 LV 9 last edited by

                        YuzukiNezha D1s 的启动截图,Tina 2.0

                        29a32f0e-b4fd-488b-b633-fed38ca718ed-ecb3f9edea5443275e9118b4dd7faa5.png

                        修复方法:
                        打开lichee/linux-5.4/kernel/printk/printk.c

                        修改 static size_t print_prefix(const struct printk_log *msg, bool syslog, bool time, char *buf) 函数

                        static size_t print_prefix(const struct printk_log *msg, bool syslog,
                        			   bool time, char *buf)
                        {
                        	size_t len = 0;
                        
                        	if (syslog)
                        		len = print_syslog((msg->facility << 3) | msg->level, buf);
                        
                        	if (time)
                        		len += print_time(msg->ts_nsec, buf + len);
                        
                        	len += print_time(msg->ts_nsec, buf + len);
                        	
                        	len += print_caller(msg->caller_id, buf + len);
                        
                        	if (IS_ENABLED(CONFIG_PRINTK_CALLER) || time) {
                        		buf[len++] = ' ';
                        		buf[len] = '\0';
                        	}
                        
                        	return len;
                        }
                        
                        J 2 Replies Last reply Reply Quote Share 1
                        • J
                          jmhh247 LV 6 @YuzukiTsuru last edited by

                          @yuzukitsuru 感谢大佬,太秀了!👍 👍
                          原来需要源码修复,我以为是配置环节出问题了。

                          1 Reply Last reply Reply Quote Share 0
                          • J
                            jmhh247 LV 6 @YuzukiTsuru last edited by

                            @yuzukitsuru

                            大佬,你的方法确实可行。


                            这个问题我继续测试了下,发现一个诡异的现象,不知道是否bug...

                            首先,我对比了sdk1.0和sdk2.0 :lichee/linux-5.4/kernel/printk,里面的代码一样,说明还是有配置不同。

                            然后,我用code打开lichee/linux-5.4/.config,配置内核printk time,发现.config确实有效了,如下图

                            CONFIG_PRINTK_TIME=y
                            

                            config-printk-ok.png

                            保存退出后,开始make ,然后 我去 ,观察这个.config居然变化了,如下图

                            # CONFIG_PRINTK_TIME is not set
                            

                            config-printk-ng.png

                            是否诡异,是否bug,变化我懂,可是别改我配置啊。。。


                            我来到device/config/chips/d1s/configs/nezha/linux-5.4目录,及device/config/chips/d1s/configs/nezha/linux目录,把里面的config-5.4 都修改成CONFIG_PRINTK_TIME=y,问题依旧。

                            奇怪的是修改其它配置,比如添加gt911驱动,lichee/linux-5.4/.config是可以保留配置的,目前发现CONFIG_PRINTK_TIME 只要一编译,就会变成# CONFIG_PRINTK_TIME is not set

                            YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
                            • YuzukiTsuru
                              柚木 鉉 LV 9 @jmhh247 last edited by

                              @jmhh247 可能的确是一个bug

                              1 Reply Last reply Reply Quote Share 0
                              • caiyongheng
                                Forever LV 2 last edited by

                                根目录下执行make menuconfig
                                Global build settings --->
                                [*] Enable printk timestamps

                                重新编译固件烧录

                                这里修改的是方案默认配置target/allwinner/d1s-nezha/defconfig,主要使能了CONFIG_KERNEL_PRINTK_TIME这个配置。

                                openWrt的特性:
                                defconfig中带有CONFIG_KERNEL_前缀的配置,最终都会影响内核配置。也就是defconfig没有选择CONFIG_KERNEL_PRINTK_TIME的话,那么也会强行取消选中内核配置中的CONFIG_PRINTK_TIME

                                J 1 Reply Last reply Reply Quote Share 1
                                • J
                                  jmhh247 LV 6 @caiyongheng last edited by

                                  @caiyongheng 在 请问麻雀d1s用tina-sdk2.0打开 printk time,内核启动log还是没时间戳显示,如何解决? 中说:

                                  根目录下执行make menuconfig
                                  Global build settings --->
                                  [*] Enable printk timestamps

                                  重新编译固件烧录

                                  这里修改的是方案默认配置target/allwinner/d1s-nezha/defconfig,主要使能了CONFIG_KERNEL_PRINTK_TIME这个配置。

                                  openWrt的特性:
                                  defconfig中带有CONFIG_KERNEL_前缀的配置,最终都会影响内核配置。也就是defconfig没有选择CONFIG_KERNEL_PRINTK_TIME的话,那么也会强行取消选中内核配置中的CONFIG_PRINTK_TIME

                                  太给力了,涨知识,感谢大佬👍

                                  1 Reply Last reply Reply Quote Share 0
                                  • 1 / 1
                                  • First post
                                    Last post

                                  Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                                  行为准则 | 用户协议 | 隐私权政策