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:02] niccolodoc:appunti:hardware:mini_pc_intel_pentium_j3710 [2026/02/22 19:35] (current) – [Pygame] niccolo
Line 1: Line 1:
 ====== Mini PC Intel Pentium J3710 ====== ====== Mini PC Intel Pentium J3710 ======
  
-===== Video card problem =====+===== Video card problem with kernel 6.12 =====
  
-Using **Debian 13 Trixie** with **kernel 6.12.69**, the screen goes blank (no HDMI signal) as soon as it switches to framebuffer. With dmesg you can read the following errors:+Using **Debian 13 Trixie** with **kernel 6.12.69**, the screen goes blank (no HDMI signal) as soon as it switches to frame buffer. With **dmesg** you can read the following errors:
  
 <code> <code>
Line 19: Line 19:
  
 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 =====
 +
 +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
 +1
 +</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.1771779720.txt.gz · Last modified: by niccolo