Navigation

    全志在线开发者论坛

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

    请问如何用命令行调整背光亮度?

    D1系列-RISC-V
    背光亮度调整
    6
    20
    1051
    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.
    • U
      ubuntu LV 6 last edited by

      请问如何用命令行调整背光亮度?

      《D1_Linux_LCD_开发指南.pdf》 没有找到相关说明

      T 1 Reply Last reply Reply Quote Share 0
      • W
        whycan晕哥 LV 9 last edited by

        可能只能用 ioctl 命令控制背光,但是我测试了一下,并没有什么作用,而且屏幕都黑了。

        https://blog.csdn.net/weixin_43772810/article/details/111617402

        #include <stdio.h> 
        #include <sys/types.h>
        #include <sys/stat.h>  
        #include <stdlib.h> 
        #include <unistd.h> 
        #include <fcntl.h>
        #include <sys/ioctl.h>
        
        //disp驱动部分命令(与背光相关,内核目录:/include/video/sunxi_display2.h)
        #define	DISP_LCD_SET_BRIGHTNESS  0x102
        #define DISP_LCD_GET_BRIGHTNESS  0x103
        #define	DISP_LCD_BACKLIGHT_ENABLE   0x104
        #define	DISP_LCD_BACKLIGHT_DISABLE  0x105
        
        #define BRIGHTNESS_MAX 255     //最大亮度
        
        int main(int argc, char *argv[])   
        { 
        	int fd;
        	unsigned long args[3]={0}; 
        	/*打开disp设备文件*/
        	fd = open("/dev/disp", O_RDWR, 0);
        	if(fd < 0)
        	{
        		printf("open /dev/disp failed.\n");
        		return -1;
        	}
        	/*打印旧的背光值*/
        	args[0] = 0;     //选择fb0(lcd0)
        	printf("the old lcd%d brightness is %d\n",\
        	args[0],ioctl(fd,DISP_LCD_GET_BRIGHTNESS,args));
        	
        	if(argc != 2)
        	{
        		printf("ERROR: the right format: ./app [brightness]\n");
        		return -1;
        	}
        	
        	int brightness = atoi(argv[1]);  
        	
        	if(brightness < 0 || brightness > BRIGHTNESS_MAX)
        	{
        		printf("ERROR: the range is 0 to %d\n",BRIGHTNESS_MAX);
        		return -1;
        	}
        	
        	/*参数数组填参*/
        	args[0] = 0; 			      
        	args[1] = brightness; 		//背光值(本人配置里最高为255)
        	args[2] = 0;     	      //暂时用不到的参数
        	ioctl(fd,DISP_LCD_SET_BRIGHTNESS,args);
        	printf("the new lcd%d brightness is %d\n",\
        	args[0],ioctl(fd,DISP_LCD_GET_BRIGHTNESS,args));
        	close(fd);
        	return 0;
        }
        
        1 Reply Last reply Reply Quote Share 0
        • W
          whycan晕哥 LV 9 last edited by

          问了一个大佬,给我的答复是:

          打开一个/dev/disp之后,获取文件描述符fb,不要关闭fb
          如果/dev/disp打开5个,关闭4次正常,如果再关闭一次,驱动会调用清图层操作。
          cat /sys/class/disp/disp/attr/sys为 空,说明没有一个图层

          然后我把 close(fd) 屏蔽起来,执行完发现仍然黑屏。

          1 Reply Last reply Reply Quote Share 0
          • W
            whycan晕哥 LV 9 last edited by whycan

            会不会是进程退出,自动 close 了文件句柄呢?

            然后继续测试了一下:

            d7890e07-b7bc-46e7-a7dc-9c27899d8fa9-image.png

            这样保持进程不退出,就可以调整背光亮度了。

            1 Reply Last reply Reply Quote Share 0
            • W
              whycan晕哥 LV 9 last edited by

              终于找到了, 可以用命令行调整背光亮度了:

              8208722513384b7d991b490bee98006.png

              mount -t debugfs none /sys/kernel/debug;
              cd /sys/kernel/debug/dispdbg;
              
              #背光0
              echo lcd0 > name; echo setbl > command; echo 0 > param; echo 1 > start
              
              #背光255
              echo lcd0 > name; echo setbl > command; echo 255 > param; echo 1 > start
              
              
              J W 2 Replies Last reply Reply Quote Share 0
              • J
                jr_online LV 7 @whycan last edited by

                @whycan 在 请问如何用命令行调整背光亮度? 中说:

                终于找到了, 可以用命令行调整背光亮度了:

                8208722513384b7d991b490bee98006.png

                mount -t debugfs none /sys/kernel/debug;
                cd /sys/kernel/debug/dispdbg;
                
                #背光0
                echo lcd0 > name; echo setbl > command; echo 0 > param; echo 1 > start
                
                #背光255
                echo lcd0 > name; echo setbl > command; echo 255 > param; echo 1 > start
                
                

                回禀大佬,这命令行控制没反应😵

                T M 2 Replies Last reply Reply Quote Share 0
                • T
                  TEVET LV 6 @jr_online last edited by

                  @jr_online 自己写个测试小程序 , ioctl 肯定是可以的

                  J 2 Replies Last reply Reply Quote Share 0
                  • T
                    TEVET LV 6 @ubuntu last edited by

                    @ubuntu test_bright.tar.gz
                    来,给你个包吧。
                    brightnesstester 这个文件夹里的代码就能编译出来用了。
                    brightnesstester
                    这个是应用,后面跟亮度, 不行就看下代码,试试看。

                    oled 之类的不行,要魔改。
                    pwm类独立背光可以。

                    1 Reply Last reply Reply Quote Share 0
                    • J
                      jr_online LV 7 @TEVET last edited by

                      @tevet 在 请问如何用命令行调整背光亮度? 中说:

                      @jr_online 自己写个测试小程序 , ioctl 肯定是可以的

                      好滴,大佬。

                      1 Reply Last reply Reply Quote Share 0
                      • J
                        jr_online LV 7 @TEVET last edited by

                        @tevet 在 请问如何用命令行调整背光亮度? 中说:

                        @jr_online 自己写个测试小程序 , ioctl 肯定是可以的

                        大佬,我刚测试了,在t113上,通过ioctl也是控制不了背光亮度,没反应,但是能设置和读取亮度值。

                        T 1 Reply Last reply Reply Quote Share 0
                        • T
                          TEVET LV 6 @jr_online last edited by

                          @jr_online 不应当啊,追踪一下LOG 和sunxi的 disp 那块吧,自己搞几个打印跑下。
                          我发的包和bin程序是跑在D1s 上面的

                          J 1 Reply Last reply Reply Quote Share 0
                          • J
                            jr_online LV 7 @TEVET last edited by

                            @tevet 在 请问如何用命令行调整背光亮度? 中说:

                            @jr_online 不应当啊,追踪一下LOG 和sunxi的 disp 那块吧,自己搞几个打印跑下。
                            我发的包和bin程序是跑在D1s 上面的

                            回大佬,我是通过晕哥这个来测试的
                            a561fab1-f0a5-4ecf-bb01-56aa65f21f3b-image.png
                            新旧的背光值能打印出来

                            但是背光没有变化,想请问一下大佬具体是sunxi disp哪一个部分?
                            在手册上是这样讲的:
                            65627d33-3122-427b-9166-ff44e4e241e2-image.png

                            T 1 Reply Last reply Reply Quote Share 0
                            • T
                              TEVET LV 6 @jr_online last edited by

                              @jr_online
                              这个IOCTL 的处理在驱动里边 , lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/

                              J 1 Reply Last reply Reply Quote Share 0
                              • J
                                jr_online LV 7 @TEVET last edited by

                                @tevet 在 请问如何用命令行调整背光亮度? 中说:

                                @jr_online
                                这个IOCTL 的处理在驱动里边 , lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/

                                回禀大佬,我找到原因了,忽略了pwm的占空比极性了,设备树里配置的是低电平有效,所以我一直设置亮度为0-50,都是最亮的,所以感觉上没反应。

                                T 1 Reply Last reply Reply Quote Share 0
                                • T
                                  TEVET LV 6 @jr_online last edited by

                                  @jr_online 在 请问如何用命令行调整背光亮度? 中说:

                                  @tevet 在 请问如何用命令行调整背光亮度? 中说:

                                  @jr_online
                                  这个IOCTL 的处理在驱动里边 , lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/

                                  回禀大佬,我找到原因了,忽略了pwm的占空比极性了,设备树里配置的是低电平有效,所以我一直设置亮度为0-50,都是最亮的,所以感觉上没反应。

                                  喔嚯,是吧,驱动部分,是么得问题的~! 所以那个代码包用上没

                                  J 1 Reply Last reply Reply Quote Share 0
                                  • J
                                    jr_online LV 7 @TEVET last edited by

                                    @tevet 在 请问如何用命令行调整背光亮度? 中说:

                                    @jr_online 在 请问如何用命令行调整背光亮度? 中说:

                                    @tevet 在 请问如何用命令行调整背光亮度? 中说:

                                    @jr_online
                                    这个IOCTL 的处理在驱动里边 , lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/

                                    回禀大佬,我找到原因了,忽略了pwm的占空比极性了,设备树里配置的是低电平有效,所以我一直设置亮度为0-50,都是最亮的,所以感觉上没反应。

                                    喔嚯,是吧,驱动部分,是么得问题的~! 所以那个代码包用上没

                                    还没用上,我以为你给ubuntu兄弟的,用于d1h。
                                    我现在是想通过lvgl的slider来控制背光亮度。
                                    待会试试大佬的提供的代码包。👍

                                    T 1 Reply Last reply Reply Quote Share 0
                                    • T
                                      TEVET LV 6 @jr_online last edited by

                                      @jr_online
                                      ioctl就一个命令完事了,就是我的那个测试代码。
                                      那个测试代码呢,就是嵌入过 lvgl 的,你可以参考

                                      J 1 Reply Last reply Reply Quote Share 0
                                      • J
                                        jr_online LV 7 @TEVET last edited by

                                        @tevet 在 请问如何用命令行调整背光亮度? 中说:

                                        @jr_online
                                        ioctl就一个命令完事了,就是我的那个测试代码。
                                        那个测试代码呢,就是嵌入过 lvgl 的,你可以参考

                                        好滴,谢谢大佬指点😊

                                        1 Reply Last reply Reply Quote Share 0
                                        • W
                                          waterworld LV 5 @whycan last edited by waterworld

                                          @whycan 晕哥,为什么我的没有这个目录啊,display驱动这一块用的是disp,不是disp2,好像要是disp2才会有这个调试目录,目前是f1c100s的tina.
                                          16f6a8c4-55d3-4217-b9c5-c6c3db7054a9-image.png
                                          通过ioctl的方式可以控制背光,想要通过命令行来控制背光。

                                          1 Reply Last reply Reply Quote Share 0
                                          • M
                                            memory LV 7 @jr_online last edited by

                                            @jr_online 在 请问如何用命令行调整背光亮度? 中说:

                                            mount -t debugfs none /sys/kernel/debug;
                                            cd /sys/kernel/debug/dispdbg;

                                            #背光0
                                            echo lcd0 > name; echo setbl > command; echo 0 > param; echo 1 > start

                                            #背光255
                                            echo lcd0 > name; echo setbl > command; echo 255 > param; echo 1 > start

                                            A133 调整背光成功。

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

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

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