CINXE.COM
Libreboot – ThinkPad T440p external flashing
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <meta name="generator" content="pandoc"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <!-- anti-social media tags --> <meta property="og:title" content="Libreboot – ThinkPad T440p external flashing"> <meta property="og:type" content="article" /> <meta property="og:image" content="https://av.vimuser.org/bootmenu.jpg"> <meta property="og:url" content="https://libreboot.org/docs/install/t440p_external.html"> <meta name="twitter:card" content="summary_large_image"> <meta property="og:description" content="Libreboot – ThinkPad T440p external flashing"> <meta property="og:site_name" content="Libreboot – ThinkPad T440p external flashing"> <meta name="twitter:image:alt" content="Libreboot – ThinkPad T440p external flashing"> <title>Libreboot – ThinkPad T440p external flashing</title> <link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href=""> <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="/feed.xml"/> </head> <body> <div class="page"> <header> <div class="title"> <p class="title-logo"> <img loading="lazy" class="title-logo" alt="Libreboot logo" src="/favicon.ico" /> </p> <h1 class="title">ThinkPad T440p external flashing</h1> </div> <ul> <li><a href="/">Home</a></li> <li><a href="/faq.html">FAQ</a></li> <li><a href="/download.html">Download</a></li> <li>-</li> <li style="font-size:1.3em;"><em><strong><a href="https://minifree.org/">Buy Libreboot preinstalled</a></strong></em></li> <li>-</li> <li><a href="/docs/install/">Install</a></li> <li><a href="/docs/">Docs</a></li> <li><a href="/news/">News</a></li> <li><a href="https://codeberg.org/libreboot/lbmk/issues">Bugs</a></li> <li><a href="/tasks/">TODO</a></li> <li><a href="/git.html">Send patch</a></li> <li><a href="/contact.html">Contact</a></li> <li>-</li> <li style="font-size:1.3em;"><em><strong><a href="https://www.patreon.com/libreleah">Donate</a></strong></em></li> </ul> <hr/> </header> <nav id="TOC"> <h1>Navigate this page:</h1> <ul> <li><a href="#buy-libreboot-preinstalled">Buy Libreboot preinstalled</a></li> <li><a href="#introduction">Introduction</a> <ul> <li><a href="#preparing-a-release-rom">Preparing a release Rom</a></li> <li><a href="#splitting-the-rom">Splitting The Rom</a></li> <li><a href="#disassembly">Disassembly</a></li> </ul></li> <li><a href="#errata">Errata</a></li> </ul> </nav> <div class="pagetext"> <p><a href="./">Return to index</a></p> <div class="h"><h1 id="buy-libreboot-preinstalled">Buy Libreboot preinstalled</h1><a aria-hidden="true" href="#buy-libreboot-preinstalled">[link]</a></div> <p>This laptop is available to buy with Libreboot pre-installed: <a href="https://minifree.org/product/libreboot-t440p/" class="uri">https://minifree.org/product/libreboot-t440p/</a></p> <div class="h"><h1 id="introduction">Introduction</h1><a aria-hidden="true" href="#introduction">[link]</a></div> <p>NOTE: Libreboot standardises on <a href="https://flashprog.org/wiki/Flashprog">flashprog</a> now, as of 27 January 2024, which is a fork of flashrom.</p> <p><strong><a href="../../news/safety.html">PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING</a>, OR YOU MIGHT BRICK YOUR MACHINE: <a href="../../news/safety.html">SAFETY PRECAUTIONS</a></strong></p> <p>Read the <a href="/docs/install/ivy_has_common.html">Ivybridge/Haswell common guide</a> if you want more information. All of the following instructions assume that you’ve cloned lbmk and are operating from the root of that project. To do so, run</p> <pre><code>git clone https://codeberg.org/libreboot/lbmk cd lbmk</code></pre> <p>You can now follow the rest of the instructions.</p> <div class="h"><h2 id="preparing-a-release-rom">Preparing a release Rom</h2><a aria-hidden="true" href="#preparing-a-release-rom">[link]</a></div> <p>You must patch the release rom with the necessary vendor files <em>and then</em> flash it to your board.</p> <p>Lbmk includes a script that will automatically inject the necessary files into a rom file. The script can determine the board automatically if you have not changed the name, but you can also manually set the board name with the <code>-b</code> flag.</p> <p>In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image.</p> <p>If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. Run the injection script pointing to the release archive you downloaded:</p> <pre><code>./vendor inject /path/to/libreboot-RELEASE_targetname.tar.xz</code></pre> <p>The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in <code>/bin/release/</code></p> <p>Alternatively, you may patch only a single rom file. For example:</p> <pre><code>./vendor inject -r t440p_libreboot.rom -b t440plibremrc_12mb</code></pre> <p>Optionally, you can use this script to modify the mac address of the rom with the <code>-m</code> flag. For example:</p> <pre><code>./vendor inject -r t440p_libreboot.rom -b t440plibremrc_12mb -m 00:f6:f0:40:71:fd</code></pre> <p>NOTE: this makes use of <code>nvmutil</code>, which you can read more about in the <a href="nvmutil.html">nvmutil documentation</a>.</p> <div class="h"><h2 id="splitting-the-rom">Splitting The Rom</h2><a aria-hidden="true" href="#splitting-the-rom">[link]</a></div> <p>You can use <code>dd</code> to easily split your rom into the two separate portions for external flashing.</p> <pre><code>dd if=libreboot.rom of=top.rom bs=1M skip=8 dd if=libreboot.rom of=bottom.rom bs=1M count=8</code></pre> <p>Flash the top chip with top.rom, and tho bottom chip with bottom.rom. Don’t worry about knowing which chip is which on a standard setup; flashprog will let you know if the image size is incorrect for the chip you’re flashing.</p> <div class="h"><h2 id="disassembly">Disassembly</h2><a aria-hidden="true" href="#disassembly">[link]</a></div> <p>Start by removing the back cover screws and the main battery.<br /> <img loading="lazy" tabindex=1 src="https://av.libreboot.org/board/t440p/t440p_back.jpg" /><span class="f"><img loading="lazy" src="https://av.libreboot.org/board/t440p/t440p_back_orig.jpg" /></span></p> <p>You can then remove the back cover by sliding it off. Next you need to:</p> <ul> <li>Unplug the cmos battery</li> <li>Unplug and unroute the fan cable</li> <li>Unplug and unroute the black LED cable</li> <li>Remove all visible screws</li> </ul> <p><em>Note: the ultrabay screw will loosen, but not come out of the assembly</em><br /> <img loading="lazy" tabindex=1 src="https://av.libreboot.org/board/t440p/t440p_nocover.jpg" /><span class="f"><img loading="lazy" src="https://av.libreboot.org/board/t440p/t440p_nocover_orig.jpg" /></span></p> <p>Now you can pull up around the sides of the bottom assembly to release it. Pull it upwards and lift it open to the front of the machine like a clamshell. Make sure not to break the wires connecting the assembly to the rest of the machine.<br /> <img loading="lazy" tabindex=1 src="https://av.libreboot.org/board/t440p/t440p_open.jpg" /><span class="f"><img loading="lazy" src="https://av.libreboot.org/board/t440p/t440p_open_orig.jpg" /></span></p> <p>You should now be able to see the two flash chips near the RAM.<br /> <img loading="lazy" tabindex=1 src="https://av.libreboot.org/board/t440p/t440p_chipLocation.jpg" /><span class="f"><img loading="lazy" src="https://av.libreboot.org/board/t440p/t440p_chipLocation_orig.jpg" /></span></p> <p>You can now proceed to <a href="/docs/install/spi.html">flashing</a> this machine.</p> <div class="h"><h1 id="errata">Errata</h1><a aria-hidden="true" href="#errata">[link]</a></div> <p>NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer included for Haswell; MRC is a blob for raminit, but we now provide libre raminit. The following targets no longer exist in the build system:</p> <ul> <li><code>t440pmrc_12mb</code> (use <code>t440plibremrc_12mb</code> instead)</li> <li><code>t440pbmrc_12mb</code> (use <code>t440plibremrc_12mb</code> instead)</li> <li><code>w541mrc_12mb</code> (use <code>w541_12mb</code> instead)</li> <li><code>w541bmrc_12mb</code> (use <code>w541_12mb</code> instead)</li> <li><code>dell9020sff_12mb</code> (use <code>dell9020sff_nri_12mb</code> instead)</li> <li><code>dell9020sffbmrc</code> (use <code>dell9020sff_nri_12mb</code> instead)</li> <li><code>dell9020mt_12mb</code> (use <code>dell9020mt_nri_12mb</code> instead)</li> <li><code>dell9020mtbmrc</code> (use <code>dell9020mt_nri_12mb</code> instead)</li> </ul> <p>This is written as errata because some users may still be using older release images but on the newer build system from May 2024 onward; you must use the Libreboot 20240225 release if you want to inject MRC and so on, for these older targets.</p> <p>Libreboot’s <a href="../../news/policy.html">binary blob reduction policy</a> is very strict, and states: if a blob can be avoided, it must be avoided. Therefore, the MRC is removed on Haswell and Libreboot will only use the libre raminit (called NRI, short for Native Ram Initialisation).</p> <div id="footer"> <hr /> <ul> <li><a href="/news/policy.html">Binary Blob Reduction Policy</a></li> <li><a href="/freedom-status.html">Freedom status</a></li> <li><a href="/git.html">Edit this page</a></li> <li><a href="/who.html">Who develops Libreboot?</a></li> <li><a href="/license.html">License</a></li> <li><a href="/template-license.html">Template</a></li> <li><a href="/logo-license.html">Logo</a></li> <li><a href="/contrib.html">Authors</a></li> </ul> <hr /> </div> <p>Markdown file for this page: <a href="https://libreboot.org/docs/install/t440p_external.md" class="uri">https://libreboot.org/docs/install/t440p_external.md</a></p> <p><a href="/feed.xml">Subscribe to RSS for this site</a></p> <p><a href="/sitemap.html">Site map</a></p> <p>This HTML page was generated by the <a href="https://untitled.vimuser.org/">Untitled Static Site Generator</a>.</p> </div> </div> </body> </html>