File site/docs/install/ivy_has_common.md changed (mode: 100644) (index e1a3126..1614ca5) |
... |
... |
title: Insert vendor files on Sandybridge/Ivybridge/Haswell |
3 |
3 |
x-toc-enable: true |
x-toc-enable: true |
4 |
4 |
... |
... |
5 |
5 |
|
|
6 |
|
**NOTE: This page also applies to PM45 machine Dell Latitude E6400 if it |
|
7 |
|
contains an Nvidia GPU (Libreboot vendor scripts can insert the VGA ROM)** |
|
8 |
|
|
|
9 |
|
This is not a general purpose installation guide, but you *should read it* |
|
10 |
|
before installing Libreboot! *This* guide *must* be followed, no matter what |
|
11 |
|
method you use to install Libreboot; even if you compile from source, you should |
|
12 |
|
still read this page for later reference. |
|
13 |
|
|
|
14 |
|
For how to use an external programmer see the [25xx NOR flashing guide](/docs/install/spi.html) |
|
15 |
|
|
|
16 |
|
Introduction |
|
17 |
|
============ |
|
18 |
|
|
|
19 |
|
**PLEASE MAKE SURE you have build dependencies installed first. Although you |
|
20 |
|
do not need to re-compile release ROMs, you should follow these instructions |
|
21 |
|
before reading the instructions below: |
|
22 |
|
<https://libreboot.org/docs/build/#first-install-build-dependencies>** |
|
|
6 |
|
Please make sure to install [build dependencies](../build/) if following this |
|
7 |
|
guide, and note that this guide assumes you use [lbmk.git](../git.md), not the |
|
8 |
|
release archives, even if you're using release *ROM images*, which is fine. |
23 |
9 |
|
|
24 |
10 |
Coreboot is nominally free software, but requires certain vendor code on some |
Coreboot is nominally free software, but requires certain vendor code on some |
25 |
11 |
boards, for certain functionalities; we cover this more thoroughly in |
boards, for certain functionalities; we cover this more thoroughly in |
26 |
12 |
the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob |
the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob |
27 |
13 |
Reduction Policy](../../news/policy.md). |
Reduction Policy](../../news/policy.md). |
28 |
14 |
|
|
29 |
|
Well, not all of these files are freely redistributable. Coreboot does provide |
|
30 |
|
vendor files in some cases, if the vendor has allowed it. In other cases, |
|
31 |
|
extraction from factory firmware is required, or you can extract them from |
|
32 |
|
vendor-supplied updates - Libreboot's build system does the latter. |
|
33 |
|
|
|
34 |
|
When you [compile Libreboot ROM images from source](../build/), Libreboot will |
|
35 |
|
automatically download any given files that are required, for any given board |
|
36 |
|
target. This is done without user intervention, and only when absolutely needed |
|
37 |
|
to make the machine boot properly. |
|
38 |
|
|
|
39 |
|
The problem? |
|
40 |
|
------------ |
|
41 |
|
|
|
42 |
|
Well, if the files cannot be freely redistributed, then we can't provide them. |
|
43 |
|
So how do we handle *that*, in the context of Libreboot releases? |
|
44 |
|
|
|
45 |
|
The solution |
|
46 |
|
------------ |
|
47 |
|
|
|
48 |
|
The answer is very simple: these files are **NOT** provided, at all! However, |
|
49 |
|
the very same logic used by the build system can be run standalone, to re-insert |
|
50 |
|
these vendor files on release ROMs. The `inject` script detects what files are |
|
51 |
|
needed for your ROM image. |
|
52 |
|
|
|
53 |
|
The script will detect what board you're inserting on, or you can manually tell |
|
54 |
|
it what board, and it will fetch them for you, inserting them, so that your |
|
55 |
|
board is ready to flash - flashing it without these required files may result in |
|
56 |
|
a brick. |
|
57 |
|
|
|
58 |
|
Vendor file locations |
|
59 |
|
-------------- |
|
60 |
|
|
|
61 |
|
During auto-download of files, they are saved to these locations within the |
|
62 |
|
Libreboot build system: |
|
63 |
|
|
|
64 |
|
* ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will |
|
65 |
|
be used by given boards, but the directory name may not match the board |
|
66 |
|
target name. |
|
67 |
|
* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` - |
|
68 |
|
ditto 9010/7010 MT/SFF optiplex machines. |
|
69 |
|
* SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/` |
|
70 |
|
* Intel MRC firmware, provides raminit on HP EliteBook 820 G2 |
|
71 |
|
|
|
72 |
|
The above list refers to the *non-redistributable files*, and these are not |
|
73 |
|
directly included in releases. These are auto-downloaded during the build. |
|
74 |
|
The `me.bin` files are produced by extracting them from vendor updates and |
|
75 |
|
neutering them with `me_cleaner` so that Intel ME is disabled during early boot. |
|
|
15 |
|
Therefore, you should just follow this guide if in any doubt. Otherwise, the |
|
16 |
|
freedom status page lists all boards that require vendor files, and it says |
|
17 |
|
what they are. This is because Libreboot cannot directly distribute some of them, |
|
18 |
|
but they are extracted from vendor updates at build time, and inserted into |
|
19 |
|
images; when those images are then archived for release, the non-redistributable |
|
20 |
|
filejs are removed. |
|
21 |
|
|
|
22 |
|
The same logic can be used after the fact, to re-download and re-insert these |
|
23 |
|
files; the page that you're reading now will tell you how to do so. |
|
24 |
|
|
|
25 |
|
*If in doubt, just follow these instructions anyway; if your board doesn't need |
|
26 |
|
vendor files inserted, nothing will happen. You only need to follow this guide |
|
27 |
|
if you use release ROMs; if you're building directly from source, using the |
|
28 |
|
Libreboot build system, then you can just flash the result.* |
76 |
29 |
|
|
77 |
30 |
Injecting vendor files into ROM |
Injecting vendor files into ROM |
78 |
31 |
------------------------------------ |
------------------------------------ |