Volver a Proyectos

omen — Linux nativo en HP OMEN Transcend 14

Stack completo de Linux para hardware HP OMEN: drivers kernel, control térmico, RGB, NPU AI services y configuración de audio sobre Meteor Lake.

Año
2026
Rol
Ingeniero de plataforma personal
LinuxLXDKMSKernelPYPythonLXsystemdLXDBusWirePlumberINTOpenVINOIntel NPU

Contexto

HP OMEN Transcend 14 (Meteor Lake: Core Ultra 9 185H + RTX 4070 Max-Q + Intel AI Boost NPU) corre Windows por defecto. Llevarlo a Linux con todos los controles funcionando — ventiladores, RGB, rendimiento, IA local — requirió escribir desde drivers kernel hasta servicios de IA sobre NPU.

Stack de hardware

ComponenteDetalle
CPUIntel Core Ultra 9 185H (6P + 8E + 2LPE, 14 cores)
GPUNVIDIA RTX 4070 Max-Q (8GB GDDR6)
iGPUIntel Arc (Meteor Lake)
NPUIntel AI Boost (Meteor Lake)
RAM32GB LPDDR5x
SSD2TB NVMe (Btrfs)
Display14” 2880×1800 120Hz + externo 1080p 165Hz (DP via iGPU)

Módulos

MóduloDescripción
performance/Daemon térmico (PL1 + fan control) + watcher de teclas hardware
npu/Servicios IA sobre NPU: STT, VAD, embeddings, visión, OCR
rgb/Control de iluminación RGB del teclado
audio/Configs WirePlumber/PipeWire (Bluetooth, SoundWire)
drivers/Módulos DKMS (WMI, control de ventiladores)
system/Reglas udev, configs de modules-load

Arquitectura térmica

┌─────────────────────────────────────────────────────────────┐
│ power-profiles-daemon (sistema)  ← EPP + platform_profile    │
│         ↕ DBus PropertiesChanged                            │
│ omen-ctl-daemon (Python)        ← PL1/PL2 + fan speed      │
│         ↕ sysfs writes                                      │
│ omen-transcend-fanctl (kernel)  ← WMI fan control           │
│         ↕ WMI BIOS calls                                    │
│ BIOS EC                         ← hardware real              │
└─────────────────────────────────────────────────────────────┘

Perfiles calibrados (jul-2026, ADR-0005): todos usan bucle térmico reactivo con media móvil (3 muestras), histéresis de cooldown (5s) y rampa de ±4W/s.

ModoPL1 (AC)PL2FansTargetEPP
Performance10–45W65W5700/5500≤95°Cperformance
Balanced10–25W35W5000/4800≤85°Cbalance_performance
Power-saver7–12W18W3000/2800≤72°Cpower

Límites: TjMax=110°C, PBP=45W, MTP=115W. Freno de emergencia a 98°C (10W instantáneo).

Servicios NPU

┌─────────────────────────────────────────────────────────────┐
│ NPU Services (systemd user)                                  │
│   npu-vad → npu-listen → transcribe-daemon (STT pipeline)   │
│   npu-embed (embeddings), npu-vision (CLIP), npu-ocr        │
│         ↕ Unix sockets (JSON protocol)                      │
│ Intel NPU (OpenVINO, INT8 models)                           │
└─────────────────────────────────────────────────────────────┘

Desafíos resueltos

  • Heatpipe compartida limita potencia sostenida a ~20W con fans al máximo — el daemon lo sabe y ajusta.
  • Tecla OMEN Gaming Hub (Fn+F12) no es ruteable por evdev porque omen_dkms la intercepta — solución: kernel log watcher (scancode e02b).
  • Fan mode se revierte tras suspend — fixed en driver v1.0.0+ con PM resume callback; el daemon también reaplica al reanudar vía DBus.
  • eva-overlay consume 30–35% GPU cuando está activo en NVIDIA — documentado: matar cuando no se usa.

Resultado

Linux daily-driver en una laptop gaming de 14” con control térmico fino, RGB programático, transcripción STT local usando el NPU de Intel, y overlays de visión/OCR — todo en código abierto dentro del repo.