{% extends "base.html" %} {% block title %}{{ friendly_name }} - Drivers{% endblock %} {# Drivers tab: the whole HardwareDriver.json staged in the browser, saved in one go through a review step (views/images_drivers.py). The table is drawn by the script at the bottom from #drvData; the server re-lints the staged map after every edit (/drivers/check). #} {% block extra_head %} {% endblock %} {% block content %} {% set header_actions %} Unsaved changes {% if last_save %}
{% endif %} {% endset %} {% set header_subtitle = 'Deploy/Control/HardwareDriver.json' %} {% include "_image_header.html" %}

At imaging PESetup reads this map and takes the first entry, from the top, that has a model token contained in the PC's WMI model (case-insensitive). Latitude, OptiPlex and Precision PCs only look at entries whose family contains that word. There is no OS filter, so a Windows 11 entry must sit above any Windows 10 entry for the same model. A PC that matches nothing still images, with no drivers.

Edits, moves and removals are staged until Review and save, which shows every changed entry first. The Hardware Models list (user_selections.json) is the Media Creator Lite build selection; PESetup does not read it.

{% if load_error %}
{{ load_error }}. The table is empty and saving is off until the file is fixed.
{% endif %} {% if hw_drivers_extra %}
This image also has Deploy/Control/hw_drivers.json. PESetup never reads it; only the map below counts.
{% endif %} {# ==================== Driver map ==================== #}
Driver map {{ entry_count }}
# Models and family OS Driver zip
{# ==================== Unregistered zips ==================== #} {# Zips no image uses come first and can be deleted. Zips another image's map uses (the driver tree is shared) are folded away: they can be added to this map but never deleted from here. #} {% set free = orphans | selectattr('used_by', 'equalto', []) | list %} {% set shared = orphans | rejectattr('used_by', 'equalto', []) | list %} {% macro orphan_row(o, hidden=False) %} {% if o.used_by %} {% else %} {% endif %}
{{ o.name }}
{{ o.folder or '(top folder)' }}
{{ (o.size or 0) | filesizeformat }}
{{ o.mtime | local_dt if o.mtime else '' }}
{% if o.used_by %}{% for u in o.used_by %}{{ u }} {% endfor %} {% else %}No image{% endif %} {% endmacro %}
Unregistered zips {{ free | length }} Zips under Out-of-box Drivers that this map does not use
{% if orphans %}
{% for o in free %}{{ orphan_row(o) }}{% endfor %} {% if not free %} {% endif %} {% if shared %} {% for o in shared %}{{ orphan_row(o, hidden=True) }}{% endfor %} {% endif %}
File Size and date Used by
No zip here is unused: every one is in this map or in another image's map.
Only zips no image uses can be deleted. Add to map stages a new entry; it is written with the next save.
{% else %}
None: every zip under Out-of-box Drivers is in this map.
{% endif %}
{# ==================== Edit entry modal ==================== #} {% endblock %} {% block extra_scripts %} {% endblock %}