|
|
-
- <!doctype html>
- <html lang="en" class="no-js">
- <head>
-
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width,initial-scale=1">
-
- <meta name="description" content="Accessible & Free Documentation for Libre Products">
-
-
-
- <meta name="author" content="Abhas Abhinav">
-
-
- <link rel="shortcut icon" href="../../images/lts-icon.png">
- <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.2.4">
-
-
-
- <title>(LC230) User Guide - LibreTechShop - Documentation</title>
-
-
-
- <link rel="stylesheet" href="../../assets/stylesheets/main.15aa0b43.min.css">
-
-
- <link rel="stylesheet" href="../../assets/stylesheets/palette.75751829.min.css">
-
-
-
- <meta name="theme-color" content="#ffffff">
-
-
-
-
-
-
-
-
-
- <link rel="stylesheet" href="../../css/extra.css">
-
-
-
-
-
- </head>
-
-
-
-
-
-
-
- <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="pink">
-
-
-
- <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
- <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
- <label class="md-overlay" for="__drawer"></label>
- <div data-md-component="skip">
-
-
- <a href="#lc230-user-guide" class="md-skip">
- Skip to content
- </a>
-
- </div>
- <div data-md-component="announce">
-
- </div>
-
-
-
- <header class="md-header" data-md-component="header">
- <nav class="md-header-nav md-grid" aria-label="Header">
- <a href="../.." title="LibreTechShop - Documentation" class="md-header-nav__button md-logo" aria-label="LibreTechShop - Documentation">
-
- <img src="../../images/lts-icon.png" alt="logo">
-
- </a>
- <label class="md-header-nav__button md-icon" for="__drawer">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
- </label>
- <div class="md-header-nav__title" data-md-component="header-title">
- <div class="md-header-nav__ellipsis">
- <div class="md-header-nav__topic">
- <span class="md-ellipsis">
- LibreTechShop - Documentation
- </span>
- </div>
- <div class="md-header-nav__topic">
- <span class="md-ellipsis">
-
- (LC230) User Guide
-
- </span>
- </div>
- </div>
- </div>
-
- <label class="md-header-nav__button md-icon" for="__search">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
- </label>
-
- <div class="md-search" data-md-component="search" role="dialog">
- <label class="md-search__overlay" for="__search"></label>
- <div class="md-search__inner" role="search">
- <form class="md-search__form" name="search">
- <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
- <label class="md-search__icon md-icon" for="__search">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
- </label>
- <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
- </button>
- </form>
- <div class="md-search__output">
- <div class="md-search__scrollwrap" data-md-scrollfix>
- <div class="md-search-result" data-md-component="search-result">
- <div class="md-search-result__meta">
- Initializing search
- </div>
- <ol class="md-search-result__list"></ol>
- </div>
- </div>
- </div>
- </div>
- </div>
-
-
- </nav>
- </header>
-
- <div class="md-container" data-md-component="container">
-
-
-
-
- <main class="md-main" data-md-component="main">
- <div class="md-main__inner md-grid">
-
-
-
- <div class="md-sidebar md-sidebar--primary" data-md-component="navigation" >
- <div class="md-sidebar__scrollwrap">
- <div class="md-sidebar__inner">
-
-
-
-
-
- <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
- <label class="md-nav__title" for="__drawer">
- <a href="../.." title="LibreTechShop - Documentation" class="md-nav__button md-logo" aria-label="LibreTechShop - Documentation">
-
- <img src="../../images/lts-icon.png" alt="logo">
-
- </a>
- LibreTechShop - Documentation
- </label>
-
- <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="../.." class="md-nav__link">
- Home
- </a>
- </li>
-
-
-
-
-
-
-
-
-
-
-
- <li class="md-nav__item md-nav__item--active md-nav__item--nested">
-
-
- <input class="md-nav__toggle md-toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2" checked>
-
- <label class="md-nav__link" for="nav-2">
- LC230
- <span class="md-nav__icon md-icon"></span>
- </label>
- <nav class="md-nav" aria-label="LC230" data-md-level="1">
- <label class="md-nav__title" for="nav-2">
- <span class="md-nav__icon md-icon"></span>
- LC230
- </label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="../" class="md-nav__link">
- (LC230) Overview
- </a>
- </li>
-
-
-
-
-
-
-
-
-
-
- <li class="md-nav__item md-nav__item--active">
-
- <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
-
-
-
-
- <label class="md-nav__link md-nav__link--active" for="__toc">
- (LC230) User Guide
- <span class="md-nav__icon md-icon"></span>
- </label>
-
- <a href="./" class="md-nav__link md-nav__link--active">
- (LC230) User Guide
- </a>
-
-
- <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
-
-
-
-
-
- <label class="md-nav__title" for="__toc">
- <span class="md-nav__icon md-icon"></span>
- Table of contents
- </label>
- <ul class="md-nav__list" data-md-scrollfix>
-
- <li class="md-nav__item">
- <a href="#the-coreboot-boot-process" class="md-nav__link">
- The Coreboot Boot Process
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#installing-an-os" class="md-nav__link">
- Installing an OS
- </a>
-
- <nav class="md-nav" aria-label="Installing an OS">
- <ul class="md-nav__list">
-
- <li class="md-nav__item">
- <a href="#build-usb-installer" class="md-nav__link">
- Build USB Installer
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#plug-in-usb-disk" class="md-nav__link">
- Plug-in USB Disk
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#choose-the-boot-device" class="md-nav__link">
- Choose the boot device
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#install-the-os" class="md-nav__link">
- Install the OS
- </a>
-
- </li>
-
- </ul>
- </nav>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#coreboot-internal-flashing" class="md-nav__link">
- Coreboot Internal Flashing
- </a>
-
- <nav class="md-nav" aria-label="Coreboot Internal Flashing">
- <ul class="md-nav__list">
-
- <li class="md-nav__item">
- <a href="#configure-the-kernel" class="md-nav__link">
- Configure the kernel
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#query-coreboot-details" class="md-nav__link">
- Query Coreboot details
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#install-flashrom" class="md-nav__link">
- Install: flashrom
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#read-bios-image" class="md-nav__link">
- Read BIOS Image
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#write-bios-image" class="md-nav__link">
- Write BIOS Image
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#flash-skulls" class="md-nav__link">
- Flash: Skulls
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#flash-heads" class="md-nav__link">
- Flash: Heads
- </a>
-
- </li>
-
- </ul>
- </nav>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#configuring-coreboot" class="md-nav__link">
- Configuring Coreboot
- </a>
-
- <nav class="md-nav" aria-label="Configuring Coreboot">
- <ul class="md-nav__list">
-
- <li class="md-nav__item">
- <a href="#swapping-fn-and-ctrl" class="md-nav__link">
- Swapping Fn and Ctrl
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#increasing-graphics-memory" class="md-nav__link">
- Increasing Graphics Memory
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#other-settings" class="md-nav__link">
- Other settings
- </a>
-
- </li>
-
- </ul>
- </nav>
-
- </li>
-
- </ul>
-
- </nav>
-
- </li>
-
-
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="../troubleshooting/" class="md-nav__link">
- (LC230) Troubleshooting
- </a>
- </li>
-
-
- </ul>
- </nav>
- </li>
-
-
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="../../le01/" class="md-nav__link">
- LE01
- </a>
- </li>
-
-
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="../../ledc/" class="md-nav__link">
- LEDC
- </a>
- </li>
-
-
- </ul>
- </nav>
- </div>
- </div>
- </div>
-
-
-
- <div class="md-sidebar md-sidebar--secondary" data-md-component="toc" >
- <div class="md-sidebar__scrollwrap">
- <div class="md-sidebar__inner">
-
- <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
-
-
-
-
-
- <label class="md-nav__title" for="__toc">
- <span class="md-nav__icon md-icon"></span>
- Table of contents
- </label>
- <ul class="md-nav__list" data-md-scrollfix>
-
- <li class="md-nav__item">
- <a href="#the-coreboot-boot-process" class="md-nav__link">
- The Coreboot Boot Process
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#installing-an-os" class="md-nav__link">
- Installing an OS
- </a>
-
- <nav class="md-nav" aria-label="Installing an OS">
- <ul class="md-nav__list">
-
- <li class="md-nav__item">
- <a href="#build-usb-installer" class="md-nav__link">
- Build USB Installer
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#plug-in-usb-disk" class="md-nav__link">
- Plug-in USB Disk
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#choose-the-boot-device" class="md-nav__link">
- Choose the boot device
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#install-the-os" class="md-nav__link">
- Install the OS
- </a>
-
- </li>
-
- </ul>
- </nav>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#coreboot-internal-flashing" class="md-nav__link">
- Coreboot Internal Flashing
- </a>
-
- <nav class="md-nav" aria-label="Coreboot Internal Flashing">
- <ul class="md-nav__list">
-
- <li class="md-nav__item">
- <a href="#configure-the-kernel" class="md-nav__link">
- Configure the kernel
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#query-coreboot-details" class="md-nav__link">
- Query Coreboot details
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#install-flashrom" class="md-nav__link">
- Install: flashrom
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#read-bios-image" class="md-nav__link">
- Read BIOS Image
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#write-bios-image" class="md-nav__link">
- Write BIOS Image
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#flash-skulls" class="md-nav__link">
- Flash: Skulls
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#flash-heads" class="md-nav__link">
- Flash: Heads
- </a>
-
- </li>
-
- </ul>
- </nav>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#configuring-coreboot" class="md-nav__link">
- Configuring Coreboot
- </a>
-
- <nav class="md-nav" aria-label="Configuring Coreboot">
- <ul class="md-nav__list">
-
- <li class="md-nav__item">
- <a href="#swapping-fn-and-ctrl" class="md-nav__link">
- Swapping Fn and Ctrl
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#increasing-graphics-memory" class="md-nav__link">
- Increasing Graphics Memory
- </a>
-
- </li>
-
- <li class="md-nav__item">
- <a href="#other-settings" class="md-nav__link">
- Other settings
- </a>
-
- </li>
-
- </ul>
- </nav>
-
- </li>
-
- </ul>
-
- </nav>
- </div>
- </div>
- </div>
-
-
- <div class="md-content">
- <article class="md-content__inner md-typeset">
-
-
-
- <h1 id="lc230-user-guide">(LC230) User Guide<a class="headerlink" href="#lc230-user-guide" title="Permanent link">¶</a></h1>
- <h2 id="the-coreboot-boot-process">The Coreboot Boot Process<a class="headerlink" href="#the-coreboot-boot-process" title="Permanent link">¶</a></h2>
- <p>Here is what the boot process looks like with Coreboot installed:</p>
- <figure>
- <img src="/images/coreboot-diagram.png" width="420" />
- <figcaption>Coreboot Sequence Diagram</figcaption>
- </figure>
-
- <p>The first part of the boot process (labelled as "Coreboot Internal" in the diagram above) is
- largely hidden from the user. The boot process is illustrated below:</p>
- <figure>
- <img src="/images/lc230-boot.gif" width="420" />
- <figcaption>LC230 Boot Process</figcaption>
- </figure>
-
- <h2 id="installing-an-os">Installing an OS<a class="headerlink" href="#installing-an-os" title="Permanent link">¶</a></h2>
- <p>To install any GNU/Linux OS, here is a sequence of steps:</p>
- <h3 id="build-usb-installer">Build USB Installer<a class="headerlink" href="#build-usb-installer" title="Permanent link">¶</a></h3>
- <p>Any GNU/Linux OS would work very well on your LC230 laptop. (Some owners have
- also installed and used FreeBSD on it.)</p>
- <p>LC230 is configured to run without any proprietary firmware and hence, any of
- the following operating systems would work well by default:</p>
- <ul>
- <li><a href="https://debian.org">Debian GNU/Linux (main)</a></li>
- <li><a href="https://pureos.net/">PureOS</a></li>
- <li><a href="https://trisquel.info/">Triquel</a></li>
- </ul>
- <div class="admonition tip">
- <p class="admonition-title">Tip</p>
- <p>The <a href="https://www.raspberrypi.org/software/">Rasperrby Pi Imager</a> is a good
- tool to use to write an OS image to a USB disk. <a href="https://www.balena.io/etcher/">Balena Etcher</a> is another
- one.</p>
- </div>
- <h3 id="plug-in-usb-disk">Plug-in USB Disk<a class="headerlink" href="#plug-in-usb-disk" title="Permanent link">¶</a></h3>
- <p>The USB needs to be plugged in before you reboot the laptop - or else SeaBIOS
- will not detect it and show it as a boot option.</p>
- <div class="admonition info">
- <p class="admonition-title">Info</p>
- <p>The blue USB ports on the left side of the laptop are USB3 ports. If you
- have a USB disk that works with USB3, then using these ports will give you
- much better USB disk performance.</p>
- <p>The USB port on the right side (yellow in colour) is a USB2 port.</p>
- </div>
- <h3 id="choose-the-boot-device">Choose the boot device<a class="headerlink" href="#choose-the-boot-device" title="Permanent link">¶</a></h3>
- <p>Press <span class="keys"><kbd class="key-escape">Esc</kbd></span> on boot and choose the USB disk as the boot device</p>
- <figure>
- <img src="/images/lc230-boot-logo.jpg" width="400" />
- <figcaption>LC230 Boot Image</figcaption>
- </figure>
-
- <p>By default, the first boot option is chosen to boot off. This is usually the
- 2.5" SATA disk if it is plugged in to the laptop. To choose another boot
- device, you need to press <span class="keys"><kbd class="key-escape">Esc</kbd></span> and then choose the desired boot device
- from the SeaBIOS menu.</p>
- <p>If you have a 2.5" SATA disk, then a USB disk would be the second boot device.
- If you have a 2.5" SATA disk <strong>and</strong> a mSATA disk, then the USB disk would be
- the third boot device.</p>
- <figure>
- <img src="/images/lc230-usb3.jpg"/>
- <figcaption>LC230 USB3 Ports</figcaption>
- </figure>
-
- <h3 id="install-the-os">Install the OS<a class="headerlink" href="#install-the-os" title="Permanent link">¶</a></h3>
- <p>You can now proceed with the OS installation as normal.</p>
- <p>The LC230 does not provide a UEFI BIOS (like the default Lenovo BIOS firmware).
- SeaBIOS is a pc-bios payload and most GNU/Linux OS installers will detect that
- and install the correct bootloader. This would be <code>grub-pc</code> if you choose to
- use Grub and Debian.</p>
- <h2 id="coreboot-internal-flashing">Coreboot Internal Flashing<a class="headerlink" href="#coreboot-internal-flashing" title="Permanent link">¶</a></h2>
- <p>To flash Coreboot to the x230 motherboard, the first step is to flash the BIOS
- externally - ie. using a SIOC-8 flashing clip connecting to the BIOS chips:</p>
- <figure>
- <img src="/images/x230-flashing.png"/>
- <figcaption>Liberating the LC230 via External Flashing</figcaption>
- </figure>
-
- <p>However, as a part of the external flashing process, the BIOS is unlocked. This
- means that you can update / modify the BIOS on the SPI Flash internally - from
- within the operating system. Here are some reasons to do that and the steps
- involved.</p>
- <h3 id="configure-the-kernel">Configure the kernel<a class="headerlink" href="#configure-the-kernel" title="Permanent link">¶</a></h3>
- <p>The first things to do before you can flash Coreboot internally, is to boot the
- kernel with an additional option:</p>
- <div class="codehilite"><pre><span></span><code>iomem=relaxed
- </code></pre></div>
-
- <p>On Debian (and derived operating systems such as Ubuntu), you can make this a
- permanent setting:</p>
- <ol>
- <li>Edit the file: <code>/etc/default/grub</code></li>
- <li>
- <p>Update the line <code>GRUB_CMDLINE_LINUX</code> to read:</p>
- <p><code>GRUB_CMDLINE_LINUX="iomem=relaxed"</code></p>
- </li>
- <li>
- <p>Run: <code>update-grub</code> to update the Grub configuration.</p>
- </li>
- </ol>
- <h3 id="query-coreboot-details">Query Coreboot details<a class="headerlink" href="#query-coreboot-details" title="Permanent link">¶</a></h3>
- <p>You can verify the coreboot version (as well as the fact that you're running
- coreboot) by using the <code>dmidecode</code> utility as follows:</p>
- <h4>BIOS version</h4>
- <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo dmidecode -t bios
- <span class="gp"># </span>dmidecode <span class="m">3</span>.3
- <span class="go">Getting SMBIOS data from sysfs.</span>
- <span class="go">SMBIOS 2.8 present.</span>
-
- <span class="go">Handle 0x0000, DMI type 0, 26 bytes</span>
- <span class="go">BIOS Information</span>
- <span class="go"> Vendor: coreboot</span>
- <span class="go"> Version: CBET4000 4.10-1082-g4357a82076-dirty</span>
- <span class="go"> Release Date: 10/20/2019</span>
- <span class="go"> ROM Size: 12 MB</span>
- <span class="go"> Characteristics:</span>
- <span class="go"> PCI is supported</span>
- <span class="go"> PC Card (PCMCIA) is supported</span>
- <span class="go"> BIOS is upgradeable</span>
- <span class="go"> Selectable boot is supported</span>
- <span class="go"> ACPI is supported</span>
- <span class="go"> Targeted content distribution is supported</span>
- <span class="go"> BIOS Revision: 4.10</span>
- <span class="go"> Firmware Revision: 0.0</span>
- </code></pre></div>
- <h4>System type & name</h4>
- <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo dmidecode -t system
- <span class="gp"># </span>dmidecode <span class="m">3</span>.3
- <span class="go">Getting SMBIOS data from sysfs.</span>
- <span class="go">SMBIOS 2.8 present.</span>
-
- <span class="go">Handle 0x0001, DMI type 1, 27 bytes</span>
- <span class="go">System Information</span>
- <span class="go"> Manufacturer: LENOVO</span>
- <span class="go"> Product Name: 2325BU3</span>
- <span class="go"> Version: ThinkPad X230</span>
- <span class="go"> Serial Number: PK1HM8E</span>
- <span class="go"> UUID: ce136601-xxxx-xxxx-xxxx-xxxxxxxxxxxx</span>
- <span class="go"> Wake-up Type: Reserved</span>
- <span class="go"> SKU Number: Not Specified</span>
- <span class="go"> Family: ThinkPad X230</span>
-
- <span class="go">Handle 0x000B, DMI type 32, 11 bytes</span>
- <span class="go">System Boot Information</span>
- <span class="go"> Status: No errors detected</span>
- </code></pre></div>
- <h3 id="install-flashrom">Install: <code>flashrom</code><a class="headerlink" href="#install-flashrom" title="Permanent link">¶</a></h3>
- <p>The primary tool for operating on your BIOS is called <code>flashrom</code>. The Debian
- package is also called by the same name and can be installed as:</p>
- <div class="codehilite"><pre><span></span><code>apt-get install flashrom
- </code></pre></div>
-
- <p>If the kernel is booted correctly with <code>iomem=relaxed</code>, you can run <code>flashrom</code>:</p>
- <div class="codehilite"><pre><span></span><code>flashrom -pinternal
- </code></pre></div>
-
- <p>Ouput:</p>
- <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo flashrom -pinternal
- <span class="go">flashrom v1.2 on Linux 5.10.9-gnu (x86_64)</span>
- <span class="go">flashrom is free software, get the source code at https://flashrom.org</span>
-
- <span class="go">Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).</span>
- <span class="go">coreboot table found at 0xbff51000.</span>
- <span class="go">Found chipset "Intel QM77".</span>
- <span class="go">Enabling flash write... SPI Configuration is locked down.</span>
- <span class="go">Enabling hardware sequencing due to multiple flash chips detected.</span>
- <span class="go">OK.</span>
- <span class="go">Found Programmer flash chip "Opaque flash chip" (12288 kB, Programmer-specific) mapped at physical address 0x0000000000000000.</span>
- <span class="go">No operations were specified.</span>
- </code></pre></div>
- <div class="admonition tip">
- <p class="admonition-title">Tip</p>
- <p>Sometimes <code>flashrom</code> will not detect the internal flash chip, though it
- might very well be able to confirm the BIOS type and machine name. In such
- cases, you can try to run <code>flashrom</code> as: <code>flashrom
- -pinternal:laptop=force_I_want_a_brick</code>. This is not completely safe</p>
- </div>
- <h3 id="read-bios-image">Read BIOS Image<a class="headerlink" href="#read-bios-image" title="Permanent link">¶</a></h3>
- <p>You can dump the BIOS to a file:</p>
- <div class="highlight"><pre><span></span><code><span class="gp">$ </span>flashrom -pinternal -r lc230-coreboot.rom
- </code></pre></div>
- <p>This will read the BIOS to a file: <code>lc230-coreboot.rom</code>. This file will be 12 MB in size.</p>
- <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo flashrom -pinternal -r lc230.rom
- <span class="go">flashrom v1.2 on Linux 5.10.9-gnu (x86_64)</span>
- <span class="go">flashrom is free software, get the source code at https://flashrom.org</span>
-
- <span class="go">Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).</span>
- <span class="go">coreboot table found at 0xbff51000.</span>
- <span class="go">Found chipset "Intel QM77".</span>
- <span class="go">Enabling flash write... SPI Configuration is locked down.</span>
- <span class="go">Enabling hardware sequencing due to multiple flash chips detected.</span>
- <span class="go">OK.</span>
- <span class="go">Found Programmer flash chip "Opaque flash chip" (12288 kB, Programmer-specific) mapped at physical address 0x0000000000000000.</span>
- <span class="go">Reading flash... done.</span>
- <span class="gp">$ </span>ls -lh lc230-coreboot.rom
- <span class="go">-rw-r--r-- 1 root root 12M Feb 8 04:46 lc230-coreboot.rom</span>
- </code></pre></div>
- <h3 id="write-bios-image">Write BIOS Image<a class="headerlink" href="#write-bios-image" title="Permanent link">¶</a></h3>
- <p>You can now write back to the BIOS chips as follows:</p>
- <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo flashrom -pinternal -w lc230-coreboot.rom
- <span class="go">flashrom v1.2 on Linux 5.10.9-gnu (x86_64)</span>
- <span class="go">flashrom is free software, get the source code at https://flashrom.org</span>
-
- <span class="go">Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).</span>
- <span class="go">coreboot table found at 0xbff51000.</span>
- <span class="go">Found chipset "Intel QM77".</span>
- <span class="go">Enabling flash write... SPI Configuration is locked down.</span>
- <span class="go">Enabling hardware sequencing due to multiple flash chips detected.</span>
- <span class="go">OK.</span>
- <span class="go">Found Programmer flash chip "Opaque flash chip" (12288 kB, Programmer-specific) mapped at physical address 0x0000000000000000.</span>
- <span class="go">Reading old flash chip contents... done.</span>
- <span class="go">Erasing and writing flash chip... </span>
- <span class="go">Warning: Chip content is identical to the requested image.</span>
- <span class="go">Erase/write done</span>
- </code></pre></div>
- <h3 id="flash-skulls">Flash: Skulls<a class="headerlink" href="#flash-skulls" title="Permanent link">¶</a></h3>
- <p>The Skulls Coreboot distribution provides built in scripts to upgrade the BIOS.
- The update procedure is <a href="https://github.com/merge/skulls/blob/master/x230/README.md#updating">detailed
- here</a>.
- Your LC230 ships with the latest release of Skull available at the time of
- shipping the laptop to you. You can upgrade skulls using the instructions above. </p>
- <h3 id="flash-heads">Flash: Heads<a class="headerlink" href="#flash-heads" title="Permanent link">¶</a></h3>
- <p>If you want to experiment with the <a href="https://osresearch.net/">Heads firmware</a>,
- instructions are available on the <a href="https://osresearch.net/">Heads website</a> as
- well as in the <a href="https://github.com/merge/skulls/blob/master/x230/README.md#moving-to-heads">Skulls documentation</a>.</p>
- <h2 id="configuring-coreboot">Configuring Coreboot<a class="headerlink" href="#configuring-coreboot" title="Permanent link">¶</a></h2>
- <p>Your LC230 ships with a SeaBIOS payload called <code>nvramcui</code> that allows you to
- configure coreboot behaviour and save the settings to nvram.</p>
- <div style="text-align: center">
- <figure style="display: inline-block" >
- <img src="/images/nvramcui-1.jpg" width="250" />
- <figcaption> nvramcui options (1) </figcaption>
- </figure>
-
- <figure style="display: inline-block" >
- <img src="/images/nvramcui-2.jpg" width="235" />
- <figcaption> nvramcui options (2) </figcaption>
- </figure>
-
- <figure style="display: inline-block" >
- <img src="/images/nvramcui-3.jpg" width="235" />
- <figcaption> nvramcui options (3) </figcaption>
- </figure>
- </div>
-
- <h3 id="swapping-fn-and-ctrl">Swapping <span class="keys"><kbd class="key-function">Fn</kbd></span> and <span class="keys"><kbd class="key-control">Ctrl</kbd></span><a class="headerlink" href="#swapping-fn-and-ctrl" title="Permanent link">¶</a></h3>
- <p>The <code>fn_ctrl_swap</code> on the 2<sup>nd</sup> page of the <code>nvramcui</code> settings page enables you
- to toggle the <span class="keys"><kbd class="key-function">Fn</kbd></span> and <span class="keys"><kbd class="key-control">Ctrl</kbd></span> swap. If you like to have the control key
- on the bottom left corner of the keyboard, then you can set this option to <code>Enable</code>.</p>
- <h3 id="increasing-graphics-memory">Increasing Graphics Memory<a class="headerlink" href="#increasing-graphics-memory" title="Permanent link">¶</a></h3>
- <p>The x230 GPU does not have dedication RAM. Instead it shares its memory with
- the main system memory. You can configure how much RAM is dedicated to the GPU
- via the <code>gfx_uma_size</code> option on the 3<sup>rd</sup> page of the <code>nvramcui</code> settings.</p>
- <p>Pressing the <span class="keys"><kbd class="key-arrow-left">Left</kbd></span> and <span class="keys"><kbd class="key-arrow-right">Right</kbd></span> arrow keys you can iterate over all the
- available settings for this option.</p>
- <h3 id="other-settings">Other settings<a class="headerlink" href="#other-settings" title="Permanent link">¶</a></h3>
- <p>You can also configure the following behaviour via nvramcui:</p>
- <ul>
- <li>
- <p><strong>Always On USB</strong>: By enabling this option, you can configure the USB ports
- to be <em>always on</em> - even when the laptop is suspended.</p>
- </li>
- <li>
- <p><strong>Enable/Disable Trackpoing, Touchpad</strong>: You can toggle the <code>touchpad</code> and
- <code>trackpoint</code> options to enable or disable the the touchpad and trackpoint
- respectively.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
- </article>
- </div>
- </div>
- </main>
-
-
- <footer class="md-footer">
-
- <div class="md-footer-nav">
- <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
-
- <a href="../" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
- <div class="md-footer-nav__button md-icon">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
- </div>
- <div class="md-footer-nav__title">
- <div class="md-ellipsis">
- <span class="md-footer-nav__direction">
- Previous
- </span>
- (LC230) Overview
- </div>
- </div>
- </a>
-
-
- <a href="../troubleshooting/" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
- <div class="md-footer-nav__title">
- <div class="md-ellipsis">
- <span class="md-footer-nav__direction">
- Next
- </span>
- (LC230) Troubleshooting
- </div>
- </div>
- <div class="md-footer-nav__button md-icon">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
- </div>
- </a>
-
- </nav>
- </div>
-
- <div class="md-footer-meta md-typeset">
- <div class="md-footer-meta__inner md-grid">
- <div class="md-footer-copyright">
-
- <div class="md-footer-copyright__highlight">
- Copyright © Mostly Harmless
- </div>
-
- Made with
- <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
- Material for MkDocs
- </a>
- </div>
-
- </div>
- </div>
- </footer>
-
- </div>
-
- <script src="../../assets/javascripts/vendor.93c04032.min.js"></script>
- <script src="../../assets/javascripts/bundle.83e5331e.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script>
-
- <script>
- app = initialize({
- base: "../..",
- features: [],
- search: Object.assign({
- worker: "../../assets/javascripts/worker/search.8c7e0a7e.min.js"
- }, typeof search !== "undefined" && search)
- })
- </script>
-
-
- </body>
- </html>
|