User documentation and guides for products sold on the Libre Tech Shop. https://docs.libretech.shop
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

595 lines
21 KiB

  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <meta name="description" content="Accessible & Free Documentation for Libre Products">
  7. <meta name="author" content="Abhas Abhinav">
  8. <link rel="shortcut icon" href="../images/lts-icon.png">
  9. <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.2.4">
  10. <title>(LC230) Overview - LibreTechShop - Documentation</title>
  11. <link rel="stylesheet" href="../assets/stylesheets/main.15aa0b43.min.css">
  12. <link rel="stylesheet" href="../assets/stylesheets/palette.75751829.min.css">
  13. <meta name="theme-color" content="#ffffff">
  14. <link rel="stylesheet" href="../css/extra.css">
  15. </head>
  16. <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="pink">
  17. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  18. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  19. <label class="md-overlay" for="__drawer"></label>
  20. <div data-md-component="skip">
  21. <a href="#lc230-the-liberated-computer" class="md-skip">
  22. Skip to content
  23. </a>
  24. </div>
  25. <div data-md-component="announce">
  26. </div>
  27. <header class="md-header" data-md-component="header">
  28. <nav class="md-header-nav md-grid" aria-label="Header">
  29. <a href=".." title="LibreTechShop - Documentation" class="md-header-nav__button md-logo" aria-label="LibreTechShop - Documentation">
  30. <img src="../images/lts-icon.png" alt="logo">
  31. </a>
  32. <label class="md-header-nav__button md-icon" for="__drawer">
  33. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
  34. </label>
  35. <div class="md-header-nav__title" data-md-component="header-title">
  36. <div class="md-header-nav__ellipsis">
  37. <div class="md-header-nav__topic">
  38. <span class="md-ellipsis">
  39. LibreTechShop - Documentation
  40. </span>
  41. </div>
  42. <div class="md-header-nav__topic">
  43. <span class="md-ellipsis">
  44. (LC230) Overview
  45. </span>
  46. </div>
  47. </div>
  48. </div>
  49. <label class="md-header-nav__button md-icon" for="__search">
  50. <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>
  51. </label>
  52. <div class="md-search" data-md-component="search" role="dialog">
  53. <label class="md-search__overlay" for="__search"></label>
  54. <div class="md-search__inner" role="search">
  55. <form class="md-search__form" name="search">
  56. <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>
  57. <label class="md-search__icon md-icon" for="__search">
  58. <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>
  59. <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>
  60. </label>
  61. <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
  62. <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>
  63. </button>
  64. </form>
  65. <div class="md-search__output">
  66. <div class="md-search__scrollwrap" data-md-scrollfix>
  67. <div class="md-search-result" data-md-component="search-result">
  68. <div class="md-search-result__meta">
  69. Initializing search
  70. </div>
  71. <ol class="md-search-result__list"></ol>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. <div class="md-header-nav__source">
  78. <a href="https://sovran.dev/mh/lts-docs" title="Go to repository" class="md-source">
  79. <div class="md-source__icon md-icon">
  80. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  81. </div>
  82. <div class="md-source__repository">
  83. mh/lts-docs
  84. </div>
  85. </a>
  86. </div>
  87. </nav>
  88. </header>
  89. <div class="md-container" data-md-component="container">
  90. <main class="md-main" data-md-component="main">
  91. <div class="md-main__inner md-grid">
  92. <div class="md-sidebar md-sidebar--primary" data-md-component="navigation" >
  93. <div class="md-sidebar__scrollwrap">
  94. <div class="md-sidebar__inner">
  95. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  96. <label class="md-nav__title" for="__drawer">
  97. <a href=".." title="LibreTechShop - Documentation" class="md-nav__button md-logo" aria-label="LibreTechShop - Documentation">
  98. <img src="../images/lts-icon.png" alt="logo">
  99. </a>
  100. LibreTechShop - Documentation
  101. </label>
  102. <div class="md-nav__source">
  103. <a href="https://sovran.dev/mh/lts-docs" title="Go to repository" class="md-source">
  104. <div class="md-source__icon md-icon">
  105. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  106. </div>
  107. <div class="md-source__repository">
  108. mh/lts-docs
  109. </div>
  110. </a>
  111. </div>
  112. <ul class="md-nav__list" data-md-scrollfix>
  113. <li class="md-nav__item">
  114. <a href=".." class="md-nav__link">
  115. Home
  116. </a>
  117. </li>
  118. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  119. <input class="md-nav__toggle md-toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2" checked>
  120. <label class="md-nav__link" for="nav-2">
  121. LC230
  122. <span class="md-nav__icon md-icon"></span>
  123. </label>
  124. <nav class="md-nav" aria-label="LC230" data-md-level="1">
  125. <label class="md-nav__title" for="nav-2">
  126. <span class="md-nav__icon md-icon"></span>
  127. LC230
  128. </label>
  129. <ul class="md-nav__list" data-md-scrollfix>
  130. <li class="md-nav__item md-nav__item--active">
  131. <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
  132. <label class="md-nav__link md-nav__link--active" for="__toc">
  133. (LC230) Overview
  134. <span class="md-nav__icon md-icon"></span>
  135. </label>
  136. <a href="./" class="md-nav__link md-nav__link--active">
  137. (LC230) Overview
  138. </a>
  139. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  140. <label class="md-nav__title" for="__toc">
  141. <span class="md-nav__icon md-icon"></span>
  142. Table of contents
  143. </label>
  144. <ul class="md-nav__list" data-md-scrollfix>
  145. <li class="md-nav__item">
  146. <a href="#why-lc230" class="md-nav__link">
  147. Why LC230?
  148. </a>
  149. </li>
  150. <li class="md-nav__item">
  151. <a href="#what-is-coreboot" class="md-nav__link">
  152. What is Coreboot?
  153. </a>
  154. </li>
  155. <li class="md-nav__item">
  156. <a href="#introducing-skulls" class="md-nav__link">
  157. Introducing Skulls
  158. </a>
  159. </li>
  160. <li class="md-nav__item">
  161. <a href="#how-is-an-lc230-assembled" class="md-nav__link">
  162. How is an LC230 assembled?
  163. </a>
  164. </li>
  165. </ul>
  166. </nav>
  167. </li>
  168. <li class="md-nav__item">
  169. <a href="user-guide/" class="md-nav__link">
  170. (LC230) User Guide
  171. </a>
  172. </li>
  173. <li class="md-nav__item">
  174. <a href="troubleshooting/" class="md-nav__link">
  175. (LC230) Troubleshooting
  176. </a>
  177. </li>
  178. </ul>
  179. </nav>
  180. </li>
  181. <li class="md-nav__item">
  182. <a href="../ledc/" class="md-nav__link">
  183. LEDC
  184. </a>
  185. </li>
  186. <li class="md-nav__item">
  187. <a href="../mhsw/" class="md-nav__link">
  188. MHSW
  189. </a>
  190. </li>
  191. </ul>
  192. </nav>
  193. </div>
  194. </div>
  195. </div>
  196. <div class="md-sidebar md-sidebar--secondary" data-md-component="toc" >
  197. <div class="md-sidebar__scrollwrap">
  198. <div class="md-sidebar__inner">
  199. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  200. <label class="md-nav__title" for="__toc">
  201. <span class="md-nav__icon md-icon"></span>
  202. Table of contents
  203. </label>
  204. <ul class="md-nav__list" data-md-scrollfix>
  205. <li class="md-nav__item">
  206. <a href="#why-lc230" class="md-nav__link">
  207. Why LC230?
  208. </a>
  209. </li>
  210. <li class="md-nav__item">
  211. <a href="#what-is-coreboot" class="md-nav__link">
  212. What is Coreboot?
  213. </a>
  214. </li>
  215. <li class="md-nav__item">
  216. <a href="#introducing-skulls" class="md-nav__link">
  217. Introducing Skulls
  218. </a>
  219. </li>
  220. <li class="md-nav__item">
  221. <a href="#how-is-an-lc230-assembled" class="md-nav__link">
  222. How is an LC230 assembled?
  223. </a>
  224. </li>
  225. </ul>
  226. </nav>
  227. </div>
  228. </div>
  229. </div>
  230. <div class="md-content">
  231. <article class="md-content__inner md-typeset">
  232. <h1 id="lc230-the-liberated-computer">LC230 - The Liberated Computer<a class="headerlink" href="#lc230-the-liberated-computer" title="Permanent link">&para;</a></h1>
  233. <figure>
  234. <img src="/images/x230.png"/>
  235. </figure>
  236. <h2 id="why-lc230">Why LC230?<a class="headerlink" href="#why-lc230" title="Permanent link">&para;</a></h2>
  237. <p>Why does LC230 exist?</p>
  238. <p>Some of the most fundamental questions that we need to answer about the hardware that we possess are those of "ownership":</p>
  239. <div class="admonition question">
  240. <p class="admonition-title">Question</p>
  241. <ul class="task-list">
  242. <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> What is the definition of owning a piece of hardware? </li>
  243. <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Are we the owners of the hardware merely because we paid for it and now have possession of it?</li>
  244. <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> If we are owners do we have the necessary freedom and opportunity to do what we want with it? </li>
  245. <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> How much control does the manufacturer of a device exert after "selling" the device to us?</li>
  246. <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> If such control does exist, then how do we re-define ownership now?</li>
  247. </ul>
  248. </div>
  249. <p>The answers to these questions are not easy, universal or simple. Hence, we might define ownership in the following terms:</p>
  250. <div class="admonition info">
  251. <p class="admonition-title">Info</p>
  252. <p>We are the true owners of our hardware if we can <strong>do whatever we want</strong> with hardware <strong>without then
  253. permission of the manufacturer</strong>. This includes the <strong>freedom to change or upgrade hardware components</strong>
  254. at will, <strong>repair and refurbish</strong> the hardware and <strong>install the software we want</strong> (without constraints).</p>
  255. </div>
  256. <p>The <strong>"Liberated Computer"</strong> project exists to provide users with convenient access to
  257. reliable, libre-software friendly and hackable computers. The key to having the freedom to compute in a manner
  258. we deem respectful is to first liberate the computers from the locks and constraints imposed by the manufacturer.</p>
  259. <div class="admonition failure">
  260. <p class="admonition-title">Failure</p>
  261. <p><figure>
  262. <img src="/images/lenovo-error.jpg" />
  263. <figcaption style="text-align: justify;">
  264. Even 8 years after the model ceased production, Lenovo's BIOS does not give you the freedom to change the
  265. wireless card of the laptop to one that would work without proprietary firmware! <br> <br>
  266. This is a classic example of a manufacturer exerting control over the hardware well beyond its intended lifespan. <br> <br>
  267. Unless a wireless card that is "white-listed" by the BIOS is plugged in, the system will not boot up. The only way to
  268. move beyond this limitation is to replace the BIOS and hence, liberate the computer.
  269. </figcaption>
  270. </figure></p>
  271. </div>
  272. <h2 id="what-is-coreboot">What is Coreboot?<a class="headerlink" href="#what-is-coreboot" title="Permanent link">&para;</a></h2>
  273. <p>Coreboot is a free/libre software BIOS replacement. It was developed to allow computers users the ability to exert
  274. greater control on their computers by being able to control the BIOS. Coreboot is a very modular BIOS and runs on a wide
  275. variety of computer mainboards. More details are available at: <a href="https://coreboot.org">coreboot.org</a></p>
  276. <p>Coreboot's main advantage is that of software freedom at the BIOS level. It liberates the computer and allows a
  277. user to load multiple types of boot payloads while also allowing us to cripple and neuter the Intel ME.</p>
  278. <p>Some of the common payloads supported by Coreboot are:</p>
  279. <ul>
  280. <li>SeaBIOS - the default payload that ships with your LC230</li>
  281. <li>Linux - you can embed and load a Linux kernel on the BIOS chip</li>
  282. <li>Grub - You can also daisy-chain and boot Grub from Coreboot so that you can perform the rest of the boot process via Grub</li>
  283. <li><code>nvramtui</code> - a utility to configure the Embedded Controller (EC) firmware on thinkpad laptops</li>
  284. <li><code>memtest</code> - perform memory tests at the BIOS level!</li>
  285. <li><code>coreinfo</code> - provides low-level information about Coreboot</li>
  286. <li>TINC - play tetris without even booting an OS!</li>
  287. </ul>
  288. <div class="admonition info">
  289. <p class="admonition-title">Info</p>
  290. <p><figure>
  291. <img src="/images/tinc.png" style="height: auto; width: 400px;"/>
  292. <figcaption style="text-align: justify;">
  293. The TINC Coreboot payload - Tetris at the BIOS level. No Operating System!
  294. </figcaption>
  295. </figure></p>
  296. </div>
  297. <h2 id="introducing-skulls">Introducing Skulls<a class="headerlink" href="#introducing-skulls" title="Permanent link">&para;</a></h2>
  298. <p>The <a href="https://github.com/merge/skulls">Skulls Project</a> is a <a href="https://doc.coreboot.org/distributions.html">Coreboot
  299. distribution</a>. They ship a
  300. pre-compiled Coreboot binary for the Lenovo X230 Thinkpad along with a set of
  301. scripts that make it it simple to install and use it.</p>
  302. <p>The LC230 ships pre-installed with the latest release of Skulls.</p>
  303. <h2 id="how-is-an-lc230-assembled">How is an LC230 assembled?<a class="headerlink" href="#how-is-an-lc230-assembled" title="Permanent link">&para;</a></h2>
  304. <p>Your LC230 laptop is refurbished and liberated with a mix of new and used components. Here is the process of refurbishing it:</p>
  305. <ol>
  306. <li>We first purchase a used Lenovo x230 Thinkpad laptop</li>
  307. <li>Once we inspect it for physical and other defects, the process of liberating it starts.</li>
  308. <li>First the laptop is opened up and cleaned - all the internal and external plus the CPU fan.</li>
  309. <li>Next using a SIOC-8 clip, coreboot is flashed to SPI flash that is used to store the system firmware.</li>
  310. <li>Once the sytem is running coreboot, the default Intel wireless card is replaced with an Atheros one.</li>
  311. <li>After that, based on the requested configuration, a new mSATA or SATA SSD is added, more RAM or even a brand new battery.</li>
  312. <li>Finally - an OS is installed and the system is tested for heating issues, networking and so on.</li>
  313. </ol>
  314. <p>Now your liberated computer is ready for you to play with ! :-) </p>
  315. </article>
  316. </div>
  317. </div>
  318. </main>
  319. <footer class="md-footer">
  320. <div class="md-footer-nav">
  321. <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
  322. <a href=".." class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
  323. <div class="md-footer-nav__button md-icon">
  324. <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>
  325. </div>
  326. <div class="md-footer-nav__title">
  327. <div class="md-ellipsis">
  328. <span class="md-footer-nav__direction">
  329. Previous
  330. </span>
  331. Home
  332. </div>
  333. </div>
  334. </a>
  335. <a href="user-guide/" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
  336. <div class="md-footer-nav__title">
  337. <div class="md-ellipsis">
  338. <span class="md-footer-nav__direction">
  339. Next
  340. </span>
  341. (LC230) User Guide
  342. </div>
  343. </div>
  344. <div class="md-footer-nav__button md-icon">
  345. <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>
  346. </div>
  347. </a>
  348. </nav>
  349. </div>
  350. <div class="md-footer-meta md-typeset">
  351. <div class="md-footer-meta__inner md-grid">
  352. <div class="md-footer-copyright">
  353. <div class="md-footer-copyright__highlight">
  354. Copyright &copy; Mostly Harmless
  355. </div>
  356. Made with
  357. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  358. Material for MkDocs
  359. </a>
  360. </div>
  361. </div>
  362. </div>
  363. </footer>
  364. </div>
  365. <script src="../assets/javascripts/vendor.93c04032.min.js"></script>
  366. <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>
  367. <script>
  368. app = initialize({
  369. base: "..",
  370. features: [],
  371. search: Object.assign({
  372. worker: "../assets/javascripts/worker/search.8c7e0a7e.min.js"
  373. }, typeof search !== "undefined" && search)
  374. })
  375. </script>
  376. </body>
  377. </html>