D003 Xorg compatibility source — C0-012 reuse candidate

This directory contains the exact self-authored C source previously used in the AIS B HDMI D003 experiment. It is a source and build-reference package. No build, installation, Xorg restart or new board test was performed when preparing this public candidate.

Provenance

Item Value
Source 02-D0-003-drm-bitmask-filter.c
Source bytes 2187
Source SHA256 18372666f6815b3d68d2c8b502961c641c7b8a053c235305572f0c1a0d879010
Previously accepted binary SHA256 6372f160ee925e327da863395c8647dff03f4d77d424bbcc1630de1c3d3cc052
Source variant in this package None; original bytes preserved
Existing evidence D003 root-cause and 1080p acceptance; D004 QHD acceptance
New compiled binary None

The original receipts describe one Allwinner T736 AIS B running Ubuntu 24.04 with an Xubuntu/XFCE session and vendor kernel 5.15.119. They record the specific Xorg crash, the process-scoped integration and subsequent physical desktop acceptance. They do not certify a build produced by another compiler or compatibility with other T736 carriers.

What the source actually does

The source interposes drmModeGetConnector and drmModeGetConnectorCurrent through LD_PRELOAD. For every returned connector property, it obtains the property flags and removes that entry from Xorg's returned property arrays if DRM_MODE_PROP_BITMASK is set.

The implementation filters the property type. It does not compare property names. The properties observed in this board's failure investigation were pixelformat_support and dynamicrange_support. Describing the implementation as an exact two-name filter would be inaccurate.

Non-BITMASK property entries retain their IDs and values. The source leaves connector mode data and the kernel's own property definitions unchanged. It emits diagnostic lines on standard error. It does not repair the underlying Xorg driver; it changes the property list seen by the designated Xorg process.

On another device this may also hide BITMASK properties needed by a feature. Review that target's complete property set, including any format or dynamic-range controls, before deciding whether this experiment is suitable.

Build reference

Use a Linux build environment with a C compiler, pkg-config and development headers/libraries for the target libdrm. The compiler and libraries must produce a binary for the target architecture.

The following is a conventional build example derived from the source's dependencies. It is not an attested reproduction of the original build command, and it was not executed for this public package.

mkdir -p build
cc -shared -fPIC -O2 \
  $(pkg-config --cflags libdrm) \
  -o build/libhsimc-drm-bitmask-filter.so \
  02-D0-003-drm-bitmask-filter.c \
  $(pkg-config --libs libdrm) -ldl
sha256sum build/libhsimc-drm-bitmask-filter.so

A different compiler, linker or set of flags can produce a different binary digest. Record the actual build environment and digest; the source digest alone does not transfer the original binary's board acceptance.

Integration and acceptance boundary

The previous integration passed LD_PRELOAD only to the Xorg child process through a dedicated launcher selected by an additive LightDM configuration. The original Xorg binary and vendor Xorg configuration were preserved. This public package contains no automatic installer, service override, global preload configuration or flash command.

A future integration should preserve its own original configuration, verify the target failure in a bounded session, and record:

This library does not add kernel namespaces and does not resolve the separate GNOME Web bubblewrap startup failure recorded in C005. It does not establish hotplug reliability, cold power-loss recovery or general production readiness.

中文说明

本目录保存 D003 当时使用的自写源码原始字节,未作参数化改写;源码本身没有个人路径、私网地址或 MAC。原实板验收依据是 D003 的 Xorg 根因与 1080p 桌面记录,以及后续 D004 的 2K 画面记录。本次公开候选整理没有再次编译、安装或重启设备。

代码同时拦截两个 libdrm connector 查询函数,按 DRM_MODE_PROP_BITMASK 类型移除属性。现场出现的属性名称是 pixelformat_support 与 dynamicrange_support,实际代码没有按这两个名字进行筛选。其他设备上的 BITMASK 属性可能涉及不同功能,因此必须先检查目标设备的完整属性列表。

上面的编译命令是根据源码依赖给出的 Linux 构建示例,不是已复现的原始构建证明。重新生成的库需要记录真实工具链、依赖和 SHA256,并接受独立实板验证。原有集成只让指定 Xorg 子进程接收 LD_PRELOAD;本包不提供自动安装、全局预加载、LightDM 改写或刷机脚本。

浏览器缺失 kernel namespace、偶发 HDMI 热插拔和 NPU 开机恢复属于分别记录的问题。这个兼容库不覆盖这些验收边界。完整关联收据名称与摘要见 C0-012 的 HDMI 经验索引;相关原始日志保留在私人归档。