Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change theme for easier navigation #44

Merged
merged 2 commits into from
Sep 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Beginner-Installation-Guide.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
layout: default
title: Beginner Installation Guide
permalink: /Beginner-Installation-Guide/
nav_order: 2
---

# Heads Installation Guide

![Heads booting on an x230](images/Heads_booting_on_an_x230.jpg)
Expand Down
6 changes: 6 additions & 0 deletions Boot.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
---
layout: default
title: Boot config files
permalink: /Boot/
nav_order: 7
---

Boot config files
===
Expand Down
13 changes: 10 additions & 3 deletions Building.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
layout: default
title: Building Heads
permalink: /Building/
nav_order: 8
---

Building Heads
===
Heads is supposed to be a [reproducible build](https://reproducible-builds.org/) and as of [v0.1.0](https://github.com/osresearch/heads/releases/tag/v0.1.0) it achieved this goal. The downside is that the initial build can take a very long time as it downloads and builds all of the its dependencies. One issue right now is that it builds not just one, but *two* cross compilers and as a result takes about 45 minutes. Luckily subsequent builds only take about 30 seconds to produce a full coreboot and Linux ROM image, but that first ones a doozy...
Expand Down Expand Up @@ -27,7 +34,7 @@ emulated Heads+coreboot ROM image. This takes a long while, so go out
for a cup of coffee.. The initial build on a small 1-core 1GB droplet
it will take over 90 minutes, an 8-core system takes about 40 minutes.

Useful targets, stored under the `board` directory of the git tree.
Useful targets, stored under the `board` directory of the git tree.

Generated roms are generally found under build/$BOARD/$BOARD.rom

Expand All @@ -43,7 +50,7 @@ make BOARD=kgpe-d16
will produce a build/kgpe-d16/kgpe-d6.rom

---
Make for a specific configuration.
Make for a specific configuration.
---
Some boards have a two SPI flash chip configuration and need special care.

Expand All @@ -56,7 +63,7 @@ Initial SPI2 (4MB) flash chips
-----
x230 and x220 boards needs their 4MB SPI2 to be initially externally flashed, while the 12MB rom needs to be flashed internally from within Heads to make sure to not screw up with ME, contained in the SPI1 flash (8MB bottom flash chip under keyboad)

The following make command generates a self-contained, externally flashable rom for the SPI2 (4MB BIOS, top SPI flash under keyboard).
The following make command generates a self-contained, externally flashable rom for the SPI2 (4MB BIOS, top SPI flash under keyboard).


```
Expand Down
10 changes: 9 additions & 1 deletion Clean-the-ME-firmware.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
---
layout: default
title: Cleaning Intel Management Engine
permalink: /Clean-the-ME-firmware/
nav_order: 4
nav_exclude: true
---

What is the Intel Management Engine
===
The Intel ME is a coprocessor, running inside your Intel CPU, which is supposed to function as a out-of-band management system for your computer.
Expand All @@ -8,7 +16,7 @@ How to disable/deactive most of it
===
The ME firmware sits on the second SPI flash chip of the x230 (the 8MB one). We cannot remove it completely, otherwise the machine will shut itself off after 30 minutes. We can, however, reduce it to the bare minimum necessary to keep it running, but without any malicious code in it (or so we hope, depending of what the ROMP and BUP modules really do...).

The initial step is to upgrade the proprietary BIOS to the last upgradeable version one for each platform.
The initial step is to upgrade the proprietary BIOS to the last upgradeable version one for each platform.
As an example, for the x230, the latest upgradeable version would be [version 2.76](https://download.lenovo.com/pccbbs/mobiles/g2uj32us.iso) without [EC signature verification](https://support.lenovo.com/us/en/solutions/len-27764). Newer firmware version [won't permit to swap a x220 keyboard on the x230](https://github.com/hamishcoleman/thinkpad-ec/pull/130).

Prepare a USB bootable disk by following [el torito instructions](https://askubuntu.com/questions/651281/write-bootable-bios-update-iso-to-usb-stick), then boot that prepared USB disk and upgrade the prioprietary firmware to latest available version following on screen instructions. Be sure to have a fully charged battery, be connected to power source prior of attempting to upgrade, else you will have to wait for the battery to be changed.
Expand Down
7 changes: 7 additions & 0 deletions Emulating-Heads.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
layout: default
title: Emulating Heads
permalink: /Emulating-Heads/
nav_order: 9
---

Generate the `qemu.rom` image:

```
Expand Down
21 changes: 14 additions & 7 deletions GPG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
---
layout: default
title: GPG Generation
permalink: /GPG/
nav_order: 11
nav_exclude: true
---

Generating a new card
===

Expand Down Expand Up @@ -39,7 +47,7 @@ You should change them using the command --change-pin
gpg: 3 Admin PIN attempts remaining before card is permanently locked

Please enter the Admin PIN

Please enter the PIN
Please specify how long the key should be valid.
0 = key does not expire
Expand All @@ -57,7 +65,7 @@ from the Real Name, Comment and Email Address in this form:

Real name: Heads Firmware
Email address: heads@osresearch.net
Comment:
Comment:
You selected this USER-ID:
"Heads Firmware <heads@osresearch.net>"

Expand Down Expand Up @@ -106,9 +114,9 @@ Your selection? 3
gpg: 3 Admin PIN attempts remaining before card is permanently locked

Please enter the Admin PIN

New Admin PIN

New Admin PIN
PIN changed.

Expand All @@ -121,9 +129,9 @@ Q - quit
Your selection? 1

Please enter the PIN

New PIN

New PIN
PIN changed.

Expand Down Expand Up @@ -159,4 +167,3 @@ scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40
scd apdu 00 e6 00 00
scd apdu 00 44 00 00
```

11 changes: 9 additions & 2 deletions Installing-Heads.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
---
layout: default
title: Installing Heads
permalink: /Installing-Heads/
nav_order: 3
---

![Flashing Heads on an x230 at HOPE](images/Flashing_Heads_on_an_x230_at_HOPE.jpg)

Installing Heads
===
These instructions are only for the Lenovo Thinkpad x230 and require physical access to the hardware. There are risks in installation that might brick your system and cause loss of data. You will need another computer to perform the flashing and building steps. If you want to experiment, consider [Emulating Heads](/Emulating-Heads) with qemu before installing it on your machine.
These instructions are only for the Lenovo Thinkpad x230 and require physical access to the hardware. There are risks in installation that might brick your system and cause loss of data. You will need another computer to perform the flashing and building steps. If you want to experiment, consider [Emulating Heads](Emulating-Heads.md) with qemu before installing it on your machine.

There are five major steps:
* Flashing the boot ROM
Expand Down Expand Up @@ -169,7 +176,7 @@ Each ISO is verified before booting so that you can be sure Live distros and ins
gpg --output <iso_name>.sig --detach-sig <iso_name>
```

Some distros require additional options to boot properly directly from ISO. See [Boot config files](/Boot.md) for more information.
Some distros require additional options to boot properly directly from ISO. See [Boot config files](Boot.md) for more information.

2. Boot from USB by either running `usb-scan` or reboot into USB boot mode (hit 'u' before the normal boot)

Expand Down
7 changes: 7 additions & 0 deletions Keys.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
layout: default
title: Keys and passwords in Heads
permalink: /Keys/
nav_order: 6
---

Keys and passwords in Heads
====
There are "too many secrets" involved in booting a Heads system. Luckily most of them are stored in hardware and only a few need to be memorized by the users. This page attempts to document their usage and the risks if an attacker can compromise the different keys.
Expand Down
7 changes: 7 additions & 0 deletions Porting.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
layout: default
title: Porting Heads
permalink: /Porting/
nav_order: 10
---

To add a new board to the Heads build hopefully you only need to modify
the coreboot configuration and add a top-level image configuration.

Expand Down
9 changes: 8 additions & 1 deletion Upgrading.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
layout: default
title: Upgrading Heads
permalink: /Updating/
nav_order: 5
---

![Flashing Heads on an x230 at HOPE](images/Flashing_Heads_on_an_x230_at_HOPE.jpg)

Upgrading Heads
Expand Down Expand Up @@ -94,4 +101,4 @@ Resealing the disk encryption keys
---
When you get to the standard boot menu and after you verify the TOTP, select 'm' to
go to the full boot menu. Select the option you want (usually the first),
make it the default by hitting 'd' and also say 'y' when asked to reseal the disk keys.
make it the default by hitting 'd' and also say 'y' when asked to reseal the disk keys.
20 changes: 19 additions & 1 deletion _config.yml
Original file line number Diff line number Diff line change
@@ -1 +1,19 @@
theme: jekyll-theme-hacker
remote_theme: pmarsceill/just-the-docs
color_scheme: dark
heading_anchors: true
aux_links:
"Heads on GitHub":
- "//github.com/osresearch/heads"
aux_links_new_tab: true

title: Heads - Wiki

last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter
last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html

# Footer "Edit this page on GitHub" link text
gh_edit_link: true
gh_edit_link_text: "Edit this page on GitHub."
gh_edit_repository: "//github.com/osresearch/heads-wiki"
gh_edit_branch: "gh-pages"
gh_edit_view_mode: "edit"
25 changes: 16 additions & 9 deletions index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
layout: default
title: About
permalink: /
nav_order: 1
---

![Heads booting on an x230](images/Heads_booting_on_an_x230.jpg)

Slack Open Source Firmware
Expand All @@ -7,21 +14,21 @@ Slack Open Source Firmware

Using Heads
===
* [A Beginner's Guide into Building and Installing Heads](/Beginner-Installation-Guide)
* [Installing Heads](/Installing-Heads) on an x230 Thinkpad
* [Upgrading Heads](/Upgrading), including how to generate your TOTP token
* [Keys, Passwords and PCRs in Heads](/Keys) (rough draft)
* [Boot config files](/Boot)
* [A Beginner's Guide into Building and Installing Heads](Beginner-Installation-Guide.md)
* [Installing Heads](Installing-Heads.md) on an x230 Thinkpad
* [Upgrading Heads](Upgrading.md), including how to generate your TOTP token
* [Keys, Passwords and PCRs in Heads](Keys.md) (rough draft)
* [Boot config files](Boot.md)
* Qubes specific configurations (to be written)
* Server specific configurations (to be written)

Developing Heads
===
* [A Beginner's Guide into Building and Installing Heads](/Beginner-Installation-Guide)
* [The Heads build process](/Building) and adding a new sub-module
* [A Beginner's Guide into Building and Installing Heads](Beginner-Installation-Guide.md)
* [The Heads build process](Building.md) and adding a new sub-module
* [Open issues](https://github.com/osresearch/heads/issues)
* [Emulating Heads](/Emulating-Heads) (with qemu)
* [Porting to a new mainboard](/Porting) (rough draft)
* [Emulating Heads](Emulating-Heads.md) (with qemu)
* [Porting to a new mainboard](Porting.md) (rough draft)

Releases
===
Expand Down