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:08] – [Video card problem] niccolodoc:appunti:hardware:mini_pc_intel_pentium_j3710 [2026/02/22 19:35] (current) – [Pygame] niccolo
Line 20: Line 20:
 The only way to boot Debian 13 with kernel 6.12 is to pass the **nomodeset** kernel parameter. The only way to boot Debian 13 with kernel 6.12 is to pass the **nomodeset** kernel parameter.
  
-===== Kernel 6.1.0 =====+===== Kernel 6.1 ===== 
 + 
 +It is possible to install **kernel 6.1.0** from **Debian 12 Bookworm**, so that frame buffer works: 
 + 
 +<code> 
 +[    5.399065] fbcon: i915drmfb (fb0) is primary device 
 +[    5.438998] Console: switching to colour frame buffer device 128x37 
 +[    5.458533] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device 
 +</code> 
 + 
 +Despite the HDMI monitor is connected, the status pseudfile reports that it is **disconnected**: 
 + 
 +<code> 
 +cat /sys/class/drm/card0-HDMI-A-1/status 
 +disconnected 
 +</code> 
 + 
 +Writing the **on** string to the file changes the status to connected: 
 + 
 +<code> 
 +echo on > /sys/class/drm/card0-HDMI-A-1/status 
 +cat /sys/class/drm/card0-HDMI-A-1/status 
 +connected 
 +</code> 
 + 
 +but it causes a kernel trace: 
 + 
 +<code> 
 +[   69.315446] i915 0000:00:02.0: timed out waiting for [ENCODER:94:HDMI B] port ready: got 0xf, expected 0x0 
 +</code> 
 + 
 +When the **i915** kernel module is loaded, you can find five **DRM** (Direct Rendering Manager) devices managed by **card0**: 
 + 
 +<code> 
 +ls -1 /sys/class/drm/ 
 +card0 
 +card0-DP-1 
 +card0-DP-2 
 +card0-HDMI-A-1 
 +card0-HDMI-A-2 
 +card0-HDMI-A-3 
 +renderD128 
 +version 
 +</code> 
 + 
 +It is possibile to do a **complete hardware reset** of the cards using the following command: 
 + 
 +<code> 
 +echo "0000:00:02.0" > /sys/bus/pci/drivers/i915/unbind 
 +sleep 1 
 +echo "0000:00:02.0" > /sys/bus/pci/drivers/i915/bind 
 +</code> 
 + 
 +After the //unbind// you can verify that the directory **/sys/class/drm/** is empty, it will be populated again after the //bind//. 
 + 
 +===== Blanking the Virtual Terminal ===== 
 + 
 +When the host is started in frame buffer text console, the **setterm** command can be used to force the screen to go blank: 
 + 
 +<code> 
 +setterm --blank force 
 +setterm --powerdown 0 
 +</code> 
 + 
 +The monitor turns off due no signal and remains blank even keys are pressed on the keyboard. 
 + 
 +To revive the screen: 
 + 
 +<code> 
 +setterm --blank poke 
 +setterm --powerdown 0 
 +</code> 
 + 
 +If the screen is blanked the following command returns **1**: 
 + 
 +<code> 
 +setterm --blank 
 +
 +</code> 
 + 
 +===== Pygame ===== 
 + 
 +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.
  
doc/appunti/hardware/mini_pc_intel_pentium_j3710.1771780114.txt.gz · Last modified: by niccolo