git clone "https://github.com/corna/me_cleaner"git clone --recurse-submodules "https://review.coreboot.org/coreboot.git"flashrom --chip "MX25L6406E/MX25L6408E" --programmer buspirate_spi:dev=/dev/ttyUSB0 --read ./bios-8m.img
flashrom --chip "MX25L3206E/MX25L3208E" --programmer buspirate_spi:dev=/dev/ttyUSB0 --read ./bios-4m.img
cat bios-8m.img bios-4m.img > bios-12m.imgme_cleaner can remove all modules except ROMP and BUPme_cleaner can also set the MeAltDisable flag to disable ME entirelyifdtool
cd coreboot/util/ifdtoolmakeifdtool --dump bios-12m.imgme_cleaner
cd me_cleanerpython me_cleaner.py -c bios-12m.imgpython me_cleaner.py -S -O bios-12m-cleaned.img bios-12m.imgifdtool --unlock bios-12m-cleaned.imgmv bios-12m-cleaned.img.new bios-12m-cleaned-unlocked.imgifdtool --extract bios-12m-cleaned-unlocked.img creates these files:
flashregion_0_flashdescriptor.bin: flash image metadataflashregion_1_bios.bin: OEM BIOS, to be replaced with Corebootflashregion_2_intel_me.bin: ME blob, changed by me_cleaner
flashregion_3_gbe.bin: built-in Ethernet card firmware, not usingcd corebootmake distcleanmake menuconfig
General setup --->
[*] Use CMOS for configuration valuesMainboard --->
Mainboard vendor --->
(X) LenovoMainboard model --->
(X) ThinkPad X230ROM chip size --->
(X) 12288 KB (12 MB)
Chipset --->
[*] Add Intel descriptor.bin file
flashregion_0_flashdescriptor.bin[*] Add Intel ME/TXE firmware
flashregion_2_intel_me.binDevices --->
Graphics initialization --->
(X) Use native graphics init
<Save>make crossgcc-i386 CPUS=4make crossgcc-x64 CPUS=4makecp build/coreboot.rom ../coreboot.imgdd bs=1M count=8 if=coreboot.img of=coreboot-8m.imgdd bs=1M skip=8 count=4 if=coreboot.img of=coreboot-4m.imgls -l to make sure coreboot-8m.img and coreboot-4m.img are the same size as bios-8m.img and bios-4m.img, respectivelyflashrom --chip "MX25L6406E/MX25L6408E" --programmer buspirate_spi:dev=/dev/ttyUSB0 --write coreboot-8m.img
flashrom --chip "MX25L3206E/MX25L3208E" --programmer buspirate_spi:dev=/dev/ttyUSB0 --write coreboot-4m.img