User Tools

Site Tools


doc:appunti:hardware:mini_pc_intel_pentium_j3710

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:hardware:mini_pc_intel_pentium_j3710 [2026/02/22 18:49] – [Blanking the Virtual Terminal] niccolodoc:appunti:hardware:mini_pc_intel_pentium_j3710 [2026/02/24 19:12] (current) – [DPMS (Display Power Management Signaling)] niccolo
Line 99: Line 99:
 1 1
 </code> </code>
 +
 +==== DPMS (Display Power Management Signaling) ====
 +
 +DPMS (Display Power Management Signaling) is a VESA standard used to reduce monitor power consumption by controlling power states (On, Standby, Suspend, Off) generally based on user inactivity.
 +
 +It is possible to control the status of the display connected to the frame buffer writing some values to the pseudo file:
 +
 +<code>
 +echo 4 > /sys/class/graphics/fb0/blank
 +echo 0 > /sys/class/graphics/fb0/blank
 +</code>
 +
 +| 0  | FB_BLANK_UNBLANK  | Screen ON (normal operation)  |
 +| 1  | FB_BLANK_NORMAL  | Blank screen (no power saving)  |
 +| 2  | FB_BLANK_VSYNC_SUSPEND  | Suspend vertical sync  |
 +| 3  | FB_BLANK_HSYNC_SUSPEND  | Suspend horizontal sync  |
 +| 4  | FB_BLANK_POWERDOWN  | Power down display (DPMS off)  |
 +
 +Writing the value 4 to the pseudodevice changes the **DPMS** property from **On=0** to **Off=3**. It is possibile to check all the **connectors properties** using **modetest** (provided by the **libdrm-tests** Debian package):
 +
 +<code>
 +modetest -M i915 -c
 +opened device `Intel Graphics` on driver `i915` (version 1.6.0 at 20201103)
 +Connectors:
 +id      encoder status          name            size (mm)       modes   encoders
 +95      94      connected       HDMI-A-1        0x0                   94
 +  modes:
 +        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
 +  #0 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver
 +  #1 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver
 +  ...
 +    2 DPMS:
 +        flags: enum
 +        enums: On=0 Standby=1 Suspend=2 Off=3
 +        value: 3
 +    ....
 +
 +107     106     connected       HDMI-A-2        470x260         30      106
 +  modes:
 +        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
 +  #0 1024x600 59.82 1024 1068 1156 1344 600 603 609 625 50250 flags: phsync, nvsync; type: preferred, driver
 +  #1 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
 +  ...
 +    2 DPMS:
 +        flags: enum
 +        enums: On=0 Standby=1 Suspend=2 Off=3
 +        value: 3
 +    ....
 +</code>
 +
 +
 +FIXME What is this?
 +
 +<code>
 +/usr/sbin/vbetool dpms on
 +/usr/sbin/vbetool dpms off
 +</code>
 +
  
 ===== Pygame ===== ===== Pygame =====
  
-When running a Pygame app in **SDL_VIDEODRIVER=fbcon**the SDL (Simple DirectMedia Layer library) takes over VT, so the **setterm** command does not work.+We verified what driver uses the Pygame app
 + 
 +<code python> 
 +import pygame 
 +pygame.init() 
 +print(pygame.display.get_driver()) 
 +</code> 
 + 
 +It says **KMSDRM**
 + 
 +Using that driver the SDL **Simple DirectMedia Layer** library owns the DRM master, external tools (modetest, sysfs) do not work for blanking the screen. The correct solution is to control this from inside SDL. 
 + 
 +===== HDMI Monitor supported modes ===== 
 + 
 +<code> 
 +cat /sys/class/drm/card0-HDMI-A-1/modes 
 +</code> 
 + 
 +<code> 
 +1024x600 
 +800x600 
 +800x600 
 +800x600 
 +800x600 
 +720x576 
 +... 
 +</code> 
 + 
 +<code> 
 +fbset -i -fb /dev/fb0
  
 +mode "1024x600"
 +    geometry 1024 600 1024 600 32
 +    timings 0 0 0 0 0 0 0
 +    rgba 8/16,8/8,8/0,0/0
 +endmode
  
 +Frame buffer device information:
 +    Name        : i915drmfb
 +    Address     : 0
 +    Size        : 2457600
 +    Type        : PACKED PIXELS
 +    Visual      : TRUECOLOR
 +    XPanStep    : 1
 +    YPanStep    : 1
 +    YWrapStep   : 0
 +    LineLength  : 4096
 +    Accelerator : No
 +</code>
doc/appunti/hardware/mini_pc_intel_pentium_j3710.1771782590.txt.gz · Last modified: by niccolo