22
33- [ Overview] ( #overview )
44- [ Blob Strategy] ( #blob-strategy )
5+ - [ Building with Default Blobs] ( #building-with-default-blobs )
56- [ Using Your Own Blobs] ( #using-your-own-blobs )
67
78## Overview
89
9- Heads on the Dell OptiPlex 9020 SFF requires three small binary blobs, all
10- extracted from the user's own Dell BIOS backup. ** No proprietary code blobs
11- are downloaded from third parties** — everything comes from your hardware.
10+ Heads on the Dell OptiPlex 9020 SFF requires three small binary blobs:
1211
13- | Blob | Size | What it is |
14- | -----------| ----------| ----------------------------------------------------------- |
15- | ` ifd.bin ` | 4 KB | Intel Flash Descriptor (resized: ME shrunk, BIOS grown) |
16- | ` me.bin ` | ~ 120 KB | Intel ME, ** neutralized + soft-disabled ** via me_cleaner |
17- | ` gbe.bin ` | 16 KB | Intel Gigabit Ethernet config (incl. LAN MAC address) |
12+ | Blob | Size | Source |
13+ | -----------| ----------| ----------------------------------------------------------|
14+ | ` ifd.bin ` | 4 KB | Intel Flash Descriptor, shipped in-tree (anonymized) |
15+ | ` me.bin ` | ~ 120 KB | Intel ME, downloaded and neutralized by ` download-clean-me ` |
16+ | ` gbe.bin ` | 8 KB | Intel Gigabit Ethernet config, shipped in-tree (anonymized MAC) |
1817
19- ** Notably NOT required** (this is the blob-minimized setup):
18+ ` ifd.bin ` and ` gbe.bin ` are committed to the repository directly. They contain
19+ no personal data: the GbE MAC is set to the anonymized ` 00:de:ad:c0:ff:ee ` ,
20+ matching the convention used by other Heads boards. The IFD has its ME region
21+ shrunk and BIOS region expanded, ready for a neutralized ME.
2022
21- - ` mrc.bin ` — ** eliminated** . Haswell native RAM initialization (NRI) is used
22- instead, via coreboot's ` CONFIG_USE_NATIVE_RAMINIT=y ` . No proprietary
23- memory-init blob.
24- - FSP — Haswell does not use Intel Firmware Support Package.
25- - Intel ME in full — only the ~ 120 KB FTPR bring-up module remains; all AMT,
26- networking, anti-theft and backdoor modules removed.
23+ ` me.bin ` is the only blob that is ** not** committed (it is proprietary Intel
24+ firmware). It is downloaded on demand from the public Lenovo installer
25+ ` glrg22ww.exe ` -- the same source used by the t440p -- because the ME firmware
26+ is platform-generic for Lynx Point, not vendor-specific.
2727
2828## Blob Strategy
2929
30- The Intel ME on the 9020 (Lynx Point, ME 9.x) is ** neutralized and
31- soft-disabled ** using [ me_cleaner] ( https://github.com/corna/me_cleaner )
32- with the flags ` -S - r -t -d ` :
30+ The Intel ME on the 9020 (Lynx Point, ME 9.x) is ** neutralized and shrunk **
31+ using [ me_cleaner] ( https://github.com/corna/me_cleaner ) with the flags
32+ ` - r -t` :
3333
34- - ` -S ` sets the AltMeDisable bit (HAP) in PCHSTRP10 → ME disabled after boot
3534- ` -r ` removes non-essential ME modules (TDT, FPF, HOSTCOMM, SESSMGR, ...)
3635- ` -t ` truncates the ME region to the minimum bootable size (~ 120 KB)
37- - ` -d ` additionally deactivates ME features
3836
39- Result: ME shrunk from 6 MB → ~ 120 KB, ** 98% reduction** . The remaining FTPR
40- module is required for power/clock management during boot; it cannot be
41- removed without bricking the board. The ME's RSA signature remains valid
42- (verified by me_cleaner), so the board boots.
37+ Result: ME shrunk from 5 MB to ~ 120 KB. The remaining FTPR module is required
38+ for power/clock management during boot; it cannot be removed without bricking
39+ the board. The ME's RSA signature remains valid (verified by me_cleaner), so
40+ the board boots.
41+
42+ ** Notably NOT required** (this is the blob-minimized setup):
43+
44+ - ` mrc.bin ` -- eliminated. Haswell native RAM initialization (NRI) is used
45+ instead, via coreboot's ` CONFIG_USE_NATIVE_RAMINIT=y ` .
46+ - FSP -- Haswell does not use Intel Firmware Support Package.
47+ - Intel ME in full -- only the ~ 120 KB FTPR bring-up module remains; all AMT,
48+ networking, anti-theft and backdoor modules removed.
4349
4450> ** Note on "completely removing" the ME:** The ME is physically present in
4551> the Lynx Point PCH silicon. Software cannot remove hardware. me_cleaner's
4652> neutralization is the maximum achievable on this platform.
4753
54+ ## Building with Default Blobs
55+
56+ The standard build path downloads and neutralizes the ME automatically:
57+
58+ ``` console
59+ $ make BOARD=dell-optiplex-9020-sff
60+ ```
61+
62+ The build system invokes ` download-clean-me ` to fetch the Lenovo installer,
63+ extract ` ME9.1_5M_Production.bin ` , and run me_cleaner. No manual steps
64+ required.
65+
4866## Using Your Own Blobs
4967
50- If you have a different Dell 9020 SFF (or want to re-extract from a fresh
51- backup), first build Heads at least once to download the coreboot sources,
52- then run the extraction script:
68+ If you prefer to extract the blobs from your own Dell BIOS backup (for
69+ example, to preserve your original LAN MAC address), build Heads once to
70+ download the coreboot sources, then run the extraction script:
5371
5472``` console
5573$ make BOARD=dell-optiplex-9020-sff # downloads coreboot sources
@@ -60,6 +78,6 @@ $ ./blobs/optiplex_9020/extract /path/to/original_dell_bios.bin ./blobs/optiplex
6078$ make BOARD=dell-optiplex-9020-sff # rebuild with your blobs
6179```
6280
63- The extraction script performs the same operations that produced the blobs
64- shipped here. Your MAC address will differ; if you want anonymity, override
65- it to ` 00:de:ad:c0:ff:ee ` using [ nvmutil ] ( https://libreboot.org/docs/install/nvmutil.html ) .
81+ The extraction script performs a more aggressive neutralization
82+ ( ` me_cleaner -S -r -t -d ` , including soft-disable via the AltMeDisable/HAP
83+ bit) and preserves your hardware's original MAC address .
0 commit comments