# Disposable-BE test procedure

Keep the working BE as the permanent default throughout. Have its boot-menu
entry and SSH recovery available. Substitute the real BE names and paths.
The package solver and hardware results on the tester's machine are acceptance
gates; do not assume they match the image-build host.

## 1. Capture identity and create an inactive clone

From the current desktop save `drmadm status`, `prtconf -dD`, `modinfo`,
Xorg.0.log, `xrandr --current --verbose`, `xdriinfo`, and installed graphics
package versions. Identify the Intel PCI ID, active DDX and output connector.

As root:

```sh
beadm list
# Record the working BE name. Do not change its permanent selection.
beadm create i915n-tester-20261018
mkdir -p /mnt/i915n-tester-20261018
beadm mount i915n-tester-20261018 /mnt/i915n-tester-20261018
R=/mnt/i915n-tester-20261018
pkg -R "$R" publisher
```

Verify archive hashes against `SHA256SUMS` before continuing. Existing graphics
packages may belong to a sticky testing publisher. If the dry run reports that
conflict, inspect it and make only that publisher non-sticky **in this inactive
BE**, e.g. `pkg -R "$R" set-publisher --no-refresh --non-sticky userland`.
Preserve the normal publisher/origin configuration of the working system.

## 2. Plan the selected package set

For the complete matched Xorg/driver trial:

```sh
bash ./plan-install.sh "$R" full
```

For only the seven new DRM packages on an already compatible stack:

```sh
bash ./plan-install.sh "$R" drivers
```

The full Xorg21 set may be held by userland incorporation version-lock facets.
`graphics-facets.txt` records exactly the component locks changed in the tested
Live image. Review a `pkg -R "$R" change-facet -nv` plan with those literal
assignments first; apply only the required component locks in the disposable
BE, then repeat the package dry run. Do not disable osnet/system-library
constraints or use a broad wildcard. A different release may have different
locks: return the complete plan rather than guessing or downgrading libraries.

Expect only the selected graphics/ABI/dependency changes. Stop for unrelated
updates/removals, alias conflicts, unresolved incorporations or missing core
dependencies. After reviewing a successful plan, use the apply command printed
by the helper. The helper itself never installs packages. Do not install the
optional MATE package during the first driver/hotplug trial.

## 3. Select the new stack inside the clone and boot once

After installation:

```sh
"$R/usr/sbin/drmadm" -R "$R" select new
# Check the alias for the actual PCI ID, e.g. 1916 only if that is the GPU.
grep -i 1916 "$R/etc/driver_aliases"
bootadm update-archive -R "$R"
beadm unmount i915n-tester-20261018
beadm activate -t i915n-tester-20261018
beadm list
# Working BE must remain R/NR; only the trial may be T.
reboot
```

After the temporary boot, confirm the working BE remains R and no test boot is
pending. If the display fails, use SSH to collect evidence if possible and
reboot normally or choose the known-good BE. Do not unload the console driver.
Do not leave the test BE as the permanent default.

## 4. Observe actual output behavior

Sign into normal MATE before judging desktop layout policy. Confirm new DRM
modules are loaded and Xorg uses modesetting on the intended card. Keep the
lid open; start with one native external connector, then test adapters/docks.

For each isolated plug/unplug/replug, record time and picture/window behavior.
Wait at least ten seconds between actions. Capture cached
`xrandr --current --verbose` before `xrandr --verbose` forces a probe. Then test
explicit enable, mirror, extend and disable using the observed connector names
and supported modes. Leave the internal panel available for recovery.

`HotplugPoll=false` in the test BE's modesetting Device section isolates the
sysevent consumer from polling after restarting the test display manager. The
disable option returns silently: verify the effective option, absence of the
polling-enabled message, and trace activity rather than expecting a special
"polling disabled" line. Do not stop system-wide syseventd. Suspend is outside
the implemented DDI coverage.

The optional MATE archive has FMRI
`library/desktop/mate/mate-desktop@1.28.2-2026.0.0.2` (publisher userland).
Test it in a separate disposable clone after a dry run. It removes dropped
cached RandR updates; it adds no chooser. Restart the graphical session to use
the new library, and retain before/after results separately.
