Models.txt entry maps "7080" substring (matches WMI csproduct name "OptiPlex 7080") to OptiPlex_7080_1.37.0.exe. BIOS .exe already deployed to /srv/samba/winpeapps/_shared/BIOS/ on the live PXE server via download-drivers.py. Also adds docs/geastandardpbr-overrides.md tracking the local geastandardpbr/ edits (user_selections.json + HardwareDriver.json get a 7080 entry under "D11 OptiPlex Family") that the gitignore prevents from being tracked directly. Includes a Python snippet to idempotently re-apply after a fresh USB import. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.5 KiB
geastandardpbr/ overrides
geastandardpbr/ is gitignored (USB-imported GE deployment package). Edits made
locally to support new hardware models do not survive a fresh import.
This file tracks the local edits so they can be re-applied after a re-import. Apply by hand or via the snippet at the bottom.
OptiPlex 7080 (added 2026-05-08)
Reason: a 7080 arrived on the floor; check-bios.cmd was returning "no update in catalog" because no 7080 entry existed in the catalog files.
geastandardpbr/Tools/user_selections.json
Add to HardwareModelSelection (insert before the existing 7090 / D12 OptiPlex Family entry):
{
"Model": "7080",
"Id": "D11 OptiPlex Family"
}
geastandardpbr/Deploy/Control/HardwareDriver.json
Add a new entry (insert before the existing D12 OptiPlex Family / 7090 entry):
{
"manufacturer": "Dell",
"manufacturerfriendlyname": "Dell",
"family": "D11 OptiPlex Family",
"models": "OptiPlex 7080",
"modelsfriendlyname": "7080",
"FileName": "",
"DestinationDir": "*destinationdir*\\Deploy\\Out-of-box Drivers\\Dell_11\\OptiPlex\\D11 OptiPlex Family",
"url": "",
"hash": "",
"size": 0,
"modifiedDate": "0001-01-01T00:00:00",
"osId": "20,21",
"aOsIds": [
"20",
"21"
],
"imagedisk": 0
}
FileName, url, hash, size left empty. scripts/download-drivers.py resolves
the actual driver pack from Dell's catalog by model name (extract_model_ids
matches "7080") and downloads the latest pack at run time.
Side artifacts already on the live PXE server (10.9.100.1)
\\10.9.100.1\winpeapps\_shared\BIOS\OptiPlex_7080_1.37.0.exe(39.8 MB, BIOS update)\\10.9.100.1\image-upload\Deploy\Out-of-box Drivers\Dell_11\OptiPlex\D11 OptiPlex Family\win11_70809ntr8_a09.zip(Win11 driver pack, 2.6 GB)\\10.9.100.1\winpeapps\_shared\BIOS\models.txtincludes the 7080 line.
These persist regardless of geastandardpbr/ rebuilds. Only the model-registry
edits need to be re-applied after a USB re-import.
Re-applying after a fresh geastandardpbr/ import
Either edit the two JSON files by hand following the snippets above, or run:
cd /home/camp/projects/pxe
python3 - <<'PY'
import json, sys
us = 'geastandardpbr/Tools/user_selections.json'
hd = 'geastandardpbr/Deploy/Control/HardwareDriver.json'
data = json.load(open(us))
add = {"Model": "7080", "Id": "D11 OptiPlex Family"}
for d in data:
if "HardwareModelSelection" in d:
if not any(m.get("Model") == "7080" for m in d["HardwareModelSelection"]):
for i, m in enumerate(d["HardwareModelSelection"]):
if m.get("Id") == "D12 OptiPlex Family":
d["HardwareModelSelection"].insert(i, add)
break
json.dump(data, open(us, 'w'), indent=2)
data = json.load(open(hd))
add = {
"manufacturer": "Dell",
"manufacturerfriendlyname": "Dell",
"family": "D11 OptiPlex Family",
"models": "OptiPlex 7080",
"modelsfriendlyname": "7080",
"FileName": "",
"DestinationDir": "*destinationdir*\\Deploy\\Out-of-box Drivers\\Dell_11\\OptiPlex\\D11 OptiPlex Family",
"url": "",
"hash": "",
"size": 0,
"modifiedDate": "0001-01-01T00:00:00",
"osId": "20,21",
"aOsIds": ["20", "21"],
"imagedisk": 0
}
if not any(e.get("models") == "OptiPlex 7080" for e in data):
for i, e in enumerate(data):
if e.get("family") == "D12 OptiPlex Family" and e.get("models") == "7090":
data.insert(i, add)
break
json.dump(data, open(hd, 'w'), indent=2)
print("done")
PY