Compare commits

...

296 commits

Author SHA1 Message Date
Leah Rowe
e377afa37b summarised changelog
provide this so that people looking at the release can more
easily get a grasp of the overall change in this release.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-07-03 08:11:18 +01:00
Leah Rowe
b0744ca0ea remove redundant pic
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-07-01 09:35:02 +01:00
Leah Rowe
8cfc7486bd made the announcement show changes since december 2024
not april 2025

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-07-01 00:24:18 +01:00
Leah Rowe
2fc8efd375 Libreboot 25.06 release announcement
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-30 13:49:26 +01:00
Leah Rowe
514bda8049 remove orwellian language
there is no such thing as community

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-16 12:06:25 +01:00
Leah Rowe
6742a9fc95 cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-01 04:26:19 +01:00
Leah Rowe
df73de2bcd do not promote a now-tainted project
i no longer wish to associate libreboot in any way with
said project, whose name i will no longer mention, not
even in this commit message.

i can't do anything about previous mentions, in the git
history, nor in lbmk.git.

i *could* replace all mentions of said project, with the
name of the project it's based on, namely 86box, since
86box does have support for those pentium 2 boards as
well, and i could re-add those boards at a later date
with 86box as a test setup.

however, this would not be worthwhile, since those
boards aren't very useful anyway. not for libreboot
purposes, anyway.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-01 04:22:11 +01:00
Leah Rowe
56120eb2fb further clarification about pico2 support
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25 12:18:05 +01:00
Leah Rowe
9e1697ed8c i'm a developer, not a developed
i'm quite undeveloped

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-23 19:05:37 +01:00
Leah Rowe
c1a7cb4f7f delete other.md, just link canoeboot instead
i originally envisioned a federation of sorts, between
the other coreboot distros, but almost all of them simply
told me that they would rather coordinate everything
centrally.

fair enough. i will still tell people about those other
projects though, when appropriate. for example, there are
many cases where i recommend chultrabook/mrchromebox
and heads, for their respective use cases that libreboot
does not currently cater to.

however, i maintain canoeboot and would like to see that
much more aggressively promoted from now on, so i've done
precisely that; this same change will be adapted, so that
Canoeboot releases each state which libreboot version
they are based on, linking to each corresponding Libreboot
release announcement.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-23 18:52:43 +01:00
Leah Rowe
939b0e741c unaligned non-compliance
based on the recent counter part in cbwww.git, made on
this same day, and with the same premise, one of utter
disassociation with the GNU Advisory Committee.

the cbwww commit was called "unaligned compliance".

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-23 18:06:50 +01:00
Leah Rowe
675a6d2efd documentation cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-23 17:45:44 +01:00
Leah Rowe
278ccbff75 Merge pull request 'Update tasks list with new boards for others to test.' (#147) from Ronanand0/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/147
2025-05-16 12:32:06 +00:00
Ronanand0
c443c76ee4 Include the T1700 boards when building from sources. 2025-05-16 12:07:11 +00:00
Ronanand0
fc83a7156a Mentioning others boards working with this firmware 2025-05-16 11:53:14 +00:00
Ronanand0
9128788bd7 Update site/tasks/index.md 2025-05-16 11:46:30 +00:00
Ronanand0
a8355f8339 Update tasks list with hp 840 g2 (id 2216) boards
Those mentioned boards are equivalent to the 840 g2 (exlcuding the gpus), so anyone who any of these models could test it too.
2025-05-16 11:39:53 +00:00
Leah Rowe
ea0daee30e NEW 2025 release schedule
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-09 15:42:57 +01:00
Leah Rowe
4ecef4611a note nvmutil compatibility regarding randomness
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-04 18:26:24 +01:00
Leah Rowe
888fbb0304 nvmutil docs: say x instead of ?, for randomness
nvmutil still supports ?, but x is now preferred, due to
a bug that was found when using it with zsh

x doesn't cause errors in zsh. support for x was added
to nvmutil recently, when specifying a random character.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-03 07:30:18 +01:00
Leah Rowe
6f6c27c936 25.04rev1 notes
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-02 02:02:47 +01:00
Leah Rowe
b88487ab6c css: limit images to 80 percent on 1337box display
otherwise it looks a bit crap on large images

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-01 11:32:43 +01:00
Leah Rowe
f994c7ac22 add even more pics to the release page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30 23:20:11 +01:00
Leah Rowe
f1471fdb06 add more pictures to the release page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30 23:10:10 +01:00
Leah Rowe
87894a4220 fix lack of boldness on the homepage version notice
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30 19:00:28 +01:00
Leah Rowe
9eacd92e11 release build test notes
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30 18:12:59 +01:00
Leah Rowe
6286e69902 remove u-boot pic in the announcement
it shows an old version number, which is confusing

just the t480 photo is sufficient

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30 12:50:43 +01:00
Leah Rowe
261d19edbf that's modularised, not "moralised"
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30 12:48:58 +01:00
Leah Rowe
47c993cba4 Libreboot 25.04 release
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30 12:18:02 +01:00
Leah Rowe
68f4ff8a0f 20241206rev11 notes
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-21 00:55:44 +01:00
Leah Rowe
9c86f0c89a docs/linux: Update regarding Fedora "sixteenbit"
It has been reported to me that setting this variable is
no longer required. It *is* required on older Fedora versions,
so it will be retained, but a note has been added saying that
it is no longer required on newer Fedora versions.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17 01:30:33 +01:00
Leah Rowe
0aaf3f3288 Merge pull request 'hp820g2 tpm2 upgrade + spec. site update' (#143) from Ronanand0/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/143
2025-04-16 23:45:40 +00:00
Ronanand0
9ce0dc2889 hp8460p vendor manual added 2025-04-08 09:24:29 +00:00
Ronanand0
a52ebef53b hp9470m Vendor manual update
From wayback machine
2025-04-08 09:20:51 +00:00
Ronanand0
be35d8c0e1 hp8470p spec. link update
hp -> wayback machine
2025-04-08 09:13:04 +00:00
Ronanand0
0a83f8fc42 Update site/docs/install/hp8560w.md 2025-04-08 09:05:09 +00:00
Ronanand0
6bbbf9fe08 Link for vendor manual 2025-04-08 09:04:11 +00:00
Ronanand0
c73745f648 spec link update
Original site deleted -> backup from wayback machine
2025-04-08 08:45:44 +00:00
Ronanand0
086765046d hp820g2 tpm2 upgrade + spec. site update
Added description on how to upgrade the tpm firmware without pictures and replaced specifications link from the wayback machine as the original site is deleted.
2025-04-08 08:38:19 +00:00
Leah Rowe
dbf5ec3ebf remove _fsp references in the documentation
users must only use the _vfsp targets, where Intel FSP is used.
The _fsp targets were removed from lbmk quite recently.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-01 12:21:11 +01:00
Leah Rowe
9bbc142ef1 Merge pull request 'fix maintain page typos' (#141) from justinschuldt/lbwww:maintain-page-typos into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/141
2025-03-31 00:31:15 +00:00
Leah Rowe
0d6abc447d Merge pull request 'Add uboot instructions for installing Trisquel Aramo' (#142) from arielenter/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/142
2025-03-31 00:30:57 +00:00
Leah Rowe
2f579433bc Merge pull request 'Turkish translations for couple of pages.' (#140) from cankurttekin/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/140
2025-03-31 00:30:04 +00:00
Leah Rowe
69cf3f5213 Merge pull request 'MA472LL/A tested and working' (#139) from cobra/lbwww:macbook11-doc into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/139
2025-03-31 00:20:49 +00:00
arielenter
067aa38216 Add uboot instructions for installing Trisquel Aramo 2025-03-30 21:59:26 +00:00
arielenter
b38fb33560 Add uboot instructions for installing Trisquel Aramo 2025-03-30 21:55:27 +00:00
justinschuldt
1e4efd903e fix maintain page typos 2025-03-14 07:00:13 +00:00
can kurttekin
198b3c6d20 Turkish translations for couple of pages. 2025-03-09 15:33:51 +03:00
Skylar "The Cobra" Astaroth
5109958992
MA472LL/A tested and working
There was also a formatting error that I corrected
2025-03-05 09:28:46 -05:00
Leah Rowe
5589d09492 update revnotes on the home page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-28 08:48:25 +00:00
Leah Rowe
380d78a68e fix date
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-20 09:16:42 +00:00
Leah Rowe
7d51451492 20241206rev10 release announcement
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-20 08:58:54 +00:00
Leah Rowe
2095c95771 add t480 errata regarding the microphone
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-19 23:32:24 +00:00
Leah Rowe
02f623491b remove straggler
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-18 16:03:29 +00:00
Leah Rowe
40ca3087b7 more snip
my intent was clearly presented by the wholesale removal
present in the last revision. this follow-up revision further
conveys my intentions.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-18 15:56:34 +00:00
Leah Rowe
e484a829e3 snip
i got a very respectable email last night from a person
who i now hold in very high regard. and the email merits
a response - and the response will be a good one.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-18 07:55:53 +00:00
Leah Rowe
9a3fcc68af docs/install/spi: remove repetition (ch341a)
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-17 20:57:37 +00:00
Leah Rowe
8725126ec2 subtle improvement to CBW2 reference
make it shorter, and more to the point

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-15 16:29:15 +00:00
Leah Rowe
fda7faffcd 20241206rev9 notes
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-12 23:15:15 +00:00
Leah Rowe
fa485ebbe6 list firmware-action on other.md
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-09 14:45:15 +00:00
Leah Rowe
d0c1908702 other.md: fix TF-A link
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-09 13:39:41 +00:00
Leah Rowe
24d1145ca4 add example to gen docs
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-08 14:34:38 +00:00
Leah Rowe
38be4f3ab3 Merge pull request 'Misc typo fixes.' (#134) from kratz00/lbwww:typos into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/134
2025-02-08 11:23:39 +00:00
Leah Rowe
4dd4f756bc Merge pull request 'Some clarification and improvements' (#136) from arielenter/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/136
2025-02-08 11:22:39 +00:00
Leah Rowe
990dc943d3 Merge pull request 'Remove ich9utils' (#137) from runxiyu/lbwww:remove_ich9utils into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/137
2025-02-08 11:21:30 +00:00
Runxi Yu
6f6ccc1ea9 git: Remove ich9util mentions 2025-02-07 23:01:57 +08:00
Runxi Yu
7307e9eb33 freedom-status: Remove ich9util mentions 2025-02-07 22:58:52 +08:00
Runxi Yu
dd993be62f faq: Remove ich9util mentions 2025-02-07 22:48:37 +08:00
Runxi Yu
6b1b574549 docs/install/{r4,t4,t5,x2}00: Remove ich9util mentions 2025-02-07 22:42:03 +08:00
Runxi Yu
dd0bf75198 docs/install/mac_address: Remove ich9utils mentions 2025-02-07 22:40:23 +08:00
Runxi Yu
4e7473b822 docs/install/ich9utils.desc: Note deprecation 2025-02-07 22:38:21 +08:00
Runxi Yu
46ab4acf3a contrib: Update the ich9gen section in Steve's contribs 2025-02-07 22:36:26 +08:00
Leah Rowe
84219b20eb T480: mention pulseaudio vs pipewire
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-02-06 20:13:17 +00:00
arielenter
363fdf2d5e Some clarification and improvements
1.- Clarify that the special fork by google of flashrom is not required if you are internally flashing within ChromeOS.

2.- Add instructions to set a password in order to be able to use “sudo”.

3.- Show location of the write protection screw in Kevin boards.
2025-02-04 16:50:26 +00:00
Steffen Pankratz
cf64fdd409 Misc typo fixes.
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2025-01-27 16:06:09 +01:00
Leah Rowe
f628901f61 add spi to other.md
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-26 11:58:47 +00:00
Leah Rowe
987afae58a mention fossy
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 18:37:44 +00:00
Leah Rowe
5cf2ddde73 expand other.md
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 18:31:03 +00:00
Leah Rowe
3b90750b4b shorter descriptions
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 15:04:38 +00:00
Leah Rowe
98ac57b0ef descriptions
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 13:44:12 +00:00
Leah Rowe
eb3c0fba23 remove redundant paragraph
i updated the footer now, and it's linked on the main docs
index, and on the git page, so the paragraph on the home page
is kinda bloat tbh

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 11:53:52 +00:00
Leah Rowe
e48c951f25 lbssg
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 11:25:12 +00:00
Leah Rowe
3d3ca98ade Merge pull request 'dell_3050_ht' (#133) from kratz00/lbwww:dell_3050_ht into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/133
2025-01-25 08:05:03 +00:00
Leah Rowe
a655788bdb improve home page title
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 07:44:45 +00:00
Leah Rowe
675e3d8593 improve the linux page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 07:41:37 +00:00
Leah Rowe
b9e94013d8 docs/install: better introduction
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 07:32:08 +00:00
Leah Rowe
9bd18ec1ae hardened title
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 07:25:05 +00:00
Leah Rowe
f3b1187644 grammar
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 07:11:08 +00:00
Leah Rowe
3c2af034ed gnu boot loader grub
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 07:08:47 +00:00
Leah Rowe
0638856c1c gnu grub boot loader
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-25 06:49:02 +00:00
Leah Rowe
138b3e306f nvmutil: add notes about 16/128 kb gbe files
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-24 13:25:17 +00:00
Leah Rowe
755666a238 make text color a bit brighter
ede, so that the green part is a bit lower,
giving the text a slight purple tint

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-22 12:07:04 +00:00
Leah Rowe
51b53dc54f make the title section a link to the homepage
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-22 11:30:21 +00:00
Leah Rowe
e073938b8b homepage: use u-boot screenshot, not t1650 grub
the grub t1650 image is text mode

i want the home page to be all purple

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-21 16:53:18 +00:00
Leah Rowe
4eaaccbd0a adapt canoeboot css but with libreboot colours
i like the font style better, on canoeboot.org, where
headers are not build, and the canoeboot site design
made a few other tweaks too, relative to libreboot.org

the new skin just looks slightly nicer

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-21 16:49:38 +00:00
Leah Rowe
d9c07032e9 better english description in meta tags
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-21 04:26:54 +00:00
Leah Rowe
73e9255f70 grammar
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-21 02:18:11 +00:00
Leah Rowe
0fc65e4fac remove obsolete paragraph (images available now)
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 15:48:43 +00:00
Leah Rowe
71228ffa0d add ps1 bios download link
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 15:45:22 +00:00
Leah Rowe
3ec8d5abb6 clarify ownership
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 15:36:12 +00:00
Leah Rowe
d1921809b8 mayumi pic on the ps1 page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 15:33:07 +00:00
Leah Rowe
57c5edbbf5 improve the ps1 page title
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 14:59:33 +00:00
Leah Rowe
246820568f improved a bunch of page titles
i'm told that many of the page titles are too short

i went through them systematically and changed a bunch
of page titles, so that they more closely reflect the
given subject matter

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 13:41:54 +00:00
Leah Rowe
72121b9184 css: make h3/h4 smaller in proportion
they looked the same size as h2, and it
was confusing, visually.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 11:43:14 +00:00
Leah Rowe
2276bb3183 use more searchable homepage title
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-20 11:00:12 +00:00
Leah Rowe
07b4c69883 fix wrongful credit
i accidentally used the wrong name

wtf

(credit for libreboot yy.mm idea)

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:53:22 +00:00
Leah Rowe
b80d5e04ad fix wrong fact
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:33:59 +00:00
Leah Rowe
016bdaf4c4 grammar
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:29:18 +00:00
Leah Rowe
125c88f2ad typo: superfically should be superficially
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:14:42 +00:00
Leah Rowe
3257c13936 docs/index: improve link/bsd link titles
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:12:45 +00:00
Leah Rowe
aa1b889795 link fix
for some reason, untitled isn't always converting these links properly. i
need to investigate why.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:09:35 +00:00
Leah Rowe
6c924caffb homepage: make "wrest" link to deguard
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:08:33 +00:00
Leah Rowe
fceaf19cd8 link writefreesoftware.org aggressively
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 19:04:27 +00:00
Leah Rowe
3f90f156c3 fix meta character encoding (utf-8)
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:46:44 +00:00
Leah Rowe
c910f813c4 s/aswell/as well/
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:44:27 +00:00
Leah Rowe
121325f3fb add alt tags to homepage images (english)
i can't really be bothered to do every image on
the site today. i'll add it to my notes and do
it another day.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:38:16 +00:00
Leah Rowe
712f7395a1 add favicon to template
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:27:00 +00:00
Leah Rowe
a6d2f10fb9 say motherboard, not mainboard
motherboard is what most people say

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:20:24 +00:00
Leah Rowe
d57edfcc87 change the description again
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:17:43 +00:00
Leah Rowe
8d6c16a4b1 update meta description
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:11:36 +00:00
Leah Rowe
a1b60ec64f make h2/3/4 text bigger
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:09:25 +00:00
Leah Rowe
9a2da14a2e general audit / cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 18:02:33 +00:00
Leah Rowe
1ba45bf5e5 show canon links on pages
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 01:21:00 +00:00
Leah Rowe
759616ba96 robots sitemap file
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 00:54:06 +00:00
Leah Rowe
b356cc3040 template stuff
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-19 00:20:31 +00:00
Leah Rowe
c5ad70955d homepage: make "binary releases" a download link
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 08:10:01 +00:00
Leah Rowe
7f16d5cc66 english homepage: shorten the payloads section
also merge it into the "design overview" section

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 07:58:19 +00:00
Leah Rowe
97b6ffc5a0 mention payloads on the homepage
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 07:12:04 +00:00
Leah Rowe
e4b30750d1 snip3
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 04:55:26 +00:00
Leah Rowe
77198f7f5d grammar
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 02:35:37 +00:00
Leah Rowe
6f9ec4cc4d fix language
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 02:33:48 +00:00
Leah Rowe
4c12433a6a snip2
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 02:12:20 +00:00
Leah Rowe
7c63e81b32 snip
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-18 02:07:42 +00:00
Leah Rowe
927a06cdc6 grammar
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-17 13:24:59 +00:00
Leah Rowe
62b5b1950e snip
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-17 10:41:44 +00:00
Leah Rowe
5662b578d8 further calamity
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-17 10:15:39 +00:00
Leah Rowe
0d6d90bf1e clarification
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-17 10:13:29 +00:00
Leah Rowe
55722b5643 Libreboot 2025 release schedule
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-17 10:03:06 +00:00
Leah Rowe
6cfd22e1f6 t480 notes: mention rollback protection
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-17 01:42:41 +00:00
Leah Rowe
ee096776a9 other.md: merge chrultrabook with mrchromebox
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-14 17:59:28 +00:00
Leah Rowe
e64e6a065d snip
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-14 13:30:29 +00:00
Leah Rowe
3f51720e2a correction
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-14 12:57:06 +00:00
Steffen Pankratz
949f2bcc46 dell3050: Add note to Hyper-Threading paragraph
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2025-01-13 20:10:31 +01:00
Steffen Pankratz
a5cbc416f4 dell3050: Mention support for Skylake CPUs
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2025-01-13 20:06:32 +01:00
Leah Rowe
a5a8a8daea snip
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-13 15:47:37 +00:00
Leah Rowe
5d516331cb priority
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-13 15:38:13 +00:00
Leah Rowe
ceaaeb98d9 fix oversight
i'm re-adding the most important information libreboot.org
currently lacks

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-13 14:50:27 +00:00
Leah Rowe
e5d30675db expand other.md but shorten the intro
also mention u-boot, tf-a

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-13 13:37:18 +00:00
Leah Rowe
4702e16767 simplify the skulls section in other.md
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-12 12:36:05 +00:00
Leah Rowe
97b0fa3c60 payloads, not "programs"
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-12 04:20:27 +00:00
Leah Rowe
c278f8b5bf link to coreboot build docs on other.md
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-12 02:05:08 +00:00
Leah Rowe
ec57689078 more links
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-12 01:29:32 +00:00
Leah Rowe
4fb11aaca6 Merge pull request 'dell3050: misc typo fixes' (#132) from kratz00/lbwww:dell_3050 into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/132
2025-01-12 00:50:46 +00:00
Leah Rowe
572ea3bdc1 reparieren der deutschen homepage
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-12 00:43:39 +00:00
Leah Rowe
f78ee7861a homepage: emphasize the coreboot distro aspect
the term "coreboot distro" is being popularised, by my
design, and i want libreboot to be number one when people
search the term.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-12 00:34:05 +00:00
Leah Rowe
5afacd5138 add ownerboot to the other.md page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 23:22:13 +00:00
Leah Rowe
b5e0d96be5 tidy up the other.md page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 23:03:54 +00:00
Leah Rowe
e94f06a744 actual alphabetical order
one must always remember one's ABCs

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 05:39:12 +00:00
Leah Rowe
71e4a89c86 clarification
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 05:01:08 +00:00
Leah Rowe
0b7a136d73 add missing entry
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 04:59:40 +00:00
Leah Rowe
3809609b3e add page linking to other coreboot distros
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 04:41:53 +00:00
Leah Rowe
ba3ca8c23d update images on translated home pages
they didn't show the t480 photo as the main one

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 02:11:07 +00:00
Leah Rowe
8c678d515d make "coreboot distro" a link to docs/maintain/
do this in every place where the term is used

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-11 00:20:04 +00:00
Leah Rowe
ee4aca89fc typo
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 16:30:55 +00:00
Leah Rowe
4bd184da81 don't link
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 16:29:21 +00:00
Leah Rowe
aa98970a88 acknowledgement
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 16:27:51 +00:00
Leah Rowe
d25c4185f0 fix links again again
for some reason, the first one on the list doesn't translate to html
during page generation

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 16:01:01 +00:00
Leah Rowe
3d494145ad fix links again
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 15:57:58 +00:00
Leah Rowe
d9a4d2c5ce fix links
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 15:55:24 +00:00
Leah Rowe
55d17ed3e9 fix hcl link
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 15:47:09 +00:00
Leah Rowe
8ba82574fb snip
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 15:28:25 +00:00
Leah Rowe
a7dd851f5b link
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-10 15:20:17 +00:00
Leah Rowe
c6d4b6fa6b fix inaccuracy
the statement in question was true when we only supported
up to intel haswell platform; the newer platforms still need
some more work

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-09 20:02:13 +00:00
Steffen Pankratz
6be0468d05 dell3050: misc typo fixes
Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
2025-01-09 20:53:41 +01:00
Leah Rowe
abceff29c6 Fix historical oversight regarding GRUB Argon2id
Patrick Steinhardt did the original work, importing PHC Argon2id
into GRUB; this fact was unintentionally excluded from the
Libreboot documentation.

Ax333l imported it into GRUB on the AUR, and Nicholas Johnson later
rebased it for GRUB 2.12, for use by the Libreboot project.

Credit where credit is due. The principle of the matter is that
I apologise for this oversight. It has now been corrected.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-09 03:40:43 +00:00
Leah Rowe
5443cd0d05 re-organise the pico flashing instructions
the instructions were a bit crap, for example it wasn't
clear that you can get the firmawre pre-compiled in libreboot
releases. adapt it accordingly.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-08 17:22:26 +00:00
Leah Rowe
e10c9b80f0 t480 page: mention the newer patchset used
we use patchset 25 now, on the gerrit patch

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-08 03:40:12 +00:00
Leah Rowe
315f4cd6b2 mention dependencies on nvmutil.md
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-07 15:17:31 +00:00
Leah Rowe
d120ebf8f2 document ./mk inject setmac on the nvmutil page
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-07 08:39:26 +00:00
Leah Rowe
a6478d6797 nvmutil: Remove redundant information
Licensing is already mentioned in the source code
for nvmutil. Putting it in the documentation just
means that it'll go out of date over time, as it
already has; instead of updating it, remove it.

Documentation is under the GNU licensing that Libreboot
documentation uses.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-07 04:42:16 +00:00
Leah Rowe
090e58d4f8 formatting
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-06 21:42:50 +00:00
Leah Rowe
1b4326dd62 Libreboot 20241206, 8th revision (announcement)
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-06 21:30:57 +00:00
Leah Rowe
4c54c12c83 Merge pull request 'Add missing release year to ASUS KFSN4-DRE' (#131) from andree/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/131
2025-01-06 17:43:25 +00:00
libreandre
7421e9a8c7 Add missing release year to ASUS KFSN4-DRE 2025-01-06 18:18:26 +02:00
Leah Rowe
c1daf0fc5e docs/build: Remove the python instructions
lbmk hacks PATH now to deal with this

see lbmk patch from 5 January 2025:

* 411fb697dfc set up python in PATH, ensuring that it is python3

python3 is dealt with automatically now, so the user
doesn't have to do it

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 22:21:49 +00:00
Leah Rowe
6a8e230d7a list angel pons on contrib.md (haswell nri)
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 20:13:51 +00:00
Leah Rowe
fcb63c3c3b clean up references to who.md
the page now redirects to contrib.md

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 18:16:16 +00:00
Leah Rowe
fd1a0ae3a2 Vastly expanded the contrib page
The "who" page is redundant and has been removed, since
contrib listed the same information.

I will re-redirect who->contrib in Libreboot's httpd

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 18:09:14 +00:00
Leah Rowe
7fddfaca82 rename contact-fr.md to contact.fr.md
that way, it appears on the language menu for the
contact page

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 12:19:42 +00:00
Leah Rowe
d641ee3378 Merge pull request 'Fix typo: discrete CPU -> discrete GPU' (#130) from Integral/lbwww:fix-typo into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/130
2025-01-05 12:16:46 +00:00
Leah Rowe
ff005cd9cf Merge pull request 't480 WWAN NVMe SSD fully functional' (#128) from awwpotato/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/128
2025-01-05 12:13:48 +00:00
Leah Rowe
44db45ac57 Merge pull request 'update_index-fr' (#127) from Tim_B/lbwww:update_index-fr into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/127
2025-01-05 12:12:37 +00:00
Leah Rowe
32c057108e Merge pull request 'Create contact-fr.md page' (#126) from Tim_B/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/126
2025-01-05 12:11:54 +00:00
Leah Rowe
90804582a8 further clarification of intent
people sometimes have very black-or-white thinking, so it's
important to put them in the right frame of mind.

libreboot's documentation is very carefully crafted along
the narrative:

if free software can be used, it must be used.

the purpose of libreboot is precisely to provide free software
exclusively, when possible, on any given mainboard. it is
therefore paramount that any reference to PSDG must be made
while stressing those values in the most unambiguous way
possible, because otherwise people will make wrong assumptions;
for example, our friends from massuchussets sometimes claim
that we are a proprietary software project.

which is laughable, but their propaganda is very powerful,
so ours needs to be even stronger.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 12:05:44 +00:00
Leah Rowe
a3158f3f97 docs/maintain: Clearer introduction to PSDG policy
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 12:04:14 +00:00
Leah Rowe
990f550563 ivy_has_common: document setmac restore
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 11:24:54 +00:00
Leah Rowe
a6026556c9 ivy_has_common: document setmac keep
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-05 07:58:32 +00:00
Leah Rowe
43e7f2eff0 further expand the system requirement info
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 17:31:40 +00:00
Leah Rowe
00dacd33ef remove duplication
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 17:25:11 +00:00
Leah Rowe
9011218a8e move system requirements to docs/maintain/
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 17:23:02 +00:00
Leah Rowe
e6e952ac11 docs/build: specify system requirements
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 17:07:27 +00:00
Leah Rowe
08f35ff1b6 tidy up the vendor inject guide
some of the wording was a bit long, and there was slight
repetition in cases. streamline it a bit more, so that it
reads more fluidly

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 15:42:38 +00:00
Leah Rowe
c587cee2ac install/nvmutil: Safer cat/de-cat instructions
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 15:34:11 +00:00
Leah Rowe
2361a1de72 ivy_has_common: Mention deguard there
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 15:12:34 +00:00
Leah Rowe
b11a61c97c ivy_has_common: shorten the FSP section
actually, remove it, because it's already mentioned under errata

i've expanded the errata section a little bit, so as to convey
the same information but more succinctly

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 15:09:11 +00:00
Leah Rowe
1e117c77af docs/build: tidy up debian trixie notes
put them later in the guide, so that the user reads the
guide in the exact order by which they would follow it.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 03:08:17 +00:00
Leah Rowe
b6929f8381 further clarification
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 00:28:30 +00:00
Leah Rowe
c303716569 further debian trixie/sid instructions
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 00:25:09 +00:00
Leah Rowe
ed08e80f59 docs/build: mention gcc/gnat version match issue
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-04 00:20:43 +00:00
Integral
37c0872287
Fix typo: discrete CPU -> discrete GPU 2025-01-03 21:42:00 +08:00
Leah Rowe
8c2e77e0c7 make the text SLIGHTLY smaller
on lower res screens, it's a bit too big

this is still decent on my 27" 1440p screen
with my absolutely properly DPI scaled LXDE setup

Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-03 10:21:48 +00:00
Leah Rowe
ec57019f3e remove a pointless link
the inject page links to itself!

Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-03 08:37:35 +00:00
Leah Rowe
6ae9714ecf update links to the inject guide
i was linking to the old safety.md article, which
then linked to the inject guide, but the safety
article is now obsolete, because i implemented a
better regime than what was described there. so,
i've updated all links to safety.md, replacing them
with ivy_has_internal.md

Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-03 07:30:12 +00:00
Leah Rowe
12b4f64b1b further cleanup
i moved the section about fsp injection to the actual
vendor inject guide

and i've generally cleaned up the documentation

Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-03 06:58:04 +00:00
Leah Rowe
9d018b474a update the vendorfile injection guide
the script was re-written recently, adding a bunch
of safety changes.

Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-03 05:24:44 +00:00
Leah Rowe
c3ad859ea0 update the freedom-status page
Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-03 01:07:20 +00:00
Leah Rowe
6c57ce1586 docs/build: Update fedora38 reference to fedora41
Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-01 17:09:20 +00:00
Leah Rowe
4d7f0dbb9d XBMK_THREADS, not LBMK_THREADS
Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-01 16:53:19 +00:00
Leah Rowe
a1ff143fe6 docs/build: Mention MIPS XGCC for PCSX-Redux BIOS
Signed-off-by: Leah Rowe <info@minifree.org>
2025-01-01 16:52:00 +00:00
Leah Rowe
2c7d4c4df8 correction
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-31 23:58:10 +00:00
Leah Rowe
965baf9bb0 another typo
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-31 21:46:55 +00:00
Leah Rowe
c5273bc020 remove obsolete note
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-31 21:44:38 +00:00
Leah Rowe
ab51fb8ba6 t's eCryptfs, not cryptfs
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-31 21:43:01 +00:00
Leah Rowe
8cdb2f257c docs/build,ivy_common: mention cryptfs bug
139 characters is so 1992

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-31 20:27:34 +00:00
Leah Rowe
3b55fca2c9 document t480/3050 pmc config
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-31 15:44:26 +00:00
Leah Rowe
32c80dae9c mention refcode fix for hp 820 g2
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-31 15:20:18 +00:00
Leah Rowe
935e5aec14 install/spi: Document the Raspberry Pi Pico 2
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-30 17:28:53 +00:00
Leah Rowe
0893abd635 t480 uart: mention the 115200 baud rate
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-30 16:09:16 +00:00
Leah Rowe
bf443e2e4d Rewrote the T480 thunderbolt flashing instructions
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-29 18:04:10 +00:00
Leah Rowe
19fab47201 Notes pertaining to T480/3050 FSP licensing
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-29 16:56:19 +00:00
Leah Rowe
6447f5d183 also mention that they are 0201 jumpers
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-29 15:33:54 +00:00
Leah Rowe
58bab1695b jumpers, not jumpjumpers, not jumpss
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-29 15:15:17 +00:00
Leah Rowe
007136a010 thoUART t480
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-29 15:12:25 +00:00
Leah Rowe
aad0b223e0 update t480/3050 errata (tpm and 8254 timer)
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-29 14:52:45 +00:00
Leah Rowe
2e2b6c7d52 Random docs cleanup
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-27 01:33:55 +00:00
Leah Rowe
f2dd78251c update 3050micro notes
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-26 18:01:17 +00:00
Leah Rowe
71b502349a Remove legacy "./build" command from the docs
We only use ./mk now.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-25 09:08:24 +00:00
Leah Rowe
2ac7deeefc Remove legacy "./vendor" command from docs
We only use ./mk now.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-25 08:59:53 +00:00
Leah Rowe
443078014d Remove legacy "./update trees" command from docs
We only use ./mk now.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-25 08:55:21 +00:00
awwpotato
a69a1260c8
add note about keying of SSD 2024-12-24 12:12:49 -08:00
awwpotato
40b8dec853
t480 wwan nvme works 2024-12-21 12:30:30 -08:00
Leah Rowe
8e3508c313 make libreboot.org text bigger
on high dpi screens, the text looks far too small

add a section for higher screen resolution, increasing
the font size, and increase it for existing widths

this makes the site much more readable on my 27"
1440p monitor.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-20 16:27:35 +00:00
Leah Rowe
4811a7683e note about prepping t480 usb bios updater
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-18 06:16:24 +00:00
Leah Rowe
777ea30c59 correction
we don't know either way. remove this note.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-18 05:50:01 +00:00
Leah Rowe
71cc1104e0 stragglers
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-18 05:45:29 +00:00
Leah Rowe
8576804b30 t480 tb notes, plus notes about touchscreen
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-18 05:43:26 +00:00
Leah Rowe
3ed4b4f6b3 context
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 20:02:21 +00:00
Leah Rowe
ca4a6756e3 clean up an errant reference
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 20:00:19 +00:00
Leah Rowe
2a4b7d5943 move 20241206 rev notes to own page
this release is pretty crazy. a lot more revisions are planned
for the 6 december release. move the revnotes to a dedicated
page, in anticipation of many more revisions (in my head there
are about 30 additional changes planned).

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 19:39:05 +00:00
Leah Rowe
4aea280c60 remove one of the u-boot photos
just show the qemu screenshot

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 18:55:49 +00:00
Leah Rowe
52da2a4d01 rev5/6 20241206 notes
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 18:40:57 +00:00
Leah Rowe
63db2df0fe t480 update notes (ec uart)
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 14:37:36 +00:00
Leah Rowe
207c641445 Revert "make it rainbow"
I actually like the rainbow logo, but I re-considered:

It does look a bit *gay*, which I'm 100% supportive of, but
Libreboot has many users from many different countries, not
all of them accepting. If someone in such a country looks at
libreboot.org, it might turn a few heads and could even get
them into trouble.

Libreboot doesn't need to look like a pride symbol. It just
needs to provide free boot firmware.

This reverts commit 7e1fa9ff12.
2024-12-17 12:29:27 +00:00
Leah Rowe
3da0fb028f rainbow shoes
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 06:15:37 +00:00
Leah Rowe
332d9fa8d3 20241206rev4 notes
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-17 05:34:11 +00:00
Tim_B
69957dc6dd Update french translation for the index page 2024-12-16 11:53:59 +01:00
Tim_B
cbb250dfda Update french translation for the index page 2024-12-16 11:53:23 +01:00
Tim_B
66f217fba1 Update french translation for the index page 2024-12-16 11:48:10 +01:00
Tim_B
5c92e8f188 Create contact-fr.md page 2024-12-15 18:59:47 +01:00
Leah Rowe
db8b4b3fe6 add another t480 mf link
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-15 08:35:14 +00:00
Leah Rowe
b621f4fcf7 fix link
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-14 04:53:29 +00:00
Leah Rowe
dbe9dc6fe8 update safety advice for ifdtool/inject
also tidy up the ivy_has_common guide. the .uk one was in
english anyway so i removed that one.

reference the platform option needed in ifdtool, on kabylake

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-14 04:42:06 +00:00
Leah Rowe
e36d7b7ea2 update some important links
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-13 04:30:19 +00:00
Leah Rowe
a4c441f642 20241206 rev3 build notes
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-12 17:14:10 +00:00
Leah Rowe
67c9386dc9 tidy up redundant information
the info in question is present clearly on the T480 page.

it's better to leave such information on the dedicated
page made for that machine.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-12 05:49:18 +00:00
Leah Rowe
7e8e045a00 20241206 rev3 notes (3050micro nvme fix)
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-11 02:07:04 +00:00
Leah Rowe
9b41e070bc fix link
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-10 23:43:48 +00:00
Leah Rowe
95d5b067cf adjust the t480 thunderbolt notes
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-10 23:42:48 +00:00
Leah Rowe
762f1516fe Tidy up the T480 page
Also add instructions for testing the ThunderBolt
patch that Mate Kukri wrote (currently unstable).

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-10 23:27:51 +00:00
Leah Rowe
a2cace6ea0 uboot x86 page: write about thinkpad x60/t60
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-10 11:08:57 +00:00
Leah Rowe
e8c2795b6a resize the t1650 images
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-10 01:34:15 +00:00
Leah Rowe
a776d13bc4 updated t1650 internal flashing instructions
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-09 16:52:29 +00:00
Leah Rowe
8d40609ed7 made the new pico soic8 image inline
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-09 16:43:55 +00:00
Leah Rowe
b29821a4b3 fix links in recent commits
the committer linked to /faq instead of /faq.html

also, internal site links should be relative links,
and link to the markdown files. the static site
generater that we use auto-converts links

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-09 16:38:32 +00:00
Leah Rowe
7879fe48dd Merge pull request 'Add thinkpad_acpi and Raspberry Pi Pico flashing details' (#125) from ezntek/lbwww:master into master
Reviewed-on: https://codeberg.org/libreboot/lbwww/pulls/125
2024-12-09 16:23:58 +00:00
ezntek
91f6140863 make thinkpad_acpi modprobe error clearer, fix minor typos in T480 page 2024-12-09 19:18:26 +08:00
ezntek
30387872fa add raspi pico to SOIC-8 diagram 2024-12-09 19:05:54 +08:00
ezntek
da5734ac34 add thinkpad_acpi notices for the T440p, W541 and T480/T480s 2024-12-09 19:05:02 +08:00
Leah Rowe
0eb22b1fa8 add release errata/revisions
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-09 02:23:17 +00:00
Leah Rowe
0cd6d8de10 remove a fact that is no longer a fact
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-08 19:58:26 +00:00
Leah Rowe
670df4e5e3 t480 verb
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-08 17:17:43 +00:00
Leah Rowe
7c0d9349ed uboot errors
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-08 16:41:23 +00:00
Leah Rowe
66a862b10a move qemu pic further up on the uboot page
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-08 03:40:39 +00:00
Leah Rowe
4fa9b69411 add x200 u-boot pic
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-08 03:37:12 +00:00
Leah Rowe
853f2db51d Sex up the release announcement title a bit
i've realised recently that libreboot release announcements
are very boring. most people need to see something that draws
them in - simply saying "Project vFoo released!" is not enough.

Ditto pictures; I added pics at the start of the article, in
previous revisions. I'll start being wiser to this in future
releases of Libreboot.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-08 02:06:17 +00:00
Leah Rowe
f191930c1f swap
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-08 02:01:27 +00:00
Leah Rowe
1a5937905b also add u-boot pic on u-boot page
and i won't bother changing the pic. the pic is fine.

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 22:57:56 +00:00
Leah Rowe
c372dde2d5 move the pics a bit
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 22:53:37 +00:00
Leah Rowe
3f41235319 also add uboot screenshot
it's the 1205 one, i'll re-do properly with 1206 later

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 22:52:26 +00:00
Leah Rowe
fe741e7acc add t480 pic to the release announcement
again, mkukri is absolutely awesome

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 22:44:19 +00:00
Leah Rowe
058ae354ed show t480 on homepage
mkukri is awesome

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 22:36:58 +00:00
Leah Rowe
7e1fa9ff12 make it rainbow
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 20:40:15 +00:00
Leah Rowe
9b6df387ba make ivy_has_common a bit less crap
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 20:31:58 +00:00
Leah Rowe
21aec25c8d made the t480 guide a bit less hazardous
i repeated some info intentionally, and made some things clearer

Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 20:25:36 +00:00
Leah Rowe
1c0b7b2aa8 t480/t480 quirks
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 11:19:13 +00:00
Leah Rowe
332faa80c9 t480 and t480s are similar
Signed-off-by: Leah Rowe <info@minifree.org>
2024-12-06 11:06:06 +00:00
362 changed files with 12484 additions and 5434 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
*.html *.html
/site/sitemap.xml
/site/news/index* /site/news/index*
/site/sitemap.md /site/sitemap.md
/site/push /site/push

View file

@ -1,10 +1,10 @@
--- ---
title: Kontakt title: Kontakt der Libreboot projekt
x-toc-enable: true x-toc-enable: true
... ...
Buy Libreboot pre-installed Buy Libreboot pre-installed
========== --------------------
If you want professional installation, Minifree Ltd sells [Libreboot If you want professional installation, Minifree Ltd sells [Libreboot
pre-installed](https://minifree.org/) on select hardware, and it also provides pre-installed](https://minifree.org/) on select hardware, and it also provides
@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available.
Contact information (IRC, mailing list etc) is below: Contact information (IRC, mailing list etc) is below:
User support User support
============ ------------
IRC oder Reddit werden bevorzugt, sofern Du eine Support Anfrage hast (IRC empfohlen). IRC oder Reddit werden bevorzugt, sofern Du eine Support Anfrage hast (IRC empfohlen).
Für Informationen bzgl. IRC and Reddit siehe unten. Für Informationen bzgl. IRC and Reddit siehe unten.
Mailing list Mailing list
============ ------------
Libreboot has this mailing list: Libreboot has this mailing list:
<https://lists.sr.ht/~libreboot/libreboot> <https://lists.sr.ht/~libreboot/libreboot>
@ -32,7 +32,7 @@ Libreboot has this mailing list:
The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
Entwicklungs Diskussion Entwicklungs Diskussion
====================== ---------------------
Siehe unter Siehe unter
[der Git Seite](git.md) für Informationen wie Du dich an der Entwicklung beteiligen kannst. [der Git Seite](git.md) für Informationen wie Du dich an der Entwicklung beteiligen kannst.
@ -40,7 +40,7 @@ Siehe unter
Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests). Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests).
IRC Chatraum IRC Chatraum
============ -------------
IRC ist hauptsächlich der Weg um Kontakt Libreboot Projekt aufzunehmen. `#libreboot` auf Libera IRC ist hauptsächlich der Weg um Kontakt Libreboot Projekt aufzunehmen. `#libreboot` auf Libera
IRC. IRC.
@ -71,12 +71,11 @@ Website erläutern wie dies funktioniert:
Grundsätzlich solltest Du die Dokumentation der von Dir verwendeten IRC Software konsultieren. Grundsätzlich solltest Du die Dokumentation der von Dir verwendeten IRC Software konsultieren.
Soziale Medien Soziale Medien
============ -----------------
Libreboot existiert offiziell an vielen Orten. Libreboot existiert offiziell an vielen Orten.
Mastodon ### Mastodon
--------
Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon: Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon:
@ -85,8 +84,7 @@ Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon:
Leah kann zudem unter dieser eMail kontaktiert werden: Leah kann zudem unter dieser eMail kontaktiert werden:
[leah@libreboot.org](mailto:leah@libreboot.org) [leah@libreboot.org](mailto:leah@libreboot.org)
Reddit ### Reddit
------
Hauptsächlich verwendet als Support Kanal und für Veröffentlichung von Neuigkeiten: Hauptsächlich verwendet als Support Kanal und für Veröffentlichung von Neuigkeiten:
<https://www.reddit.com/r/libreboot/> <https://www.reddit.com/r/libreboot/>

79
site/contact.fr.md Normal file
View file

@ -0,0 +1,79 @@
---
title: Contact the Libreboot project
x-toc-enable: true
...
Où acheter du matériel avec Libreboot pré-installé
---------------------------------------------
Si vous souhaitez une installation professionnelle, Minifree Ltd vend des ordinateurs avec [Libreboot pré-installé](https://minifree.org/). L'entreprise propose également [un service d'installation de Libreboot](https://minifree.org/product/installation-service/) si vous voulez l'installer sur votre propre machine.
Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot.
Si vous installez Libreboot vous-même, un support est disponible via différents canaux de communication (IRC, mail, etc.) :
Suport utilisateur
------------------
IRC et Reddit sont recommandés pour demander de l'aide (IRC est à privilégier) :
Mail
----
Libreboot dispose d'une liste de diffusion : <https://lists.sr.ht/~libreboot/libreboot>
L'adresse mail est [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
Discussion sur le developpement
-------------------------------
Pour participer au développement, consultez la pag [GIT](git.md) du projet. Vous y trouverez des instructions détaillées sur l'envoi de patchs via pull request.
IRC chatroom
------------
Le chat IRC est le principal moyen de contact pour le projet Libreboot via `#libreboot` sur Libera IRC.
Webchat:
<https://web.libera.chat/#libreboot>
Libera est un des plus grands réseaux IRC utilisé pour les projets en lien avec le logiciel libre. Vous trouverez plus d'information ici : <https://libera.chat/>
Si vous souhaitez vous connecter via votre client préféré ( comme weechat ou irssi), veuillez utiliser ces informations :
* Server: `irc.libera.chat`
* Channel: `#libreboot`
* Port (TLS): `6697`
* Port (non-TLS): `6667`
Nous vous recommandons d'utiliser le port `6697` avec l'encryption TLS activée.
Il est recommandé d'utiliser SASL pour l'authentification. Ces pages vous indiqueront comment l'utiliser :
* WeeChat SASL guide: <https://libera.chat/guides/weechat>
* Irssi SASL guide: <https://libera.chat/guides/irssi>
* HexChat SASL guide: <https://libera.chat/guides/hexchat>
De manière générale, reportez-vous à la documentation de votre logiciel IRC.
Réseaux sociaux
---------------
Libreboot existe officiellement sur différents réseaux sociaux.
### Mastodon
Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon:
* <https://mas.to/@libreleah>
Leah peut également être contacté par mail :
[leah@libreboot.org](mailto:leah@libreboot.org)
### Reddit
Généralement utilisé pour le support mais aussi pour l'annonces des dernières nouveautés :
<https://www.reddit.com/r/libreboot/>

View file

@ -4,7 +4,7 @@ x-toc-enable: true
... ...
Buy Libreboot pre-installed Buy Libreboot pre-installed
========== ---------------------------
If you want professional installation, Minifree Ltd sells [Libreboot If you want professional installation, Minifree Ltd sells [Libreboot
pre-installed](https://minifree.org/) on select hardware, and it also provides pre-installed](https://minifree.org/) on select hardware, and it also provides
@ -18,14 +18,14 @@ If you're installing Libreboot yourself, support for that is also available.
Contact information (IRC, mailing list etc) is below: Contact information (IRC, mailing list etc) is below:
Supporto utenti Supporto utenti
=============== ---------------
IRC o Reddit sono consigliati, sebbene preferiamo che usi il canale IRC IRC o Reddit sono consigliati, sebbene preferiamo che usi il canale IRC
per avere o per offrire supporto tecnico. Continua a leggere per avere per avere o per offrire supporto tecnico. Continua a leggere per avere
ulteriori informazioni. ulteriori informazioni.
Mailing list Mailing list
============ ------------
Libreboot has this mailing list: Libreboot has this mailing list:
<https://lists.sr.ht/~libreboot/libreboot> <https://lists.sr.ht/~libreboot/libreboot>
@ -33,7 +33,7 @@ Libreboot has this mailing list:
The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
Discussione sullo sviluppo Discussione sullo sviluppo
========================== --------------------------
Per ora dai un occhiata sulla Per ora dai un occhiata sulla
[pagina Git](git.md) per avere maggiori informazioni su come puoi [pagina Git](git.md) per avere maggiori informazioni su come puoi
@ -43,7 +43,7 @@ Su quella stessa pagina puoi trovare informazioni su come inviare
correzioni (patches) tramite pull requests. correzioni (patches) tramite pull requests.
Canale IRC Canale IRC
========== ----------
IRC e' il modo principale per contattare chi collabora con il progetto libreboot. IRC e' il modo principale per contattare chi collabora con il progetto libreboot.
Il canale ufficiale e' `#libreboot` su Libera IRC. Il canale ufficiale e' `#libreboot` su Libera IRC.
@ -73,26 +73,22 @@ di Libera spiegano come:
Comunque dovresti sempre controllare la documentazione del tuo client IRC preferito. Comunque dovresti sempre controllare la documentazione del tuo client IRC preferito.
Reti sociali online Reti sociali online
=================== -------------------
Libreboot esiste ufficialmente in molte piattaforme. Libreboot esiste ufficialmente in molte piattaforme.
Mastodon ### Mastodon
--------
Il fondatore e sviluppatore principale, Leah Rowe, e' su Mastodon: Il fondatore e sviluppatore principale, Leah Rowe, e' su Mastodon:
* <https://mas.to/@libreleah> * <https://mas.to/@libreleah>
Posta elettronica ### Posta elettronica
-----------------
Leah puo' essere contattata anche via email a questo indirizzo: Leah puo' essere contattata anche via email a questo indirizzo:
[leah@libreboot.org](mailto:leah@libreboot.org) [leah@libreboot.org](mailto:leah@libreboot.org)
Reddit ### Reddit
------
Usato principalmente come canale di supporto e per annunciare notizie: Usato principalmente come canale di supporto e per annunciare notizie:
<https://www.reddit.com/r/libreboot/> <https://www.reddit.com/r/libreboot/>

View file

@ -1,10 +1,10 @@
--- ---
title: Contact title: Contact the Libreboot project
x-toc-enable: true x-toc-enable: true
... ...
Buy Libreboot pre-installed Buy Libreboot pre-installed
========== --------------------------
If you want professional installation, Minifree Ltd sells [Libreboot If you want professional installation, Minifree Ltd sells [Libreboot
pre-installed](https://minifree.org/) on select hardware, and it also provides pre-installed](https://minifree.org/) on select hardware, and it also provides
@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available.
Contact information (IRC, mailing list etc) is below: Contact information (IRC, mailing list etc) is below:
User support User support
============ -------------
IRC or Reddit are recommended, if you wish to ask for support (IRC recommended). IRC or Reddit are recommended, if you wish to ask for support (IRC recommended).
See below for information about IRC and Reddit. See below for information about IRC and Reddit.
Mailing list Mailing list
============ ------------
Libreboot has this mailing list: Libreboot has this mailing list:
<https://lists.sr.ht/~libreboot/libreboot> <https://lists.sr.ht/~libreboot/libreboot>
@ -32,7 +32,7 @@ Libreboot has this mailing list:
The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
Development discussion Development discussion
====================== --------------------
See notes See notes
on [the Git page](git.md) for information about how to assist with development. on [the Git page](git.md) for information about how to assist with development.
@ -40,7 +40,7 @@ on [the Git page](git.md) for information about how to assist with development.
Instructions are also on that page for sending patches (via pull requests). Instructions are also on that page for sending patches (via pull requests).
IRC chatroom IRC chatroom
============ -------------
IRC is the main way to contact the libreboot project. `#libreboot` on Libera IRC is the main way to contact the libreboot project. `#libreboot` on Libera
IRC. IRC.
@ -71,12 +71,11 @@ website tells you how:
In general, you should check the documentation provided by your IRC software. In general, you should check the documentation provided by your IRC software.
Social media Social media
============ -------------
libreboot exists officially on many places. libreboot exists officially on many places.
Mastodon ### Mastodon
--------
The founder and lead developer, Leah Rowe, is on Mastodon: The founder and lead developer, Leah Rowe, is on Mastodon:
@ -85,8 +84,7 @@ The founder and lead developer, Leah Rowe, is on Mastodon:
Leah can also be contacted by this email address: Leah can also be contacted by this email address:
[leah@libreboot.org](mailto:leah@libreboot.org) [leah@libreboot.org](mailto:leah@libreboot.org)
Reddit ### Reddit
------
Mostly used as a support channel, and also for news announcements: Mostly used as a support channel, and also for news announcements:
<https://www.reddit.com/r/libreboot/> <https://www.reddit.com/r/libreboot/>

View file

@ -4,7 +4,7 @@ x-toc-enable: true
... ...
Купите Libreboot предустановленным Купите Libreboot предустановленным
================================== ----------------------------------
Если вы хотите, чтобы профессионал установил Libreboot для вас, то Minifree Ltd продает [Libreboot предустановленным](https://minifree.org/) на определенном оборудование, и также предоставляет сервис по [установке Libreboot](https://minifree.org/product/installation-service/) на ваши машины. Если вы хотите, чтобы профессионал установил Libreboot для вас, то Minifree Ltd продает [Libreboot предустановленным](https://minifree.org/) на определенном оборудование, и также предоставляет сервис по [установке Libreboot](https://minifree.org/product/installation-service/) на ваши машины.
@ -13,26 +13,26 @@ x-toc-enable: true
Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку: Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку:
Поддержка пользователей Поддержка пользователей
======================= -----------------------
IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже. IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже.
Почтовая рассылка Почтовая рассылка
================= -----------------
У Libreboot есть своя почтовая рассылка: <https://lists.sr.ht/~libreboot/libreboot> У Libreboot есть своя почтовая рассылка: <https://lists.sr.ht/~libreboot/libreboot>
Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
Обсуждение разработки Обсуждение разработки
===================== ---------------------
Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot. Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot.
На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request). На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request).
Чат в IRC Чат в IRC
========== ---------
IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC. IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC.
@ -59,10 +59,9 @@ Libera - самая большая сеть IRC, используемая для
В общем, вы должны проверить документацию вашего клиента для IRC. В общем, вы должны проверить документацию вашего клиента для IRC.
Социальные сети Социальные сети
=============== ---------------
Mastodon ### Mastodon
--------
Основатель и велущий разработчик, Лия Роу, есть на Mastodon: Основатель и велущий разработчик, Лия Роу, есть на Mastodon:
@ -71,8 +70,7 @@ Mastodon
Связаться с Лией также можно и по этому адресу электронной почты: Связаться с Лией также можно и по этому адресу электронной почты:
[leah@libreboot.org](mailto:leah@libreboot.org) [leah@libreboot.org](mailto:leah@libreboot.org)
Reddit ### Reddit
------
Чаще всего используется для поддержки пользователей, а также для новостей и анонсов: Чаще всего используется для поддержки пользователей, а также для новостей и анонсов:
<https://www.reddit.com/r/libreboot/> <https://www.reddit.com/r/libreboot/>

79
site/contact.tr.md Normal file
View file

@ -0,0 +1,79 @@
---
title: Libreboot Projesi ile İletişim
x-toc-enable: true
...
Libreboot Önyüklenmiş Olarak Satın Alın
--------------------------------------
Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot önyüklenmiş](https://minifree.org/) cihazlar satmaktadır ve ayrıca makinenizi göndererek Libreboot kurulumu yaptırmak istiyorsanız [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır.
Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'yi de işletmektedir; satışlar Libreboot projesi için finansman sağlamaktadır.
Libreboot'u kendiniz kuruyorsanız, bunun için de destek mevcuttur. İletişim bilgileri (IRC, e-posta listesi vb.) aşağıdadır:
Kullanıcı Desteği
----------------
Destek istemek istiyorsanız IRC veya Reddit önerilir (IRC önerilir). IRC ve Reddit hakkında bilgi için aşağıya bakın.
E-posta Listesi
--------------
Libreboot'un şu e-posta listesi vardır:
<https://lists.sr.ht/~libreboot/libreboot>
E-posta adresi: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
Geliştirme Tartışmaları
----------------------
Geliştirmeye nasıl yardımcı olabileceğiniz hakkında bilgi için [Git sayfasındaki](git.md) notlara bakın.
Yamaları (çekme istekleri aracılığıyla) nasıl göndereceğinize dair talimatlar da o sayfada bulunmaktadır.
IRC Sohbet Odası
---------------
IRC, Libreboot projesiyle iletişim kurmanın ana yoludur. Libera IRC'de `#libreboot` kanalı.
Web sohbeti:
<https://web.libera.chat/#libreboot>
Libera, Özgür Yazılım projeleri için kullanılan en büyük IRC ağlarından biridir. Onlar hakkında daha fazla bilgiyi burada bulabilirsiniz: <https://libera.chat/>
Tercih ettiğiniz istemciyi (weechat veya irssi gibi) kullanarak bağlanmak isterseniz, bağlantı bilgileri şu şekildedir:
* Sunucu: `irc.libera.chat`
* Kanal: `#libreboot`
* Port (TLS): `6697`
* Port (TLS olmayan): `6667`
TLS şifrelemesi etkin olarak `6697` portunu kullanmanızı öneririz.
Kimlik doğrulama için SASL kullanmanız önerilir. Libera web sitesindeki şu sayfalar size nasıl yapılacağını anlatır:
* WeeChat SASL kılavuzu: <https://libera.chat/guides/weechat>
* Irssi SASL kılavuzu: <https://libera.chat/guides/irssi>
* HexChat SASL kılavuzu: <https://libera.chat/guides/hexchat>
Genel olarak, IRC yazılımınızın sağladığı belgeleri kontrol etmelisiniz.
Sosyal Medya
-----------
Libreboot resmi olarak birçok yerde bulunmaktadır.
### Mastodon
Kurucu ve baş geliştirici Leah Rowe, Mastodon'da:
* <https://mas.to/@libreleah>
Leah'ya ayrıca şu e-posta adresinden ulaşılabilir:
[leah@libreboot.org](mailto:leah@libreboot.org)
### Reddit
Çoğunlukla destek kanalı olarak ve ayrıca haber duyuruları için kullanılır:
<https://www.reddit.com/r/libreboot/>

View file

@ -4,7 +4,7 @@ x-toc-enable: true
... ...
Buy Libreboot pre-installed Buy Libreboot pre-installed
========== ---------------------------
If you want professional installation, Minifree Ltd sells [Libreboot If you want professional installation, Minifree Ltd sells [Libreboot
pre-installed](https://minifree.org/) on select hardware, and it also provides pre-installed](https://minifree.org/) on select hardware, and it also provides
@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available.
Contact information (IRC, mailing list etc) is below: Contact information (IRC, mailing list etc) is below:
Підтримка користувачів Підтримка користувачів
============ ----------------------
IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC). IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC).
Дивіться інформацію нижче щодо IRC та Reddit. Дивіться інформацію нижче щодо IRC та Reddit.
Mailing list Mailing list
============ ------------
Libreboot has this mailing list: Libreboot has this mailing list:
<https://lists.sr.ht/~libreboot/libreboot> <https://lists.sr.ht/~libreboot/libreboot>
@ -32,7 +32,7 @@ Libreboot has this mailing list:
The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht)
Обговорення розробки Обговорення розробки
====================== --------------------
Зараз, подивіться нотатки Зараз, подивіться нотатки
на [сторінці Git](git.md) для інформації щодо допомоги з розробкою. на [сторінці Git](git.md) для інформації щодо допомоги з розробкою.
@ -40,7 +40,7 @@ The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb
На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и). На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и).
Кімната IRC Кімната IRC
============ -----------
IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera
IRC. IRC.
@ -71,12 +71,11 @@ Libera є однією з найбільших мереж IRC, використ
Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC. Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC.
Соціальні мережі Соціальні мережі
============ ----------------
Libreboot офіційно існує в багатьох місцях. Libreboot офіційно існує в багатьох місцях.
Mastodon ### Mastodon
--------------------
Засновник та головний розробник, Лія Роу, є в Mastodon: Засновник та головний розробник, Лія Роу, є в Mastodon:
@ -85,8 +84,7 @@ Mastodon
Також можливо зв'язатися з Лією за ії електронною адресою: Також можливо зв'язатися з Лією за ії електронною адресою:
[leah@libreboot.org](mailto:leah@libreboot.org) [leah@libreboot.org](mailto:leah@libreboot.org)
Reddit ### Reddit
------
Найбільше використовується як канал підтримки, та також для оголошення новин: Найбільше використовується як канал підтримки, та також для оголошення новин:
<https://www.reddit.com/r/libreboot/> <https://www.reddit.com/r/libreboot/>

View file

@ -1,5 +1,5 @@
--- ---
title: Project contributors title: People who contributed to the Libreboot project
x-toc-enable: true x-toc-enable: true
... ...
@ -10,9 +10,6 @@ If we forgot to mention you here, let us know and we'll add you. (or if
you don't want to be mentioned, let us know and we'll remove your you don't want to be mentioned, let us know and we'll remove your
entry) entry)
Information about who works on libreboot, and how the project is run, can
be found on this page: [who.md](who.md)
You can know the history of the libreboot project, simply by reading this page. You can know the history of the libreboot project, simply by reading this page.
It goes into detail about all of the major contributions to the project, and in It goes into detail about all of the major contributions to the project, and in
general how the project was created (and who helped create it). general how the project was created (and who helped create it).
@ -40,32 +37,15 @@ works on all aspects of libreboot, such as:
that libreboot uses that libreboot uses
* Providing user support on IRC * Providing user support on IRC
Caleb La Grange Check the Git repositories to find my own contributions to the project. There
--------------- are a lot, too many to list here, but my work is enabled by the many people
who help me, and those who work on all the upstream projects that I use in
**Secondary developer, number two to Leah.** Caleb is a full time libreboot developer Libreboot. I regularly work with all sorts of people.
with a narrower focus. Caleb focuses on several areas of development:
* Build system. Caleb is responsible for improving and fixing the libreboot Make build
system. Specifically: automation, and reproducibility.
* Hardware modification. Caleb has a passion for hardware alteration; soldering,
desoldering, and testing libreboot software on the resulting hardware.
* Board porting. Anything supported in Coreboot can be ported to libreboot, Caleb
will test and port any board he can get his hands on. Additionally, anyone can
contact Caleb to generate libreboot roms for testing on their board.
* Documentation. Caleb actively maintains documentation on the above areas of
interest. Additionally, Caleb is responsible for disassembly guides with his own
pictures and diagrams for several boards.
* User support. Caleb is active on irc and willing to help any user interested in
using libreboot or in need of help.
* Project goals. Caleb collaborates with Leah on determining project goals.
Leah has the final say in every decision.
External projects External projects
================= -----------------
Coreboot project ### Coreboot project
----------------
Without coreboot, the libreboot project simply would not be possible. Without coreboot, the libreboot project simply would not be possible.
@ -73,28 +53,36 @@ The people and companies that work on coreboot are numerous, and they make the
libreboot project what it is. The libreboot project makes heavy use of coreboot, to libreboot project what it is. The libreboot project makes heavy use of coreboot, to
provide hardware initialization. provide hardware initialization.
GRUB ### GRUB
--------
GRUB is the bootloader used by libreboot. It goes without saying that the GRUB GRUB is the bootloader used by libreboot. It goes without saying that the GRUB
developers enable libreboot, through their work. developers enable libreboot, through their work.
SeaBIOS ### SeaBIOS
-------
The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a
legacy x86 BIOS implementation. legacy x86 BIOS implementation.
U-Boot ### U-Boot
------
Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks. Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks.
Contributors in alphabetical order ### Flashprog
==================================
Alper Nebi Yasak Libreboot uses Nico Huber's *flashprog* to provide flashing on all boards;
---------------- without this code, you would not be able to install Libreboot in freedom,
because other NOR flashing tools are typically proprietary (and not as good).
Contributors in alphabetical order
------------------------------
### Alexei Sorokin
Sent minor fixes to lbmk; improved sha512sum verification on images, config
improvements e.g. hide MEI device where neutered ME is used. General
improvements and tweaks.
### Alper Nebi Yasak
Contributed the build system integration and documentation for using Contributed the build system integration and documentation for using
U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks
@ -103,8 +91,7 @@ based on that.
Alper also does upstream development on U-Boot, e.g. continued an almost Alper also does upstream development on U-Boot, e.g. continued an almost
complete port of the `gru-kevin` board and got it merged upstream. complete port of the `gru-kevin` board and got it merged upstream.
Alyssa Rosenzweig ### Alyssa Rosenzweig
-----------------
Switched the website to use markdown in lieu of handwritten HTML and custom Switched the website to use markdown in lieu of handwritten HTML and custom
PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).** PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).**
@ -117,18 +104,52 @@ now been heavily modified and forked into a formal project, by Leah Rowe:
Alyssa's original work on the static site generator that Libreboot used to use; Alyssa's original work on the static site generator that Libreboot used to use;
the Libreboot website is now built with Untitled) the Libreboot website is now built with Untitled)
Andrew Robbins ### Andrea Perotti
--------------
Sent several small fixes to Libreboot's dependencies scripts for Debian, Fedora
and Ubuntu distros.
### Andrew Robbins
Worked on large parts of Libreboot's old build system and related documentation. Worked on large parts of Libreboot's old build system and related documentation.
Andrew joined the Libreboot project as a full time developer during June 2017, Andrew joined the Libreboot project as a full time developer during June 2017,
until his departure in March 2021. until his departure in March 2021. Although the work was ultimately scrapped
in 2021, in favour of Libreboot's
current [lbmk design](docs/maintain/), he provided countless hours of work to
the project over the years, helping users on IRC and generally being a very
passionate Libreboot developer.
Andrew was working on a build system re-write
that ultimately never reached a stable state, and he abandoned the project
after his work was replaced, but the feeling of disgust that he had was not
mutual.
I, Leah Rowe, am very grateful to Andrew Robbins for his numerous contributions I, Leah Rowe, am very grateful to Andrew Robbins for his numerous contributions
over the years. over the years. Anyone who contributes to Libreboot is a hero. Look at the
old Libreboot repository on [notabug](https://notabug.org/libreboot) to find
his contributions.
Arthur Heymans ### Angel Pons
--------------
Angel is a coreboot developer. Their contributions are numerous, in that and
many other projects. Countless patches in coreboot from them have enabled
Libreboot to be what it is.
The most noteworthy work by Angel, that Libreboot imported, is the native
raminit (NRI) for Intel Haswell platform, which Libreboot was able to use
for replacing the Intel MRC. Because of these patches, Libreboot is able to
provide wholly free initialisation on that platform, in the BIOS region of
the flash. For example, the ThinkPad T440p and OptiPlex 9020 ports boot in
such a configuration, since these are Haswell machines.
Over 2000 commits in coreboot were written by Angel, as of January 2025. They
are one of coreboot's most active developers.
### Arsen Arsenović
Added the config for ThinkPad T430 to Libreboot.
### Arthur Heymans
Merged a patch from coreboot into libreboot, enabling C3 and C4 power Merged a patch from coreboot into libreboot, enabling C3 and C4 power
states to work correctly on GM45 laptops. This was a long-standing issue states to work correctly on GM45 laptops. This was a long-standing issue
@ -141,8 +162,54 @@ project. He still works on coreboot, to this day, and Libreboot greatly
benefits from his work. His contributions to the coreboot project, and Libreboot, benefits from his work. His contributions to the coreboot project, and Libreboot,
are invaluable. are invaluable.
Damien Zammit ### Ben Westover
-------------
Added info about internal flashing for Dell OptiPlex 9020, in the Libreboot
documentation.
### Caleb La Grange
Caleb contributed heavily to the Libreboot build system, and even implemented
the first version of
Libreboot's [vendor inject script](docs/install/ivy_has_common.md), back when
it was part of the erstwhile osboot project, which formally merged with
Libreboot in November 2022.
Before Caleb came along, Libreboot didn't have any sort of structure in its
package management. The current `include/git.sh` script in Libreboot, which
uses a centralised set of configuration files, is ultimately derived from the
work that Caleb did.
Caleb was the one who figured out how to auto-download and neuter the Intel ME
on ThinkPad T440p, where previous osboot versions had used one that had to be
extracted from a dump of the original firmware; the Heads project also made use
of his work, in their project, to add the ThinkPad T440p, since their build
system focuses a lot on reproducibility so they place an emphasis on auto
downloading such files, to get the same version each time. Caleb's work in
Libreboot was largely inspired by Heads, which did the same thing at that time
on the ThinkPad X230. Libreboot's checksum-based design was also implemented
by him; when inserting vendor files, checksums are verified on images, to
ensure that they match what was built in the original release, for each given
release.
Caleb worked heavily on the Libreboot documentation, vastly improving much of
the installation instructions, and provided a lot of user support on IRC.
In general, Caleb heavily audited the entire project. The very nature of its
design, now, is based directly on the work that he did, when looking at the
design of the build system. The various Libreboot build system audits that
started in 2023 were essentially turbo-charged versions of the same work he
was doing.
Caleb has also been a good friend to me, Leah, and provided a lot of advice
during the osboot merger. I avoided a lot of stupid mistakes because of his
advice.
### Canberk TURAN
Added Turkish Q keyboard layout to Libreboot's GRUB payload.
### Damien Zammit
Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated
in libreboot. Also works on other hardware for the benefit of the in libreboot. Also works on other hardware for the benefit of the
@ -152,8 +219,11 @@ Damien didn't work directly on Libreboot itself, but he worked heavily with
Leah Rowe, integrating patches and new board ports into Libreboot, based on Leah Rowe, integrating patches and new board ports into Libreboot, based on
Damien's upstream work on coreboot. Damien's upstream work on coreboot.
Denis Carikli ### Daniil Prokofev
-------------
Translated several Libreboot website pages into the Russian language.
### Denis Carikli
Based on the work done by Peter Stuge, Vladimir Serbinenko and others in Based on the work done by Peter Stuge, Vladimir Serbinenko and others in
the coreboot project, got native graphics initialization to work on the the coreboot project, got native graphics initialization to work on the
@ -174,8 +244,52 @@ didn't work with ACPI based brightness controls. Others in coreboot later
improved it, making ACPI-based backlight controls work properly, based on this improved it, making ACPI-based backlight controls work properly, based on this
earlier work. earlier work.
Ferass El Hafidi Very cool guy!!!
--------
### Eason aka ezntek
Sent a SOIC8 photo for Raspberry Pi Pico pinout, where previously only SOIC16
info existed. Also added info about `thinkpad_acpi` Linux kernel module for
ThinkPad T480.
I (Leah) worked with ezntek on some testing and he discovered several bugs
on the ThinkPad T480, while Mate and I were working on it for Libreboot.
ezntek wrote this guide:
<https://ezntek.com/posts/librebooting-the-thinkpad-t480-20241207t0933/>
This guide was written based on my and other people's help, on IRC, while we
were in the process of adding the T480 to Libreboot. Several parts of this guide
were in fact used to improve the Libreboot guide, such as the info about how
to update the Lenovo UEFI firmware prior to Libreboot installation, by using
USB boot media instead of needing to boot Windows.
Eason's guide also made number one on hacker news that day, and as a result,
many more people learned about Libreboot, especially its support for T480,
which helped to spread the news about the work.
Absolute legend. One of Libreboot's many great champions.
### E. Blåsten
Documented several quirks of the MacBook2,1 and ThinkPad X200T, such as
swivel/rotation on X200T, and various alt keys on the MacBook to make it more
usable with Linux, when used on Libreboot.
Also helped me (Leah) in a very fundamental way, in 2018. The help I got enabled
me to be who I am today.
### Fedja Beader
Wrote several guides for Libreboot, including the original version of the
GRUB hardening guide. Wrote the info about the Linux kernel panic/netconsole
on Libreboot's FAQ.
Also sent some small fixes to Libreboot's GRUB configuration, enabling USB
devices to boot more reliably. Also improved Libreboot's documentation
pertaining to Full Disk Encryption.
### Ferass El Hafidi
Added cstate 3 support on macbook21, enabling higher battery life and cooler Added cstate 3 support on macbook21, enabling higher battery life and cooler
CPU temperatures on idle usage. CPU temperatures on idle usage.
@ -184,17 +298,44 @@ Also has a series of extensive improvements to the entire Libreboot system;
for example, Ferass made the entire build system use POSIX `sh`, removing for example, Ferass made the entire build system use POSIX `sh`, removing
bashisms that previously plagued it. bashisms that previously plagued it.
Libreboot's original support for cross-compiling AArch64 coreboot was added
by him. He also submitted a few bug fixes to the GRUB configuration used by
Libreboot.
This is IRC nick `f_` on Libreboot IRC. Cool guy! This is IRC nick `f_` on Libreboot IRC. Cool guy!
Jeroen Quint ### hslick
------------
Documented Arch Linux ARM installation on ARM64 U-Boot targets.
### Integral
Translated the Libreboot home page into Chinese language.
### Jason Lenz
Sent instructions for installing Debian Linux on ARM64-based chromebooks
with Libreboot and Alper's U-Boot ARM64 payload.
### Jeroen Quint
Contributed several fixes to the libreboot documentation, relating to Contributed several fixes to the libreboot documentation, relating to
installing on Arch-based systems with full disk encryption on libreboot installing on Arch-based systems with full disk encryption on libreboot
systems. systems.
Joshua Gay ### John Doe
----------
This person never gave their name, but they sent two patches:
```
* 676eb110c7f Perform the silentoldconfig step of seabios before full make
* acc57bda6df scripts: process git versions when lbmk is a worktree or submodule
```
Every contribution is appreciated. Every contributor gets their own entry in
the Libreboot Hall of Fame.
### Joshua Gay
Joshua was in a position during 2014-2016 to help promote Libreboot in the Joshua was in a position during 2014-2016 to help promote Libreboot in the
media, in his capacity working for the employer he worked for at the time; media, in his capacity working for the employer he worked for at the time;
@ -204,14 +345,16 @@ He made sure everyone knew what I was doing, and he taught me a *lot* about
licensing; many of Libreboot's practises today are still based on his lessons, licensing; many of Libreboot's practises today are still based on his lessons,
such as the pitfalls of GPL compliance and how to really audit everything. such as the pitfalls of GPL compliance and how to really audit everything.
Klemens Nanni ### Klemens Nanni
-------------
Made many fixes and improvements to the GRUB configuration used in Made many fixes and improvements to the GRUB configuration used in
libreboot, and several tweaks to the build system. libreboot, and several tweaks to the build system.
Lisa Marie Maginnis ### Linear Cannon
-------------------
Added NetBSD support for `dell-flash-unlock`.
### Lisa Marie Maginnis
Lisa was one of Libreboot's early contributors to Libreboot. She personally Lisa was one of Libreboot's early contributors to Libreboot. She personally
helped me set up a lot of the early infrastructure, including things like IRC, helped me set up a lot of the early infrastructure, including things like IRC,
@ -225,8 +368,15 @@ in Libreboot, e.g. ASUS Chromebook C201PA - at the time, this was using
Google's own Depthcharge payload, which you can find in 2016 Libreboot Google's own Depthcharge payload, which you can find in 2016 Libreboot
releases. releases.
Lorenzo Aloe ### Livio
------------
Sent a small enhancement for GRUB, allowing the user to turn on or off several
options at boot time, such as graphical options or spkmodem output, so that
these features can be included on every image, and used flexibly.
Sent some small fixes to the QEMU target, fixing a bug in the SMBIOS info.
### Lorenzo Aloe
Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md), Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md),
also provided testing for proxmox with GPU passthrough on Dell Precision T1650, also provided testing for proxmox with GPU passthrough on Dell Precision T1650,
@ -236,13 +386,63 @@ that OS is not natively supported.
All round good guy, an honest and loyal fan. All round good guy, an honest and loyal fan.
Marcus Moeller ### Luke T. Shumaker
--------------
Sent a patch to Libreboot, fixing vboot on 32-bit (i686) hosts; it previously
only compiled on 64-bit x86 (amd64) machines.
### Marcus Moeller
Made the libreboot logo. Made the libreboot logo.
Nicholas Chin ### Mate Kukri
-------------
Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams
that it uses; he is a coreboot developer, and also contributes heavily to the
GRUB bootloader project.
Off the top of my head, here are just a few of the contributions that he has
made:
* Wrote several enhancements for `pico-serprog`, based on the original work
done by [stacksmashing](https://github.com/stacksmashing), who also has
this very interesting [youtube channel](https://www.youtube.com/channel/UC3S8vxwRfqLBdIhgRlDRVzw);
Riku's work is heavily inspired by Mate's and stacksmashing's work.
* Ported the Dell OptiPlex 9020 SFF and MT, and provided several fixes on it
for the Libreboot project; several fixes that I (Leah) did were also based on
advice that he gave me.
* Wrote the [deguard](docs/install/deguard.md) utility for disabling Intel
Boot Guard on MEv11; this is used for the Dell OptiPlex 3050 Micro
and ThinkPad T480 ports.
* Ported the Dell OptiPlex 3050 Micro and Lenovo ThinkPad T480/T480s to
coreboot, directly providing Leah with advice when integrating these ports
into Libreboot. This work included heavy amounts of reverse engineering
Lenovo's EC firmware.
* Ported the ASUS H610M-K D4 motherboard to coreboot, an Alderlake machine that
Libreboot is interested in, for the release planned by April 2025; this
bullet-point is being written on 5 January 2025 prior to its addition in
Libreboot.
* Wrote the NVMe driver that Libreboot uses in GRUB, based upon work done for
the SeaBIOS project.
Mate Kukri is a hero to the Libreboot project. Without him, Libreboot would not
be what it is today.
### Michael Reed
Wrote Libreboot's original OpenBSD installation guide.
Also sent fixes to the original static site generator that Alyssa wrote, upon
which the Untitled Static Site Generator was later based.
### Michał Masłowski
Sent several fixes to Libreboot's early build system, back in the early days
of the project. Also taught Leah how to use Git, because the very first revisions
were released only as tarballs, without Git history; the first commits in
the old repository were imports of those tarballs.
### Nicholas Chin
[Ported Dell Latitude E6400 to Libreboot](news/e6400.md) [Ported Dell Latitude E6400 to Libreboot](news/e6400.md)
and also [Dell Latitude E6430](docs/install/latitude.md) - author of and also [Dell Latitude E6430](docs/install/latitude.md) - author of
@ -250,23 +450,52 @@ the `dell-flash-unlock` (formerly `e6400-flash-unlock`) utility, which
can unlock the flash on these boards, allowing internal flashing of can unlock the flash on these boards, allowing internal flashing of
Libreboot directly from host OS running under the original Dell firmware. Libreboot directly from host OS running under the original Dell firmware.
Patrick "P. J." McDermott Nicholas has ported many more Dell Latitude laptops to Libreboot, and he works
--------------------------- heavily on the upstream coreboot project. In fact, *every* Dell Latitude
board supported in Libreboot was done by him, at least as of 5 January 2025.
Nicholas has provided countless hours of user support on the Libreboot IRC
channel and in those of projects which Libreboot uses, and submitted many
fixes to Libreboot, both in terms of code and documentation.
He has advised me, Leah, on many occasions, teaching me things. Needless to
say, he is one of Libreboot's champions.
Nicholas also contributes to coreboot heavily, to flashprog, and several
other projects that Libreboot uses.
### 0xloem
Added info about LPC flashing on Libreboot's external flashing guide.
### Patrick "P. J." McDermott
Patrick also did a lot of research and wrote the libreboot FAQ section Patrick also did a lot of research and wrote the libreboot FAQ section
relating to the [Intel Management Engine](../faq.md#intelme), in addition relating to the [Intel Management Engine](../faq.md#intelme), in addition
to making several improvements to the build system in libreboot. **Former to making several improvements to the build system in libreboot. **Former
libreboot project maintainer.** libreboot project maintainer.**
Paul Kocialkowski ### Patrick Rudolph
-----------------
Coreboot developer. Also wrote the xHCI GRUB driver, that Libreboot uses;
without it, several ports in Libreboot would not be feasible, unless they
excluded GRUB as a payload, because several newer Intel platforms no longer
have (or configure) EHCI controllers. Upstream GRUB currently has no xHCI
driver, but Patrick sent patches in 2020 that Libreboot later re-based,
on top of GRUB 2.12.
### Paul Kocialkowski
Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to
libreboot. Also one of the main [Replicant](http://www.replicant.us/) libreboot. Also one of the main [Replicant](http://www.replicant.us/)
developers. developers.
Paul Menzel He was also responsible for the original re-write of the Libreboot build
----------- system, upon which Libreboot's effort from 2017-2021 was based; ultimately,
this work never became stable and the work was scrapped in 2021, in favour of
the current Libreboot build system design, named lbmk.
### Paul Menzel
Investigated and fixed a bug in coreboot on the ThinkPad X60/T60 exposed Investigated and fixed a bug in coreboot on the ThinkPad X60/T60 exposed
by Linux kernel 3.12 and up, which caused 3D acceleration to stop by Linux kernel 3.12 and up, which caused 3D acceleration to stop
@ -279,15 +508,17 @@ Paul worked with Libreboot on
this, sending patches to test periodically until the bug was fixed this, sending patches to test periodically until the bug was fixed
in coreboot, and then helped her integrate the fix in libreboot. in coreboot, and then helped her integrate the fix in libreboot.
Peter Stuge ### Peaksol
-----------
Translated several pages, including the SPI flashing guide, into Chinese
language.
### Peter Stuge
Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provided Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provided
general advice in the early days of the project. Peter was a coreboot developer general advice in the early days of the project. Peter was a coreboot developer
in those days, and a major developer in the *libusb* project (which flashrom in those days, and a major developer in the *libusb* project (which flashprog
makes heavy use of). makes heavy use of).
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024.
Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap
(TS) bit on i945 laptops such as ThinkPad X60/T60, which is useful for a (TS) bit on i945 laptops such as ThinkPad X60/T60, which is useful for a
@ -300,16 +531,72 @@ bucts before flashing the ROM again, to flash the main bootblock. Libreboot
hosts a copy of his work, because his website hosting bucts is no longer hosts a copy of his work, because his website hosting bucts is no longer
responsive. responsive.
Riku Viitanen ### Riku Viitanen
-------------
Added support for HP Elite 8200 SFF desktop PC to Libreboot. You can read Added support for HP Elite 8200 SFF desktop PC to Libreboot. You can read
about this in the hardware page: about this in the hardware page:
[HP Elite 8200 SFF](docs/install/hp8200sff.md) [HP Elite 8200 SFF](docs/install/hp8200sff.md)
Steve Shenton Riku also ported the HP Elite 8300 USDT.
-------------
Riku implemented MXM support as an INT15h handler in SeaBIOS, and wrote
some tooling for it, which enables the HP EliteBook 8560w port to work reliably
in Libreboot.
Riku also added the HP Folio 9470m to Libreboot.
Riku is also in charge of Libreboot's fork of `pico-serprog`, which is used
to provide serprog firmware on Raspberry Pi Pico devices. These devices can
be used to set up a cheap but reliable NOR flasher, which is now the default
recommended one for flashing Libreboot externally. Riku's fork contains several
enhancements, such as a higher default drive level of 12mA and the ability to
control multiple chip select pins, useful for flashing dual-chip Intel boards.
Riku has submitted numerous bug fixes to many boards, and generally sent many
improvements for the build system and also the Libreboot documentation. He
also added the HP EliteBook 2560p to Libreboot.
Riku also contributes to coreboot and flashprog, and several other projects
that Libreboot uses.
### samuraikid
Added Portuguese keyboard layout to Libreboot's GRUB payload.
### semigel
Added BTRFS subvolume support to Libreboot's GRUB configuration, for auto-booting
various Linux distros.
### Simon Glass
Simon Glass is principally responsible for the x86 U-Boot payload that Libreboot
now uses as a coreboot payload. Simon provided Leah with several critical patches
and advised Leah on several aspects of U-Boot's design, that helped a lot
when integrating it.
Without him, Libreboot would not have a functioning U-Boot implementation on
x86.
### Snooze Function
Translated several pages on the Libreboot documentation into the German
language.
### StackSmashing
Author of the original [pico-serprog](https://github.com/stacksmashing/pico-serprog)
project, upon which Libreboot's fork (maintained by Riku Viitanen) is based.
StackSmashing didn't do this specifically for Libreboot, but their work is
outstanding, so their name is honoured here.
StackSmashing also has a [YouTube channel](https://www.youtube.com/channel/UC3S8vxwRfqLBdIhgRlDRVzw)
with a lot of really cool videos on it about all things electronics, and hacking
of electronics. Check it out!
### Steve Shenton
Steve did the early reverse engineering work on the Intel Flash Descriptor used Steve did the early reverse engineering work on the Intel Flash Descriptor used
by ICH9M machines such as ThinkPad X200. He created a C struct defining (using by ICH9M machines such as ThinkPad X200. He created a C struct defining (using
@ -344,23 +631,21 @@ engineered the layout of the Intel GbE NVM (non-volatile memory) region in the
boot flash. This region defines configuration options for the onboard Intel boot flash. This region defines configuration options for the onboard Intel
GbE NIC, if present. GbE NIC, if present.
Based on this, I was able to take Steve's initial proof of concept and write Based on this, I was able to take Steve's initial proof of concept
and work with him extensively to write
the `ich9gen` utility, which generates an Intel Flash Descriptor and GbE NVM the `ich9gen` utility, which generates an Intel Flash Descriptor and GbE NVM
region, from scratch, without an Intel ME region defined. It is this tool, region, from scratch, without an Intel ME region defined,
the `ich9gen` tool, that Libreboot uses to provide ROM images for GM45+ICH9M without needing a dump of the original Lenovo BIOS firmware.
Libreboot used to use `ich9gen` to provide ROM images for GM45+ICH9M
platforms (such as ThinkPad X200/T400/T500/W500), with a fully functional platforms (such as ThinkPad X200/T400/T500/W500), with a fully functional
descriptor and functional Gigabit Ethernet, but *without* needing Intel descriptor and functional Gigabit Ethernet, but *without* needing Intel
Management Engine (ME) firmware, thus making those machines *libre* (the ME Management Engine (ME) firmware, thus making those machines *libre* (the ME
is fully disabled, when you use a descriptor+gbe image generated by `ich9gen`). is fully disabled, when you use a descriptor+gbe image generated by `ich9gen`).
Note that `ich9gen` is now obsolete as the Flash Descriptor and NVM region
are generated pre-assembled, and `nvmutil` is used to change MAC addresses
instead.
With *my* `ich9gen` tool (Steve's tool was called `ich9deblob`), you didn't ### Swift Geek
need a dump of the original Lenovo BIOS firmware anymore! I could not have
written this tool, without Steve's initial proof of concept. I worked with him,
extensively, for many months. All GM45+ICH9M support (X200, T400, etc) in
Libreboot is made possible because of the work he did, back in 2014.
Swift Geek
----------
Contributed a patch for ich9gen to generate 16MiB descriptors. Contributed a patch for ich9gen to generate 16MiB descriptors.
@ -377,14 +662,17 @@ lot about hardware. Swift Geek also did some upstream development on GRUB.
Swift Geek has provided technical advice on numerous occasions, to Leah Rowe, Swift Geek has provided technical advice on numerous occasions, to Leah Rowe,
and helped her to improve her soldering skills in addition to teaching her and helped her to improve her soldering skills in addition to teaching her
some repair skills, to the point where she can now repair most faults on some repair skills, to the point where she can now repair most faults on
ThinkPad mainboards (while looking at the schematics and boardview). ThinkPad motherboards (while looking at the schematics and boardview).
Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best
in his endeavours, and I'm very grateful to his numerous contributions over the in his endeavours, and I'm very grateful to his numerous contributions over the
years. years.
Timothy Pearson ### Timothee Benedet
---------------
Translated several Libreboot website pages into the French language.
### Timothy Pearson
Ported the ASUS KGPE-D16 board to coreboot for the company Raptor Ported the ASUS KGPE-D16 board to coreboot for the company Raptor
Engineering of which Timothy is the CEO. Engineering of which Timothy is the CEO.
@ -395,8 +683,7 @@ contact details are on the raptor site.
**D16 support was removed on 19 November 2022. You can still use older **D16 support was removed on 19 November 2022. You can still use older
revisions of Libreboot, and older release versions.** revisions of Libreboot, and older release versions.**
Vladimir Serbinenko ### Vladimir Serbinenko
-------------------
Ported many of the thinkpads supported in libreboot, to coreboot, and Ported many of the thinkpads supported in libreboot, to coreboot, and
made many fixes in coreboot which benefited the libreboot project. made many fixes in coreboot which benefited the libreboot project.
@ -406,3 +693,13 @@ Intel platforms in Libreboot, when flashing it (now rewritten
by others in Ada, for libgfxinit in coreboot, but originally it was written in by others in Ada, for libgfxinit in coreboot, but originally it was written in
C and included directly in coreboot; libgfxinit is a 3rdparty submodule of C and included directly in coreboot; libgfxinit is a 3rdparty submodule of
coreboot). coreboot).
### Vladislav Shapovalov
Translated several pages of the Libreboot website into Ukranian language.
-------------------------------------------------------------------------------
**Did we forget your name?**
**If so, and you would like to be listed here, please contact the Libreboot project.**

View file

@ -1,26 +1,120 @@
--- ---
title: BSD operating systems title: Install a BSD operating system on Libreboot
x-toc-enable: true x-toc-enable: true
... ...
Guide last updated on 16 November 2022. It is assumed here that you are using the *SeaBIOS* payload, *not* the GRUB
payload; the U-Boot payload may also work, but that is not covered here. The
SeaBIOS payload must ideally run in text mode (`txtmode` images from Libreboot
releases).
NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM This guide pertains to x86 hosts, and does not cover supported CrOS/ARM
chromebooks. For ARM targets, you should refer to u-boot documentation. chromebooks. For ARM targets, you should refer to [u-boot
documentation](../uboot/) - and [U-Boot x86](../uboot/uboot-x86.md) is also
available. The U-Boot x86 payload is interesting, because it can in fact boot
OpenBSD via UEFI method (U-Boot provides a lightweight UEFI implementation
independently of, say, EDK2).
libreboot is capable of booting many BSD systems. This section mostly documents What is BSD?
the peculiarities of libreboot as it pertains to BSD; you can otherwise refer to ------------
the official documentation for whatever BSD system you would like to use.
Kernel Mode Setting In our context, we are referring to those descendents of 4.4BSD-Lite starting
=================== in the early 1990s. On balance, they are about equal to Linux in many ways,
and some would argue that they are *better* (higher code quality). It can be
said that the BSDs are the closest we have to *true* open source Unix systems,
since they ultimately descend from that code lineage. For example, the
FreeBSD project briefly covers its own history in the Hand Book:
<https://docs.freebsd.org/en/books/handbook/introduction/#history>
Chief among them are:
* [FreeBSD](https://www.freebsd.org/) (HardenedBSD probably also works)
* [NetBSD](https://netbsd.org/)
* [OpenBSD](https://www.openbsd.org/)
* [DragonFlyBSD](https://www.dragonflybsd.org/) (UNTESTED)
**TODO: DragonFlyBSD is untested, as of January 2025. It ought to be tested.**
Many other BSD systems exist, that are largely derived from these.
Why use BSD (instead of Linux)?
-------------------------------
BSD operating systems are in wide use today, powering much of the world's
most critical infrastructure, and they're quite competent laptop/desktop or
workstation systems. Some of them have unique features that you can't find
anywhere else (e.g. FreeBSD jails, OpenBSD's numerous security enhancements,
NetBSD's rump kernel design and clean code quality).
BSD systems are superficially similar to Linux systems, but they are very
different under the hood (different kernel designs, different userspace
implementations, and so on). However, almost all of the Linux userspace programs
that you enjoy using are probably available in the various BSD *ports trees*,
or they can be compiled with little to no modification. This is because, despite
the actual differences under the hood, the BSDs and various Linux distros all
adhere to the same basic standards (e.g. Single Unix Specification).
If you want to enjoy using a high quality operating system, with many unique
features, BSD systems can be quite fun to use, and quite challenging. They tend
to have a much more conservative take on implementations, compared to Linux
distros, instead opting for technical correctness and minimalism; this is a
good thing, because lots of Linux distros these days are extremely bloated.
Using a BSD system feels like Linux did in the year 2005, just with much better
hardware support, and that's a *good thing*; the reason why is that BSD systems
simply have fewer users, and a higher concentration of *technical* users, and
this *shows* when you use it. Linux is *much* more mass market and has to cater
to all sorts of people, and these days Linux distros have to *Just Work*.
You can look at the documentation of each BSD system and try each one out, to
see which one is right for you. Be warned, BSD systems *are* typically harder
to use than Linux systems. Even the most seasoned Linux user will often have a
hard time with any BSD, if it's their first time using a BSD system. This is
mitigated by excellent documentation, which is one of the things that the BSDs
excel at, but you are expected to *read* the documentation; many Linux distros
try to hold your hand ("it Just Works"), but the BSDs generally don't do that.
If you're already a power user on Linux, and comfortable with the more hands-on
distros like Arch Linux or Gentoo Linux, you'll have a much easier time
learning a BSD. FreeBSD for example comes completely barebones by default, and
you add packages to it, configuring it to your liking, much like Arch Linux; if
you're wily enough, you might also use the CURRENT tree and install all packages
by building them from *ports* (akin to how Gentoo Linux is used).
BSD systems also have much more relaxed licensing than Linux systems, by and
large; most of the software in the base system, on any BSD project, will use
a permissive license instead of copyleft. They can be regarded as Free Software,
but it's a very different ideology than, say, GNU. Some might argue that this
is better, because licensing conflicts are common among copyleft licenses, even
among different versions of the GPL. A BSD-style license permits *anyone* to
use the code, *without* requiring modified versions to ship source code, so it
can be said that the BSD license model contains [far fewer
restrictions](https://docs.freebsd.org/en/articles/bsdl-gpl/). One might say
that the BSD systems are *more free* than GNU/Linux systems.
Basically, your choice to use BSD will likely be based on a combination of
technical and/or ideological preferences. But don't say we didn't warn you.
BSD is hard. On the flip side of that coin, BSD is *easy*, because it forces
you to really learn how your system works; when you become proficient with
BSD, you'll learn everything else much easier, and you may find yourself doing
things more efficiently *in Linux* as well!
That's enough BSD fanaticism. Please read the following sections, *before*
you embark on your BSD Libreboot journey:
Common issues with BSD+Libreboot
--------------------------------
This page will not tell you how to install BSD systems; that is best left to
the documentation for your BSD system. Instead, these next sections cover only
the idiosyncrasies of Libreboot as they relate to BSD:
### Kernel Mode Setting
Your BSD system *must* support Kernel Mode Setting for your graphics Your BSD system *must* support Kernel Mode Setting for your graphics
device (most of them do nowadays). The reasons will become apparent, as device (most of them do nowadays). The reasons will become apparent, as
you read this article. you read this article.
Boot BSD, using SeaBIOS ### Boot BSD, using SeaBIOS
=======================
On x86 platforms, Libreboot provides the choice of GRUB and/or On x86 platforms, Libreboot provides the choice of GRUB and/or
SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is
@ -37,8 +131,18 @@ If you don't plan to set up Xorg/Wayland, then that's all you really need to
do. For example, you might want to run a headless server, in which case you do. For example, you might want to run a headless server, in which case you
probably don't mind running in text mode all the time. probably don't mind running in text mode all the time.
OpenBSD and corebootfb #### GRUB payload
----------------------
GRUB *can* directly boot many BSD systems, but this is ill advisable. You are
advised to use either SeaBIOS, and boot a BIOS-based BSD bootloader, or use
Libreboot's [U-Boot payload](../uboot/) and use it to boot via UEFI; U-Boot's
bootflow menu can achieve this.
The U-Boot coreboot payload is still experimental, on ARM64 *and* x86/x86\_64,
so you should probably use SeaBIOS for now (on x86). U-Boot is the *only*
coreboot payload for Libreboot on ARM64 motherboards.
### OpenBSD and corebootfb
It's still recommended to use SeaBIOS in text mode, but OpenBSD specifically It's still recommended to use SeaBIOS in text mode, but OpenBSD specifically
can work with SeaBIOS booting in a coreboot framebuffer, with SeaVGABIOS. In can work with SeaBIOS booting in a coreboot framebuffer, with SeaVGABIOS. In
@ -46,19 +150,22 @@ Libreboot ROM images, this would be SeaBIOS images with `corebootfb` in the
file name. file name.
Make sure to select MBR-style partitioning on the installer, and it will Make sure to select MBR-style partitioning on the installer, and it will
Just Work. Just Work. **GPT partitioning won't work in OpenBSD, if you use the SeaBIOS
payload, but will work if you boot/install it via UEFI boot method with
Libreboot's [U-Boot UEFI payload](../uboot/uboot-x86.md) instead.**
If you're using the GRUB payload but SeaBIOS is available in the boot menu, If you're using the GRUB payload but SeaBIOS is available in the boot menu,
you can just select SeaBIOS at said menu, and OpenBSD will work fine. you can just select SeaBIOS at said menu, and OpenBSD will work fine.
FreeBSD and corebootfb ### FreeBSD and corebootfb
----------------------
Assumed broken, so please ensure that you boot with SeaBIOS payload in text Assumed broken, so please ensure that you boot with SeaBIOS payload in text
mode (lbmk ROM images with `txtmode` in the file name, not `corebootfb`). mode (lbmk ROM images with `txtmode` in the file name, not `corebootfb`).
Warnings for X11 users Please boot in *text mode*. FreeBSD can be configured to use KMS, if you need
---------------------- Xorg or wayland.
### Warnings for X11 users
One important peculiarity of most libreboot systems is: VGA mode One important peculiarity of most libreboot systems is: VGA mode
support exists, if booting with corebootfb (coreboot's own framebuffer) and support exists, if booting with corebootfb (coreboot's own framebuffer) and
@ -113,43 +220,7 @@ You should not rely on the above instruction (for FreeBSD), because the exact
step might change, and it does not go into full detail either. Refer to the step might change, and it does not go into full detail either. Refer to the
documentation provided by your system, to know how KMS is configured. documentation provided by your system, to know how KMS is configured.
ALWAYS READ THE MANUAL ### Desktop users
----------------------
All of the BSDs have *excellent* documentation; it's one of the defining
characteristics, versus typical Linux distros.
Aside from this quirk in coreboot, regarding *BIOS* video modes, the BSDs
otherwise work in exactly the same way as you would expect, and you can
follow along to their official documentation without much fuss.
No specific or detailed guides will be provided here, because SeaBIOS is
fairly self-explanatory; you can otherwise refer to the SeaBIOS
documentation.
If you're flashing a ROM for a machine where `seabios_withgrub`
and `seabios_grubfirst` ROMs are available, choose `seabios_withgrub`.
DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were
present in older Libreboot releases, and supported in previous revisions
of the build system, but they did not work for the intended purpose. More
info is written on the [Libreboot installation guide](../install/). ROM
images with `seabios_grubfirst` in the filename will NOT be included in
future Libreboot releases.
Dubious mention: Tianocore
--------------------------
Tianocore is extremely bloated, and unauditable, so it is not included
in Libreboot firmware, but it is the reference UEFI implementation by
Intel and contributors. It can boot most BSD systems very well.
More robust ways to provide UEFI services in Libreboot are to be investigated.
Tianocore integration will not be provided officially, in any current or future
releases of Libreboot.
Desktop users
-------------
NOTE: This section may not be full accurate; for example, the hardware page NOTE: This section may not be full accurate; for example, the hardware page
about HP Elite 8200 SFF talks about use of graphics cards on both corebootfb about HP Elite 8200 SFF talks about use of graphics cards on both corebootfb
@ -173,3 +244,36 @@ extremely expensive computationally speaking. This is why modern kernels
You can learn more about INT10H text/VGA modes here: You can learn more about INT10H text/VGA modes here:
<https://en.wikipedia.org/wiki/INT_10H> <https://en.wikipedia.org/wiki/INT_10H>
If you use the *U-Boot* payload, INT10H is irrelevant because you will rely on
an EFI framebuffer instead, which U-Boot does provide (piggybacking off of the
coreboot framebuffer where one is available).
Regardless of whether you have an EFI framebuffer or INT10H VGA interrupts,
the various BSD systems all support KMS so you should be able to use Xorg or
Wayland just fine.
ALWAYS READ THE MANUAL
----------------------
All of the BSDs have *excellent* documentation; it's one of the defining
characteristics, versus typical Linux distros. This is precisely *because*
the BSDs develop everything in-house, so the various components of a BSD
system are much more heavily integrated, and this means that they can provide
much more reliable documentation; reliable from both the user's perspective
and from the perspective of technical correctness.
Aside from these and other quirks when installing BSD *on Libreboot*, the BSDs
otherwise work in exactly the same way as you would expect, and you can
follow along to their official documentation without much fuss.
No specific or detailed guides will be provided here, because SeaBIOS is
fairly self-explanatory; you can otherwise refer to the SeaBIOS
documentation.
DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were
present in older Libreboot releases, and supported in previous revisions
of the build system, but they did not work for the intended purpose. More
info is written on the [Libreboot installation guide](../install/). ROM
images with `seabios_grubfirst` in the filename will NOT be included in
future Libreboot releases.

View file

@ -0,0 +1 @@
Learn how to install OpenBSD, FreeBSD, NetBSD and other BSD operating systems on Libreboot. Libreboot provides free/opensource BIOS/UEFI firmware based on coreboot.

View file

@ -1,32 +1,39 @@
--- ---
title: Build from source title: Compile Libreboot from source
x-toc-enable: true x-toc-enable: true
... ...
WARNING: Flash from bin/, NOT elf/ If you need to build Libreboot from source, this guide is for you.
==================================
**WARNING: When you build a ROM image from the Libreboot build system, please
ensure that you flash the appropriate ROM image from `bin/`, NOT `elf/`.
The `elf/` coreboot ROMs do not contain payloads. Libreboot's build system
builds no-payload ROMs under `elf/`, and payloads separately under `elf/`. Then
it copies from `elf/` and inserts payloads from `elf/`, and puts the final ROM
images (containing payloads) in `bin/`. This design is more efficient, and
permits many configurations without needless duplication of work. More info
is available in the [lbmk maintenance manual](../maintain/)**
Introduction Introduction
============ ------------
libreboot's build system is named `lbmk`, short for `LibreBoot MaKe`, and this Libreboot's build system is named `lbmk`, short for `LibreBoot MaKe`, and this
document describes how to use it. With this guide, you can know how to compile document describes how to use it. With this guide, you can know how to compile
libreboot from the available source code. libreboot from the available source code.
The following document describes how `lbmk` works, and how you can make changes The following document describes how `lbmk` works, and how you can make changes
to it: [libreboot maintenance manual](../maintain/) to it: [libreboot maintenance manual](../maintain/)
### WARNING: eCryptfs file name limits
Do not run the build system on a eCryptfs file system, because it has
very short file name limits and Libreboot's build system deals with very
long file names. We commonly get reports from this by Linux Mint users
who encrypt their home directory with eCryptfs; regular LUKS encryption will
do nicely.
System requirements
-------------------
You must ensure that you have the correct operating system, CPU, RAM, disk space
and so on.
System requirements are documented in
the [lbmk maintenance manual](../maintain/#system-requirements).
Multi-threaded builds Multi-threaded builds
===================== ---------------------
Libreboot's build system defaults to a single build thread, but you can change Libreboot's build system defaults to a single build thread, but you can change
it by doing e.g. it by doing e.g.
@ -40,42 +47,22 @@ is passed, where THREADS is the number of threads. This is also set when running
xz commands for compression, using the `-t` option. xz commands for compression, using the `-t` option.
Environmental variables Environmental variables
======================= -----------------------
Please read about environmental variables in [the build Please read about environmental variables in [the build
instructions](../maintain/), before running lbmk. You should set instructions](../maintain/), before running lbmk. You should set
your variables accordingly, though you do not technically need to; some your variables accordingly, though you do not technically need to; some
of them may be useful, e.g. `LBMK_THREADS` (sets the number of build threads). of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads).
Sources Sources
======= -------
This version, if hosted live on libreboot.org, assumes that you are using This version, if hosted live on libreboot.org, assumes that you are using
the `lbmk` git repository, which the `lbmk` git repository, which
you can download using the instructions on [the code review page](../../git.md). you can download using the instructions on [the code review page](../../git.md).
A note about documentation (and this page)
------------------------------------------
From Libreboot 20231021 onwards, *all* releases (including 20231021)
have `lbwww.git` (the website) and `lbwww-img.git` (images for the website)
archived in the *src* tar archive for that release; older releases were hit
or miss, from 20210522 to 20230625, as to whether they came with documentation;
releases older than 20210522 generally always came with documentation. Modern
Libreboot documentation is written in Markdown (pandoc variant)
If you're working with *release* documentation, you don't get the full HTML
files (such as the one you're viewing now, if you're reading *this* page in a
web browser), so either read the Markdown files directly, or compile them to
HTML using the [Untitled Static Site Generator](https://untitled.vimuser.org/)
(which is what the Libreboot project uses to generate HTML from those files).
NOTE: `av.libreboot.org` is hardcoded as the domain name where images are
pointed to, in `lbwww.git`, so you will need to replace these references in
your local version, unless you're happy to just continue using those.
Git Git
=== ---
Libreboot's build system uses Git, extensively. You should perform the steps Libreboot's build system uses Git, extensively. You should perform the steps
below, *even if you're using a release archive*. below, *even if you're using a release archive*.
@ -94,39 +81,20 @@ Change the name and email address to whatever you want, when doing this.
You may also want to follow more of the steps here: You may also want to follow more of the steps here:
<https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup> <https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup>
Python
======
You should ensure that the `python` command runs python 3, on your system.
Python2 is unused by lbmk or anything that it pulls down as modules.
If building on Debian/Ubuntu based systems, you can achieve that via:
sudo apt install python-is-python3
On Fedora, you can use the following
sudo dnf install python-unversioned-command
On most modern distros, Python 2 is no longer included and Python 3 will be
the only one available on the `python`.
How to compile Libreboot How to compile Libreboot
======================== ------------------------
Actual development/testing is always done using lbmk directly, and this Actual development/testing is always done using lbmk directly, and this
includes when building from source. Here are some instructions to get you includes when building from source. Here are some instructions to get you
started: started:
Zero..st, check time/date ### Zero..st, check time/date
-------------------------
Make sure date/hwclock report the correct time and date on your system, Make sure date/hwclock report the correct time and date on your system,
because parts of the build process download from HTTPS servers and wrong because parts of the build process download from HTTPS servers and wrong
time or date can cause connections to be dropped during negotiation. time or date can cause connections to be dropped during negotiation.
First, install build dependencies ### First, install build dependencies
---------------------------------
Libreboot includes a script that automatically installs build dependencies Libreboot includes a script that automatically installs build dependencies
according to the selected linux distro. according to the selected linux distro.
@ -143,12 +111,16 @@ or
or or
./mk dependencies fedora38 ./mk dependencies fedora41
or or
./mk dependencies arch ./mk dependencies arch
NOTE: For versioned files, such as `fedora41`, typically other versions will
be available too, e.g. `fedora38`. Make sure to check `config/dependencies/`,
so that you know whether or not a file is available for your distro.
NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release, NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release,
use the dedicated configuration file: use the dedicated configuration file:
@ -160,8 +132,59 @@ Technically, any Linux distribution can be used to build libreboot.
However, you will have to write your own script for installing build However, you will have to write your own script for installing build
dependencies. dependencies.
Next, build ROM images ### Debian Trixie/Sid
----------------------
Debian Trixie, the testing release as of 3 January 2025, and Debian Sid,
provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and
installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other
toolchain components correspond to this version.
The GCC/GNAT versions need to match during build time, so Libreboot's build
system hacks the `PATH` environmental variable, setting up symlinks, matching
GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get
GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the
KGPE-D16 board failed to compile in this configuration. This PATH hack is only
done for compiling the coreboot crossgcc toolchain, and nothing else; after that,
coreboot's toolchain is used.
GNAT is used by coreboot, because some of the Intel graphics devices are
initialised natively, with code written in Ada spark (called `libgfxinit`).
When updating from Debian stable to Debian Trixie(testing) or Sid, you should
also check for orphaned packages, using `aptitude search '~o'`. Do this,
removing what was leftover from the old release, and make sure to re-run the
Debian dependencies script, but do it like this:
./mk dependencies debian --reinstall
For better reliability, you should, after running the dependencies script,
remove `gnat` and install `gnat-14` instead, which is available on this day
of 3 December 2025, but currently marked experimental. When you install
GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to
anything. Libreboot *still* accomodates this, detecting and matching the GCC
and GNAT versions, which would in this instance match version 14 between them,
so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x.
When we tested with this configuration, the KGPE-D16 images also compiled.
NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may
also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10.
### MIPS cross compiler
Libreboot has support for the Sony PlayStation (PS1/PSX), based on
the PCSX-Redux Open BIOS. If you're doing a full release build, and/or
specifically building the PSX BIOS, you need a MIPS cross compiler.
Arch-based systems have a mipsel cross compiler available from AUR, and most
Debian-based systems have a mipsel cross compiler in apt; for these, the normal
dependencies installation command will provide them. We know Void Linux and
Fedora don't have a MIPS compiler, for instance.
If your distro doesn't have the MIPS compiler available,
the [PlayStation](../install/playstation.md) page provides instructions for
manual installation; please do this in addition to the normal dependencies.
### Next, build ROM images
Libreboot MaKe (lbmk) automatically runs all necessary commands; for Libreboot MaKe (lbmk) automatically runs all necessary commands; for
example, `./mk -b coreboot` will automatically build the required payloads example, `./mk -b coreboot` will automatically build the required payloads
@ -180,8 +203,7 @@ or get a list of supported build targets:
./mk -b coreboot list ./mk -b coreboot list
Or maybe just build payloads? ### Or maybe just build payloads?
-----------------------------
If you wish to build payloads, you can also do that. For example: If you wish to build payloads, you can also do that. For example:
@ -206,3 +228,24 @@ example want to modify a config, e.g.:
Or perhaps add a new board! The maintenance manual will teach you how the Or perhaps add a new board! The maintenance manual will teach you how the
Libreboot build system (lbmk) works! Libreboot build system (lbmk) works!
A note about documentation (and this page)
-------------------------------
From Libreboot 20231021 onwards, *all* releases (including 20231021)
have `lbwww.git` (the website) and `lbwww-img.git` (images for the website)
archived in the *src* tar archive for that release; older releases were hit
or miss, from 20210522 to 20230625, as to whether they came with documentation;
releases older than 20210522 generally always came with documentation. Modern
Libreboot documentation is written in Markdown (pandoc variant)
If you're working with *release* documentation, you don't get the full HTML
files (such as the one you're viewing now, if you're reading *this* page in a
web browser), so either read the Markdown files directly, or compile them to
HTML using the [Untitled Static Site Generator](https://untitled.vimuser.org/)
(which is what the Libreboot project uses to generate HTML from those files).
NOTE: `av.libreboot.org` is hardcoded as the domain name where images are
pointed to, in `lbwww.git`, so you will need to replace these references in
your local version, unless you're happy to just continue using those.

1
site/docs/build/index.md.description vendored Normal file
View file

@ -0,0 +1 @@
Libreboot project documentation. Learn about Libreboot installation, how Libreboot is designed and how you can contribute to the project.

View file

@ -3,22 +3,12 @@ title: Побудова з джерельного коду
x-toc-enable: true x-toc-enable: true
... ...
WARNING: Flash from bin/, NOT elf/ **TODO: This page needs to be re-translated. Much of the newer sections are
================================== still in English, and there may be some differences aside from translation,
versus the English version.**
TODO: translate this section into ukrainian language
**WARNING: When you build a ROM image from the Libreboot build system, please
ensure that you flash the appropriate ROM image from `bin/`, NOT `elf/`.
The `elf/` coreboot ROMs do not contain payloads. Libreboot's build system
builds no-payload ROMs under `elf/`, and payloads separately under `elf/`. Then
it copies from `elf/` and inserts payloads from `elf/`, and puts the final ROM
images (containing payloads) in `bin/`. This design is more efficient, and
permits many configurations without needless duplication of work. More info
is available in the [lbmk maintenance manual](../maintain/)**
Introduction Introduction
============ ------------
Система побудови libreboot, називається `lbmk`, скорочення від `LibreBoot MaKe`, і цей Система побудови libreboot, називається `lbmk`, скорочення від `LibreBoot MaKe`, і цей
документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати
@ -35,31 +25,25 @@ libreboot з доступного джерельного коду.
Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни
до нього: [керівництво обслуговування libreboot](../maintain/) до нього: [керівництво обслуговування libreboot](../maintain/)
Release status ### WARNING: eCryptfs file name limits
==============
Information about status will be reported during builds; if a board is Do not run the build system on a eCryptfs file system, because it has
marked as stable, the build proceeds without further input. If the board is very short file name limits and Libreboot's build system deals with very
marked anything other, a warning appears asking if you wish to proceed; to long file names. We commonly get reports from this by Linux Mint users
disable these warnings, do this before building (not recommended): who encrypt their home directory with eCryptfs; regular LUKS encryption will
do nicely.
export XBMK_STATUS=n System requirements
-------------------
In Libreboot, we specify: `stable`, `unstable`, `broken` or `untested`. You must ensure that you have the correct operating system, CPU, RAM, disk space
The "unstable" marking means that the board boots mostly/entirely reliably and so on.
annd should be safe to use, but may have a few issues, but nothing which would,
for example, cause safety issues e.g. thermal, data reliability etc.
The `broken` setting means that a given board will likely brick if flashed. System requirements are documented in
The `untested` setting means untested. the [lbmk maintenance manual](../maintain/#system-requirements).
Release status is always set with regards to the current lbmk revision, on
the theory that the current revision is being used to generate a full release.
The setting is decided on a board-by-board basis, taking its various quirks
and idiosynrasies into account.
Multi-threaded builds Multi-threaded builds
===================== ---------------------
Libreboot's build system defaults to a single build thread, but you can change Libreboot's build system defaults to a single build thread, but you can change
it by doing e.g. it by doing e.g.
@ -69,7 +53,7 @@ it by doing e.g.
This would make lbmk run on 4 threads. This would make lbmk run on 4 threads.
Environmental variables Environmental variables
======================= -----------------------
Please read about environmental variables in [the build Please read about environmental variables in [the build
instructions](../maintain/), before running lbmk. You should set instructions](../maintain/), before running lbmk. You should set
@ -77,7 +61,7 @@ your variables accordingly, though you do not technically need to; some
of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads).
Environmental variables Environmental variables
======================= -----------------------
Please read about environmental variables in [the build Please read about environmental variables in [the build
instructions](../maintain/), before running lbmk. You should set instructions](../maintain/), before running lbmk. You should set
@ -85,7 +69,7 @@ your variables accordingly, though you do not technically need to; some
of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads).
Git Git
=== ---
Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки
знизу, *навіть, якщо ви використовуєте архів випуску*. знизу, *навіть, якщо ви використовуєте архів випуску*.
@ -104,21 +88,16 @@ Git
Ви також можете захотіти прослідувати більшій кількості етапів тут: Ви також можете захотіти прослідувати більшій кількості етапів тут:
<https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup> <https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup>
Python Build
====== -----
Python2 не використовується lbmk або будь-чим, що завантажується в якості модулів. Ви ### Zero..st, check time/date
маєте переконатись, що команда `python` виконує python 3 на вашій системі.
Zero..st, check time/date
-------------------------
Make sure date/hwclock report the correct time and date on your system, Make sure date/hwclock report the correct time and date on your system,
because parts of the build process download from HTTPS servers and wrong because parts of the build process download from HTTPS servers and wrong
time or date can cause connections to be dropped during negotiation. time or date can cause connections to be dropped during negotiation.
Побудова з джерельного коду ### Побудова з джерельного коду
============================
Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також
стосується збирання з джерельного коду. Ось кілька інструкцій, щоб стосується збирання з джерельного коду. Ось кілька інструкцій, щоб
@ -143,9 +122,59 @@ Check: `config/dependencies/` for list of supported distros.
Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей
побудови. побудови.
libreboot Make (lbmk) автоматично виконує всі необхідні команди; наприклад, ### Debian Trixie/Sid
`./build roms` автоматично виконає `./build grub`,
якщо затребувані утиліти для GRUB не збудовано, для виготовлення корисних навантажень. Debian Trixie, the testing release as of 3 January 2025, and Debian Sid,
provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and
installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other
toolchain components correspond to this version.
The GCC/GNAT versions need to match during build time, so Libreboot's build
system hacks the `PATH` environmental variable, setting up symlinks, matching
GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get
GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the
KGPE-D16 board failed to compile in this configuration. This PATH hack is only
done for compiling the coreboot crossgcc toolchain, and nothing else; after that,
coreboot's toolchain is used.
GNAT is used by coreboot, because some of the Intel graphics devices are
initialised natively, with code written in Ada spark (called `libgfxinit`).
When updating from Debian stable to Debian Trixie(testing) or Sid, you should
also check for orphaned packages, using `aptitude search '~o'`. Do this,
removing what was leftover from the old release, and make sure to re-run the
Debian dependencies script, but do it like this:
./mk dependencies debian --reinstall
For better reliability, you should, after running the dependencies script,
remove `gnat` and install `gnat-14` instead, which is available on this day
of 3 December 2025, but currently marked experimental. When you install
GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to
anything. Libreboot *still* accomodates this, detecting and matching the GCC
and GNAT versions, which would in this instance match version 14 between them,
so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x.
When we tested with this configuration, the KGPE-D16 images also compiled.
NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may
also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10.
### MIPS cross compiler
Libreboot has support for the Sony PlayStation (PS1/PSX), based on
the PCSX-Redux Open BIOS. If you're doing a full release build, and/or
specifically building the PSX BIOS, you need a MIPS cross compiler.
Arch-based systems have a mipsel cross compiler available from AUR, and most
Debian-based systems have a mipsel cross compiler in apt; for these, the normal
dependencies installation command will provide them. We know Void Linux and
Fedora don't have a MIPS compiler, for instance.
If your distro doesn't have the MIPS compiler available,
the [PlayStation](../install/playstation.md) page provides instructions for
manual installation; please do this in addition to the normal dependencies.
### Next, build ROM images
В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати
лише одну команду, з свіжого Git clone, для побудови образів ROM: лише одну команду, з свіжого Git clone, для побудови образів ROM:

View file

@ -1,24 +1,26 @@
--- ---
title: GRUB payload title: Libreboot GRUB payload documentation
x-toc-enable: true x-toc-enable: true
... ...
GRUB already has excellent GRUB already has excellent
documentation, but there are aspects of libreboot that deserve special documentation, but there are aspects of libreboot that deserve special
treatment. libreboot provides the option to boot GRUB directly, running on treatment. Libreboot provides the option to boot GRUB directly, running on
bare metal (instead of using BIOS or UEFI services). bare metal (instead of using BIOS or UEFI services).
Boot Linux from GRUB
--------------------
[The Linux section](../linux/) also has libreboot-specific guides for [The Linux section](../linux/) also has libreboot-specific guides for
dealing with Linux distributions when using GRUB directly, in this dealing with Linux distributions when using GRUB directly, in this
setup. [A similar section exists for BSD operating systems](../bsd/) setup. [A similar section exists for BSD operating systems](../bsd/)
GRUB keyboard layouts GRUB keyboard layouts
===================== ---------------------
It is possible to use *any* keymap in GRUB. It is possible to use *any* keymap in GRUB.
Custom keyboard layout ### Custom keyboard layout
----------------------
Keymaps are stored in `config/grub/keymap/` Keymaps are stored in `config/grub/keymap/`

View file

@ -0,0 +1 @@
Documentation pertaining to the GNU boot loader named GRUB, as it applies to Libreboot. GRUB is provided as a coreboot payload, on many Libreboot configurations.

View file

@ -1,5 +1,5 @@
--- ---
title: Documentation title: Installing Libreboot Free/Opensource BIOS/UEFI firmware
... ...
Always check [libreboot.org](https://libreboot.org/) for the latest updates to Always check [libreboot.org](https://libreboot.org/) for the latest updates to
@ -9,7 +9,7 @@ the [main news section](../news/).
[Answers to Frequently Asked Questions about libreboot](../faq.md). [Answers to Frequently Asked Questions about libreboot](../faq.md).
Need help? Need help?
========== ----------
Help is available on [Libreboot IRC](../contact.md) and other channels. Help is available on [Libreboot IRC](../contact.md) and other channels.
@ -22,18 +22,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
operates Minifree Ltd; sales provide funding for the Libreboot project. operates Minifree Ltd; sales provide funding for the Libreboot project.
Installing libreboot Installing libreboot
==================== --------------------
- [How to install libreboot](install/) - [How to install libreboot](install/)
Documentation related to operating systems Installing operating systems
============================ ----------------------------
- [How to install BSD on an x86 host system](bsd/) - [Install BSD operating systems on Libreboot](bsd/)
- [Linux Guides](linux/) - [Install Linux on a Libreboot system](linux/)
Information for developers Information for developers
========================== --------------------------
- [How to compile the libreboot source code](build/) - [How to compile the libreboot source code](build/)
- [Build system developer documentation](maintain/) - [Build system developer documentation](maintain/)
@ -41,8 +41,9 @@ Information for developers
- [U-Boot payload](uboot/) - [U-Boot payload](uboot/)
Other information Other information
================= -----------------
- [Libreboot Static Site Generator](sitegen/)
- [Miscellaneous](misc/) - [Miscellaneous](misc/)
- [List of codenames](misc/codenames.md) - [List of codenames](misc/codenames.md)

View file

@ -0,0 +1 @@
Documentation pertaining to Libreboot installation. Learn how to install Libreboot, and use coreboot payloads such as the GNU boot loader GRUB.

42
site/docs/index.tr.md Normal file
View file

@ -0,0 +1,42 @@
---
title: Libreboot Özgür/Açık Kaynak BIOS/UEFI Yazılımını Yükleme
...
Libreboot ile ilgili en son güncellemeler için her zaman [libreboot.org](https://libreboot.org/) adresini kontrol edin. Haberler ve sürüm duyuruları [ana haberler bölümünde](../news/) bulunabilir.
[Libreboot hakkında Sıkça Sorulan Sorular](../faq.md).
Yardıma mı ihtiyacınız var?
--------------------------
[Libreboot IRC](../contact.md) ve diğer kanallarda yardım alabilirsiniz.
Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot ön yüklü](https://minifree.org/) sistemler satmaktadır ve ayrıca cihazınızı göndererek Libreboot kurulumu yaptırabileceğiniz bir [Libreboot ön yükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır.
Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'nin sahibi ve işletmecisidir; satışlar Libreboot projesi için finansman sağlamaktadır.
Libreboot'u yükleme
------------------
- [Libreboot nasıl yüklenir](install/)
İşletim sistemlerini yükleme
---------------------------
- [Libreboot üzerine BSD işletim sistemleri kurulumu](bsd/)
- [Libreboot sistemine Linux kurulumu](linux/)
Geliştiriciler için bilgiler
---------------------------
- [Libreboot kaynak kodunu nasıl derleyebilirsiniz](build/)
- [Yapı sistemi geliştirici dokümantasyonu](maintain/)
- [GRUB yükleyici](grub/)
- [U-Boot yükleyici](uboot/)
Diğer bilgiler
-------------
- [Libreboot Statik Site Oluşturucu](sitegen/)
- [Çeşitli](misc/)
- [Kod adları listesi](misc/codenames.md)

View file

@ -9,7 +9,7 @@ libreboot. Новини, включаючи оголошення про випу
[Відповіді на поширені запитання про libreboot](../faq.md). [Відповіді на поширені запитання про libreboot](../faq.md).
Need help? Need help?
========== ----------
Help is available on [Libreboot IRC](../contact.md) and other channels. Help is available on [Libreboot IRC](../contact.md) and other channels.
@ -22,18 +22,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
operates Minifree Ltd; sales provide funding for the Libreboot project. operates Minifree Ltd; sales provide funding for the Libreboot project.
Встановлення libreboot Встановлення libreboot
==================== ----------------------
- [Як встановити libreboot](install/) - [Як встановити libreboot](install/)
Документація, яка має відношення до операційних систем Документація, яка має відношення до операційних систем
============================ -----------------------------------------------------
- [Як встановити BSD на x86 хостову систему](bsd/) - [Як встановити BSD на x86 хостову систему](bsd/)
- [Керівництва Linux](linux/) - [Керівництва Linux](linux/)
Інформація для розробників Інформація для розробників
========================== --------------------------
- [Як зібрати джерельний код libreboot](build/) - [Як зібрати джерельний код libreboot](build/)
- [Документація розробника системи побудови](maintain/) - [Документація розробника системи побудови](maintain/)
@ -41,8 +41,9 @@ operates Minifree Ltd; sales provide funding for the Libreboot project.
- [Корисне навантаження U-Boot](uboot/) - [Корисне навантаження U-Boot](uboot/)
Інша інформація Інша інформація
================= ---------------
- [Libreboot Static Site Generator](sitegen/)
- [Різне](misc/) - [Різне](misc/)
- [Список кодових назв](misc/codenames.md) - [Список кодових назв](misc/codenames.md)

View file

@ -7,7 +7,7 @@ libreboot 的最新更新,可以在 [libreboot.org](https://libreboot.org) 上
[libreboot 常见问题解答](../faq.md). [libreboot 常见问题解答](../faq.md).
Need help? Need help?
========== ----------
Help is available on [Libreboot IRC](../contact.md) and other channels. Help is available on [Libreboot IRC](../contact.md) and other channels.
@ -20,18 +20,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
operates Minifree Ltd; sales provide funding for the Libreboot project. operates Minifree Ltd; sales provide funding for the Libreboot project.
安装 libreboot 安装 libreboot
==================== --------------
- [如何安装 libreboot](install/) - [如何安装 libreboot](install/)
操作系统相关文档 操作系统相关文档
============================ ----------------
- [如何在 x86 机器上安装 BSD](bsd/) - [如何在 x86 机器上安装 BSD](bsd/)
- [Linux 指南](linux/) - [Linux 指南](linux/)
开发者信息 开发者信息
========================== ----------
- [如何编译 libreboot 源代码](build/) - [如何编译 libreboot 源代码](build/)
- [构建系统开发者文档](maintain/) - [构建系统开发者文档](maintain/)
@ -39,8 +39,9 @@ operates Minifree Ltd; sales provide funding for the Libreboot project.
- [U-Boot payload](uboot/) - [U-Boot payload](uboot/)
其它信息 其它信息
================= --------
- [Libreboot Static Site Generator](sitegen/)
- [杂项](misc/) - [杂项](misc/)
- [代号列表](misc/codenames.md) - [代号列表](misc/codenames.md)

View file

@ -0,0 +1 @@
Libreboot 项目提供基于 coreboot 的自由且开源的引导固件. GNU GRUB, SeaBIOS, U-Boot.

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Acer G43T-AM3 motherboard.

View file

@ -1,22 +1,29 @@
--- ---
title: ASUS Chromebook C201 installation guide title: Install Libreboot ASUS Chromebook C201
x-toc-enable: true x-toc-enable: true
... ...
Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
ASUS Chromebook C201 motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
WARNING: This board is known to have non-functioning video init at the time WARNING: This board is known to have non-functioning video init at the time
of writing, 19 February 2023. It is as yet unsolved. of writing, 19 February 2023. It is as yet unsolved.
See: <https://notabug.org/libreboot/lbmk/issues/136> See: <https://notabug.org/libreboot/lbmk/issues/136>
Introduction Introduction
=========== ------------
This page contains information about assembly and disassembly, for flashing This page contains information about assembly and disassembly, for flashing
the ASUS Chromebook C201 externally. It will also link to internal flashing the ASUS Chromebook C201 externally. It will also link to internal flashing
instructions, and information about U-Boot. instructions, and information about U-Boot.
Flashrom ### Flashrom
--------
A special fork of flashrom, maintained by Google, is required for flashing. A special fork of flashrom, maintained by Google, is required for flashing.
More information about this is present in the generic [chromebook flashing More information about this is present in the generic [chromebook flashing
@ -26,8 +33,7 @@ NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog
now, as of 27 January 2024, which is a fork of flashrom, but the chromium fork now, as of 27 January 2024, which is a fork of flashrom, but the chromium fork
is another fork of flashrom, and you should use that on chromebooks. is another fork of flashrom, and you should use that on chromebooks.
Depthcharge payload (obsolete) ### Depthcharge payload (obsolete)
------------------------------
This board was also supported in Libreboot 20160907, with the Depthcharge This board was also supported in Libreboot 20160907, with the Depthcharge
payload. Support was dropped in later releases, and then re-added in the payload. Support was dropped in later releases, and then re-added in the
@ -40,7 +46,7 @@ instructions pertaining to Depthcharge:
* <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/hardware/c201.md> * <https://notabug.org/libreboot/lbwww/src/4be2eed23e11b1071cd500a329abf654ab25f942/site/docs/hardware/c201.md>
U-boot payload U-boot payload
============== --------------
U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi
Yasak (`alpernebbi` on Libreboot IRC). Yasak (`alpernebbi` on Libreboot IRC).
@ -50,7 +56,7 @@ Read the section pertaining to U-boot payload:
[u-boot payload documentation for Libreboot](../uboot/) [u-boot payload documentation for Libreboot](../uboot/)
Internal flashing Internal flashing
================= ------------------
External flashing is possible, but only necessary in the event of a *brick*. External flashing is possible, but only necessary in the event of a *brick*.
If you're flashing good firmware, and the machine boots properly, you can If you're flashing good firmware, and the machine boots properly, you can
@ -62,8 +68,7 @@ the information has moved.
See: [chromebook flashing instructions](chromebooks.md) See: [chromebook flashing instructions](chromebooks.md)
Write-protect screw ### Write-protect screw
-------------------
The chromebook flashing instructions, linked above, refer to a *screw* that The chromebook flashing instructions, linked above, refer to a *screw* that
can be turned, to disable flash protection. This is necessary, for internally can be turned, to disable flash protection. This is necessary, for internally
@ -78,15 +83,15 @@ below. The write protect screw is located next to the SPI flash chip, circled
in red in the picture below. It has to be removed. Refer to the following in red in the picture below. It has to be removed. Refer to the following
photos: photos:
[![Screws](https://av.libreboot.org/c201/screws.jpg)](https://av.libreboot.org/c201/screws.jpg) ![ASUS Chromebook C201 underside](https://av.libreboot.org/c201/screws.jpg "ASUS Chromebook C201 underside")
[![WP screw](https://av.libreboot.org/c201/wp-screw.jpg)](https://av.libreboot.org/c201/wp-screw.jpg) ![ASUS Chromebook C201 write protect screw](https://av.libreboot.org/c201/wp-screw.jpg "ASUS Chromebook C201 write protect screw")
The write protect screw can be put back in place later, when the device The write protect screw can be put back in place later, when the device
is known to be in a working state. is known to be in a working state.
External flashing External flashing
================= -----------------
If the machine is no longer booting, due to bad firmware, you can unbrick If the machine is no longer booting, due to bad firmware, you can unbrick
it externally. Refer to [external flash instructions](spi.md). it externally. Refer to [external flash instructions](spi.md).

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS Chromebook C201.

View file

@ -1,8 +1,19 @@
--- ---
title: Chromebook flashing instructions title: Install Libreboot on a Chromebook
x-toc-enable: true x-toc-enable: true
... ...
Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on various ARM64-based
Chromebook laptops. Libreboot replaces proprietary BIOS/UEFI firmware, though
it should be noted that Google already ships coreboot and their own payload
called Depthcharge, which is all free software; the difference with Libreboot
is that it replaces Depthcharge with *U-Boot* (as a coreboot payload), which
provides a lightweight UEFI boot implementation that can boot regular Linux and
BSD systems more easily than Depthcharge.
NOTE: daisy, peach and veyron boards were temporarily removed from NOTE: daisy, peach and veyron boards were temporarily removed from
lbmk. They should be re-added to Libreboot at a later date. The reasons lbmk. They should be re-added to Libreboot at a later date. The reasons
are written on the hardware compatibility page. For now, Libreboot only are written on the hardware compatibility page. For now, Libreboot only
@ -13,17 +24,20 @@ custom firmware on ChromeOS devices. This guide usually refers to all of
them as "Chromebook"s since it's the most common form factor. them as "Chromebook"s since it's the most common form factor.
Flashrom Flashrom
======== --------
A special fork of flashrom, maintained by Google, is required for flashing A special fork of flashrom, maintained by Google, is required for flashing
these Chromebook devices. See: these Chromebook devices. See:
<https://chromium.googlesource.com/chromiumos/third_party/flashrom/> <https://chromium.googlesource.com/chromiumos/third_party/flashrom/>
You must then compile this from source, and run it. This document assumes youll be using ChromeOS to do the internal flashing.
ChromeOS already comes with this special fork of flashrom pre-installed. But if
you are using another OS or an external flasher, you will need to compile and
use the aforementioned flashrom fork.
Enable ChromeOS "Developer Mode" Enable ChromeOS "Developer Mode"
================================ --------------------------------
Chromebooks are locked-down by default to only run ChromeOS. Most things Chromebooks are locked-down by default to only run ChromeOS. Most things
you will want to do on these require you unlock it by enabling their you will want to do on these require you unlock it by enabling their
@ -37,6 +51,26 @@ screen. Waiting for 30 seconds or pressing `Ctrl + D` on this screen will
proceed to boot into ChromeOS, which then erases all data on the device proceed to boot into ChromeOS, which then erases all data on the device
and reboots again into a clean ChromeOS installation. and reboots again into a clean ChromeOS installation.
Before following steps to configure your device as new in the first screen, you
should be able to see a “Enable debugging features” link that you should click
on. A confirmation dialog displays. Click Proceed. The system reboots, use
`Ctrl + D` again and displays a dialog with password prompts. Set the new root
password. Click Enable. The screen displays messages indicating success or
failure. Click OK. You'll see the first screen again. Follow the remaining
prompts to configure your Chrome device.
Once you are finished configuring your device, youll be giving the option to
sign in; here you may use the guest account option in the bottom if you like.
Now in the desktop well set a password to use “sudo”: Use
`Ctrl+Alt+Forward Arrow` (the one two key to the right of esc key, representing
F2) to open a “Developer console” (similar to opening a tty) where the first
line ends with “localhost login”. Enter root and the password you just set for
it. Then you must run `chromeos-setdevpassword` and set another password, which
is the one that is actually used when running “sudo”. Now use
`Ctrl+Alt+Backward Arrow` (the key next to the right of esc, representing F1)
to get back to the desktop.
With Developer Mode enabled, you can launch a terminal emulator inside With Developer Mode enabled, you can launch a terminal emulator inside
ChromeOS by pressing the `Ctrl + Alt + T` key combination. Run `shell` ChromeOS by pressing the `Ctrl + Alt + T` key combination. Run `shell`
inside the resulting `crosh` prompt to actually get to a `bash` session inside the resulting `crosh` prompt to actually get to a `bash` session
@ -44,7 +78,7 @@ where you can run programs. Most of the root file system is read-only,
except for `/usr/local` and any mounted drives under `/media/removable`. except for `/usr/local` and any mounted drives under `/media/removable`.
Identify your device Identify your device
==================== --------------------
It's more common to refer to ChromeOS boards by their codenames, and It's more common to refer to ChromeOS boards by their codenames, and
many compatible devices can share a single codename. Libreboot ROM many compatible devices can share a single codename. Libreboot ROM
@ -56,7 +90,7 @@ device's. There are a number of ways to find it, some are:
- Run `crossystem hwid` or `crossystem fwid` in a terminal - Run `crossystem hwid` or `crossystem fwid` in a terminal
Back up stock firmware Back up stock firmware
====================== ----------------------
The stock firmware on your device comes with some irreplaceable data The stock firmware on your device comes with some irreplaceable data
that is unique to your device. This can include the serial number and that is unique to your device. This can include the serial number and
@ -78,7 +112,7 @@ If you can already boot a conventional Linux distro on your Chromebook,
you may be able to use `flashrom -p linux_mtd` on that system instead. you may be able to use `flashrom -p linux_mtd` on that system instead.
Check external flashability Check external flashability
=========================== ---------------------------
If a ROM image you flash is broken, you may need to restore the stock If a ROM image you flash is broken, you may need to restore the stock
firmware to fix the board to get internal flashing working. Refer to the firmware to fix the board to get internal flashing working. Refer to the
@ -93,7 +127,7 @@ mechanism that lets you flash externally using a special USB debugging
cable. However, most boards that Libreboot supports do not have this. cable. However, most boards that Libreboot supports do not have this.
Disable write protection Disable write protection
======================== ------------------------
Chromebooks have the SPI flash chip partially write-protected by Chromebooks have the SPI flash chip partially write-protected by
default, but thankfully this protection can be disabled by the device default, but thankfully this protection can be disabled by the device
@ -108,6 +142,12 @@ that asserts the WP pin on the flash chip. The screw can be identified
by the fact that it bridges electrical contacts, but finding and by the fact that it bridges electrical contacts, but finding and
removing it might require you to disassemble most of the board. removing it might require you to disassemble most of the board.
In my case as an example, my kevin board had the protection screw
[here](https://av.libreboot.org/board/kevin/write_protection_screw.jpg). It was
tricky for me to find it since it was one of the screws that seemed to hold
the heat sink in place, which I thought made it an unlikely candidate. I
recommend you leave it unscrew never the less after flashing.
Newer boards have a root-of-trust chip enforcing write-protection. The Newer boards have a root-of-trust chip enforcing write-protection. The
[Closed Case Debugging](https://chromium.googlesource.com/chromiumos/platform/ec/+/cr50_stab/docs/case_closed_debugging_gsc.md) [Closed Case Debugging](https://chromium.googlesource.com/chromiumos/platform/ec/+/cr50_stab/docs/case_closed_debugging_gsc.md)
mechanism should be used to disable hardware write-protection. Opening mechanism should be used to disable hardware write-protection. Opening
@ -128,7 +168,7 @@ compile and use that flashrom fork to disable write-protection. There is
no `lbmk` support yet for automatically building it. no `lbmk` support yet for automatically building it.
Prepare the ROM image Prepare the ROM image
===================== ---------------------
Libreboot ROM image layouts are currently incompatible with the regions Libreboot ROM image layouts are currently incompatible with the regions
that should be carried over from the stock firmware. However, the that should be carried over from the stock firmware. However, the
@ -143,11 +183,7 @@ keep backups of the original firmware.
TODO: Instructions to preserve vital data when FMAPs are compatible. TODO: Instructions to preserve vital data when FMAPs are compatible.
Flash the ROM image Flash the ROM image
=================== -------------------
WARNING: Although none are supported yet, make sure not to flash ROM
images on x86 Chromebooks without injecting non-redistributable code
first (like Intel ME firmware). This is not yet documented here.
You can flash the ROM image both internally and externally. For the You can flash the ROM image both internally and externally. For the
latter, see the [external flashing guide](spi.md) and the ChromiumOS latter, see the [external flashing guide](spi.md) and the ChromiumOS
@ -163,7 +199,7 @@ If you can already boot a conventional Linux distro on your Chromebook,
you may be able to use `flashrom -p linux_mtd` on that system instead. you may be able to use `flashrom -p linux_mtd` on that system instead.
Install an operating system (experimental research) Install an operating system (experimental research)
=========================== ------------------------------------------------
In general, ARM-compatible distros targeting U-boot can be used. There are In general, ARM-compatible distros targeting U-boot can be used. There are
three general methods for installing that vary depending on the distribution: three general methods for installing that vary depending on the distribution:
@ -173,25 +209,23 @@ three general methods for installing that vary depending on the distribution:
3. extlinux.conf - a newer flat, bootloader-spec text file that typically lives 3. extlinux.conf - a newer flat, bootloader-spec text file that typically lives
in /boot/extlinux/extlinux.conf in /boot/extlinux/extlinux.conf
Successful installations: ### Successful installations:
-------------------------
* [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md). * [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md).
* [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md). * [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md).
* [Trisquel Aramo on Samsung Chromebook Plus XE513C24](../uboot/uboot-trisquel-aramo.md).
* [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201). * [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201).
Unsuccessful installations: ### Unsuccessful installations:
---------------------------
* [OpenBSD on Samsung Chromebook Plus XE513C24](../uboot/uboot-openbsd.md). * [OpenBSD on Samsung Chromebook Plus XE513C24](../uboot/uboot-openbsd.md).
Other promising ARM-compatible distros: ### Other promising ARM-compatible distros:
---------------------------------------
* [Armbian](https://www.armbian.com/uefi-arm64/). * [Armbian](https://www.armbian.com/uefi-arm64/).
See also See also
======== --------
* [ChromiumOS Documentation](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/) * [ChromiumOS Documentation](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/)
* [ChromiumOS Firmware Test Manual](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/firmware_test_manual.md) * [ChromiumOS Firmware Test Manual](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/firmware_test_manual.md)

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various ARM64-based Chromebook laptops.

View file

@ -1,5 +1,5 @@
--- ---
title: Intel D945GCLF desktop board title: Install Libreboot on Intel D945GCLF and/or D945GCLF2
x-toc-enable: true x-toc-enable: true
... ...
@ -18,18 +18,18 @@ x-toc-enable: true
| **Graphics** | ? | | **Graphics** | ? |
| **Display** | None. | | **Display** | None. |
| **Memory** | Up to 2GB | | **Memory** | Up to 2GB |
| **Architecture** | x86_64 | | **Architecture** | x86\_64 |
| **Original boot firmware** | Intel BIOS | | **Original boot firmware** | Intel BIOS |
| **Intel ME/AMD PSP** | Not present. | | **Intel ME/AMD PSP** | Not present. |
| **Flash chip** | SOIC-8 512KiB | | **Flash chip** | SOIC-8 512KiB |
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | Notes | | ***Features*** | | Notes |
@ -47,13 +47,22 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Doesn't work | | **SeaBIOS with GRUB** | Doesn't work |
</div> </div>
Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
Intel D945GCLF and/or D945GCLF2 desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
If you just want flashing instructions, go to If you just want flashing instructions, go to
[../install/d945gclf.md](../install/d945gclf.md) [../install/d945gclf.md](../install/d945gclf.md)
D945GCLF2D also reported working by a user. D945GCLF2D also reported working by a user.
Introduction Introduction
============ ------------
This board is a mini-itx desktop board for 2008. It uses an atom 230, This board is a mini-itx desktop board for 2008. It uses an atom 230,
which is a singe core CPU but it is hyperthreaded so it appears to have which is a singe core CPU but it is hyperthreaded so it appears to have
@ -76,8 +85,7 @@ hyperthreaded). Since the board is almost identical (and coreboot code
seem to indicate that it works, since MAX\_CPU=4 is set), it is believed seem to indicate that it works, since MAX\_CPU=4 is set), it is believed
that it should also work but this is untested. that it should also work but this is untested.
Remarks about vendor bios: ### Remarks about vendor bios:
--------------------------
- Without coreboot/libreboot this board is completely useless, since the - Without coreboot/libreboot this board is completely useless, since the
vendor bios is very bad. It cannot boot from any HDD whether it is vendor bios is very bad. It cannot boot from any HDD whether it is
@ -96,15 +104,14 @@ And SPI SOIC8 flash chip\
![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"} ![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"}
Flashing instructions {#clip} Flashing instructions {#clip}
===================== -----------------------------
Refer to [spi.md](spi.md) for how to re-flash externally. Refer to [spi.md](spi.md) for how to re-flash externally.
Here is an image of the flash chip:\ Here is an image of the flash chip:\
![](https://av.libreboot.org/d945gclf/d945gclf_spi.jpg) ![](https://av.libreboot.org/d945gclf/d945gclf_spi.jpg)
How to replace thermal paste and fan ### How to replace thermal paste and fan
------------------------------------
This board comes with very crappy disposable loud fan, that one has no This board comes with very crappy disposable loud fan, that one has no
bearings, which can not be repaired or oiled properly, do not waste your bearings, which can not be repaired or oiled properly, do not waste your

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Intel D945GCLF motherboard.

View file

@ -1,14 +1,32 @@
--- ---
title: Disabling Intel Boot Guard on MEv11 title: Disabling Intel Boot Guard on MEv11 for Libreboot installation
x-toc-enable: true x-toc-enable: true
... ...
Deguard enables open source BIOS/UEFI firmware
-------------------------------------------
On *some* (not all) motherboards, the vendor chooses to fuse a key during
manufacturing, which ensures that you can *only* boot firmware cryptographically
signed and verified by *them*. This is a form of DRM that otherwise prevents
use of coreboot-based firmware, such as Libreboot. We are *against* DRM in the
Libreboot project. *Intel* markets the Boot Guard as a security feature, but
we regard it simply as an *attack*
on [Free Software](https://writefreesoftware.org/learn).
This document will teach you about *deguard*, which is a utility that modifies
the Intel ME (which implements Boot Guard) in such a way as to *disable* the
Intel Boot Guard, by exploiting a known security vulnerability on MEv11. The
Libreboot project *uses deguard* for *several* coreboot ports, such as
the [Lenovo ThinkPad T480 with Libreboot](t480.md) or
the [Dell OptiPlex 3050 Micro with Libreboot](dell3050.md).
This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake
machines; note that Coffeelake includes KabyLake Refresh and may have MEv12. machines; note that Coffeelake includes KabyLake Refresh and may have MEv12.
This page concerns only those platforms that have Intel MEv11, not MEv12. The This page concerns only those platforms that have Intel MEv11, not MEv12. The
facts on this page are applicable to both *mobile* and *desktop* platforms. facts on this page are applicable to both *mobile* and *desktop* platforms.
The Intel Boot Guard is a security mechanism implemented by intel, but not all The Intel Boot Guard is a "security" mechanism implemented by intel, but not all
vendors enable it. If enabled, the bootblock in the flash is protected at boot vendors enable it. If enabled, the bootblock in the flash is protected at boot
time by cryptographic signature verification; this means only the vendor can time by cryptographic signature verification; this means only the vendor can
update the flash. update the flash.
@ -17,10 +35,14 @@ On systems with MEv11, a bug exists in older versions (of MEv11) that allows
for unsigned code execution, at a very early stage in the boot process, to the for unsigned code execution, at a very early stage in the boot process, to the
point that almost all of the ME firmware in flash can be fully replaced. The point that almost all of the ME firmware in flash can be fully replaced. The
ME is also what implements Boot Guard, and the hack is possible *before* Boot ME is also what implements Boot Guard, and the hack is possible *before* Boot
Guard is enforced, allowing for it to be disabled. Guard is enforced, allowing for it to be disabled. This does *not* unfuse the
keys set by the manufacturer, but rather, it bypasses all checks against them.
See: [CVE-2017-5705](https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00086.html) See: [CVE-2017-5705](https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00086.html)
Deguard utility
---------------
Mate Kukri, who authored the ThinkPad T480/T480 and OptiPlex 3050 Micro ports, Mate Kukri, who authored the ThinkPad T480/T480 and OptiPlex 3050 Micro ports,
wrote a tool called *deguard*, which Libreboot uses on these boards. This tool wrote a tool called *deguard*, which Libreboot uses on these boards. This tool
reconfigures the ME, exploiting it so as to disable the Boot Guard. reconfigures the ME, exploiting it so as to disable the Boot Guard.
@ -35,6 +57,9 @@ and Libreboot provides a mirror of this repository:
More information is available there. More information is available there.
How it works
------------
This is done by externally flashing an older version. Libreboot's build system This is done by externally flashing an older version. Libreboot's build system
automatically downloads this older version, runs `me_cleaner` on it, and applies automatically downloads this older version, runs `me_cleaner` on it, and applies
the deguard hack; this includes machine-specific ME configuration, which is the deguard hack; this includes machine-specific ME configuration, which is
@ -50,6 +75,9 @@ normally only available to vendors; the *deguard* utility written by Mate Kukri
is available under a free software license, and included by default in Libreboot is available under a free software license, and included by default in Libreboot
releases. It can be used for *any* MEv11-based system. releases. It can be used for *any* MEv11-based system.
How to use deguard
------------------
To download deguard in lbmk (Libreboot's build system), do this: To download deguard in lbmk (Libreboot's build system), do this:
./mk -f deguard ./mk -f deguard
@ -65,6 +93,21 @@ were never fused, even if they were. [Previous work](https://trmm.net/TOCTOU/)
has been done by others, related to the Boot Guard, but nothing quite so has been done by others, related to the Boot Guard, but nothing quite so
thorough and easy to use as deguard existed previously! thorough and easy to use as deguard existed previously!
T480/T480s MFS data
-------------------
As of Libreboot 20241206, the upstream deguard project did not contain an MFS
config for Lenovo ThinkPad T480 and T480s, because Libreboot added them in an
out-of-tree patch (under Mate Kukri's direct guidance).
Therefore, if you're using deguard on a standalone/custom coreboot setup without
using Libreboot/lbmk, please do ensure that they are there. The tool itself
provides a README, or you could simply import the config data from lbmk if
you wish.
How does deguard work?
----------------------
Mate Kukri was able to figure this out and implement deguard, using existing Mate Kukri was able to figure this out and implement deguard, using existing
work done by PT Research and Youness El Alaoui, exploiting the Intel SA 00086 work done by PT Research and Youness El Alaoui, exploiting the Intel SA 00086
bug which you can read more about here: bug which you can read more about here:
@ -82,7 +125,12 @@ years to try to hack around it, as a matter of user freedom. So remember: when
Intel is talking about security, they mean *their* security, not yours. To them, Intel is talking about security, they mean *their* security, not yours. To them,
you are simply flashing malicious code. But they are the ones with malice. you are simply flashing malicious code. But they are the ones with malice.
Thanks
------
Mate Kukri and others who work on such hacks are heroes, and they have done a Mate Kukri and others who work on such hacks are heroes, and they have done a
great service to the Libreboot project. great service to the Libreboot project.
Many more machines are now possible to port to coreboot, thanks to this hack. Many more machines are now possible to port to coreboot, thanks to this hack.
The Libreboot project owes Mate Kukri a debt of gratitude, many times over.

View file

@ -0,0 +1 @@
Libreboot can disable the Intel Boot Guard, on any Intel 6th, 7th or 8th gen platform with Intel Management Engine version 11.x present, using deguard.

View file

@ -1,10 +1,12 @@
--- ---
title: Dell OptiPlex 3050 Micro title: Install Libreboot on Dell OptiPlex 3050 Micro
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -18,7 +20,7 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
| **Variants** | OptiPlex 3050 Micro | | **Variants** | OptiPlex 3050 Micro |
| **Released** | 2017 | | **Released** | 2017 |
| **Chipset** | Intel Kaby Lake | | **Chipset** | Intel Kaby Lake |
| **CPU** | Intel Kaby Lake | | **CPU** | Intel Skylake/Kaby Lake |
| **Graphics** | Intel HD graphics | | **Graphics** | Intel HD graphics |
| **Memory** | DDR4 SODIMMs (max 32GB, 2x16GB) | | **Memory** | DDR4 SODIMMs (max 32GB, 2x16GB) |
| **Architecture** | x86\_64 | | **Architecture** | x86\_64 |
@ -28,12 +30,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
?: UNKNOWN AT THIS TIME ?: UNKNOWN AT THIS TIME
``` ```
@ -47,32 +49,54 @@ P*: Partially works with blobs
| ***Payloads supported*** | | | ***Payloads supported*** | |
|----------------------------|-----------| |----------------------------|-----------|
| **GRUB (libgfxinit only)** | Works | | **GRUB (libgfxinit only)** | Works |
| **SeaBIOS** | Broken | | **SeaBIOS** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
-------------------------
This document will teach you how to install Libreboot, on your
Dell OptiPlex 3050 Micro desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
**Unavailable in Libreboot 20240612 or earlier. You must [compile from **Unavailable in Libreboot 20240612 or earlier. You must [compile from
source](../build/), or use a version newer than Libreboot 20240612.** source](../build/), or use a version newer than Libreboot 20240612.**
### Buy pre-installed
**Dell OptiPlex 3050 Micro is available to purchase with Libreboot preinstalled.
See: <https://minifree.org/product/libreboot-3050-micro/>**
Official information about the computer can be found here: Official information about the computer can be found here:
<https://www.dell.com/support/manuals/en-uk/optiplex-3050-micro/optiplex_3050-mff_om/processor-specifications?guid=guid-8ca53ab2-a85d-42d5-9106-5214220306aa&lang=en-us> <https://www.dell.com/support/manuals/en-uk/optiplex-3050-micro/optiplex_3050-mff_om/processor-specifications?guid=guid-8ca53ab2-a85d-42d5-9106-5214220306aa&lang=en-us>
Build ROM image from source ### Warning regarding NVMe SSDs
---------------------------
Please use at least Libreboot
20241206 *[revision 3](../../news/libreboot20241206.Revisions.md#revision-3-11-december-2024)*
or higher. This is because older revisions contained a bug, where the NVMe
SSD would be *replugged* under Linux, randomly, leading to data loss.
This is fixed in 20241206 rev3 or higher, by disabling PCI-E hotplug on the
NVMe SSD slot.
See: [Libreboot 20241206 release](../../news/libreboot20241206.md)
### Build ROM image from source
The build target, when building from source, is thus: The build target, when building from source, is thus:
./mk -b coreboot dell3050micro_fsp_16mb ./mk -b coreboot dell3050micro_vfsp_16mb
Mate Kukri's *deguard* utility disables the Intel Boot Guard on this Mate Kukri's *deguard* utility disables the Intel Boot Guard on this
machine. Libreboot uses this by default, along with `me_cleaner` to provide machine. Libreboot uses this by default, along with `me_cleaner` to provide
a neutered ME setup; unlike on other platforms, arbitrary code execution is also a neutered ME setup; unlike on other platforms, arbitrary code execution is also
possible inside the ME on this mainboard, giving it much higher potential for possible inside the ME on this motherboard, giving it much higher potential for
software freedom in the future. software freedom in the future.
Issues Issues
====== ------
This machine basically works flawlessly, as of the Libreboot 20241206 release. This machine basically works flawlessly, as of the Libreboot 20241206 release.
All the initial bugs were fixed, e.g. PWM fan control works now. A very nice All the initial bugs were fixed, e.g. PWM fan control works now. A very nice
@ -88,10 +112,9 @@ Selection of audio devices and outputs is a bit idiosyncratic on this board.
Just play with pavucontrol for your setup and it should work fine. Just play with pavucontrol for your setup and it should work fine.
Installation Installation
============ ------------
Insert binary files ### Insert binary files
-------------------
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
@ -111,20 +134,18 @@ libre ME could include, for example, running an out-of-bound packet filter
on a secure network (with flash write protection, making it invincible to any on a secure network (with flash write protection, making it invincible to any
OS-based software attacks). OS-based software attacks).
MAC address ### MAC address
-----------
This has a realtek NIC inside, instead of Intel, so the MAC address will not This has a Realtek NIC inside, instead of Intel, so the MAC address will not
change. This means: there is no GbE region in the flash. change. This means: there is no GbE region in the flash.
You can still use something like GNU MAC Changer to change your MAC address You can still use something like `macchanger` to change your MAC address
from Linux if you want to. from Linux if you want to.
This is great, because that's one less complexity to deal with during This is great, because that's one less complexity to deal with during
installation. installation.
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
@ -139,19 +160,81 @@ variables to flash during shutdown sequence, so you should *pull the plug* to
shut it down (remove the power by pulling the plug) after flashprog shut it down (remove the power by pulling the plug) after flashprog
says `VERIFIED`. says `VERIFIED`.
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
For general information, please refer to [25xx NOR flash For general information, please refer to [25xx NOR flash
instructions](../install/spi.md) - that page refers to use of socketed flash. instructions](../install/spi.md) - that page refers to use of socketed flash.
The side cover comes off easily, and you can find the flash ICs next to the RAM. The side cover comes off easily, and you can find the flash ICs next to the RAM.
Simply remove the screw at the back. The top panel then slides forward, and you Simply remove the screw at the back. The top panel then slides forward, and you
can remove the SSD caddy; from then on, the flash is accossible. can remove the SSD caddy; from then on, the flash is accessible.
Observe the following photo of the flash (SOIC-8): Observe the following photo of the flash (SOIC-8):
<img tabindex=1 alt="Dell OptiPlex 3050 Micro flash IC" class="p" src="https://av.libreboot.org/3050micro/flash.jpg" /><span class="f"><img src="https://av.libreboot.org/3050micro/flash.jpg" /></span> <img tabindex=1 alt="Dell OptiPlex 3050 Micro flash IC" class="p" src="https://av.libreboot.org/3050micro/flash.jpg" /><span class="f"><img src="https://av.libreboot.org/3050micro/flash.jpg" /></span>
You can otherwise flash internally, including from factory firmware(if the You can otherwise flash internally, including from factory firmware (if the
service jumper is set). service jumper is set).
Errata
------
### Power-on after power failure
Older Libreboot revisions made this machine always turn on, when plugging in
a power supply (charger brick), if a previous power loss was observed. This is
because coreboot sets a special register in the PMC that configures such
behaviour, but it was hardcoded to always-on. This is undesirable for most
people, so Libreboot 20241206 *revision 8* and newer releases contain the
following modification:
<https://browse.libreboot.org/lbmk.git/commit/?id=09a01477df67e3ddc36e11123c537332d7813c50>
If you wish to modify this behaviour again, you could modify the patch
referenced there; the actual location of the `.patch` file may change over
time, so you can basically just modify the coreboot source file
at `src/soc/intel/common/block/pmc/pmclib.c` (for the coreboot tree
under `src/coreboot/` in lbmk, pertaining to your board, which can be determined
by reading the `tree` variable in your board's `target.cfg` file within lbmk).
Use the patch as reference, to modify the coreboot behaviour as you wish, and
re-compile [from source](../build/).
### TPM disabled
The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS,
due to buggy TPM drivers there.
### Legacy 8254 timer
Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging.
### HyperThreading on 3050 Micro
NOTE: The 3050 Micro is available in different CPU configurations.
Before considering to enable HyperThreading support, make sure it is
supported by the CPU of your 3050 Micro.
Also called SMT. This is a feature where you get 2 threads on a single core.
It can improve performance in some workloads, but is actually a performance
liability in others, depending on your OS kernel/scheduler and the actual
workload.
It is a security liability, due to the Spectre/Meltdown attacks, so we
recommend turning it off, at the very least from your running operating system.
On *this* platform, you can easily turn it off from coreboot.
**Libreboot disables HyperThreading by default**, from Libreboot 20241206 rev8
onward, on this board. To turn it back on, please [build from source](../build/)
and before running the build command, do this:
./mk -m coreboot dell3050micro_vfsp_16mb
In the menu that appears, go *Chipset -> Enable Hyper-Threading* and turn it on.
Then exit from the menu, saving the config where prompted. You will see this
menu twice, because there are *two* configs for each of these boards.
SMT is rarely of benefit in practise, but can be useful in some circumstances.
For example, if you're compiling a large codebase from source that takes hours,
SMT increases the building speed by about 15 percent; for example, a 3 hour
build job might take about 2 hours and 40 minutes instead.

View file

@ -0,0 +1 @@
Dell OptiPlex 3050 installation. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader.

View file

@ -1,13 +1,15 @@
--- ---
title: Dell OptiPlex 7010/9010 SFF title: Install Libreboot on Dell OptiPlex 7010/9010 SFF
x-toc-enable: true x-toc-enable: true
... ...
**This is only for the SFF variant. The MT variant is also supported, but for **This is only for the SFF variant. The MT variant is also supported, but for
the MT variant, you must flash the [T1650 ROM image](t1650.md) instead.** the MT variant, you must flash the [T1650 ROM image](t1650.md) instead.**
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -33,12 +35,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
?: UNKNOWN AT THIS TIME ?: UNKNOWN AT THIS TIME
``` ```
@ -46,7 +48,7 @@ P*: Partially works with blobs
|---------------------------------------------------|----| |---------------------------------------------------|----|
| **Internal flashing with original boot firmware** | W+ | | **Internal flashing with original boot firmware** | W+ |
| **Display (if Intel GPU)** | W+ | | **Display (if Intel GPU)** | W+ |
| **Display (discrete CPU, SeaBIOS payload only)** | W* | | **Display (discrete GPU, SeaBIOS payload only)** | W* |
| **Audio** | W+ | | **Audio** | W+ |
| **RAM Init** | W+ | | **RAM Init** | W+ |
@ -56,8 +58,14 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
Dell OptiPlex 7010 SFF and/or OptiPlex 9010 SFF desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
**Unavailable in Libreboot 20240612 or earlier. You must [compile from **Unavailable in Libreboot 20240612 or earlier. You must [compile from
source](../build/), or use a version newer than Libreboot 20240612.** source](../build/), or use a version newer than Libreboot 20240612.**
@ -65,20 +73,22 @@ source](../build/), or use a version newer than Libreboot 20240612.**
Official information about the computer can be found here: Official information about the computer can be found here:
<https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us> <https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us>
Build ROM image from source ### Build ROM image from source
---------------------------
The build target, when building from source, is thus: The build target, when building from source, is thus:
./mk -b coreboot dell7010sff_12mb ./mk -b coreboot dell7010sff_12mb
NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same mainboard. NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same motherboard.
Installation Alternatively, you can use one of Libreboot's pre-compiled release images.
============
Insert binary files Install Libreboot
------------------- -----------------
Libreboot can be installed via internal and/or external flashing methods.
### Insert vendor files
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
@ -88,15 +98,13 @@ Libreboot's build system automatically downloads and processes these files if
you build Libreboot from source, but the same logic that it uses must be re-run you build Libreboot from source, but the same logic that it uses must be re-run
if you're using a release image. if you're using a release image.
Set MAC address ### Set MAC address
---------------
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
WARNING about CPU/GPU compatibility ### WARNING about CPU/GPU compatibility
-------------------------------
If you want to use onboard graphics, you must have a CPU that has a GPU built If you want to use onboard graphics, you must have a CPU that has a GPU built
into it. You can find a list here: into it. You can find a list here:
@ -110,8 +118,7 @@ used, SeaBIOS executes its VGA ROM which provides video init, instead of
coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did,
so the GRUB payload will also work. so the GRUB payload will also work.
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
@ -127,8 +134,7 @@ variables to flash during shutdown sequence, so you should *pull the plug* to
shut it down (remove the power by pulling the plug) after flashprog shut it down (remove the power by pulling the plug) after flashprog
says `VERIFIED`. says `VERIFIED`.
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
For general information, please refer to [25xx NOR flash For general information, please refer to [25xx NOR flash
instructions](../install/spi.md) - that page refers to use of socketed flash. instructions](../install/spi.md) - that page refers to use of socketed flash.

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 7010 SFF.

View file

@ -1,5 +1,5 @@
--- ---
title: Dell OptiPlex 780 MT/USFF title: Install Libreboot on Dell OptiPlex 780 MT/USFF
x-toc-enable: true x-toc-enable: true
... ...
@ -29,12 +29,12 @@ Dell OptiPlex 780
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
?: UNKNOWN AT THIS TIME ?: UNKNOWN AT THIS TIME
``` ```
@ -52,8 +52,14 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
-------------------------
This document will teach you how to install Libreboot, on your
Dell OptiPlex 780 desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
**Unavailable in Libreboot 20240612 or earlier. You must [compile from **Unavailable in Libreboot 20240612 or earlier. You must [compile from
source](../build/), or use a version newer than Libreboot 20240612.** source](../build/), or use a version newer than Libreboot 20240612.**
@ -61,8 +67,7 @@ source](../build/), or use a version newer than Libreboot 20240612.**
Official information about the computer can be found here: Official information about the computer can be found here:
<https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us> <https://www.dell.com/support/manuals/en-uk/optiplex-7010-plus-small-ff/opti_7010_sff_plus_om/specifications-of-optiplex-small-form-factor-plus-7010?guid=guid-7c9f07ce-626e-44ca-be3a-a1fb036413f9&lang=en-us>
Build ROM image from source ### Build ROM image from source
---------------------------
The build target, when building from source, is thus: The build target, when building from source, is thus:
@ -75,25 +80,27 @@ The `_truncate` image is needed if you're flashing Libreboot internally from
the original Dell firmware. Otherwise, you only need the regular images that the original Dell firmware. Otherwise, you only need the regular images that
lack `_truncate` in the file name. lack `_truncate` in the file name.
100% FREE Alternatively, you can use release images instead of compiling from source.
=========
This mainboard does not rely on any binary blobs in the flash. It is using ### 100% FREE / OPEN SOURCE!
This motherboard is entirely free software in the main boot flash. It is using
the Intel X4X / ICH10 platform, same as on the already supported the Intel X4X / ICH10 platform, same as on the already supported
Gigabyte GA-G41M-ES2L mainboard. Gigabyte GA-G41M-ES2L motherboard.
Installation Install Libreboot
============ -----------------
Set MAC address These next sections will teach you how to install Libreboot, on your
--------------- Dell OptiPlex 780 motherboard.
### Set MAC address
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
WARNING about CPU/GPU compatibility ### WARNING about CPU/GPU compatibility
-------------------------------
Coreboot has libre initialisation code for Intel graphics, but libre Coreboot has libre initialisation code for Intel graphics, but libre
initialisation code is not available for most graphics cards. This machine can initialisation code is not available for most graphics cards. This machine can
@ -102,8 +109,7 @@ used, SeaBIOS executes its VGA ROM which provides video init, instead of
coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did,
so the GRUB payload will also work. so the GRUB payload will also work.
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
**Always make sure to dump a copy of the current flash first. ALSO: [make **Always make sure to dump a copy of the current flash first. ALSO: [make
sure /dev/mem protection is disabled](devmem.md) for the flashing to work!** sure /dev/mem protection is disabled](devmem.md) for the flashing to work!**
@ -152,8 +158,7 @@ the full image; the one without `_truncate` in the file name uses all of the
flash, with the BIOS region ending at the 8MB limit, so the BIOS region is flash, with the BIOS region ending at the 8MB limit, so the BIOS region is
therefore 2MB larger on those images. therefore 2MB larger on those images.
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
For general information, please refer to [25xx NOR flash For general information, please refer to [25xx NOR flash
instructions](../install/spi.md) - that page refers to use of socketed flash. instructions](../install/spi.md) - that page refers to use of socketed flash.

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 780.

View file

@ -1,13 +1,15 @@
--- ---
title: Dell OptiPlex 9020 SFF/MT (and 7020), and XE2 MT/SFF title: Install Libreboot on Dell OptiPlex 9020 SFF/MT (or 7020), or XE2 MT/SFF
x-toc-enable: true x-toc-enable: true
... ...
**NOTE: Dell XE2 MT/SFF are also known to work, using the 9020 images. Same **NOTE: Dell XE2 MT/SFF are also known to work, using the 9020 images. Same
motherboards as the 9020 and 7020.** motherboards as the 9020 and 7020.**
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -37,12 +39,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
?: UNKNOWN AT THIS TIME ?: UNKNOWN AT THIS TIME
``` ```
@ -50,7 +52,7 @@ P*: Partially works with blobs
|---------------------------------------------------|----| |---------------------------------------------------|----|
| **Internal flashing with original boot firmware** | W+ | | **Internal flashing with original boot firmware** | W+ |
| **Display (if Intel GPU)** | W+ | | **Display (if Intel GPU)** | W+ |
| **Display (discrete CPU, SeaBIOS payload only)** | W* | | **Display (discrete GPU, SeaBIOS payload only)** | W* |
| **Audio** | W+ | | **Audio** | W+ |
| **RAM Init** | W+ | | **RAM Init** | W+ |
@ -60,8 +62,14 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
Dell OptiPlex 9020/7020 SFF/MT or XE2 SFF/MT desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
**Unavailable in Libreboot 20240126 or earlier. You must [compile from **Unavailable in Libreboot 20240126 or earlier. You must [compile from
source](../build/), or use a version newer than Libreboot 20240126** source](../build/), or use a version newer than Libreboot 20240126**
@ -70,12 +78,11 @@ Official information about this machine can be found here:
<https://i.dell.com/sites/doccontent/shared-content/data-sheets/en/Documents/optiplex-9020-micro-technical-spec-sheet.pdf> <https://i.dell.com/sites/doccontent/shared-content/data-sheets/en/Documents/optiplex-9020-micro-technical-spec-sheet.pdf>
ECC memory support ECC memory support
================== ------------------
The 9020 MT/SFF do not have ECC memory support. However: The 9020 MT/SFF do not have ECC memory support. However:
Dell Precision T1700 ### Dell Precision T1700
--------------------
The T1700 is a version of the same motherboard, but with ECC support. You The T1700 is a version of the same motherboard, but with ECC support. You
can flash the 9020 MT image on this board, and it will boot. can flash the 9020 MT image on this board, and it will boot.
@ -84,7 +91,7 @@ Please note however that the native raminit (libre raminit) provided by
Libreboot does not yet support ECC. You *may* be able to use ECC modules, Libreboot does not yet support ECC. You *may* be able to use ECC modules,
but you won't actually have functioning ECC. but you won't actually have functioning ECC.
ECC support currently requires `mrc.bin`, which is a blob for raminit. ECC support currently requires `mrc.bin`, which is vendor firmware for raminit.
Libreboot removed this some time ago, instead favouring only the libre raminit. Libreboot removed this some time ago, instead favouring only the libre raminit.
Patches are welcome, otherwise you can use an older revision of Libreboot Patches are welcome, otherwise you can use an older revision of Libreboot
with `mrc.bin` if you need ECC; it's unknown whether both the Haswell and with `mrc.bin` if you need ECC; it's unknown whether both the Haswell and
@ -97,18 +104,19 @@ if a blob *can* be avoided, it must be avoided. Therefore, `mrc.bin` is avoided
since the libre raminit works pretty well these days (ECC notwithstanding). since the libre raminit works pretty well these days (ECC notwithstanding).
Buy Libreboot preinstalled Buy Libreboot preinstalled
====================== --------------------------
You can buy this machine professionally serviced, with Libreboot preinstalled You can buy this machine professionally serviced, with Libreboot preinstalled
and your choice of Linux/BSD system. Many upgrades are also available. See: and your choice of Linux/BSD system. Many upgrades are also available. See:
<https://minifree.org/product/libreboot-9020/> **Minifree now sells the Libreboot 3050 Micro, instead of the Libreboot
9020 SFF. See: <https://minifree.org/product/libreboot-3050-micro/>**
Sales are conducted to provide funding for the Libreboot project. Leah Rowe Sales are conducted to provide funding for the Libreboot project. Leah Rowe
who runs Minifree, is also Libreboot's founder and lead developer. who runs Minifree, is also Libreboot's founder and lead developer.
Patch Patch
===== -----
Mate Kukri is the author of the original coreboot port. Thanks go to Kukri. Mate Kukri is the author of the original coreboot port. Thanks go to Kukri.
Kukri's patch is here: Kukri's patch is here:
@ -118,16 +126,14 @@ Kukri's patch is here:
This patch, at this revision (patchset 31), is what Libreboot uses for this This patch, at this revision (patchset 31), is what Libreboot uses for this
port. port.
QUBES: how to get it working ### QUBES: how to get it working
-------------------
Qubes requires IOMMU to be turned on. Please now read the next section. Qubes requires IOMMU to be turned on. Please now read the next section.
Qubes *WILL* work, if you configure Libreboot as directed below, but otherwise Qubes *WILL* work, if you configure Libreboot as directed below, but otherwise
it will fail by default. This is because Libreboot *disables the IOMMU by it will fail by default. This is because Libreboot *disables the IOMMU by
default*, on this board. default*, on this board.
Graphics cards and IOMMU ### Graphics cards and IOMMU
--------------
IOMMU is buggy for some reason (we don't know why yet), when you plug in IOMMU is buggy for some reason (we don't know why yet), when you plug in
a graphics card. The graphics card simply won't work. On some of them, a graphics card. The graphics card simply won't work. On some of them,
@ -155,8 +161,7 @@ IOMMU, and only if vt-d is present. This is still the behaviour in Libreboot,
but Libreboot adds an additional check: if `iommu` is not set in nvram, it but Libreboot adds an additional check: if `iommu` is not set in nvram, it
defaults to on, but if it's set to disabled, then IOMMU is not initialised. defaults to on, but if it's set to disabled, then IOMMU is not initialised.
Enable IOMMU ### Enable IOMMU
------------
IOMMU is *disabled by default*, universally, on this board. You can turn it on, IOMMU is *disabled by default*, universally, on this board. You can turn it on,
by modifying the ROM image prior to flashing, or modifying it prior to by modifying the ROM image prior to flashing, or modifying it prior to
@ -175,7 +180,7 @@ Then flash the ROM image. You can find nvramtool
under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't
already havse `src/coreboot/default/`: already havse `src/coreboot/default/`:
./update trees -f coreboot default ./mk -f coreboot default
Then do this: Then do this:
@ -202,8 +207,7 @@ with IOMMU enabled:
Make sure to configure your image accordingly. Make sure to configure your image accordingly.
7020 compatibility ### 7020 compatibility
------------------
7020/9020 MT each have the same motherboard. Flash the 9020 ROM from Libreboot 7020/9020 MT each have the same motherboard. Flash the 9020 ROM from Libreboot
on your 7020, and it will work. on your 7020, and it will work.
@ -211,25 +215,31 @@ on your 7020, and it will work.
Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides
separate targets for MT and SFF. separate targets for MT and SFF.
Build ROM image from source ### Build ROM image from source
---------------------------
For the MT variant (7020 MT and 9020 MT): For the **20 MT variant (7020 MT and 9020 MT):
./mk -b coreboot dell9020mt_nri_12mb ./mk -b coreboot dell9020mt_nri_12mb
For the SFF variant (7020 SFF and 9020 SFF): For the **20 SFF variant (7020 SFF and 9020 SFF):
./mk -b coreboot dell9020sff_nri_12mb ./mk -b coreboot dell9020sff_nri_12mb
For the T1700 MT variant:
./mk -b coreboot t1700mt_bmrc_12mb
For the T1700 SFF variant:
./mk -b coreboot t1700sff_bmrc_12mb
It is important that you choose the right one. The MT variant is the full It is important that you choose the right one. The MT variant is the full
MTX tower. MTX tower.
Installation Installation
============ ------------
Insert binary files ### Insert binary files
-------------------
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
@ -239,15 +249,13 @@ Libreboot's build system automatically downloads and processes these files if
you build Libreboot from source, but the same logic that it uses must be re-run you build Libreboot from source, but the same logic that it uses must be re-run
if you're using a release image. if you're using a release image.
Set MAC address ### Set MAC address
---------------
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
@ -267,8 +275,7 @@ the original Dell BIOS, remove power from the computer instead of
shutting it down normally. It's recommended to use a live USB instead shutting it down normally. It's recommended to use a live USB instead
of the internal drive to prevent potential filesystem corruption.** of the internal drive to prevent potential filesystem corruption.**
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
**REMOVE all power sources and connectors from the machine, before doing this. **REMOVE all power sources and connectors from the machine, before doing this.
This is to prevent short circuiting and power surges while flashing.** This is to prevent short circuiting and power surges while flashing.**

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 9020 MT and SFF, also XE2 SFF and MT.

View file

@ -17,7 +17,7 @@ Basically, what you need to do is:
laptop came with, if you bought it on ebay for example). Arctic MX-6 is good. laptop came with, if you bought it on ebay for example). Arctic MX-6 is good.
* Check that the fan works reliably * Check that the fan works reliably
Also: the `intel_pstate` driver can be used to artifically cap CPU speed. See: Also: the `intel_pstate` driver can be used to artificially cap CPU speed. See:
<https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html> <https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html>

View file

@ -0,0 +1 @@
Thermal protection has a few idiosyncrasies, on the various motherboards supported by Libreboot. This guide will explain what they are.

View file

@ -1,5 +1,5 @@
--- ---
title: Disabling /dev/mem protections title: Disabling /dev/mem protections on Linux and BSD
x-toc-enable: true x-toc-enable: true
... ...
@ -12,7 +12,7 @@ access once you no longer need it, as this is a useful security layer against
any wrongful operations that you may later inadvertently run as root. any wrongful operations that you may later inadvertently run as root.
Also disable SecureBoot Also disable SecureBoot
======================= -----------------------
If you're using a UEFI setup, it's probably because you're using If you're using a UEFI setup, it's probably because you're using
a latter Intel platform and want to flash Libreboot internally, from a latter Intel platform and want to flash Libreboot internally, from
@ -22,19 +22,23 @@ If the factory firmware implements UEFI, and this is how you boot when
using the factory firmware, please ensure that *SecureBoot* is disabled, using the factory firmware, please ensure that *SecureBoot* is disabled,
because it will interfere with lower memory accesses if left enabled. because it will interfere with lower memory accesses if left enabled.
If you can, boot in BIOS/CSM mode just to be sure, again with SecureBoot
disabled.
FLASH ERRORS (and workarounds) FLASH ERRORS (and workarounds)
======================= ------------------------------
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.** now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
This section relates to installing libreboot on supported targets. This section relates to installing libreboot on supported targets.
Right out of the gate, some users may experience errors with flashprog when Right out of the gate, some users may experience errors with flashprog when
using the internal programmer. They are: using the internal programmer. They are:
/dev/mem access error ### /dev/mem access error
---------------------
NOTE: if running `flashprog -p internal` for software based flashing, and you NOTE: if running `flashprog -p internal` for software based flashing, and you
get an error related to `/dev/mem` access, you should reboot with get an error related to `/dev/mem` access, you should reboot with
@ -46,8 +50,7 @@ is `kernel.securelevel=-1`; see [NetBSD securelevel
manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/)
and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel). and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel).
ERROR: Could not get I/O privileges ### ERROR: Could not get I/O privileges
------------------------------------
Error message: `ERROR: Could not get I/O privileges (Function not implemented)` Error message: `ERROR: Could not get I/O privileges (Function not implemented)`

View file

@ -0,0 +1 @@
Libreboot installation relies heavily on port IO and access to lower memory, which is usually restricted. Learn how to enable access on Linux and BSD.

View file

@ -1,5 +1,5 @@
--- ---
title: Gigabyte GA-G41M-ES2L desktop board title: Install Libreboot on Gigabyte GA-G41M-ES2L
... ...
<div class="specs"> <div class="specs">
@ -24,12 +24,12 @@ GA-G41M-ES2L
| **Flash chip** | 2x8Mbit | | **Flash chip** | 2x8Mbit |
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -48,8 +48,13 @@ P*: Partially works with blobs
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction Open source BIOS/UEFI firmware
============ ------------------------------
This document will teach you how to install Libreboot, on your
Gigabyte GA-G41M-ES2L desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
This is a desktop board using intel hardware (circa \~2009, ICH7 This is a desktop board using intel hardware (circa \~2009, ICH7
southbridge, similar performance-wise to the ThinkPad X200. It can make southbridge, similar performance-wise to the ThinkPad X200. It can make
@ -89,7 +94,7 @@ You can learn more about using the build system, lbmk, here:\
[libreboot build instructions](../build/) [libreboot build instructions](../build/)
RAM RAM
=== ---
**This board is very picky with RAM. If it doesn't boot, try an EHCI debug **This board is very picky with RAM. If it doesn't boot, try an EHCI debug
dongle, serial usb adapter and null modem cable, or spkmodem, to get a dongle, serial usb adapter and null modem cable, or spkmodem, to get a
@ -105,25 +110,25 @@ Many other modules will probably work just fine, but raminit is very picky on
this board. Your mileage *will* fluctuate, wildly. this board. Your mileage *will* fluctuate, wildly.
MAC ADDRESS MAC ADDRESS
=========== -----------
NOTE: due to a bug in the hardware, the MAC address is hardcoded in NOTE: due to a bug in the hardware, the MAC address is hardcoded in
coreboot. Therefore, you must set your own MAC address in your coreboot. Therefore, you must set your own MAC address in your
operating system. operating system.
Use [macchanger](http://www.gnu.org/software/macchanger) in your Use macchanger in your
distro, to set a valid MAC address. By doing this, your NIC should distro, to set a valid MAC address. By doing this, your NIC should
work nicely. work nicely.
Flash chip size {#flashchips} Flash chip size {#flashchips}
=============== ---------------------
Use this to find out: Use this to find out:
flashprog -p internal flashprog -p internal
Flashing instructions {#clip} Flashing instructions {#clip}
===================== --------------------------
Refer to [spi.md](spi.md) for how to set up an SPI programmer for Refer to [spi.md](spi.md) for how to set up an SPI programmer for
external flashing. *You can only externally reprogram one of the chips external flashing. *You can only externally reprogram one of the chips
@ -164,5 +169,8 @@ NOTE: If you don't flash both chips, the recovery program from the default
factory BIOS will kick in and your board will be soft bricked. Make sure that factory BIOS will kick in and your board will be soft bricked. Make sure that
you flash both chips! you flash both chips!
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Gigabyte GA-G41M-ES2L motherboard.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook 2170p title: Install Libreboot on HP EliteBook 2170p
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -22,20 +24,20 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
| **Graphics** | Intel HD Graphics 4000 | | **Graphics** | Intel HD Graphics 4000 |
| **Display** | 1366x768 11.6" TFT | | **Display** | 1366x768 11.6" TFT |
| **Memory** | Two slots, max 8GB/slot (2x16GB), DDR3/sodimm | | **Memory** | Two slots, max 8GB/slot (2x16GB), DDR3/sodimm |
| **Architecture** | x86_64 | | **Architecture** | x86\_64 |
| **EC** | SMSC KBC1126, proprietary (in main boot flash) | | **EC** | SMSC KBC1126, proprietary (in main boot flash) |
| **Original boot firmware** | HP UEFI firmware | | **Original boot firmware** | HP UEFI firmware |
| **Intel ME/AMD PSP** | Present. Can be disabled with me_cleaner. | | **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. |
| **Flash chip** | SOIC-8 16MiB (128Mbit), in a socket | | **Flash chip** | SOIC-8 16MiB (128Mbit), in a socket |
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -53,52 +55,49 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
HP EliteBook 2170p laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
This is a portable, 11.6" Ivy Bridge platform from HP. More information is This is a portable, 11.6" Ivy Bridge platform from HP. More information is
available on the [coreboot available on the [coreboot
documentation](https://doc.coreboot.org/mainboard/hp/2170p.html) - that page documentation](https://doc.coreboot.org/mainboard/hp/2170p.html).
said (on 16 August 2023) that GRUB hangs due to the `at_keyboard` module, but
this is no longer true; it's
[fixed](https://git.savannah.gnu.org/cgit/grub.git/commit/?id=830456a6e3b6ac92d10f9261177722a308652a1a)
in the latest GRUB revisions, and Libreboot's version of GRUB contains this fix.
**Unavailable in Libreboot 20230625 or earlier. You must [compile from **Unavailable in Libreboot 20230625 or earlier. You must [compile from
source](../build/), or use at least Libreboot 20231021.** source](../build/), or use at least Libreboot 20231021.**
Build ROM image from source ### Build ROM image from source
---------------------------
The build target, when building from source, is thus: The build target, when building from source, is thus:
./mk -b coreboot hp2170p_16mb ./mk -b coreboot hp2170p_16mb
Installation Install Libreboot
============ -----------------
Insert binary files ### Insert binary files
-------------------
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
to adhere to this advice will result in a bricked machine) to adhere to this advice will result in a bricked machine)
Set MAC address ### Set MAC address
---------------
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
**REMOVE all power sources like battery, charger and so on, before doing this. **REMOVE all power sources like battery, charger and so on, before doing this.
This is to prevent short circuiting and power surges while flashing; although This is to prevent short circuiting and power surges while flashing; although

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2170p.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook 2560p title: Install Libreboot on HP EliteBook 2560p
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -34,16 +36,20 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Open source BIOS/UEFI firmware
-------------------------
Brief board info This document will teach you how to install Libreboot, on your
================ HP EliteBook 2560p laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
HP EliteBook 2560p is a 12.5" laptop you can read more about here: HP EliteBook 2560p is a 12.5" laptop you can read more about here:
<https://support.hp.com/us-en/product/hp-elitebook-2560p-notebook-pc/5071201> <https://support.hp.com/us-en/product/hp-elitebook-2560p-notebook-pc/5071201>
Installation of Libreboot Installation of Libreboot
========================= -------------------------
Coreboot also has some information: Coreboot also has some information:

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2560p.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook 2570p title: Install Libreboot on HP EliteBook 2570p
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -34,15 +36,23 @@ HP EliteBook 2570p
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
HP EliteBook 2570p laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
Brief board info Brief board info
================ ----------------
Vendor info here: Vendor info here:
<https://support.hp.com/us-en/document/c03412731> <https://web.archive.org/web/20231206103727/https://support.hp.com/us-en/document/c03412731>
Installation of Libreboot Installation of Libreboot
========================= -------------------------
Coreboot also has some information: Coreboot also has some information:

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2570p.

View file

@ -1,10 +1,12 @@
--- ---
title: HP Elite 8200 SFF/MT and 6200 Pro Business title: Install Libreboot on HP Elite 8200 SFF/MT and 6200 Pro Business
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -21,17 +23,17 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
| **CPU** | Intel Sandy/Ivy Bridge | | **CPU** | Intel Sandy/Ivy Bridge |
| **Graphics** | Intel HD Graphics or PCI-e low profile card | | **Graphics** | Intel HD Graphics or PCI-e low profile card |
| **Memory** | Up to 32GB (4x8GB) | | **Memory** | Up to 32GB (4x8GB) |
| **Architecture** | x86_64 | | **Architecture** | x86\_64 |
| **Intel ME/AMD PSP** | Present, neutered | | **Intel ME/AMD PSP** | Present, neutered |
| **Flash chip** | SOIC-8 8MiB | | **Flash chip** | SOIC-8 8MiB |
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -49,22 +51,18 @@ P*: Partially works with blobs
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Disable security before flashing Open source BIOS/UEFI firmware
================================ ------------------------------
Before internal flashing, you must first disable `/dev/mem` protections. Make This document will teach you how to install Libreboot, on your
sure to re-enable them after you're finished. HP Elite 8200 SFF desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
See: [Disabling /dev/mem protection](../install/devmem.md) that replaces proprietary BIOS/UEFI firmware.
Introduction
============
Libreboot has support for this, in the Git repository and release versions Libreboot has support for this, in the Git repository and release versions
from 20230423 onwards. from 20230423 onwards.
Brief board info ### Brief board info
----------------
HP Elite 8200 SFF is a small-form-factor desktop of Intel Sandybridge platform HP Elite 8200 SFF is a small-form-factor desktop of Intel Sandybridge platform
which you can read more about here: which you can read more about here:
@ -79,7 +77,15 @@ Here's the [Technical Reference Manual](https://web.archive.org/web/201601091432
This system supports Ivy Bridge processors too. The original BIOS This system supports Ivy Bridge processors too. The original BIOS
won't even POST with those, but with Libreboot they work fully. won't even POST with those, but with Libreboot they work fully.
Installation of Libreboot Disable security before flashing
--------------------------------
Before internal flashing, you must first disable `/dev/mem` protections. Make
sure to re-enable them after you're finished.
See: [Disabling /dev/mem protection](../install/devmem.md)
Install Libreboot
------------------------- -------------------------
You can actually just compile the Libreboot ROM for this, and flash the You can actually just compile the Libreboot ROM for this, and flash the
@ -146,8 +152,10 @@ between the pins until you can see the normal BIOS boot screen.
![](https://av.libreboot.org/hp8200sff/fdo\_screwdriver.jpg) ![](https://av.libreboot.org/hp8200sff/fdo\_screwdriver.jpg)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
Now, run this command: Now, run this command:
@ -266,7 +274,7 @@ the *ROM* by using the `-C` option in nvramtool. You can find this under the
directory `src/coreboot/default/util/nvramtool` when downloading coreboot inside directory `src/coreboot/default/util/nvramtool` when downloading coreboot inside
of lbmk by running the command: of lbmk by running the command:
./update trees -f coreboot default ./mk -f coreboot default
Go in there and type `make` to build nvramtool. Simply run nvramtool without Go in there and type `make` to build nvramtool. Simply run nvramtool without
arguments, and it will show a list of options. arguments, and it will show a list of options.

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8200 SFF motherboard.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook 820 G2 title: Install Libreboot on HP EliteBook 820 G2
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -35,12 +37,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -59,30 +61,56 @@ P*: Partially works with blobs
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Brief board info: Open source BIOS/UEFI firmware
-------------------------
Full hardware specifications can be found on HP's own website: This document will teach you how to install Libreboot, on your
HP EliteBook 820 G2 laptop motherboard.
<https://support.hp.com/gb-en/document/c04543492> Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
Introduction
============
Please build this from source with lbmk: Please build this from source with lbmk:
./mk -b coreboot hp820g2_12mb ./mk -b coreboot hp820g2_12mb
More information is available in the [build guide](../build/), including how More information is available in the [build guide](../build/), including how
to install build dependencies. Building from source is required, because there to install build dependencies.
aren't any ROM images for this board, in regular Libreboot releases. The
reason is that the vendor inject scripts don't currently work, because coreboot Alternatively, you can use pre-compiled release images.
compresses the refcode when inserting it at build time, and the process of
compression is not yet reproducible; it's not feasible to do so, and making Full hardware specifications can be found on HP's own website:
it not be compressed in flash would not be ideal either, so this is simply
a source-only port in Libreboot. <https://web.archive.org/web/20240210201322/https://support.hp.com/gb-en/document/c04543492>
Pre-compiled images now possible!
--------------------------------
From Libreboot 20241206 **revision 8** onwards, pre-compiled ROM images *are*
now available. Previous releases excluded images for this board, because vendor
file insertion was not reproducible, so you would get checksum errors. This
has been fixed with the following patch:
<https://browse.libreboot.org/lbmk.git/commit/?id=e8799310db26df89720e8476a701f1904932234b>
The refcode is inserted uncompressed, whereas upstream uses LZMA compression.
We can't predict how the implementation will change in the future, and any
behavioural changes would probably affect the checksum on insertion. Older
releases also didn't handle `rmodtool` on refcode insertion, which is used
to make the file relocatable in CBFS. See:
<https://doc.coreboot.org/lib/rmodules.html>
As of Libreboot 20241206 rev8, you can now use pre-compiled release images
and [insert vendor files](ivy_has_common.md).
The lack of refcode compression costs about 110KB, because the refcode file is
about 180KB uncompressed, but would be about 70KB compressed in flash. We
insert it uncompressed, so it's 180KB in flash. This is a small sacrifice,
considering that you still have about 10MB of unused flash space left, at least
as of the 20241206 rev8 release.
HP Sure Start HP Sure Start
============= -------------
There is a 16MB flash and a 2MB flash. Read this page for info: There is a 16MB flash and a 2MB flash. Read this page for info:
<https://doc.coreboot.org/mainboard/hp/hp_sure_start.html> <https://doc.coreboot.org/mainboard/hp/hp_sure_start.html>
@ -113,7 +141,7 @@ the Libreboot installation, because it's also important when updating
Libreboot later on. Libreboot later on.
Installation of Libreboot Installation of Libreboot
========================= -------------------------
Make sure to set the MAC address in the flash: Make sure to set the MAC address in the flash:
[Modify MAC addresses with nvmutil](../install/nvmutil.md). [Modify MAC addresses with nvmutil](../install/nvmutil.md).
@ -157,20 +185,50 @@ Refer generally to the [main flashing guide](../install/) and to
the [external flashing guide](../install/spi.md) so that you can learn how the [external flashing guide](../install/spi.md) so that you can learn how
to actually flash it. to actually flash it.
TPM 2.0 potentially supported TPM 2.0 supported
============================== -----------------------------
** DO NOT DO THIS WITH ORIGINAL BOOT FIRMWARE, IT BECAMES UNBOOTABLE; see
<https://github.com/iavael/infineon-firmware-updater/issues/2> **
The onboard TPM is an SLB 9660, which supports TPM 1.2 but it is known to be The onboard TPM is an SLB 9660, which supports TPM 1.2 but it is known to be
compatible with TPM 2.0 via firmware upgrade. Although not yet tested, we have compatible with TPM 2.0 via firmware upgrade, but incompatible with stock rom.
some notes about that here:
[../../tasks/#hp-820-g2-tpm](../../tasks/#hp-820-g2-tpm) Only by externally backing up the stock flash and private flash, flashing libreboot, booting to OS, downgrading it, then reflashing stock firmware from backup would make it work again. **Untested, may work with HP TPM Configuration Utility on Windows.**
One way to do it is using the TPMFactoryUpd tool from
iavael's
<https://github.com/iavael/infineon-firmware-updater>
or
crass's github repo with SLB 966x firmware;
<https://github.com/crass/infineon-firmware-updater?tab=readme-ov-file#firmware>
after making it and checking the machine's tpm version with;
```
TPMFactoryUpd -info
```
Before upgrading, make sure the ownership is unclaimed and tpm enabled.
to update, you should use config file in the firmware folder inside the downloaded and extracted 9665FW update package_1.5.zip, then start the upgrade process:
```
TPMFactoryUpd -update config-file -config TPM12_latest.cfg
```
Not yet used meaningfully by Libreboot itself, but the TPM can be used to Not yet used meaningfully by Libreboot itself, but the TPM can be used to
implement things like measured boot. implement things like measured boot.
Similar models working with this firmware
----------
More testing is needed, but works almost flawlessly;
<https://libreboot.org/tasks/#zbook-14-15u-g2-elitebook-840-850-g2-820-g2>
References References
========== ----------
See: <https://doc.coreboot.org/soc/intel/broadwell/blobs.html> See: <https://doc.coreboot.org/soc/intel/broadwell/blobs.html>

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 820 G2.

View file

@ -1,10 +1,12 @@
--- ---
title: HP Compaq Elite 8300 USDT title: Install Libreboot HP Compaq Elite 8300 USDT
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -24,15 +26,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
| **Intel ME/AMD PSP** | Present, neutered | | **Intel ME/AMD PSP** | Present, neutered |
| **Flash chip** | SOIC-16 16MiB | | **Flash chip** | SOIC-16 16MiB |
Disable security before flashing Open source BIOS/UEFI firmware
================================ -------------------------
Before internal flashing, you must first disable `/dev/mem` protections. Make This document will teach you how to install Libreboot, on your
sure to re-enable them after you're finished. HP Elite 8300 USDT desktop motherboard. Libreboot replaces proprietary
BIOS/UEFI firmware.
See: [Disabling /dev/mem protection](../install/devmem.md)
# Introduction
This is a small but powerful desktop using Sandy or Ivy Bridge CPUs This is a small but powerful desktop using Sandy or Ivy Bridge CPUs
(of up to 65W TDP). (of up to 65W TDP).
@ -58,9 +57,21 @@ These features are tested and confirmed working:
* Wake on LAN * Wake on LAN
* Rebooting * Rebooting
# Installation Disable security before flashing
--------------------------------
## Internal flashing Before internal flashing, you must first disable `/dev/mem` protections. Make
sure to re-enable them after you're finished.
See: [Disabling /dev/mem protection](../install/devmem.md)
Install Libreboot
-----------------
These next sections will teach you how to install Libreboot on your
HP Elite 8300 USDT motherboard.
### Internal flashing
Internal flashing is possible. OEM BIOS versions 2.87 and 2.90 are confirmed Internal flashing is possible. OEM BIOS versions 2.87 and 2.90 are confirmed
compatible with this guide. BIOS 2.05 is confirmed **not** to work. compatible with this guide. BIOS 2.05 is confirmed **not** to work.
@ -81,8 +92,10 @@ crystal (small metal cylinder) and the power cable for the optical drive.
Boot into an OS of your choice (that has flashprog support). Boot into an OS of your choice (that has flashprog support).
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
The BIOS should no longer impose any write-protections. The BIOS should no longer impose any write-protections.
You can now use `flashprog -p internal` freely. You can now use `flashprog -p internal` freely.
@ -111,7 +124,7 @@ You can now move the jumper back to its original place.
By default, Libreboot applies no write-protection, so By default, Libreboot applies no write-protection, so
updating it can be done without the jumper anyway. updating it can be done without the jumper anyway.
## External flashing ### External flashing
Unbricking is possible by external flashing. You first need to remove Unbricking is possible by external flashing. You first need to remove
the optical disk drive and 2.5" HDD/SSD and the metal bracket that the optical disk drive and 2.5" HDD/SSD and the metal bracket that

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8300 USDT motherboard.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook 8460p title: Install Libreboot on HP EliteBook 8460p
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -31,12 +33,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -54,8 +56,16 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
-------------------------
These next sections will teach you how to install Libreboot, on your
HP EliteBook 8460p laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
Vendor manual [here](https://web.archive.org/web/20240814185019/https://h10032.www1.hp.com/ctg/Manual/c03253774.pdf).
**Unavailable in Libreboot 20231106 or earlier. You must [compile from **Unavailable in Libreboot 20231106 or earlier. You must [compile from
source](../build/), or use a release newer than 20231106.** source](../build/), or use a release newer than 20231106.**
@ -64,38 +74,35 @@ This is a beastly 14" Sandy Bridge platform from HP.
**NOTE: Until otherwise stated, only the Intel GPU variant is supported in **NOTE: Until otherwise stated, only the Intel GPU variant is supported in
Libreboot.** Libreboot.**
Build ROM image from source ### Build ROM image from source
---------------------------
The build target, when building from source, is thus: The build target, when building from source, is thus:
./mk -b coreboot hp8460pintel_8mb ./mk -b coreboot hp8460pintel_8mb
Installation Install Libreboot
============ -----------------
Insert binary files **Please take care to insert the vendor files, if using release images.**
-------------------
### Insert binary files
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
to adhere to this advice will result in a bricked machine) to adhere to this advice will result in a bricked machine)
Set MAC address ### Set MAC address
---------------
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](/nvmutil.md).
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
**REMOVE all power sources like battery, charger and so on, before doing this. **REMOVE all power sources like battery, charger and so on, before doing this.
This is to prevent short circuiting and power surges while flashing.** This is to prevent short circuiting and power surges while flashing.**

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8460p.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook 8470p title: Install Libreboot on HP EliteBook 8470p
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -31,12 +33,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -54,51 +56,49 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============
**Unavailable in Libreboot 20230625 or earlier. You must [compile from Open source BIOS/UEFI firmware
source](../build/), or use at least Libreboot 20231021.** ------------------------------
This document will teach you how to install Libreboot, on your
HP EliteBook 8470p laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
Official information about the laptop can be found here: Official information about the laptop can be found here:
<https://support.hp.com/gb-en/document/c03374369> <https://web.archive.org/web/20220813230511/https://support.hp.com/gb-en/document/c03374369>
This is a beastly 14" Ivy Bridge platform from HP. This is a beastly 14" Ivy Bridge platform from HP.
**NOTE: Until otherwise stated, only the Intel GPU variant is supported in **NOTE: Until otherwise stated, only the Intel GPU variant is supported in
Libreboot.** Libreboot.**
Build ROM image from source ### Build ROM image from source
---------------------------
The build target, when building from source, is thus: The build target, when building from source, is thus:
./mk -b coreboot hp8470pintel_16mb ./mk -b coreboot hp8470pintel_16mb
Installation Installation
============ ------------
Insert binary files ### Insert binary files
-------------------
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
to adhere to this advice will result in a bricked machine) to adhere to this advice will result in a bricked machine)
Set MAC address ### Set MAC address
---------------
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
**REMOVE all power sources like battery, charger and so on, before doing this. **REMOVE all power sources like battery, charger and so on, before doing this.
This is to prevent short circuiting and power surges while flashing.** This is to prevent short circuiting and power surges while flashing.**

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8470p.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook 8560w title: Install Libreboot on HP EliteBook 8560w
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -31,12 +33,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -54,8 +56,16 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
-------------------------
These next sections will teach you how to install Libreboot, on your
HP EliteBook 8560w laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
Vendor manual [here](https://web.archive.org/web/20240629174138/https://h10032.www1.hp.com/ctg/Manual/c03424153.pdf).
**Unavailable in Libreboot 20240126 or earlier. You must [compile from **Unavailable in Libreboot 20240126 or earlier. You must [compile from
source](../build/), or use a release newer than 20240126.** source](../build/), or use a release newer than 20240126.**
@ -64,8 +74,7 @@ This is a beastly 15" Sandy Bridge mobile workstation from HP.
**Wi-Fi does not work. It shows correctly in lspci, but stays hard blocked.** **Wi-Fi does not work. It shows correctly in lspci, but stays hard blocked.**
GPU ### GPU
---
This laptop has upgradeable GPU: it has a socketed MXM-A 3.0 card. So far, This laptop has upgradeable GPU: it has a socketed MXM-A 3.0 card. So far,
only Quadro 1000M and 2000M (which shipped with the laptop originally) have only Quadro 1000M and 2000M (which shipped with the laptop originally) have
@ -89,38 +98,33 @@ If you have an eDP panel, you should be able to use newer cards than that.
As long as the card has an onboard VBIOS, Libreboot will execute it and As long as the card has an onboard VBIOS, Libreboot will execute it and
everything *should* work. **However, this is currently untested.** everything *should* work. **However, this is currently untested.**
Build ROM image from source ### Build ROM image from source
---------------------------
The build target, when building from source, is thus: The build target, when building from source, is thus:
./mk -b coreboot hp8560w_8mb ./mk -b coreboot hp8560w_8mb
Installation Installation
============ ------------
Insert binary files ### Insert binary files
-------------------
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
to adhere to this advice will result in a bricked machine) to adhere to this advice will result in a bricked machine)
Set MAC address ### Set MAC address
---------------
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
Flash a ROM image (hardware) ### Flash a ROM image (hardware)
-----------------
**REMOVE all power sources like battery, charger and so on, before doing this. **REMOVE all power sources like battery, charger and so on, before doing this.
This is to prevent short circuiting and power surges while flashing.** This is to prevent short circuiting and power surges while flashing.**

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8560w.

View file

@ -1,10 +1,12 @@
--- ---
title: HP EliteBook Folio 9470m title: Install Libreboot on HP EliteBook Folio 9470m
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -34,21 +36,31 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction Open source BIOS/UEFI firmware
============ ------------------------------
These sections will teach you how to install Libreboot, on your
HP EliteBook Folio 9470m laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard. HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard.
Vendor manual [here](https://web.archive.org/web/20240509202822/http://h10032.www1.hp.com/ctg/Manual/c03909856.pdf).
Libreboot has support for this, in the Git repository and release versions Libreboot has support for this, in the Git repository and release versions
from Libreboot 20230423 onwards. from Libreboot 20230423 onwards.
Installation of Libreboot Install Libreboot
========================= -----------------
You must first compile the Libreboot ROM You must first compile the Libreboot ROM
./mk -b coreboot hp9470m_16mb ./mk -b coreboot hp9470m_16mb
**You can also use release images, instead of compiling, but please make
sure to follow the notes below about vendorfile insertion, first!**
More information about building ROM images can be found in More information about building ROM images can be found in
the [build guide](../build). the [build guide](../build).
@ -69,8 +81,7 @@ in the same guide linked above, or read the nvmutil manual:
[Modify MAC addresses with nvmutil](../install/nvmutil.md). [Modify MAC addresses with nvmutil](../install/nvmutil.md).
Disassembly ### Disassembly
-----------
Remove the battery. Remove the battery.
@ -91,6 +102,8 @@ Some part of the board might turn on when programming. If programming fails,
you might have to attach the laptop to a charger. Make sure the laptop you might have to attach the laptop to a charger. Make sure the laptop
powers off before running flashprog. No LEDs should be lit. powers off before running flashprog. No LEDs should be lit.
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**

View file

@ -0,0 +1 @@
HP EliteBook Folio 9470m added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader.

View file

@ -10,7 +10,8 @@ can modify the ifd file with coreboot's ifdtool. You can use nvmutil to modify
the GbE NVM MAC address** the GbE NVM MAC address**
**If all you want to do is change the MAC address, you might use `nvmutil` **If all you want to do is change the MAC address, you might use `nvmutil`
instead. See: [nvmutil documentation](../install/nvmutil.md).** instead. See: [nvmutil documentation](../install/nvmutil.md), or use
the [inject script](ivy_has_common.md).**
The documentation below is *still valid*, if you actually want to use ich9utils. The documentation below is *still valid*, if you actually want to use ich9utils.
You can find it in older Libreboot releases, up to Libreboot 20230625. The only You can find it in older Libreboot releases, up to Libreboot 20230625. The only
@ -26,7 +27,7 @@ scrapped.
Anyway, ich9utils documentation: Anyway, ich9utils documentation:
Introduction Introduction
============ ------------
The `ich9utils` utility from Libreboot is used to manipulate Intel Flash The `ich9utils` utility from Libreboot is used to manipulate Intel Flash
Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically, Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically,
@ -74,7 +75,7 @@ More information about the ME can be found at
Another project: <http://io.netgarage.org/me/> Another project: <http://io.netgarage.org/me/>
ich9utils ich9utils
========= ---------
You can find `ich9utils` on the [Git page](../../git.md) or you can download You can find `ich9utils` on the [Git page](../../git.md) or you can download
`lbmk` from the same page at an under revision (around Libreboot 20230625 or `lbmk` from the same page at an under revision (around Libreboot 20230625 or
@ -84,7 +85,7 @@ Go in there and type `make` to get the binaries: `ich9deblob`, `ich9gen`
and `ich9show`. and `ich9show`.
ICH9 show utility {#ich9show} ICH9 show utility {#ich9show}
================ ---------------------------
The *ich9show* utility outputs the entire contents of the descriptor and GbE The *ich9show* utility outputs the entire contents of the descriptor and GbE
regions in a given ROM image as supplied by the user. Output is in Markdown regions in a given ROM image as supplied by the user. Output is in Markdown
@ -92,7 +93,7 @@ format (Pandoc variant) so that it can be converted easily into various
formats. It could even be piped *directly* into pandoc! formats. It could even be piped *directly* into pandoc!
ICH9 gen utility {#ich9gen} ICH9 gen utility {#ich9gen}
================ ---------------------------
When you simply run `ich9gen` without any arguments, it generates When you simply run `ich9gen` without any arguments, it generates
descriptor+GbE images with a default MAC address in the GbE region. If you wish descriptor+GbE images with a default MAC address in the GbE region. If you wish
@ -184,8 +185,7 @@ Your libreboot.rom image is now ready to be flashed on the system. Refer
back to [../install/\#flashprog](../install/#flashprog) for how to flash back to [../install/\#flashprog](../install/#flashprog) for how to flash
it. it.
Write-protecting the flash chip ### Write-protecting the flash chip
-------------------------------
The `ich9gen` utility (see below) generates two types of descriptor+GbE setup: The `ich9gen` utility (see below) generates two types of descriptor+GbE setup:
@ -199,7 +199,7 @@ the contents of flash).
For ease of use, libreboot provides ROMs that are read-write by default. For ease of use, libreboot provides ROMs that are read-write by default.
ICH9 deblob utility {#ich9deblob} ICH9 deblob utility {#ich9deblob}
=================== -----------------------------------
This was the tool originally used to disable the ME on X200 (later This was the tool originally used to disable the ME on X200 (later
adapted for other systems that use the GM45 chipset). adapted for other systems that use the GM45 chipset).
@ -209,7 +209,7 @@ not rely on dumping the factory.rom image (whereas, ich9deblob does).
Simply speaking, `ich9deblob` takes an original dump of the boot flash, where Simply speaking, `ich9deblob` takes an original dump of the boot flash, where
that boot flash contains a descriptor that defines the existence of Intel ME, that boot flash contains a descriptor that defines the existence of Intel ME,
and modifies it. The Intel Flash Descriptor is modified to disable the ME and modifies it. The Intel Flash Descriptor is modified to disable the ME
region. It disables the ME itself aswell. The GbE region is moved to the region. It disables the ME itself as well. The GbE region is moved to the
location just after the descriptor. The BIOS region is specified as being location just after the descriptor. The BIOS region is specified as being
after the descriptor+GbE regions, filling the rest of the boot flash. after the descriptor+GbE regions, filling the rest of the boot flash.
@ -278,7 +278,7 @@ back to [index.md/\#gm45](index.md/#gm45) for how to flash
it. it.
demefactory utility {#demefactory} demefactory utility {#demefactory}
=================== ----------------------------------
This utility has never been tested, officially, but it *should* work. This utility has never been tested, officially, but it *should* work.

View file

@ -0,0 +1 @@
Documentation pertaining to the deprecated ich9utils which can generate or modify Intel Flash Descriptors, and Intel GbE NVM images.

View file

@ -1,21 +1,34 @@
--- ---
title: Libreboot installation guides title: Install Libreboot Open Source BIOS/UEFI boot firmware
x-toc-enable: true x-toc-enable: true
... ...
Open source BIOS/UEFI boot firmware
------------------------------
With x86 machines, you can use the SeaBIOS or the GNU boot loader named GRUB as
a payload. On ARM
systems, you can use the U-Boot payload (coreboot still initialises hardware).
An x86/x86\_64 U-Boot UEFI payload is also available.
This article will teach you how to install Libreboot, on any of the supported This article will teach you how to install Libreboot, on any of the supported
laptop, desktop and server motherboards. laptop, desktop and server motherboards of Intel/AMD x86/x86\_64 and ARM64
platform.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
**ALWAYS remember to make a backup of the current flash, when overwriting it, **ALWAYS remember to make a backup of the current flash, when overwriting it,
regardless of what firmware you currently have and what firmware you're regardless of what firmware you currently have and what firmware you're
re-flashing it with; this includes updates between Libreboot releases. Use re-flashing it with; this includes updates between Libreboot releases. Use
the `-r` option in flashprog instead `-w`, to read from the flash.** the `-r` option in flashprog instead `-w`, to read from the flash.**
**SAFETY WARNING!** SAFETY WARNING!
==================================================================== ---------------
**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
LIBREBOOT](../../news/safety.md).**] YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
**If you're using release ROMs, some files may be missing inside them, and must **If you're using release ROMs, some files may be missing inside them, and must
be added. See: [Inserting Vendor Files](ivy_has_common.md).** be added. See: [Inserting Vendor Files](ivy_has_common.md).**
@ -23,7 +36,7 @@ be added. See: [Inserting Vendor Files](ivy_has_common.md).**
If you're [building from source](../build/), you can ignore the above guidance. If you're [building from source](../build/), you can ignore the above guidance.
Install Libreboot via external flashing Install Libreboot via external flashing
================= ---------------------------------------
Refer to the following article:\ Refer to the following article:\
[Externally rewrite 25xx NOR flash via SPI protocol](spi.md) [Externally rewrite 25xx NOR flash via SPI protocol](spi.md)
@ -35,7 +48,7 @@ externally or internally - if only external flashing is available, then it's
usually the case that only external dumping is available too. usually the case that only external dumping is available too.
Need help? Need help?
========== ----------
Help is available on [Libreboot IRC](../../contact.md) and other channels. Help is available on [Libreboot IRC](../../contact.md) and other channels.
@ -48,7 +61,7 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and
operates Minifree Ltd; sales provide funding for the Libreboot project. operates Minifree Ltd; sales provide funding for the Libreboot project.
Which systems are supported by Libreboot? Which systems are supported by Libreboot?
======================================== -----------------------------------------
Before actually reading the installation guides, please ensure that your Before actually reading the installation guides, please ensure that your
system is fully supported by Libreboot. More information about the Libreboot system is fully supported by Libreboot. More information about the Libreboot
@ -56,27 +69,21 @@ build system can be found in the [lbmk maintenance manual](../maintain/),
and information about porting new systems in and information about porting new systems in
the [porting manual](../maintain/porting.md). the [porting manual](../maintain/porting.md).
With x86 machines, you can use the SeaBIOS or GNU GRUB payloads. On ARM
systems, you can use the U-Boot payload (coreboot still initialises hardware).
Libreboot currently supports the following systems: Libreboot currently supports the following systems:
Games consoles ### Games consoles
--------------
- [Sony Playstation](playstation.md) (PS1/PSX) - [Sony Playstation](playstation.md) (PS1/PSX)
Servers (AMD, x86) ### Servers (AMD, x86)
------------------
- [ASUS KFSN4-DRE motherboard](kfsn4-dre.md) - [ASUS KFSN4-DRE motherboard](kfsn4-dre.md)
- [ASUS KGPE-D16 motherboard](kgpe-d16.md) - [ASUS KGPE-D16 motherboard](kgpe-d16.md)
Desktops (AMD, Intel, x86) ### Desktops (AMD, Intel, x86)
--------------------------
- **[Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Also [available to buy - [Dell OptiPlex 3050 Micro](dell3050.html) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)**
with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - Dell OptiPlex XE2 MT/SFF also known to work - [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Dell OptiPlex XE2 MT/SFF also known to work
- [Acer G43T-AM3](acer_g43t-am3.md) - [Acer G43T-AM3](acer_g43t-am3.md)
- Apple iMac 5,2 - Apple iMac 5,2
- [ASUS KCMA-D8 motherboard](kcma-d8.md) - [ASUS KCMA-D8 motherboard](kcma-d8.md)
@ -84,7 +91,6 @@ Desktops (AMD, Intel, x86)
research is needed) - 9010 also known to work. No GPIO changes, so it should research is needed) - 9010 also known to work. No GPIO changes, so it should
be safe to flash. be safe to flash.
- [Dell OptiPlex 780 variants e.g. MT, USFF](dell780.md) - [Dell OptiPlex 780 variants e.g. MT, USFF](dell780.md)
- [Dell OptiPlex 3050 Micro](dell3050.md)
- [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)** - [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)**
- Dell Precision T1700 (use the same ROM as 9020 MT, but it won't have ECC support) - Dell Precision T1700 (use the same ROM as 9020 MT, but it won't have ECC support)
- [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)** - [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)**
@ -94,14 +100,11 @@ Desktops (AMD, Intel, x86)
- Intel D510MO and D410PT motherboards - Intel D510MO and D410PT motherboards
- [Intel D945GCLF](d945gclf.md) - [Intel D945GCLF](d945gclf.md)
Laptops (Intel, x86) ### Laptops (Intel, x86)
--------------------
- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.md) - [Lenovo ThinkPad T480 and ThinkPad T480s](t480.html) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)**
- **Lenovo ThinkPad T440p - Also [available - Lenovo ThinkPad T440p
to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** - Lenovo ThinkPad W541
- **Lenovo ThinkPad W541 - Also [available to
buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - NOTE: W540 also compatible (same mainboard, so flash the same ROM)
- Lenovo ThinkPad X230 - *Also* available on Minifree: <https://minifree.org/product/libreboot-x230/> - Lenovo ThinkPad X230 - *Also* available on Minifree: <https://minifree.org/product/libreboot-x230/>
- [Apple MacBook1,1 and MacBook2,1](macbook21.md) - [Apple MacBook1,1 and MacBook2,1](macbook21.md)
- [Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel - [Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel
@ -129,19 +132,17 @@ Laptops (Intel, x86)
- Lenovo Thinkpad X220 / X200 Tablet - Lenovo Thinkpad X220 / X200 Tablet
- [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md) - [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md)
Laptops (ARM, with U-Boot payload) ### Laptops (ARM, with U-Boot payload)
----------------------------------
- [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md) - [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md)
- [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md) - [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md)
Emulation ### Emulation
---------
- [Qemu x86 and arm64](../misc/emulation.md) - [Qemu x86 and arm64](../misc/emulation.md)
**Disable security before flashing** Disable security before flashing
================================ --------------------------------
**Before internal flashing, you must first disable `/dev/mem` protections. Make **Before internal flashing, you must first disable `/dev/mem` protections. Make
sure to re-enable them after you're finished.** sure to re-enable them after you're finished.**
@ -149,7 +150,7 @@ sure to re-enable them after you're finished.**
**See: [Disabling /dev/mem protection](devmem.md)** **See: [Disabling /dev/mem protection](devmem.md)**
ROM image file names ROM image file names
==================== --------------------
Libreboot ROM images are named like Libreboot ROM images are named like
this: `payload_board_inittype_displaytype_keymap.rom` this: `payload_board_inittype_displaytype_keymap.rom`
@ -179,7 +180,7 @@ executed instead, if the primary payload is SeaBIOS, whether that be pure
SeaBIOS or a SeaGRUB setup. SeaBIOS or a SeaGRUB setup.
EC firmware updates EC firmware updates
=================== -------------------
Obviously, free EC firmware would be preferable, but it is not the case on Obviously, free EC firmware would be preferable, but it is not the case on
all machine. We would like to have free EC firmware on more machines, but for all machine. We would like to have free EC firmware on more machines, but for
@ -200,31 +201,28 @@ It is recommended that you update to the latest EC firmware version. The
Updating the EC can sometimes provide benefit depending on the vendor. For Updating the EC can sometimes provide benefit depending on the vendor. For
example, they might fix power issues that could then enhance battery life. example, they might fix power issues that could then enhance battery life.
ThinkPads ### ThinkPads
---------
See: <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> See: <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
Otherwise, check the Lenovo website to find the update utility for your Otherwise, check the Lenovo website to find the update utility for your
mainboard. motherboard.
HP EliteBooks ### HP EliteBooks
-------------
EC firmware is required in the main boot flash, but Libreboot's build system EC firmware is required in the main boot flash, but Libreboot's build system
automatically downloads this from HP for each machine, and inserts it, so automatically downloads this from HP for each machine, and inserts it, so
you don't have to worry. Just make sure that [vendor files are you don't have to worry. Just make sure that [vendor files are
inserted](ivy_has_common.md) if using release images. inserted](ivy_has_common.md) if using release images.
Other ### Other
-----
The same wisdom applies to other laptop vendors. The same wisdom applies to other laptop vendors.
Non-laptops typically do not have embedded controllers in them. Non-laptops typically do not have embedded controllers in them.
Libreboot installation instructions Libreboot installation instructions
=================================== -----------------------------------
In general, if Libreboot is already running, you can skip In general, if Libreboot is already running, you can skip
towards the final section on this page, which provides general internal towards the final section on this page, which provides general internal
@ -239,8 +237,7 @@ Therefore, before following generic guides, make sure to check first whether
your board has special instructions, otherwise use the generic guide at the your board has special instructions, otherwise use the generic guide at the
end of this article. end of this article.
Intel GbE MAC address (IFD-based systems) ### Intel GbE MAC address (IFD-based systems)
---------------------------------------
On all Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945 On all Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945
ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is
@ -250,8 +247,7 @@ flash, and can (must) be changed prior to installation.
You can use [nvmutil](nvmutil.md) to change the MAC address. You will perform You can use [nvmutil](nvmutil.md) to change the MAC address. You will perform
this modification to the ROM image, before flashing it. this modification to the ROM image, before flashing it.
Flash lockdown / boot security ### Flash lockdown / boot security
-------------------
This is referred to informally as *Secure libreBoot*. This is referred to informally as *Secure libreBoot*.
@ -263,10 +259,9 @@ See: [GRUB hardening / Secure libreBoot](../linux/grub_hardening.md)
If you already did this, it's possible that you may no longer be able to If you already did this, it's possible that you may no longer be able to
flash internally. If that is the case, you must [flash externally](spi.md). flash internally. If that is the case, you must [flash externally](spi.md).
Updating an existing installation ### Updating an existing installation
---------------------------------
Unless otherwise stated, in sections pertaining to each mainboard below, Unless otherwise stated, in sections pertaining to each motherboard below,
an existing Libreboot installation can be updated via internal flashing, an existing Libreboot installation can be updated via internal flashing,
without any special steps; simply follow the general internal flashing without any special steps; simply follow the general internal flashing
guide, in the final section further down this page. guide, in the final section further down this page.
@ -278,33 +273,29 @@ If you currently have the factory firmware, you probably need to flash
externally; on *some* machines, internal flashing is possible, usually with externally; on *some* machines, internal flashing is possible, usually with
special steps required that differ from updating an existing installation. special steps required that differ from updating an existing installation.
The next sections will pertain to specific mainboards, where indicated, The next sections will pertain to specific motherboards, where indicated,
followed by general internal flashing instructions where applicable. followed by general internal flashing instructions where applicable.
HP EliteBook 820 G2 (internal and external) ### HP EliteBook 820 G2 (internal and external)
-------------------
See: [HP EliteBook 820 G2 flashing guide](hp820g2.md) See: [HP EliteBook 820 G2 flashing guide](hp820g2.md)
The flashprog command is identical, except programmer selection, on external The flashprog command is identical, except programmer selection, on external
and internal flashing; internal is only possible if you already have Libreboot. and internal flashing; internal is only possible if you already have Libreboot.
HP EliteBook 8560w (vendor BIOS) ### HP EliteBook 8560w (vendor BIOS)
--------------------
If you have the factory If you have the factory
firmware: [HP 8560w external flashing guide](hp8560w.md) firmware: [HP 8560w external flashing guide](hp8560w.md)
Dell Latitude laptops (vendor BIOS) ### Dell Latitude laptops (vendor BIOS)
---------------------
See: [Dell Latitude flashing guide](latitude.md) See: [Dell Latitude flashing guide](latitude.md)
This applies to all supported Dell Latitude models. Remember to [update the This applies to all supported Dell Latitude models. Remember to [update the
MAC address with nvmutil](nvmutil.md), before flashing. MAC address with nvmutil](nvmutil.md), before flashing.
ThinkPad X200/T400/T500/W500/R400/R500 ### ThinkPad X200/T400/T500/W500/R400/R500
--------------------------------------
If you're running one of these with Lenovo BIOS, you must externally flash If you're running one of these with Lenovo BIOS, you must externally flash
Libreboot, because the original firmware restricts writes to the flash. Libreboot, because the original firmware restricts writes to the flash.
@ -325,35 +316,30 @@ You can find WSON8 probes online, that are similar to a SOIC8/SOIC16 clip. Your
mileage may very, but WSON8 has the same pinout as SOIC8 so you might have some mileage may very, but WSON8 has the same pinout as SOIC8 so you might have some
luck with that. luck with that.
Intel D510MO/D410PT (vendor BIOS) ### Intel D510MO/D410PT (vendor BIOS)
-----------------------
See: [External flashing guide](spi.md) - both boards are compatible with See: [External flashing guide](spi.md) - both boards are compatible with
the same image. the same image.
Gigabyte GA-G41M-ES2L (vendor BIOS) ### Gigabyte GA-G41M-ES2L (vendor BIOS)
---------------------
Internal flashing is possible, from factory BIOS to Libreboot, but special Internal flashing is possible, from factory BIOS to Libreboot, but special
steps are required. steps are required.
See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md) See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md)
Acer G43T-AM3 (vendor BIOS) ### Acer G43T-AM3 (vendor BIOS)
--------------------
See: [Acer G43T-AM3](acer_g43t-am3.md) See: [Acer G43T-AM3](acer_g43t-am3.md)
MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS) ### MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS)
-------------------------
MacBook *1,1* requires [external flashing](spi.md). MacBook *2,1* can always MacBook *1,1* requires [external flashing](spi.md). MacBook *2,1* can always
be flashed internally. iMac 5,2 can be flashed internally. be flashed internally. iMac 5,2 can be flashed internally.
Also check the [Macbook2,1 hardware page](macbook21.md) Also check the [Macbook2,1 hardware page](macbook21.md)
ASUS KCMA-D8 / KGPE-D16 (vendor BIOS) ### ASUS KCMA-D8 / KGPE-D16 (vendor BIOS)
--------------------------
[You must flash it externally](spi.md) (DIP-8 section) - also look at [You must flash it externally](spi.md) (DIP-8 section) - also look at
the [KGPE-D16 hardware page](kgpe-d16.md). the [KGPE-D16 hardware page](kgpe-d16.md).
@ -363,8 +349,7 @@ Further information is available on the [KCMA-D8 page](kcma-d8.md).
KGPE-D16 installation is essentially the same, with the same type of flash KGPE-D16 installation is essentially the same, with the same type of flash
IC (DIP-8). Refer to the external flashing guide. IC (DIP-8). Refer to the external flashing guide.
ASUS KFSN4-DRE (vendor BIOS) ### ASUS KFSN4-DRE (vendor BIOS)
-------------------------
This board uses LPC flash in a PLCC32 socket. This coreboot page shows an This board uses LPC flash in a PLCC32 socket. This coreboot page shows an
example of the push pin as a proof of concept: example of the push pin as a proof of concept:
@ -375,27 +360,23 @@ See: [ASUS KFSN4-DRE guide](kfsn4-dre.md)
Hot-swap the flash IC with another one while it's running, and flash it Hot-swap the flash IC with another one while it's running, and flash it
internally. internally.
Intel D945GCLF (vendor BIOS) ### Intel D945GCLF (vendor BIOS)
---------------------------------
See: [Intel D945GCLF flashing guide](d945gclf.md) See: [Intel D945GCLF flashing guide](d945gclf.md)
Dell OptiPlex 3050 Micro (vendor BIOS) ### Dell OptiPlex 3050 Micro (vendor BIOS)
---------------------
Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible. Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible.
This has the Intel Boot Guard, but Libreboot uses the *deguard* utility to This has the Intel Boot Guard, but Libreboot uses the *deguard* utility to
disable the Boot Guard on this Intel 7th gen board. disable the Boot Guard on this Intel 7th gen board.
Dell OptiPlex 7010/9010 SFF (vendor BIOS) ### Dell OptiPlex 7010/9010 SFF (vendor BIOS)
---------------------
Refer to the [7010/9020 SFF page](dell7010.md). Internal flashing also possible. Refer to the [7010/9020 SFF page](dell7010.md). Internal flashing also possible.
NOTE: If you have the *MT* variant, read the sections below instead (the SFF NOTE: If you have the *MT* variant, read the sections below instead (the SFF
ROM is only for SFF). ROM is only for SFF).
Dell OptiPlex 7010/9010 MT (vendor BIOS) ### Dell OptiPlex 7010/9010 MT (vendor BIOS)
---------------------
This board is essentially identical to the Dell Precision T1650, except that This board is essentially identical to the Dell Precision T1650, except that
it does not support ECC memory. Same wiring. it does not support ECC memory. Same wiring.
@ -403,22 +384,19 @@ it does not support ECC memory. Same wiring.
You can flash the T1650 image on this machine. NOTE: This applies to the MT You can flash the T1650 image on this machine. NOTE: This applies to the MT
variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*. variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*.
Dell Precision T1650 desktop ### Dell Precision T1650 desktop
------------------------------------
Refer to the [T1650 hardware page](t1650.md). External flashing Refer to the [T1650 hardware page](t1650.md). External flashing
required, or you can set the Service Mode jumper and flash internally (from required, or you can set the Service Mode jumper and flash internally (from
vendor firmware, to Libreboot). vendor firmware, to Libreboot).
Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700 ### Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700
------------------------------------
Refer to the [7020/9020 hardware page](dell9020.md). Internal Refer to the [7020/9020 hardware page](dell9020.md). Internal
flashing (from vendor firmware to Libreboot) is possible if you set the Service flashing (from vendor firmware to Libreboot) is possible if you set the Service
Mode jumper. Mode jumper.
HP EliteBook laptops (vendor BIOS) ### HP EliteBook laptops (vendor BIOS)
--------------------
Refer to the [hardware page]() for info about HP laptops, and Refer to the [hardware page]() for info about HP laptops, and
read the [external flashing guide](spi.md). read the [external flashing guide](spi.md).
@ -436,18 +414,15 @@ Links to specific HP laptop pages:
These pages provide more info about external flashing. You must remember These pages provide more info about external flashing. You must remember
to [insert vendor files](ivy_has_common.md), if you're using release ROMs. to [insert vendor files](ivy_has_common.md), if you're using release ROMs.
HP Elite 8200 SFF (vendor BIOS) ### HP Elite 8200 SFF (vendor BIOS)
-------------------------
See: [HP Elite 8200 SFF install guide](hp8200sff.md) See: [HP Elite 8200 SFF install guide](hp8200sff.md)
HP Elite 8300 USDT (vendor BIOS) ### HP Elite 8300 USDT (vendor BIOS)
----------------------------
See: [HP Elite 8200 USDT install guide](hp8300usdt.md) See: [HP Elite 8200 USDT install guide](hp8300usdt.md)
ThinkPad X220/X220T/T420/T420s/T520 ### ThinkPad X220/X220T/T420/T420s/T520
-----------------------------------
T420/T520: [T420 flash instructions](t420_external.md) T420/T520: [T420 flash instructions](t420_external.md)
@ -461,8 +436,7 @@ internally; you must use [an external flasher](spi.md).
Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220 Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220
has a single 8MB flash, instead of 8MB and 4MB. has a single 8MB flash, instead of 8MB and 4MB.
ThinkPad X230/T430/T530/W530/X230T ### ThinkPad X230/T430/T530/W530/X230T
----------------------------------
Internal flashing from vendor BIOS to Libreboot is possible, but not Internal flashing from vendor BIOS to Libreboot is possible, but not
recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md). recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md).
@ -472,8 +446,7 @@ See: [ThinkPad X230 install guide](x230_external.md).
Otherwise, refer to [external SPI flashing](spi.md). Otherwise, refer to [external SPI flashing](spi.md).
ThinkPad T60/X60/X60Tablet/X60S ### ThinkPad T60/X60/X60Tablet/X60S
-------------------------------
Only the Intel GPU is compatible. Do not flash the ATI GPU models. Only the Intel GPU is compatible. Do not flash the ATI GPU models.
@ -566,23 +539,20 @@ bootblock, set bucts back to zero:
The second flash can be done by simply following the general internal flashing The second flash can be done by simply following the general internal flashing
guide further down on this page. guide further down on this page.
ThinkPad T480/T480S (vendor BIOS) ### ThinkPad T480/T480S (vendor BIOS)
----------------------
See: See:
* [ThinkPad T480/T480S](t480.md) * [ThinkPad T480/T480S](t480.md)
Thinkpad T440p/W541 (vendor BIOS) ### Thinkpad T440p/W541 (vendor BIOS)
---------------------
Guides: Guides:
* [ThinkPad T440p flashing guide](t440p_external.md) * [ThinkPad T440p flashing guide](t440p_external.md)
* [ThinkPad W541 flashing guide](w541_external.md) * [ThinkPad W541 flashing guide](w541_external.md)
HP EliteBook laptops (vendor BIOS) ### HP EliteBook laptops (vendor BIOS)
-------------------------
Each machine has it's own guide: Each machine has it's own guide:
@ -595,16 +565,14 @@ Each machine has it's own guide:
* [HP EliteBook 8560w](hp8560w.md) * [HP EliteBook 8560w](hp8560w.md)
* [HP EliteBook Folio 9470m](hp9470m.md) * [HP EliteBook Folio 9470m](hp9470m.md)
HP Elite desktops (vendor BIOS) ### HP Elite desktops (vendor BIOS)
-------------------------
Each machine has it's own guide: Each machine has it's own guide:
* [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) * [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too)
* [HP Elite 8300 USDT](hp8300usdt.md) * [HP Elite 8300 USDT](hp8300usdt.md)
ARM-based Chromebooks ### ARM-based Chromebooks
---------------------
See: [Chromebook flashing instructions](chromebooks.md) See: [Chromebook flashing instructions](chromebooks.md)
@ -613,8 +581,7 @@ the x86 machines, because the Chromebooks still use flashrom with
the `-p host` argument instead of `-p internal` when flashing, and you typically the `-p host` argument instead of `-p internal` when flashing, and you typically
need to flash externally, due to Google's security model. need to flash externally, due to Google's security model.
QEMU (arm64 and x86) ### QEMU (arm64 and x86)
--------------------
Libreboot can be used on QEMU (virtual machine), which is useful for debugging Libreboot can be used on QEMU (virtual machine), which is useful for debugging
payloads and generally trying out Libreboot, without requiring real hardware. payloads and generally trying out Libreboot, without requiring real hardware.
@ -622,12 +589,12 @@ payloads and generally trying out Libreboot, without requiring real hardware.
See: [Libreboot QEMU guide](../misc/emulation.md) See: [Libreboot QEMU guide](../misc/emulation.md)
Install via host CPU (internal flashing) Install via host CPU (internal flashing)
======================================== ----------------------------------------
NOTE: This mainly applies to the x86 machines. NOTE: This mainly applies to the x86 machines.
Please check other sections listed above, to see if there is anything Please check other sections listed above, to see if there is anything
pertaining to your mainboard. Internal flashing means that you boot Linux or pertaining to your motherboard. Internal flashing means that you boot Linux or
BSD on the target machine, and run `flashprog` there, flashing the machine BSD on the target machine, and run `flashprog` there, flashing the machine
directly. directly.
@ -636,14 +603,13 @@ directly.
Internal flashing is often unavailable with the factory firmware, but it is Internal flashing is often unavailable with the factory firmware, but it is
usually possible when Libreboot is running (barring special circumstances). usually possible when Libreboot is running (barring special circumstances).
Run flashprog on host CPU ### Run flashprog on host CPU
------------------------
**Always remember to [insert vendor files](ivy_has_common.md), when using **Always remember to [insert vendor files](ivy_has_common.md), when using
release images. Otherwise, these files are added automatically at build release images. Otherwise, these files are added automatically at build
time, when building from source (but they are not present in release images).** time, when building from source (but they are not present in release images).**
### Flash chip size #### Flash chip size
Use this to find out: Use this to find out:
@ -651,7 +617,7 @@ Use this to find out:
In the output will be information pertaining to your boot flash. In the output will be information pertaining to your boot flash.
### Howto: read/write/erase the boot flash #### Howto: read/write/erase the boot flash
How to read the current chip contents: How to read the current chip contents:
@ -665,7 +631,7 @@ How to erase and rewrite the chip contents:
sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom
NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables
the safety checks in flashprog. Flashrom and coreboot change a lot, over the years, the safety checks in flashprog. Flashprog and coreboot change a lot, over the years,
and sometimes it's necessary to use this option. If you're scared, then just and sometimes it's necessary to use this option. If you're scared, then just
follow the above instructions, but remove that option. So, just use `-p internal`. follow the above instructions, but remove that option. So, just use `-p internal`.
If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't
@ -681,7 +647,7 @@ NOTE: there are exceptions where the above is not possible. Read about them in
the sections below: the sections below:
Removed boards Removed boards
============== --------------
These boards were in Libreboot, but have been removed with the intention of These boards were in Libreboot, but have been removed with the intention of
re-adding them at a later date. They were removed due to issues. List: re-adding them at a later date. They were removed due to issues. List:
@ -698,8 +664,7 @@ re-adding them at a later date. They were removed due to issues. List:
- [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md) - [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md)
- Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`) - Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`)
NOTES about removed boards ### NOTES about removed boards
--------------------------
**WARNING: veyron speedy boards (e.g. C201) have non-functional video init as **WARNING: veyron speedy boards (e.g. C201) have non-functional video init as
of 19 February 2023, and no fix is yet available on that date. See: of 19 February 2023, and no fix is yet available on that date. See:
@ -718,7 +683,7 @@ for now, and have been deleted from the Libreboot 20221214 and 20230319
releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e> releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e>
and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>** and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>**
d945gclf: Doesn't boot at all, according to last report. D510MO is still in D945GCLF: Doesn't boot at all, according to last report. D510MO is still in
lbmk but still was reported problematic; other boards should be fine (see list lbmk but still was reported problematic; other boards should be fine (see list
above). above).

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various laptop, desktop and server motherboards. Boot payloads like GNU GRUB.

View file

@ -1,74 +1,234 @@
--- ---
title: Insert vendor files on Sandybridge/Ivybridge/Haswell title: Insert vendor files not included in Libreboot release images
x-toc-enable: true x-toc-enable: true
... ...
Please make sure to install [build dependencies](../build/) if following this Open source BIOS/UEFI firmware
guide, and note that this guide assumes you use [lbmk.git](../git.md), not the ------------------------------
release archives, even if you're using release *ROM images*, which is fine.
Coreboot is nominally free software, but requires certain vendor code on some Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
boards, for certain functionalities; we cover this more thoroughly in that replaces proprietary BIOS/UEFI firmware, but some newer boards still
the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob occasionally need code from the hardware manufacturer in order to boot properly.
Reduction Policy](../../news/policy.md). This document will teach you how to handle such a scenario, and how to check
for it. For more context, please read Libreboot's [Binary Blob Reduction
Policy](../../news/policy.md) and [Freedom Status](../../freedom-status.md)
pages.
Therefore, you should just follow this guide if in any doubt. Otherwise, the **PLEASE MAKE SURE you read and follow the instructions on this page, prior
freedom status page lists all boards that require vendor files, and it says to flashing Libreboot, if required for your motherboard; failure to heed this
what they are. This is because Libreboot cannot directly distribute some of them, warning can and will result in a soft-brick, which would then necessitate
but they are extracted from vendor updates at build time, and inserted into recovery via [external flashing](spi.md) - regardless, you are advised to
images; when those images are then archived for release, the non-redistributable also read the external flashing guide just in caes, and have an external
filejs are removed. flasher handy in case you need it.**
The same logic can be used after the fact, to re-download and re-insert these Even if your board doesn't need vendor firmware inserted, you can also use this
files; the page that you're reading now will tell you how to do so. guide to change the GbE MAC address in the flash, if your board has an Intel
Gigabit Ethernet device (where an Intel Flash Descriptor is used).
*If in doubt, just follow these instructions anyway; if your board doesn't need WARNING: eCryptfs file name limits
vendor files inserted, nothing will happen. You only need to follow this guide ----------------------------------
if you use release ROMs; if you're building directly from source, using the
Libreboot build system, then you can just flash the result.*
Injecting vendor files into ROM Do not run the build system on a eCryptfs file system, because it has
very short file name limits and Libreboot's build system deals with very
long file names. We commonly get reports from this by Linux Mint users
who encrypt their home directory with eCryptfs; regular LUKS encryption will
do nicely.
Install build dependencies first
------------------------------------ ------------------------------------
You must determine the correct board name, for your board, based on the list **You will be compiling several small utilities from source code. This means
generated when running this command: you need the compilers and various libraries.**
./mk -b coreboot list **Please make sure to install [build dependencies](../build/)** before using this
guide, and note that this guide assumes you use [lbmk.git](../../git.md).
**Failure to adhere to this warning will result in vendor file insertion not
working. The insertion must work correctly, prior to Libreboot installation,
if your board requires it, otherwise your board simply will not boot.**
Introduction
------------
On *some* boards, but certainly not all of them, certain files are required from
the hardware vendor. Libreboot has strict [rules](../../news/policy.md)
governing this, and you can find more information on
the [Freedom Status](../../freedom-status.md) page.
Libreboot can't directly distribute *all* of these files, so some of them are
downloaded at build-time, and processed for insertion into the firmware images.
**On pre-compiled ROM images in releases, these files are removed, and can be
re-added using the same automation that was applied during the build process.**
Examples of these files can be found on
the [Freedom Status](../../freedom-status.md) page.
**If in doubt, you should simply follow these instructions. If your board
doesn't need vendor files, the tar archive won't be modified.**
### MAC address
Regardless of whether your board needs vendorfiles or not, you can also use
this command to change the MAC address on systems with Intel GbE regions in
the flash, where an Intel gigabit ethernet device is used.
For example, a Lenovo ThinkPad X200 doesn't need any files added, but can still
have the mac address changed; please continue reading!
### Injecting vendor files into tarballs
**WARNING: Older versions of nvmutil used `?` for random characters. Newer
versions use `x` instead. If you have an older version, use `?` instead,
when generating random characters in MAC addresses.**
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. 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.
If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. 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: Run the injection script pointing to the release archive you downloaded:
./vendor inject libreboot-RELEASE_targetname.tar.xz ./mk inject libreboot-RELEASE_targetname.tar.xz
**You are strongly advised only to insert it on the tarball, because then **NOTE: As of Libreboot 20241206 rev8 or newer, the above command will behave
checksums are verified to ensure that the vendor files were inserted correctly. the same way as if you declared `setmac` without argument, mentioned below:**
Otherwise, you can do it manually on each individual image, specifying the
board name with the instructions provided below:** Where a GbE region is present in the flash, you can also use the above command
to change the MAC address, by modifying it like so:
./mk inject libreboot-RELEASE_targetname.tar.xz setmac
Note that `setmac`, without additional argument, will *randomise* the MAC
address, setting a *local*, *unicast* MAC address. You can specify a custom
MAC address, like so:
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:01:02
The `setmac` command, without argument, is technically redundant, since MAC
addresses are randomised by default, every time you run the inject script.
If you wish to *skip* changing the MAC address (not recommended), you can
use the `keep` argument, like so:
./mk inject libreboot-RELEASE_targetname.tar.xz setmac keep
The `setmac` command works by inserting a reference GbE file, contained within
lbmk. The `keep` command makes lbmk *skip* changing your current GbE region;
it does not, for example, restore the reference GbE image from lbmk.
The `setmac` command, when not using `keep`, copied the default GbE file within
lbmk for that board, modifying the temporary copy and then inserting that. To
insert the *original file*, without modification, you can do this:
./mk inject libreboot-RELEASE_targetname.tar.xz setmac restore
The `restore` setting does the same as `setmac` (without `keep`), but skips
running `nvmutil`; it also skips building nvmutil. Essentially, this will
restore the default MAC address from standard release images.
The above MAC address is a random example; please make sure to use one that matches
your board, if you wish. You can also use randomisation this way; the `x` character
will be randomised, e.g.:
./mk inject libreboot-RELEASE_targetname.tar.xz setmac xx:xx:xx:xx:xx:xx
You can mix and match arbitrary characters with random ones, e.g.:
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 0x:xx:12:xa:6x:69
The script can automatically detect the board as long as you do not change the file name. 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 `/bin/release/`
Alternatively, you may patch only a single rom file, but you must supply the On Libreboot 20241206 rev8 or newer, releases newer than the 20241206 series,
correct board target name as alluded to above. and in the latest lbmk Git repository branch revisions (`master` branch), the
For example: commands above *directly modify the tarball*.
./vendor inject -r x230_libreboot.rom -b x230_12mb Older versions left the tarball unmodified, and extracted the modified images
to `bin/release/` - on current behaviour, you inject the tarball and then
extract the tarball yourself afterward, to flash the modified images.
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. ### Behaviour changes in Libreboot 20241206 rev8
For example:
./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd *Older* versions of this script would have produced the injected images under
the `bin/release/` directory, and/or allow you to do it on specific ROM images.
The *current* version, pertaining to this documentation, *only* supports injecting
tarballs, because the tarball-based mechanism verifies checksums on images,
after insertion.
The older versions of this script would have left the tarball unmodified, while
producing `bin/release/` containing your images.
The *current* version, pertaining to this documentation, modifies the tarball
itself. You can inject and un-inject. To un-inject, you can do:
./mk inject libreboot-RELEASE_targetname.tar.xz nuke
Running the `nuke` command will remove vendorfiles, and re-generate a file inside
the archive named `vendorhashes`. When running regular inject, not `nuke`,
the `vendorfiles` file is removed after insertion; this way, subsequent
injections are avoided, by detecting whether they're needed on the basis of
that file.
The nuke command is available because Libreboot's build system uses it when
producing release archives. You otherwise shouldn't use `nuke` yourself, except
for testing purposes or if you're just curious.
Libreboot 20241206 rev8 have different command structure for the inject script.
Older versions could insert into lone ROM images, with a special command, and
generally didn't have good error checking. The new version of this script is
much safer and easier to use. **These changes are also present in the latest
lbmk git repository.**
ALSO: Non-injected images do, on Libreboot 20241206 rev8 or higher, have 1 byte
of padding - yes, *1 byte* - at the end, to make flashprog fail to flash it due
to size mismatch versus chip size, and the words `DO_NOT_FLASH` are inserted
into the file name. With both of these things, the user is unlikely to flash
an image that hasn't been injected.
After injection, the `DO_NOT_FLASH` file name prefix is removed, as is the
padding, so that the injected images are ready to flash, and the tarball is
re-generated with these images.
ALSO: If vendorfiles are not needed, or if an error occurs, modification of
the tarball is avoided and it's left alone, UNLESS the following condition is
met:
If no errors occured, but no vendor files are needed, you can still inject a
new MAC address, where there is a GbE region. If there isn't a GbE region,
such modification is skipped (some boards don't have Intel gigabit ethernet,
and might have a different ethernet adapter instead).
When vendor files are inserted and/or a MAC address is inserted, the tarball
is re-generated. MAC address insertion is handled with [nvmutil](nvmutil.md);
the steps there are applied automatically.
Older release images, prior to 20241206 rev8, do not have `DO_NOT_FLASH` or
the 1-byte padding, so watch out! However, this script, the new version, is
backwards compatible with older releases.
That's one possible use for the `nuke` command, running it yourself. If you're
distributing the older release images, you could inject them, and then nuke
them; doing so will re-generate the `vendorhashes` file, *and* retroactively
pad them (and add `DO_NOT_FLASH` to the image file names). It would be pointless
for Libreboot to retroactively modify the official images in this way, since
20241206 rev8 and newer already has this done to it. Just be careful when
using the older tarballs.
Check that the files were inserted Check that the files were inserted
================================== ----------------------------------
### Automatic verification
You *must* ensure that the files were inserted. The inject command automatically You *must* ensure that the files were inserted. The inject command automatically
verifies checksums of the complete images, when you run it directly on a verifies checksums of the complete images, when you run it directly on a
release tarball, but not when running it manually on an individual image; release tarball.
checking it manually is useful for the latter, but you should probably just
insert it into the tarball. If there was an error, and/or the checksums didn't match, then the tarball won't
be modified. If you're using newer release images with `DO_NOT_FLASH` and
the one-byte padding (as described above), that's a good indicator, but older
release images didn't have this modification.
### Manual inspection
You could check the files manually, if you're paranoid, after insertion.
Some examples of how to do that in lbmk: Some examples of how to do that in lbmk:
@ -85,7 +245,15 @@ below):
./elf/cbfstool/TREENAME/cbfstool libreboot.rom print ./elf/cbfstool/TREENAME/cbfstool libreboot.rom print
You should check that the files were inserted in cbfs, if needed; for example, You should check that the files were inserted in cbfs, if needed; for example,
EC firmware or MRC firmware. EC firmware or MRC firmware, perhaps FSP.
FSP is redistributable by Intel, but not with modification. Since coreboot has
to de-concatenate FSP into its modules, and modify pointers in the FSP-M module,
for raminit, Libreboot treats FSP modules like other injectable vendor files.
(in the original 20241206 release, FSP was directly baked in; the change
described above was applied in Libreboot 20241206 and newer, and the 3050micro
image from Libreboot 20241008 was removed from Libreboot's rsync server)
Next: Next:
@ -96,22 +264,28 @@ Run hexdump on it:
hexdump flashregion_2_intel_me.bin hexdump flashregion_2_intel_me.bin
Check the output. If it's all `0xFF` (all ones) or otherwise isn't a bunch Check the output. If it's all `0xFF` (all ones) or zeroes or otherwise isn't a
of code, then the Intel ME firmware wasn't inserted. bunch of code, then the Intel ME firmware wasn't inserted. You could also run
the `me_cleaner` program on this file, to see if it gives you any information,
if you're not savvy enough to look at stuff in hexdump.
You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms.
This is because lbmk *automatically* neuters it, disabling it during This is because lbmk *automatically* neuters it, disabling it during
early boot. This is done using `me_cleaner`, which lbmk imports. early boot. This is done using `me_cleaner`, which lbmk imports. If the platform
uses MEv11 with Intel Boot Guard, the boot guard is automatically disabled
NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in by processing the MEv11 image with Mate Kukri's [deguard](deguard.md) utility.
the [nvmutil documentation](nvmutil.md).
Errata Errata
====== ------
This section should not concern you, if you're using newer Libreboot releases.
This section largely concerns *bugs* which existed in older releases, pertaining
to this documentation, and design changes made accordingly.
NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer 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 included for Haswell; MRC is a firmware for raminit, but we now provide native
raminit. The following targets no longer exist in the build system: raminit written by Angel Pons, for the coreboot project. The following targets
no longer exist in the build system:
* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead) * `t440pmrc_12mb` (use `t440plibremrc_12mb` instead)
* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead) * `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead)
@ -122,12 +296,33 @@ raminit. The following targets no longer exist in the build system:
* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead) * `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead)
* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead) * `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead)
FSP images are also no longer baked in on release images, from
Libreboot 20241206 rev8 or higher (or releases newer than the 20241206 series),
but the machines that use them still need them; they are injected instead,
using the commands shown above on this very page. Older images with FSP baked
directly into release images had `_fsp` in the file names; newer images that
need it to be injected have `_vfsp` in the file name. Releases from Libreboot
20241206 release series at revision 8 or higher, or releases newer than the
20241206 series, no longer include `_fsp` images as they are set `release="n"`
in the build system; these releases include `_vfsp` images instead. Newer
targets added in the future, that need FSP, will also have `_vfsp` in the
file name, for consistency.
To eliminate any doubt: `_fsp` targets were also removed from lbmk,
on 1 April 2025. Not everyone was aware of this change, yet the resulting build
was identical (when compiling from source). To eliminate all questions about it,
the `_fsp` targets were removed entirely. Please use the `_vfsp` targets from
now on, when dealing with any machine that uses Intel FSP.
This is written as errata because some users may still be using older release 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 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 Libreboot 20240225 release if you want to inject MRC and so on, for these older
targets. targets.
Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, Libreboot's [Binary Blob Reduction Policy](../../news/policy.md) is very strict,
and states: if a blob can be avoided, it must be avoided. Therefore, the MRC and states: if it can be done with free software exclusively, then it should be
is removed on Haswell and Libreboot will only use the libre raminit (called done with free software exclusively. Therefore, the MRC is removed on Haswell
NRI, short for Native Ram Initialisation). and Libreboot will only use the libre raminit (called NRI, short for Native Ram
Initialisation).
The four freedoms are absolute.

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your, with vendor code. Libreboot's strict Binary Blob Reduction Policy is observed.

View file

@ -1,174 +0,0 @@
---
title: Insert vendore files on Sandybridge/Ivybridge/Haswell
x-toc-enable: true
...
Regarding vendorfile insertion: if unsure, just follow these instructions.
If a given target does not require vendor files, none will be inserted.
**TODO: Re-translate this again to Ukrainian. It was translated before, but
the english page got heavily re-written.**
**NOTE: This page also applies to PM45 machine Dell Latitude E6400 if it
contains an Nvidia GPU (Libreboot vendor scripts can insert the VGA ROM)**
This is not a general purpose installation guide, but you *should read it*
before installing Libreboot! *This* guide *must* be followed, no matter what
method you use to install Libreboot; even if you compile from source, you should
still read this page for later reference.
For how to use an external programmer see the [25xx NOR flashing guide](/docs/install/spi.html)
Introduction
============
**PLEASE MAKE SURE you have build dependencies installed first. Although you
do not need to re-compile release ROMs, you should follow these instructions
before reading the instructions below:
<https://libreboot.org/docs/build/#first-install-build-dependencies>**
Coreboot is nominally free software, but requires certain vendor code on some
boards, for certain functionalities; it differs per board, and some boards do
not require vendor code of any kind in the flash. We cover this more thoroughly in
the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob
Reduction Policy](../../news/policy.md).
Well, not all of these files are freely redistributable. Coreboot does provide
vendor files in some cases, if the vendor has allowed it. In other cases,
extraction from factory firmware is required, or you can extract them from
vendor-supplied updates - Libreboot's build system does the latter.
When you [compile Libreboot ROM images from source](../build/), Libreboot will
automatically download any given vendor files required, for any given board
target. This is done without user intervention, and only when absolutely needed
to make the machine boot properly.
The problem?
------------
Well, if the files cannot be freely redistributed, then we can't provide them.
So how do we handle *that*, in the context of Libreboot releases?
The solution
------------
The answer is very simple: these files are **NOT** provided, at all! However,
the very same logic used by the build system can be run standalone, to re-insert
these vendor files on release ROMs. The `inject` script detects what files are
needed for your ROM image.
The script will detect what board you're inserting on, or you can manually tell
it what board, and it will fetch them for you, inserting them, so that your
board is ready to flash - flashing it without these required files may result in
a brick.
Vendor file locations
--------------
During auto-download of files, they are saved to these locations within the
Libreboot build system:
* ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will
be used by given boards, but the directory name may not match the board
target name.
* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` -
ditto 7010/9010 MT/SFF optiplex machines.
* SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/`
* Intel MRC firmware, provides raminit on HP EliteBook 820 G2
The above list refers to the *non-redistributable files*, and these are not
directly included in releases. These are auto-downloaded during the build.
The `me.bin` files are produced by extracting them from vendor updates and
neutering them with `me_cleaner` so that Intel ME is disabled during early boot.
Inject vendor files into ROM
------------------------------------
You must determine the correct board name, for your board, based on the list
generated when running this command:
./mk -b coreboot list
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.
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:
./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz
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 `/bin/release/`
Alternatively, you may patch only a single rom file, but you must supply the
correct board target name as alluded to above.
For example:
./vendor inject -r x230_libreboot.rom -b x230_12mb
Optionally, you can use this script to modify the mac address of the rom with the `-m` flag.
For example:
./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
Check that the files were inserted
==================================
You *must* ensure that the files were inserted.
Some examples of how to do that in lbmk:
./update trees -d coreboot TREENAME
Now you find `cbutitls/default`, which is a directory containing `cbfstool`
and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example
below):
./cbutils/default/cbfstool libreboot.rom print
You should check that the files were inserted in cbfs, if needed; for example,
EC firmware or MRC firmware.
Next:
./cbutils/default/ifdtool -x libreboot.rom
This creates several `.bin` files, one of which says `me` in it (Intel ME).
Run hexdump on it:
hexdump flashregion_2_intel_me.bin
Check the output. If it's all `0xFF` (all ones) or otherwise isn't a bunch
of code, then the Intel ME firmware wasn't inserted.
You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms.
This is because lbmk *automatically* neuters it, disabling it during
early boot. This is done using `me_cleaner`, which lbmk imports.
NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in
the [nvmutil documentation](nvmutil.md).
Errata
======
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:
* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead)
* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead)
* `w541mrc_12mb` (use `w541_12mb` instead)
* `w541bmrc_12mb` (use `w541_12mb` instead)
* `dell9020sff_12mb` (use `dell9020sff_nri_12mb` instead)
* `dell9020sffbmrc` (use `dell9020sff_nri_12mb` instead)
* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead)
* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead)
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.
Libreboot's [binary blob reduction policy](../../news/policy.md) 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).

View file

@ -1,13 +1,26 @@
--- ---
title: Ivybridge internal flashing title: Install Libreboot internally on Lenovo ThinkPad X230
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), Open source BIOS/UEFI firmware
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ------------------------------
This document will teach you how to install Libreboot, on your
Lenovo ThinkPad X230 laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
This document demonstrates an *internal flashing* method, by exploiting a
little-known security vulnerability in Lenovo's original UEFI firmware.
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
Ch1p's guide Ch1p's guide
============ ------------
This page tells you how to flash an ivybridge ThinkPad with Libreboot, This page tells you how to flash an ivybridge ThinkPad with Libreboot,
internally, when it has the Lenovo firmware on it. It was written independently internally, when it has the Lenovo firmware on it. It was written independently
@ -34,9 +47,6 @@ coreboot patch:
Anyway, follow ch1p's guide or this one. Ch1p was on Libreboot IRC and linked Anyway, follow ch1p's guide or this one. Ch1p was on Libreboot IRC and linked
the above guide, so it has been added here to honour him. the above guide, so it has been added here to honour him.
Introduction
============
External flashing still recommended External flashing still recommended
----------------------------------- -----------------------------------
@ -56,7 +66,7 @@ or just a dead ThinkPad. Proceed at your own risk!
If you prefer external flashing, see: [external flashing](x230_external.md) If you prefer external flashing, see: [external flashing](x230_external.md)
Internal flashing from vendor firmware (ThinkPads only) Internal flashing from vendor firmware (ThinkPads only)
---------------------------------------- -------------------------------------------------------
IVYBRIDGE ONLY: IVYBRIDGE ONLY:

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230.

View file

@ -1,12 +1,17 @@
--- ---
title: ASUS KCMA-D8 desktop/workstation board title: Install Libreboot on ASUS KCMA-D8
x-toc-enable: true x-toc-enable: true
... ...
TODO: this page is OLD. check that the info is still valid. TODO: this page is OLD. check that the info is still valid.
Introduction Open source BIOS/UEFI firmware
============ ------------------------------
This document will teach you how to install Libreboot, on your
ASUS KCMA-D8 server/workstation motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
Specifications available here: Specifications available here:
<https://www.asus.com/uk/Commercial-Servers-Workstations/KCMAD8/> <https://www.asus.com/uk/Commercial-Servers-Workstations/KCMAD8/>
@ -36,7 +41,7 @@ If you currently have the ASUS firmware, please ignore the above link and
instead refer to the section below: instead refer to the section below:
Flashing Flashing
======== --------
The default ASUS firmware write-protects the flash, so you have to remove the The default ASUS firmware write-protects the flash, so you have to remove the
chip and re-flash it using external hardware. chip and re-flash it using external hardware.
@ -56,7 +61,7 @@ Refer to the following guide:\
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
PCI option ROMs PCI option ROMs
=============== ---------------
Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and
loading PCI option ROMs automatically, both in GRUB and SeaBIOS on this machine. loading PCI option ROMs automatically, both in GRUB and SeaBIOS on this machine.
@ -66,21 +71,21 @@ So for example, if you wish to use an add-on graphics card, you can! It's no
problem, and should work just fine. problem, and should work just fine.
CPU coolers CPU coolers
=========== -----------
With some creativity, standard AM3+ coolers will work fine. With some creativity, standard AM3+ coolers will work fine.
2 x Socket C32 (LGA1207) available, so you can use 2 CPUs. (up to 32GiB per CPU) 2 x Socket C32 (LGA1207) available, so you can use 2 CPUs. (up to 32GiB per CPU)
CPU compatibility CPU compatibility
================= -----------------
- Opteron 4100 series: Incompatible - Opteron 4100 series: Incompatible
- Opteron 4200 series: Compatible - Opteron 4200 series: Compatible
- Opteron 4300 series: Compatible - Opteron 4300 series: Compatible
Board status (compatibility) {#boardstatus} Board status (compatibility) {#boardstatus}
============================ -------------------------------------
There are two ways to identify a supported KCMA-D8 board: There are two ways to identify a supported KCMA-D8 board:
@ -99,24 +104,24 @@ For more detailed information regarding the coreboot port, see
<https://raptorengineeringinc.com/coreboot/kcma-d8-status.php> <https://raptorengineeringinc.com/coreboot/kcma-d8-status.php>
Form factor {#formfactor} Form factor {#formfactor}
=========== -----------------------
This board is ATX form factor. While the [ATX standard, version 2.2](https://web.archive.org/web/20120725150314/http://www.formfactors.org/developer/specs/atx2_2.pdf) This board is ATX form factor. While the [ATX standard, version 2.2](https://web.archive.org/web/20120725150314/http://www.formfactors.org/developer/specs/atx2_2.pdf)
specifies board dimensions 305mm x 244mm, this board measures 305mm x 253mm; specifies board dimensions 305mm x 244mm, this board measures 305mm x 253mm;
please ensure that your case supports this extra ~cm in width. please ensure that your case supports this extra ~cm in width.
IPMI iKVM module add-on {#ipmi} IPMI iKVM module add-on {#ipmi}
======================= ----------------------------
Don't use it. It uses proprietary firmware and adds a backdoor (remote Don't use it. It uses proprietary firmware and adds a backdoor (remote
out-of-band management chip, similar to the [Intel Management out-of-band management chip, similar to the [Intel Management
Engine](../../faq.md#intelme). Fortunately, the firmware is Engine](../../faq.md#intelme). Fortunately, the firmware is
unsigned (possible to replace) and physically separate from the unsigned (possible to replace) and physically separate from the
mainboard since it's on the add-on module, which you don't have to motherboard since it's on the add-on module, which you don't have to
install. install.
Flash chips {#flashchips} Flash chips {#flashchips}
=========== -----------------------
2MiB flash chips are included by default, on these boards. It's on a 2MiB flash chips are included by default, on these boards. It's on a
P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes:
@ -133,13 +138,13 @@ Ideally, you should not hot-swap. Only remove the IC when the system is
powered down and disconnected from mains. powered down and disconnected from mains.
Native graphics initialization {#graphics} Native graphics initialization {#graphics}
============================== -----------------------------------------
Only text-mode is known to work, but linux(kernel) can initialize the Only text-mode is known to work, but linux(kernel) can initialize the
framebuffer display (if it has KMS - kernel mode setting). framebuffer display (if it has KMS - kernel mode setting).
NOTE: This section relates to the onboard ASpeed GPU. You *can* use an add-on NOTE: This section relates to the onboard ASpeed GPU. You *can* use an add-on
PCI-E GPU in one of the available slots on the mainboard. Nvidia GTX 780 cards PCI-E GPU in one of the available slots on the motherboard. Nvidia GTX 780 cards
are what libreboot recommends; it has excellent support in Nouveau (free Linux are what libreboot recommends; it has excellent support in Nouveau (free Linux
kernel / mesa driver for Nvidia cards) and generally works well; however, the kernel / mesa driver for Nvidia cards) and generally works well; however, the
performance won't be as high in Nouveau, compared to the non-free Nvidia driver performance won't be as high in Nouveau, compared to the non-free Nvidia driver
@ -147,7 +152,7 @@ because the Nouveau driver can't increase the GPU clock (it doesn't know how,
as of 18 March 2021). as of 18 March 2021).
Current issues {#issues} Current issues {#issues}
============== ----------------------
- Opteron 4100 series CPUs are currently incompatible - Opteron 4100 series CPUs are currently incompatible
- LRDIMM memory modules are currently incompatible - LRDIMM memory modules are currently incompatible

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KCMA-D8 motherboard.

View file

@ -1,5 +1,5 @@
--- ---
title: ASUS KFSN4-DRE server/workstation board title: Install Libreboot on ASUS KFSN4-DRE
x-toc-enable: true x-toc-enable: true
... ...
@ -12,7 +12,7 @@ x-toc-enable: true
|----------------------------|------------------------------------------------| |----------------------------|------------------------------------------------|
| **Manufacturer** | ASUS | | **Manufacturer** | ASUS |
| **Name** | KFSN4-DRE | | **Name** | KFSN4-DRE |
| **Released** | ? | | **Released** | 2007 |
| **Chipset** | nVIDIA nForce Professional 2200 | | **Chipset** | nVIDIA nForce Professional 2200 |
| **CPU** | AMD Opteron 2000 series (Barcelona Family) | | **CPU** | AMD Opteron 2000 series (Barcelona Family) |
| **Graphics** | XGI Z9s VGA Controller | | **Graphics** | XGI Z9s VGA Controller |
@ -24,12 +24,12 @@ x-toc-enable: true
| **Flash chip** | PLCC 1MiB (Upgradable to 2MiB) | | **Flash chip** | PLCC 1MiB (Upgradable to 2MiB) |
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -48,24 +48,34 @@ P*: Partially works with blobs
| **SeaBIOS with GRUB** | Partially works | | **SeaBIOS with GRUB** | Partially works |
</div> </div>
Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
ASUS KFSN4-DRE server/workstation motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
This is a server board using AMD hardware (Fam10h). It can also be used This is a server board using AMD hardware (Fam10h). It can also be used
for building a high-powered workstation. Powered by libreboot. for building a high-powered workstation. Powered by libreboot.
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashprog](../install/) [../install/\#flashprog](../install/)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
Form factor {#formfactor} Form factor {#formfactor}
=========== ---------------------
These boards use the SSI EEB 3.61 form factor; make sure that your case These boards use the SSI EEB 3.61 form factor; make sure that your case
supports this. This form factor is similar to E-ATX in that the size is supports this. This form factor is similar to E-ATX in that the size is
identical, but the position of the screws are different. identical, but the position of the screws are different.
Flash chips {#flashchips} Flash chips {#flashchips}
=========== -----------------------
These boards use LPC flash (not SPI), in a PLCC socket. The default These boards use LPC flash (not SPI), in a PLCC socket. The default
flash size 1MiB (8Mbits), and can be upgraded to 2MiB (16Mbits). flash size 1MiB (8Mbits), and can be upgraded to 2MiB (16Mbits).
@ -78,18 +88,18 @@ extractor. These can be found online. See
<http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools>* <http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools>*
Native graphics initialization {#graphics} Native graphics initialization {#graphics}
============================== ---------------------------------------
Native graphics initialization exists (XGI Z9s) for this board. Native graphics initialization exists (XGI Z9s) for this board.
Framebuffer- and text-mode both work. A serial port is also available. Framebuffer- and text-mode both work. A serial port is also available.
Memory Memory
====== -------
DDR2 533/667 Registered ECC. 16 slots. Total capacity up to 64GiB. DDR2 533/667 Registered ECC. 16 slots. Total capacity up to 64GiB.
Hex-core CPUs {#hexcore} Hex-core CPUs {#hexcore}
============= ---------------------
PCB revision 1.05G is the latest version of this board and the best one PCB revision 1.05G is the latest version of this board and the best one
(the revision number is be printed on the board), if you want to use (the revision number is be printed on the board), if you want to use
@ -103,7 +113,8 @@ To be sure your board supports a CPU check the official ASUS website here:
If you are running a Hex-Core CPU on any board version, please contact us. If you are running a Hex-Core CPU on any board version, please contact us.
Board configurations {#configurations} Board configurations {#configurations}
============== ----------------------------------------
There are 7 different configurations of this board: "standard", 2S, iKVM, There are 7 different configurations of this board: "standard", 2S, iKVM,
iKVM/IST, SAS, SAS/iKVM and SAS/iKVM/IST. iKVM/IST, SAS, SAS/iKVM and SAS/iKVM/IST.
@ -122,7 +133,7 @@ The IST versions with PCB revision 1.05G are the ones who are believed to
support the six core Opteron Istanbul processors (2400 and 8400 series). support the six core Opteron Istanbul processors (2400 and 8400 series).
Current issues {#issues} Current issues {#issues}
============== -----------------------
- There seems to be a 30 second bootblock delay (observed by - There seems to be a 30 second bootblock delay (observed by
tpearson); the system otherwise boots and works as expected. See tpearson); the system otherwise boots and works as expected. See
@ -149,7 +160,7 @@ Current issues {#issues}
the USB booting doesn't work. the USB booting doesn't work.
Other information Other information
================= ------------------
[specifications](https://web.archive.org/web/20181212180051/http://ftp.tekwind.co.jp/pub/asustw/mb/Socket%20F/KFSN4-DRE/Manual/e3335_kfsn4-dre.pdf) [specifications](https://web.archive.org/web/20181212180051/http://ftp.tekwind.co.jp/pub/asustw/mb/Socket%20F/KFSN4-DRE/Manual/e3335_kfsn4-dre.pdf)

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KFSN4-DRE motherboard.

View file

@ -3,10 +3,18 @@ title: ASUS KGPE-D16 server/workstation board
x-toc-enable: true x-toc-enable: true
... ...
Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
ASUS KGPE-D16 server/workstation motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
TODO: OLD page. TODO: check that all the info is still valid. TODO: OLD page. TODO: check that all the info is still valid.
Introduction Free your BIOS today!
============ ---------------------
This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs
available). It can also be used for building a high-powered workstation. available). It can also be used for building a high-powered workstation.
@ -26,34 +34,34 @@ possible to re-flash using software running in Linux on the
KGPE-D16, without using external hardware. KGPE-D16, without using external hardware.
CPU compatibility CPU compatibility
================= -----------------
Opteron 62xx and 63xx CPUs work just fine. Opteron 62xx and 63xx CPUs work just fine.
Board status (compatibility) {#boardstatus} Board status (compatibility) {#boardstatus}
============================ ---------------------
See <https://raptorengineeringinc.com/coreboot/kgpe-d16-status.php>. See <https://raptorengineeringinc.com/coreboot/kgpe-d16-status.php>.
Form factor {#formfactor} Form factor {#formfactor}
=========== ----------------------
These boards use the SSI EEB 3.61 form factor; make sure that your case These boards use the SSI EEB 3.61 form factor; make sure that your case
supports this. This form factor is similar to E-ATX in that the size is supports this. This form factor is similar to E-ATX in that the size is
identical, but the position of the screws are different. identical, but the position of the screws are different.
IPMI iKVM module add-on {#ipmi} IPMI iKVM module add-on {#ipmi}
======================= --------------------------
Don't use it. It uses proprietary firmware and adds a backdoor (remote Don't use it. It uses proprietary firmware and adds a backdoor (remote
out-of-band management chip, similar to the [Intel Management out-of-band management chip, similar to the [Intel Management
Engine](../../faq.md#intelme). Fortunately, the firmware is Engine](../../faq.md#intelme). Fortunately, the firmware is
unsigned (possibly to replace) and physically separate from the unsigned (possibly to replace) and physically separate from the
mainboard since it's on the add-on module, which you don't have to motherboard since it's on the add-on module, which you don't have to
install. install.
Flash chips {#flashchips} Flash chips {#flashchips}
=========== --------------------------
2MiB flash chips are included by default, on these boards. It's on a 2MiB flash chips are included by default, on these boards. It's on a
P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes:
@ -72,13 +80,13 @@ This guide shows how to flash the chip:\
[25xx NOR flashing guide](../install/spi.md) [25xx NOR flashing guide](../install/spi.md)
Native graphics initialization {#graphics} Native graphics initialization {#graphics}
============================== ----------------------------------
Only text-mode is known to work, but linux(kernel) can initialize the Only text-mode is known to work, but linux(kernel) can initialize the
framebuffer display (if it has KMS - kernel mode setting). framebuffer display (if it has KMS - kernel mode setting).
Current issues {#issues} Current issues {#issues}
============== ----------------------------------
- LRDIMM memory modules are currently incompatible - LRDIMM memory modules are currently incompatible
(IT MAY WORK NOWADAYS, TODO TEST) (IT MAY WORK NOWADAYS, TODO TEST)

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KGPE-D16 motherboard.

View file

@ -1,19 +1,33 @@
--- ---
title: Flashing Libreboot on Dell Latitude laptops title: Install Libreboot on Dell Latitude laptops
x-toc-enable: true x-toc-enable: true
... ...
Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on various models of
Dell Latitude laptop motherboard, namely Dell Latitude E4300, E6400, E6400 XFR,
E6400 ATG, E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330
and E6220; you must only install Libreboot on models with *Intel graphics*.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
In case any models are unlisted in the above paragraph, you should also check
the full list of supported Dell Latitude models on the [Libreboot hardware
compatibility](./#which-systems-are-supported-by-libreboot) page.
All of the Dell Latitude models can be flashed internally, which means that All of the Dell Latitude models can be flashed internally, which means that
you do not need to disassemble them. You can do it from Linux/BSD, using the you do not need to disassemble them. You can do it from Linux/BSD, using the
instructions on this page. instructions on this page.
Disable security before flashing Disable security before flashing
================================ --------------------------------
**[SAFETY WARNING: Always insert vendor files before flashing.](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
or look directly at [Injecting Vendor Files](ivy_has_common.md). If you flash YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
Libreboot without inserting vendor files, you will brick the machine; if you there, before flashing. For posterity,
do, please follow the external flashing instructions linked below.** [here is the link again](ivy_has_common.md).**
Please also [disable /dev/mem protection](devmem.md), otherwise flashprog Please also [disable /dev/mem protection](devmem.md), otherwise flashprog
and dell-flash-unlock won't work. You can re-enable the protections after and dell-flash-unlock won't work. You can re-enable the protections after
@ -24,13 +38,13 @@ Note that Libreboot does not currently implement UEFI on x86 platforms, but
you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing. you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing.
MAC address MAC address
=========== -----------
Make sure to set your own MAC address in the ROM image before flashing. Make sure to set your own MAC address in the ROM image before flashing.
Please read the [nvmutil manual](nvmutil.md) which says how to do this. Please read the [nvmutil manual](nvmutil.md) which says how to do this.
Thermal safety Thermal safety
============== --------------
**Thermal safety**: this machine shuts down very quickly, when the machine **Thermal safety**: this machine shuts down very quickly, when the machine
exceeds 80c CPU temperature, which is far more conservative than on most exceeds 80c CPU temperature, which is far more conservative than on most
@ -39,18 +53,16 @@ excellent. More info available [here](../install/dell_thermal.md). This is a
known bug, but otherwise the machine will be mostly stable. known bug, but otherwise the machine will be mostly stable.
Machine-specific notes Machine-specific notes
====================== ----------------------
Latitude E6400 ### Latitude E6400
--------------
Vendor files not required for Dell Latitude E6400 if you have the Intel GPU. Vendor files not required for Dell Latitude E6400 if you have the Intel GPU.
If you have the Nvidia model, please use the `e6400nvidia_4mb` target, and If you have the Nvidia model, please use the `e6400nvidia_4mb` target, and
make sure to run the inject script. make sure to run the [inject script](ivy_has_common.md) prior to flashing.
E6400 nvidia issues ### E6400 nvidia issues
-------------------
See: <https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758> See: <https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758>
@ -59,8 +71,7 @@ The `nv` drivers on BSD systems generally work, but can have severe performance
issues; use of a tiling window manager is recommended, on BSD systems, because issues; use of a tiling window manager is recommended, on BSD systems, because
moving windows around can literally lag a lot otherwise, on most window managers. moving windows around can literally lag a lot otherwise, on most window managers.
dGPU variants ### dGPU variants
-------------
On everything except E6400, Libreboot only supports the variant with an Intel On everything except E6400, Libreboot only supports the variant with an Intel
GPU. Therefore, you must *only* purchase a Dell Latitude that has the Intel GPU. Therefore, you must *only* purchase a Dell Latitude that has the Intel
@ -68,7 +79,7 @@ graphics; even on E6400, this is good advice, due to issues with the Nvidia
GPU on E6400, documented later in this guide. GPU on E6400, documented later in this guide.
Internal flashing Internal flashing
================= -----------------
You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and
run `flashprog` from there, for Libreboot installation. Certain other steps run `flashprog` from there, for Libreboot installation. Certain other steps
@ -130,12 +141,11 @@ successful. If you don't see that, or you're unsure, please [contact the
Libreboot project via IRC](../../contact.md). Libreboot project via IRC](../../contact.md).
External flashing External flashing
================= -----------------
General guidance ### General guidance
----------------
Machine-specific disassembly instructions not provided, but you can find Machine-specific disassembly instructions are not provided, but you can find
the hardware maintenance manual for your Latitude module online. Just search the hardware maintenance manual for your Latitude module online. Just search
for it. The flash chips(s) is/are usually under the keyboard/palmrest. Near for it. The flash chips(s) is/are usually under the keyboard/palmrest. Near
to the PCH/southbridge. to the PCH/southbridge.
@ -153,10 +163,9 @@ Please read the [external SPI flash guide](spi.md)
External flashing is usually not required, on these machines. External flashing is usually not required, on these machines.
Chip size guidance ### Chip size guidance
------------------
SOme Dell Latitudes use a single flash chip, so you can Some Dell Latitudes use a single flash chip, so you can
just use the ROM images as-is. just use the ROM images as-is.
If there are two flash chips, you must split the ROM images. Check the silk If there are two flash chips, you must split the ROM images. Check the silk

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various Dell Latitude laptop models.

View file

@ -4,7 +4,7 @@ x-toc-enable: true
... ...
Introduction (GM45+e1000) Introduction (GM45+e1000)
========================= -------------------------
This section is applicable to all libreboot-supported laptops with the This section is applicable to all libreboot-supported laptops with the
mobile 4 series chipset (as shown in `$ lspci`) mobile 4 series chipset (as shown in `$ lspci`)
@ -17,15 +17,11 @@ for the built-in gigabit ethernet controller is stored inside the flash chip,
along with libreboot and other configuration data. Therefore, installing along with libreboot and other configuration data. Therefore, installing
libreboot will overwrite it. libreboot will overwrite it.
Thus, for these laptops, prebuilt libreboot already contains a generic Thus, for these laptops, prebuilt libreboot images already contain a generic
MAC address in the configuration section. This address is `00:f5:f0:40:71:fe MAC address in the GbE region.
in builds before 2018-01-16 and `00:4c:69:62:72:65` (see the ascii character
set) afterwards.
Unless you change it, your computer will boot and use it. This can lead Unless you change it, your computer will boot and use it. This can lead
to network problems if you have more than one libreboot computer on to network problems if you have more than one libreboot computer on
the same layer2 network (e.g. on the same network switch). The switch the same layer2 network (e.g. on the same network switch).
(postman) will simply not know who to deliver to as the MAC (house) addresses
will be the same.
To prevent these address clashes, you can either modify prebuilt libreboot To prevent these address clashes, you can either modify prebuilt libreboot
to use an address of your own choosing or you can change the address in your to use an address of your own choosing or you can change the address in your
@ -35,7 +31,7 @@ In either case, it is a good idea to write down the address that your
computer originally had. computer originally had.
Obtaining the existing MAC address Obtaining the existing MAC address
================================== ----------------------------------
The existing MAC address may be obtained by the following methods: The existing MAC address may be obtained by the following methods:
@ -65,7 +61,7 @@ The existing MAC address may be obtained by the following methods:
updated. updated.
Changing the MAC address in the operating system Changing the MAC address in the operating system
================================================ ------------------------------------------------
There are three portable ways of doing so: There are three portable ways of doing so:
@ -90,19 +86,8 @@ init scripts or you can use your operating system's own networking
configuration. Refer to your operating system's documentation for configuration. Refer to your operating system's documentation for
how to do this. how to do this.
Changing the MAC address on X200/T400/T500/W500 Changing the MAC address (e.g. X230/T440p)
=============================================== -----------------------------------------------------------------
On GM45 laptops with ICH9M southbridge and Intel PHY module, the MAC address
is hardcoded in boot flash, which means it can be changed if you re-flash.
See [ich9utils documentation](../install/ich9utils.md)
If *all* you want to do is change the MAC address, you might try `nvmutil`
instead. See notes below:
Changing the MAC address on ivybridge/sandybridge/haswell (e.g. X230/T440p)
=========================================================
See [nvmutil documentation](../install/nvmutil.md) See [nvmutil documentation](../install/nvmutil.md)
@ -111,15 +96,6 @@ Sandybridge, Ivybridge and Haswell platforms, but it can be used on any
platform with a valid GbE region in flash, where an Intel Flash Descriptor platform with a valid GbE region in flash, where an Intel Flash Descriptor
is used; this includes older GM45+ICH9M machines supported by Libreboot. is used; this includes older GM45+ICH9M machines supported by Libreboot.
The `ich9utils` program is more useful in an lbmk context, because it
generates an entire Intel Flash Descriptor and GbE region from scratch;
coreboot has a similar method in its build system, using its own utility
called bincfg, but this tool is unused in lbmk.
No tool like ich9utils exists for these boards yet, but lbmk includes the IFD
and GbE files in-tree (Intel ME is handled by extracting from Lenovo updates,
which the build system automatically fetches from the internet).
You can use `nvmutil` to change the existing MAC address in a GbE region. This You can use `nvmutil` to change the existing MAC address in a GbE region. This
sets the "hardcoded" MAC address, typically a globally assigned one set by sets the "hardcoded" MAC address, typically a globally assigned one set by
the vendor. the vendor, but you can use local addresses, and you can use randomised MACs.

View file

@ -0,0 +1 @@
Libreboot lets you modify the MAC address on various supported motherboards. This guide will teach you how to change your MAC address, by various means.

View file

@ -1,5 +1,5 @@
--- ---
title: MacBook2,1 and MacBook1,1 title: Install Libreboot on MacBook2,1 and MacBook1,1
x-toc-enable: true x-toc-enable: true
... ...
@ -20,19 +20,19 @@ x-toc-enable: true
| **Graphics** | Intel GMA 950 | | **Graphics** | Intel GMA 950 |
| **Display** | 1280x800 TFT | | **Display** | 1280x800 TFT |
| **Memory** | 512MB, 1GB (upgradable to 4GB with 3GB usable) | | **Memory** | 512MB, 1GB (upgradable to 4GB with 3GB usable) |
| **Architecture** | x86_64 | | **Architecture** | x86\_64 |
| **EC** | Proprietary | | **EC** | Proprietary |
| **Original boot firmware** | Apple EFI | | **Original boot firmware** | Apple EFI |
| **Intel ME/AMD PSP** | Not present. | | **Intel ME/AMD PSP** | Not present. |
| **Flash chip** | SOIC-8 2MiB (Upgradable to 16MiB) | | **Flash chip** | SOIC-8 2MiB (Upgradable to 16MiB) |
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -50,6 +50,15 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Open source BIOS/UEFI firmware
-------------------------
This document will teach you how to install Libreboot, on your
Apple MacBook 2,1 2005-2007 laptop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
The MacBook1,1 and MacBook2,1 are very similar to the The MacBook1,1 and MacBook2,1 are very similar to the
ThinkPad X60. It shares some hardware with the X60 such as the chipset. ThinkPad X60. It shares some hardware with the X60 such as the chipset.
@ -63,21 +72,20 @@ uses Core Duo processors (supports 32-bit OS but not 64-bit), and it is
believed that this is the only difference. believed that this is the only difference.
Compatibility Compatibility
============= -------------
The following pages list many models of MacBook1,1 and MacBook2,1: The following pages list many models of MacBook1,1 and MacBook2,1:
* <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1> * <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1>
* <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1> * <http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1>
Models ### Models
------
Specifically (Order No. / Model No. / CPU) for the MacBook1,1: Specifically (Order No. / Model No. / CPU) for the MacBook1,1:
* MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)* * MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)*
* MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 *(tested - working)* * MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 *(tested - working)*
* MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested) * MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)*
For the MacBook2,1: For the MacBook2,1:
@ -86,9 +94,11 @@ For the MacBook2,1:
* MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested - * MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested -
working)* working)*
* MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 *(tested - * MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 *(tested -
working)*
* MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested - * MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested -
working)* working)*
* MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested - working)* * MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested -
working)*
* MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested - * MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested -
working)* working)*
@ -99,20 +109,22 @@ then don't forget to [send a patch](../../git.md), confirming that it
actually works! actually works!
Internal flashing Internal flashing
================= -----------------
MacBook2,1 can always be flashed internally, even if running Apple firmware: MacBook2,1 can always be flashed internally, even if running Apple firmware:
sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w your.rom sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w your.rom
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
The MacBook1,1 can't be flashed internally if running the Apple EFI firmware. The MacBook1,1 can't be flashed internally if running the Apple EFI firmware.
You must flash externally. You must flash externally.
External flashing External flashing
================= -----------------
MacBook1,1 requires external flashing, if running the default Apple firmware. MacBook1,1 requires external flashing, if running the default Apple firmware.
MacBook2,1 can be flashed internally, regardless. MacBook2,1 can be flashed internally, regardless.
@ -132,7 +144,7 @@ Refer to the following guide:\
[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md)
OSes using Linux on Apple EFI firmware OSes using Linux on Apple EFI firmware
====================================== --------------------------------------
You have 2 choices for booting up OSes using Linux as their kernel You have 2 choices for booting up OSes using Linux as their kernel
on the MacBook: on the MacBook:
@ -141,8 +153,7 @@ on the MacBook:
* Boot via a CD or DVD. * Boot via a CD or DVD.
Boot via a CD or DVD ### Boot via a CD or DVD
--------------------
The Apple EFI firmware contains a PC BIOS emulation layer for booting The Apple EFI firmware contains a PC BIOS emulation layer for booting
Microsoft Windows on CDs and DVDs. That emulation layer **only** works Microsoft Windows on CDs and DVDs. That emulation layer **only** works
@ -172,8 +183,7 @@ should boot up properly automatically.
to it using GRUB, despite the fact that it does sometimes show up. You to it using GRUB, despite the fact that it does sometimes show up. You
also won't be able to boot it up when using Libreboot.* also won't be able to boot it up when using Libreboot.*
Boot via USB ### Boot via USB
------------
This method is harder than booting from a CD/DVD and may soft-brick your This method is harder than booting from a CD/DVD and may soft-brick your
MacBook but it's the only way to boot up successfully from a USB. MacBook but it's the only way to boot up successfully from a USB.
@ -211,14 +221,14 @@ the CMOS/PRAM battery, wait a few minutes, and put it back in.
to reconfigure GRUB2 correctly, else your system won't boot.* to reconfigure GRUB2 correctly, else your system won't boot.*
Coreboot wiki page Coreboot wiki page
================== ------------------
The following page has some information: The following page has some information:
* <https://www.coreboot.org/Board:apple/macbook21> * <https://www.coreboot.org/Board:apple/macbook21>
Issues and solutions/workarounds Issues and solutions/workarounds
================================ --------------------------------
There is one mouse button only, however multiple finger tapping There is one mouse button only, however multiple finger tapping
works. The Apple logo on the works. The Apple logo on the
@ -229,8 +239,7 @@ should [cover it up](http://cweiske.de/tagebuch/tuxbook.htm).
software. Webcams are a privacy and security risk; cover it up! Or software. Webcams are a privacy and security risk; cover it up! Or
remove it.* remove it.*
Make it overheat less ### Make it overheat less
---------------------
NOTE: on newer libreboot revisions, this section is less relevant, because C3 NOTE: on newer libreboot revisions, this section is less relevant, because C3
states are supported now. However, this section may still be useful, so it will states are supported now. However, this section may still be useful, so it will
@ -270,8 +279,7 @@ PLATFORM_PROFILE_ON_BAT=low-power
The MacBook will still overheat, just less. The MacBook will still overheat, just less.
Enable AltGr ### Enable AltGr
------------
The keyboard has a keypad enter instead of an AltGr. The first key on The keyboard has a keypad enter instead of an AltGr. The first key on
the right side of the spacebar is the Apple "command" key. On its the right side of the spacebar is the Apple "command" key. On its
@ -295,12 +303,11 @@ line:
to the file /etc/vconsole.conf and then restart the computer. to the file /etc/vconsole.conf and then restart the computer.
Make touchpad more responsive ### Make touchpad more responsive
-----------------------------
Linux kernels of version 3.15 or lower might make the touchpad Linux kernels of version 3.15 or lower might make the touchpad
extremely sluggish. A user reported that they could get better extremely sluggish. A user reported that they could get better
response from the touchpad with the following in their xorg.conf: response from the touchpad with the following in their `xorg.conf`:
``` ```
Section "InputClass" Section "InputClass"

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Apple MacBook 2,1 and 1,1 circa 2006.

View file

@ -1,10 +1,11 @@
--- ---
title: nvmutil manual title: nvmutil usage instructions
x-toc-enable: true x-toc-enable: true
... ...
With this software, you can change the MAC address inside GbE regions With this software, you can change the MAC address inside GbE regions
on any system that uses an Intel Flash Descriptor. on any system that uses an Intel Flash Descriptor. This software works well
on most/all of the major Linux or BSD operating systems.
This is the reference documentation for `nvmutil`, but an automated script This is the reference documentation for `nvmutil`, but an automated script
using nvmutil is available for ivy/sandybridge and haswell hardware, when using nvmutil is available for ivy/sandybridge and haswell hardware, when
@ -15,38 +16,71 @@ inserting vendor files, which you can use to change the MAC address. See:
You can use the documentation below, if you wish to use `nvmutil` manually. You can use the documentation below, if you wish to use `nvmutil` manually.
Continue reading... Continue reading...
Introduction Change the Intel GbE MAC address
============ --------------------------------
This is the manual for `nvmutil`, included in the Libreboot, This is the manual for `nvmutil`, included within the [Libreboot build
build system (lbmk) under `util/nvmutil/`. This program lets you modify system](../maintain/) (lbmk) under `util/nvmutil/`. This program lets you modify
the MAC address, correct/verify/invalidate checksums, the MAC address, correct/verify/invalidate checksums, swap/copy and dump regions
swap/copy and dump regions on Intel PHY NVM images, on Intel PHY NVM images, which are small binary configuration files that go in
which are small binary configuration files that go flash, for Gigabit (ethernet) Intel NICs.
in flash, for Gigabit (ethernet) Intel NICs.
This software is largely targeted at coreboot users, **Please [install build dependencies](../build/) before you do this.**
but it can be used on most modern Intel systems, or
most systems from about 2008/2009 onwards.
NOTE: Libreboot X200/X200T/X200S/T400/T400S/T500/W500/R400 This software is largely targeted at coreboot users, but it can be used on most
users should know that this software does *not* modern Intel systems, or most systems from about 2008/2009 onwards, regardless
replace `ich9gen`, because that program generates entire of which boot firmware they have.
ICH9M IFD+GbE regions, in addition to letting you set the
MAC address. *This* program, `nvmutil`, can *also* set
the MAC address on those machines, but it operates on a
single GbE dump that is already created.
This program is operated on dumps of the GbE NVM image, This program is operated on dumps of the GbE NVM image, which normally goes in
which normally goes in the boot flash (alongside BIOS/UEFI the boot flash (alongside BIOS/UEFI or coreboot, IFD and other regions in
or coreboot, IFD and other regions in the flash). The first the flash). The first half of this README is dedicated to precisely this,
half of this README is dedicated to precisely this, telling telling you how to dump or otherwise acquire that file; the second half of this
you how to dump or otherwise acquire that file; the second README then tells you how to operate on it, using `nvmutil`.
half of this README then tells you how to operate on it,
using `nvmutil`. Automatic MAC address changer
-----------------------------
**Please [install build dependencies](../build/) before you do this.**
**WARNING: Older versions of nvmutil used `?` for random characters. Newer
versions use `x` instead. If you have an older version, use `?` instead,
when generating random characters in MAC addresses.**
Instead of running nvmutil manually, like below, you can
also use the inject command, like so (examples):
./mk inject libreboot-RELEASE_targetname.tar.xz
./mk inject libreboot-RELEASE_targetname.tar.xz setmac
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:11:22
./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:xx:16:0x:1x:22
./mk inject libreboot-RELEASE_targetname.tar.xz setmac restore
This writes the MAC address on the GbE region of the image. You must do this
on the tarball, from the ROM image release archives, and then extract the
archive.
These same commands also [download/insert certain vendor files](ivy_has_common.md)
if needed, on the given board.
Without argument after the tarball, it behaves the same as `setmac`. If `setmac`
is provided without argument, or no argument is given, the MAC address is
randomised. Otherwise, you can specify an arbitrary address.
The `x` character is random, and you can specify that any of them be random,
while setting others (or all of them) arbitrarily. On the corresponding nibble,
the bit for unicast/multicast and global/local are set accordingly, so that
randomly generated addresses are *always* unicast and *local*, unless the
corresponding nibble is set arbitrarily; if the latter, then an error is thrown
if the arbitrary nibble corresponds to a multicast MAC address (and when errors
are thrown, the file shall remain unchanged). More information about error
handling is provided, later in this document.
The `restore` option restores the original one. The command works by using a
reference GbE image file present in Libreboot's build system, for the given
motherboard.
How to download newer versions How to download newer versions
============================== ------------------------------
Simply pull down the latest changes in `lbmk.git`. The `nvmutil` Simply pull down the latest changes in `lbmk.git`. The `nvmutil`
software is now part of lbmk, since 17 November 2022. software is now part of lbmk, since 17 November 2022.
@ -56,7 +90,7 @@ More info about git:
* <https://git-scm.com/> * <https://git-scm.com/>
Context Context
======= -------
On many Intel systems with an IFD (Intel Flash Descriptor), the On many Intel systems with an IFD (Intel Flash Descriptor), the
Intel PHY (Gigabit Ethernet) stores its configuration, binary Intel PHY (Gigabit Ethernet) stores its configuration, binary
@ -82,13 +116,25 @@ fact work nicely, but software such as Linux will check
that this is correct. If the checksum is invalid, your that this is correct. If the checksum is invalid, your
kernel will refuse to make use of the NIC. kernel will refuse to make use of the NIC.
This NVM section is the first 128 bytes of a 4KB region in flash. This NVM section is the first 128 bytes of a *block size* KB region in flash.
This 4KB region is then repeated, to make an 8KB region in This *block size* KB region is then repeated, to make an *block size multipled
by two* KB region in
flash, known as the *GbE region*. In `nvmutil`, the first part flash, known as the *GbE region*. In `nvmutil`, the first part
is referred to as *part 0* and the second part as *part 1*. is referred to as *part 0* and the second part as *part 1*.
Known compatible PHYs The block size can be 4KB, 8KB or 64KB, meaning that GbE files can
--------------------- be 8KB, 16KB or 128KB; the first half is part 0 and the second half is part 1.
The first 4KB of each part is what we are concerned with; and in each 4KB part
is the 128-byte NVM area at the very start, containing our configuration.
**NOTE: Support for 16KB and 128KB files was only added *after* the
Libreboot 20241206 release. It will be available in all releases after that,
or you can simply compile nvmutil from the Libreboot Git repository lbmk,
from directory `util/nvmutil/` - on the older releases, and older versions of
nvmutil, only 8KB GbE files are supported, but we mostly only use 8KB files
anyway (you're very unlikely to encounter 16KB or 128KB files).**
### Known compatible PHYs
TODO: write a full list her ofe what actual PHYs are known to work. TODO: write a full list her ofe what actual PHYs are known to work.
@ -101,7 +147,7 @@ files; it is assumed that intel would later change the
file size and/or checksum value and/or checksum location. file size and/or checksum value and/or checksum location.
How to obtain the GbE file How to obtain the GbE file
========================== --------------------------
The chip containing your BIOS/UEFI firmware (or coreboot) has The chip containing your BIOS/UEFI firmware (or coreboot) has
it, if you have an Intel PHY for gigabit ethernet. it, if you have an Intel PHY for gigabit ethernet.
@ -111,11 +157,12 @@ containing your NIC's configuration. This is the part that
many people will struggle with, so we will dedicated an many people will struggle with, so we will dedicated an
entire next section to it: entire next section to it:
Use flashprog ### Use flashprog
------------
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
If you wish to operate on the GbE section that's already If you wish to operate on the GbE section that's already
flashed, you should *dump* the current full ROM image. flashed, you should *dump* the current full ROM image.
@ -138,7 +185,16 @@ a single-flash setup. In that case, it's recommended to dump
both chips, as `spi1.rom` and `spi2.rom`; you can then cat both chips, as `spi1.rom` and `spi2.rom`; you can then cat
them together: them together:
cat spi1.rom spi2.rom > rom.bin cat spi1.rom spi2.rom > rom.bin # WARNING: see note below
**WARNING: After concatenating the files, please ensure that you did so in
the correct order. In `hexdump -C rom.bin` you can check for the Intel Flash
Descriptor near the start of the file, for the bytes `5a a5 f0 0f`. You may
alternatively attempt extraction with `ifdtool -x rom.bin`, adding
the `--platform OPTION` option if needed, based on output from `--help` if
you need to (it lists platform strings for certain newer Intel platforms). If
ifdtool extraction fails, then that is another indication that you did not
cat the files correctly.**
If your GbE region is locked (per IFD settings), you can dump If your GbE region is locked (per IFD settings), you can dump
and flash it using external flashing equipment. The Libreboot and flash it using external flashing equipment. The Libreboot
@ -152,8 +208,7 @@ option should be changed accordingly. Read flashprog
documentation, and make sure you have everything documentation, and make sure you have everything
properly configured. properly configured.
Use ifdtool ### Use ifdtool
-----------
NOTE: This has only been tested on systems that use IFDv1 NOTE: This has only been tested on systems that use IFDv1
(Intel Flash Descriptor, version 1). This distinction, between (Intel Flash Descriptor, version 1). This distinction, between
@ -170,12 +225,24 @@ with `make`, to get an ifdtool binary.
To make internal flashing possible later on, you might do: To make internal flashing possible later on, you might do:
ifdtool --unlock rom.bin ifdtool --unlock rom.bin # READ THE WARNING BELOW FIRST
**WARNING: On ThinkPad T480/T480s and OptiPlex 3050 Micro, do this instead:**
ifdtool --platform sklkbl --unlock rom.bin
Running this command will create a modified image, Running this command will create a modified image,
named `rom.bin.new`. This file will have all regions set named `rom.bin.new`. This file will have all regions set
to read-write, per configuration in the Intel Flash Descriptor. to read-write, per configuration in the Intel Flash Descriptor.
Note: if you want the original image to be modified, without needing to
keep track of `rom.bin.new` as mentioned above, use the -O switch. For example,
repeating the above command:
ifdtool --unlock rom.bin -O rom.bin
(add the `--platform` option if you need to)
In addition to unlocked regions, you may wish to *neuter* the In addition to unlocked regions, you may wish to *neuter* the
Intel Management Engine, removing all the nasty spying features Intel Management Engine, removing all the nasty spying features
from it, using `me_cleaner`. See: from it, using `me_cleaner`. See:
@ -188,7 +255,7 @@ article, so you should read their documentation.
Now run this: Now run this:
ifdtool -x rom.bin ifdtool -x rom.bin # For T480/3050micro, add: --platform sklkbl
Several files will be created, and the one you need to Several files will be created, and the one you need to
operate on is named `flashregion_3_gbe.bin` so please operate on is named `flashregion_3_gbe.bin` so please
@ -198,7 +265,7 @@ Read the notes below about how to use the `nvmutil` program,
operating on this file. When you're done, you can insert the operating on this file. When you're done, you can insert the
modified GbE file back into your ROM image, like so: modified GbE file back into your ROM image, like so:
ifdtool -i gbe:flashregion_3_gbe.bin rom.bin ifdtool -i gbe:flashregion_3_gbe.bin rom.bin # For T480/3050micro, add: --platform sklkbl
This will create the file `rom.bin.new`, which contains This will create the file `rom.bin.new`, which contains
your modified GbE section with the NVM images inside; this your modified GbE section with the NVM images inside; this
@ -215,6 +282,16 @@ region, like so:
flashprog -p internal --ifd -i gbe -w rom.bin.new flashprog -p internal --ifd -i gbe -w rom.bin.new
**WARNING: If using `--ifd` in flashprog, note that flashprog probably doesn't
have anything similar to the `--platform` option in ifdtool. Therefore, you
way wish to specify the regions manually. You can do this quite simply, by:**
ifdtool -f layout.txt rom.bin # For T480/3050micro, add: --platform sklkbl
and instead of `--ifd` in flashprog, use:
flashprog -p internal -l layout.txt -i gbe -w rom.bin.new
If you're running flashprog from host CPU on the target If you're running flashprog from host CPU on the target
system, and it's dual flash, you can just flash the system, and it's dual flash, you can just flash the
concatenated image, which you created earlier by running concatenated image, which you created earlier by running
@ -227,8 +304,11 @@ the `-p internal` parameter to something else. In this
situation, you should re-split the file accordingly, if situation, you should re-split the file accordingly, if
you have a dual-IC flash set, like so: you have a dual-IC flash set, like so:
dd if=rom.bin.new of=spi2.rom bs=1M skip=8 dd if=rom.bin.new of=spi2.rom bs=1M skip=8 # WARNING: see note below
dd if=rom.bin.new of=spi1.rom bs=1M count=8 dd if=rom.bin.new of=spi1.rom bs=1M count=8 # WARNING: see note below
**WARNING: The commands above assume SPI1 is 8MB and SPI2 is 4MB, making 12MB
total. Please adapt accordingly, for your own configuration.**
These files would then be flashed externally, separately, These files would then be flashed externally, separately,
using an external programmer. using an external programmer.
@ -241,7 +321,7 @@ SPI1. You should adjust the above parameters, according
to your configuration. to your configuration.
How to compile source code How to compile source code
========================== --------------------------
The nvmutil source code is located under `util/nvmutil/` in the The nvmutil source code is located under `util/nvmutil/` in the
lbmk repository. A makefile is included there, for you to build an lbmk repository. A makefile is included there, for you to build an
@ -266,8 +346,7 @@ The `nvmutil` software has been build-tested on `Clang`, `GCC`
and `tcc`. Only standard library functions (plus `err.h`) are and `tcc`. Only standard library functions (plus `err.h`) are
used, so you don't need any extra libraries. used, so you don't need any extra libraries.
How to compile it ### How to compile nvmutil
-----------------
First, ensure that the current working directory is your First, ensure that the current working directory is your
copy of the nvmutil source code! copy of the nvmutil source code!
@ -283,7 +362,7 @@ whatever is in your `$PATH` for userspace programs).
TODO: Add `make install` to the Makefile, portably. TODO: Add `make install` to the Makefile, portably.
How to use nvmutil How to use nvmutil
================== ------------------
You run it, passing as argument the path to a file, and you run You run it, passing as argument the path to a file, and you run
commands on that file. This section will tell you how to commands on that file. This section will tell you how to
@ -295,8 +374,7 @@ done that, you could still run it in cwd for instance:
./nvm bla bla bla ./nvm bla bla bla
Exit status ### Exit status
-----------
The `nvmutil` program uses `errno` extensively. The best error The `nvmutil` program uses `errno` extensively. The best error
handling is done this way, the Unix way. Error handling is extremely handling is done this way, the Unix way. Error handling is extremely
@ -317,13 +395,12 @@ command only requires read access on files. Where sufficient permission
is not given (read and/or write), nvmutil will exit with non-zero status. is not given (read and/or write), nvmutil will exit with non-zero status.
Non-zero status will also be returned, if the target file is *not* Non-zero status will also be returned, if the target file is *not*
of size *8KB*. of size *8KB*, *16KB* or *128KB*.
Additional rules regarding exit status shall apply, depending on Additional rules regarding exit status shall apply, depending on
what command you use. Commands are documented in the following sections: what command you use. Commands are documented in the following sections:
Change MAC address ### Change MAC address
------------------
The `nvm` program lets you change the MAC address. It sets The `nvm` program lets you change the MAC address. It sets
a valid checksum, after changing the MAC address. This program a valid checksum, after changing the MAC address. This program
@ -337,7 +414,7 @@ The following rules are enforced in code:
* User cannot specify multicast addresses * User cannot specify multicast addresses
* User cannot specify `00:00:00:00:00:00` * User cannot specify `00:00:00:00:00:00`
* When generating random addresses, if the right * When generating random addresses, if the right
most nibble of the left-most byte is `?` (random), most nibble of the left-most byte is `x` (random),
nvmutil will (in code) force the generated MAC nvmutil will (in code) force the generated MAC
address to be local (not global), and will prevent address to be local (not global), and will prevent
a multicast address from being generated. a multicast address from being generated.
@ -360,20 +437,20 @@ How to use (the MAC address in just an example):
You can also set random MAC addresses: You can also set random MAC addresses:
nvm gbe.bin setmac ??:??:??:??:??:?? nvm gbe.bin setmac xx:xx:xx:xx:xx:xx
In this example, every character is random. However, you In this example, every character is random. However, you
can mix and match random characters with static ones. For can mix and match random characters with static ones. For
example: example:
nvm gbe.bin setmac 00:1f:16:??:??:?? nvm gbe.bin setmac 00:1f:16:xx:xx:xx
You can also pass it without a MAC address: You can also pass it without a MAC address:
nvm gbe.bin setmac nvm gbe.bin setmac
If you only type `setmac` without specifying a MAC address, If you only type `setmac` without specifying a MAC address,
it will do the same thing as `setmac ??:??:??:??:??:??`. it will do the same thing as `setmac xx:xx:xx:xx:xx:xx`.
This will set the last three bytes randomly, while the This will set the last three bytes randomly, while the
MAC address would begin with `00:1f:16`. MAC address would begin with `00:1f:16`.
@ -388,8 +465,7 @@ corrected if you use the `setchecksum` command
in `nvmutil`. It is common for vendor gbe files to contain in `nvmutil`. It is common for vendor gbe files to contain
one valid part and one invalid part, per checksum rules. one valid part and one invalid part, per checksum rules.
Verify checksums (and show MAC addresses) ### Verify checksums (and show MAC addresses)
-----------------------------------------
This command *only* requires *read* access on files. This command *only* requires *read* access on files.
@ -405,13 +481,12 @@ NOTE: This will exit with zero status if at least one part
contains a valid checksum. If both parts are invalid, nvmutil contains a valid checksum. If both parts are invalid, nvmutil
will exit with non-zero status. will exit with non-zero status.
Copy part ### Copy part
---------
This command requires read *and* write access on files. This command requires read *and* write access on files.
The `nvm` program can copy one NVM part to another. It copies The `nvm` program can copy one NVM part to another. It copies
the *entire* 4KB part, within the 8KB file. the *entire* *block size* KB part, within the *two blocks* KB file.
Overwrite part 0 with the contents of part 1: Overwrite part 0 with the contents of part 1:
@ -426,12 +501,11 @@ will be performed, and nvmutil will exit with non-zero status.
Otherwise, it will (if all other conditions are met) exit with Otherwise, it will (if all other conditions are met) exit with
zero status. zero status.
Swap parts ### Swap parts
----------
This command requires read *and* write access on files. This command requires read *and* write access on files.
The `nvm` program can swap both 4KB parts in the GbE The `nvm` program can swap both *block size* KB parts in the GbE
file. It does this, via simple XOR swaps. file. It does this, via simple XOR swaps.
How to use: How to use:
@ -446,8 +520,7 @@ If *at least one* part is valid, nvmutil will return
with zero exit status. If both parts are invalid, it will with zero exit status. If both parts are invalid, it will
return non-zero. return non-zero.
Set valid checksum ### Set valid checksum
------------------
This command requires read *and* write access on files. This command requires read *and* write access on files.
@ -467,8 +540,7 @@ set the checksum. There is no feasible way to guard against
use on the wrong file, unlike with the other commands. Please use on the wrong file, unlike with the other commands. Please
make SURE you're running this on the correct file!* make SURE you're running this on the correct file!*
Set invalid checksum ### Set invalid checksum
--------------------
This command requires read *and* write access on files. This command requires read *and* write access on files.
@ -498,7 +570,7 @@ Intel gigabit NICs that don't have a valid checksum. This
is software-defined, and not enforced by the hardware. is software-defined, and not enforced by the hardware.
History History
======= -------
A historical change log A historical change log
is included at [docs/install/nvmutilimport.md](nvmutilimport.md), is included at [docs/install/nvmutilimport.md](nvmutilimport.md),
@ -526,33 +598,13 @@ it was part of osboot, is still available (for reference) here:
* <https://notabug.org/osboot/nvmutil/> * <https://notabug.org/osboot/nvmutil/>
LICENSE Please use the latest nvmutil version *from lbmk*. The above information is
======= provided only for reference; it may be useful for future auditing.
This page is released under different copyright terms than most other pages TODO
on this website. ----
The `nvmutil` software and documentation are released under the following
terms:
Copyright 2022 Leah Rowe
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Adapt this into a manpage (useful for Linux package repositories / BSD ports)
* Send nvmutil upstream to coreboot, for inclusion under `util/`
* In addition to the manpage, when sending to coreboot, also adapt this page
for inclusion into doc.coreboot.org

View file

@ -0,0 +1 @@
Instructions pertaining to nvmutil, which is software that can modify the MAC address and other information inside Intel GbE NVM images.

View file

@ -1,12 +1,9 @@
nvmutil assimilation nvmutil import notes
==================== --------------------
Detailed revision history can be found in the Git repository; for code, Detailed revision history can be found in the Git repository; for code,
look at `lbmk.git` and for documentation, look at `lbwww.git`. look at `lbmk.git` and for documentation, look at `lbwww.git`.
Assimilation by Libreboot
=========================
With no additional changes to nvmutil, the project became part of lbmk, With no additional changes to nvmutil, the project became part of lbmk,
which is the Libreboot build system. Please refer to Libreboot's imported which is the Libreboot build system. Please refer to Libreboot's imported
version of the nvmutil documentation: [nvmutil.md](nvmutil.md) version of the nvmutil documentation: [nvmutil.md](nvmutil.md)
@ -22,8 +19,10 @@ shall be preserved on notabug. See:
<https://notabug.org/osboot/nvmutil> <https://notabug.org/osboot/nvmutil>
nvmutil 20221106 Version history (osboot)
================ ------------------------
### nvmutil 20221106
Very minor bugfix release: Very minor bugfix release:
@ -33,8 +32,7 @@ Very minor bugfix release:
* Documentation inaccuracies fixed (pertaining to nvmutil exit statuses) * Documentation inaccuracies fixed (pertaining to nvmutil exit statuses)
* Documentation generally tidied up a bit * Documentation generally tidied up a bit
nvmutil 20221103 ### nvmutil 20221103
================
Not much has changed, as this just fixes minor bugs and behavioural Not much has changed, as this just fixes minor bugs and behavioural
quirks seen in the previous release: quirks seen in the previous release:
@ -49,8 +47,7 @@ quirks seen in the previous release:
fully readable. Previously, nvmutil would exit non-zero if one or both fully readable. Previously, nvmutil would exit non-zero if one or both
checksums was correct, but it now only does this if both are invalid checksums was correct, but it now only does this if both are invalid
nvmutil 20220828 ### nvmutil 20220828
================
No new features have been added. This is a code cleanup and bugfix release. No new features have been added. This is a code cleanup and bugfix release.
@ -73,8 +70,7 @@ No new features have been added. This is a code cleanup and bugfix release.
were made (e.g. cleaner argument handling). Tested with tcc on an x86\_64 were made (e.g. cleaner argument handling). Tested with tcc on an x86\_64
machine, where a 0.16% binary size increase was observed. machine, where a 0.16% binary size increase was observed.
nvmutil 20220815 ### nvmutil 20220815
================
No new features have been added. This is a code cleanup and bugfix release. No new features have been added. This is a code cleanup and bugfix release.
@ -105,8 +101,7 @@ No new features have been added. This is a code cleanup and bugfix release.
reduces code bloat in nvmutil. The code still warns you if the MAC address reduces code bloat in nvmutil. The code still warns you if the MAC address
is multicast is multicast
nvmutil 20220810 ### nvmutil 20220810
================
* 3.4% reduction in binary size (as tested with tcc on x86\_64), * 3.4% reduction in binary size (as tested with tcc on x86\_64),
due to code optimizations, *while* adding new checks and new features. due to code optimizations, *while* adding new checks and new features.
@ -130,8 +125,7 @@ nvmutil 20220810
* The `setmac` command can now be used without specifying a MAC address, * The `setmac` command can now be used without specifying a MAC address,
which will cause the same behaviour as `setmac ??:??:??:??:??:??` which will cause the same behaviour as `setmac ??:??:??:??:??:??`
nvmutil 20220808 ### nvmutil 20220808
================
Released on 8 August 2022. Changes: Released on 8 August 2022. Changes:
@ -173,8 +167,7 @@ Released on 8 August 2022. Changes:
reduction; the other 2/3 of that reduction is due to increased reduction; the other 2/3 of that reduction is due to increased
code efficiency in general. code efficiency in general.
Regarding code size reduction #### Regarding code size reduction
-----------------------------
My test setup is an x86\_64 machine with `tcc` used My test setup is an x86\_64 machine with `tcc` used
as the compiler; the libc doesn't really matter, if as the compiler; the libc doesn't really matter, if
@ -215,8 +208,7 @@ binary sizes are much larger with those compilers, even with
optimization flags; despite this, the Makefile in nvmutil optimization flags; despite this, the Makefile in nvmutil
assumes GCC/Clang and sets `CFLAGS` to `-Os`. assumes GCC/Clang and sets `CFLAGS` to `-Os`.
nvmutil 20220802 ### nvmutil 20220802
================
Released on 2 August 2022. Changes: Released on 2 August 2022. Changes:
@ -236,8 +228,7 @@ Released on 2 August 2022. Changes:
* More human-friendly messages and help text * More human-friendly messages and help text
* help/version commands actually listed in help output * help/version commands actually listed in help output
nvmutil 20220731 ### nvmutil 20220731
================
Released on 31 July 2022. Changes: Released on 31 July 2022. Changes:
@ -250,8 +241,7 @@ Released on 31 July 2022. Changes:
That's it. Bug fixes and safety features added. Enjoy! That's it. Bug fixes and safety features added. Enjoy!
nvmutil 20220728 ### nvmutil 20220728
================
Initial release. It is functionally equivalent to the Initial release. It is functionally equivalent to the
older `nvmutils`, developed for the osboot project. This older `nvmutils`, developed for the osboot project. This

View file

@ -0,0 +1 @@
Historical information pertaining to nvmutil which can modify MAC addresses on Intel GbE NVM images.

View file

@ -1,10 +1,12 @@
--- ---
title: Sony PlayStation (PS1/PSX) title: Install Libreboot Open BIOS on Sony PlayStation (PS1/PSX)
x-toc-enable: true x-toc-enable: true
... ...
The PlayStation is a computer like any other. It ought to run all Free Software The PlayStation is a computer like any other. It ought to run
if you want it to, and you can! all [Free Software](https://writefreesoftware.org/learn) if you want it to, and
you can! In this document, you will learn how to replace the Sony BIOS on your
PlayStation, with a fully Open Source one instead.
<div class="specs"> <div class="specs">
<center> <center>
@ -27,21 +29,32 @@ if you want it to, and you can!
| **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) | | **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) |
| **Flash chip** | 512KB Mask ROM | | **Flash chip** | 512KB Mask ROM |
</div> </div>
Introduction
============ Open source playstation (PS1/PSX) BIOS
---------------------------------
This uses the free/opensource BIOS developed by the PCSX-Redux team, which you This uses the free/opensource BIOS developed by the PCSX-Redux team, which you
can learn more about here: can learn more about here:
<https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios> <https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios>
Build from source ### Download pre-built BIOS
-----------------
Pre-compiled builds will be in the next Libreboot release, after Get it here:
version 20240612. For now, you must compile it from source, but the Libreboot
build system provides automation for this. Please use the latest lbmk <https://www.mirrorservice.org/sites/libreboot.org/release/stable/20241206/roms/playstation/>
revision [from Git](../../git.md).
Other mirrors are available, at the [Canoeboot download](../../download.md)
page; look in the `roms/playstation/` directory for a given Libreboot release.
This is built from the available sources in Libreboot releases, based on the
information written below.
You can use this in a PlayStation emulator or on real hardware - the rest of
this page will tell you how to use it.
### Build from source
OPTIONAL: You could alternatively use the pre-built version (see above).
First, please make sure you have build dependencies. The build logic in lbmk First, please make sure you have build dependencies. The build logic in lbmk
has been tested on Debian 12 (x86\_64) and you can do this for example, as root: has been tested on Debian 12 (x86\_64) and you can do this for example, as root:
@ -67,7 +80,7 @@ This commonly only builds the BIOS part. If you want to build all of PCSX-Redux,
you can, but lbmk does not provide automation for this. you can, but lbmk does not provide automation for this.
Installation Installation
============ ------------
If all went well, you should see `openbios.bin` located If all went well, you should see `openbios.bin` located
under the `bin/playstation/` (within lbmk). Alternatively, you may be using under the `bin/playstation/` (within lbmk). Alternatively, you may be using
@ -75,8 +88,7 @@ a release *after* Libreboot 20240612 that has it pre-built. Either way is fine.
The `openbios.bin` file is your new BIOS build. The `openbios.bin` file is your new BIOS build.
Emulators ### Emulators
---------
Most PlayStation emulators rely on low-level emulation to execute the real BIOS. Most PlayStation emulators rely on low-level emulation to execute the real BIOS.
The Open BIOS by PCSX-Redux (as distributed by Libreboot) can also be used, and The Open BIOS by PCSX-Redux (as distributed by Libreboot) can also be used, and
@ -91,8 +103,7 @@ provided with your chosen PlayStation emulator. You can even freely
redistribute this BIOS, because it's free software (released under MIT license), redistribute this BIOS, because it's free software (released under MIT license),
which is a major advantage over Sony's original BIOS. which is a major advantage over Sony's original BIOS.
Hardware ### Hardware
--------
Not yet tested by the Libreboot project, but the PCSX-Redux developers have Not yet tested by the Libreboot project, but the PCSX-Redux developers have
stated that it will work on the real console. *It should be noted that the Open stated that it will work on the real console. *It should be noted that the Open
@ -116,7 +127,7 @@ BIOS much more polished, but a number of games have been tested and it's more
or less fully reliable in most cases. or less fully reliable in most cases.
Game compatibility Game compatibility
================== ------------------
The upstream maintains a compatibility list, here: The upstream maintains a compatibility list, here:
@ -126,7 +137,7 @@ NOTE: Google Docs, but an option exists on there to export it for LibreOffice
Calc. The list is provided as a spreadsheet. Calc. The list is provided as a spreadsheet.
Remarks about hardware Remarks about hardware
==================== ----------------------
Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device,
one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks,
@ -146,10 +157,28 @@ We do not yet provide instructions for how to install this on real hardware, in
the Libreboot project, but this can be done at a future date. the Libreboot project, but this can be done at a future date.
Other mods (hardware) Other mods (hardware)
=============== ---------------------
Video timings ### Modchip (mayumi v4) example
-------------
Click the photo for full size. It shows a Mayumi v4 modchip and Dual Frequency
Oscillator mod installed (blue board is the modchip and the black board is
the DFO mod). Mods installed by Leah Rowe, as a proof of concept:
<img tabindex=1 alt="Sony PlayStation (PSOne) console" class="p" src="https://av.libreboot.org/playstation/mayumi.jpg" /><span class="f"><img src="https://av.libreboot.org/playstation/mayumi.jpg" /></span>
The modchip disables the copy protection and region restrictions. A modchip is
still advised, even if using an Open BIOS. The Open BIOS could be modified to
send commands that disable the wobble check, thus invalidating the need for
a modchip, but even then there are still caveats. Please read:
<https://psx-spx.consoledev.net/cdromdrive/#cdrom-secret-unlock-commands>
The most technically correct solution, regardless of which BIOS you have, to
also install the modchip and DFO board, as shown. More info is written about
these in the next sections below:
### Video timings
The Open BIOS will not implement any DRM, so it's possible that you might boot The Open BIOS will not implement any DRM, so it's possible that you might boot
out of region games. In an emulator, this is no problem, but it can prove out of region games. In an emulator, this is no problem, but it can prove
@ -199,8 +228,7 @@ By fixing the timings in this way, your region-free console will also have
correct timings, thus maximum game compatibility, and colours will always be correct timings, thus maximum game compatibility, and colours will always be
correct no matter what video cable you're using. correct no matter what video cable you're using.
Modchips ### Modchips
--------
If using hardware, you will probably still want a modchip. Many proprietary If using hardware, you will probably still want a modchip. Many proprietary
modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on
@ -228,8 +256,7 @@ not yet been confirmed by the Libreboot project.
More hardware testing is planned, but the Open BIOS works perfectly in emulators. More hardware testing is planned, but the Open BIOS works perfectly in emulators.
Give it a try! Give it a try!
Boot games on SD cards ### Boot games on SD cards
-----------------------
The [PicoStation](https://github.com/paulocode/picostation) project provides The [PicoStation](https://github.com/paulocode/picostation) project provides
free firmware for RP2040 devices, which you can solder into a modboard which free firmware for RP2040 devices, which you can solder into a modboard which
@ -240,8 +267,7 @@ real playstation (the picostation replaces your CD drive).
Not only is this useful in a development context, but it can also be used when Not only is this useful in a development context, but it can also be used when
your CD drive has worn out and no longer reads discs properly. your CD drive has worn out and no longer reads discs properly.
Final remarks ### Final remarks
-------------
Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will
turn your 90s PlayStation into a very hackable machine. There is turn your 90s PlayStation into a very hackable machine. There is
@ -253,7 +279,7 @@ simply computers, fully reprogrammable and as such, Libreboot is happy to provid
this support, for the Sony PlayStation this support, for the Sony PlayStation
Credit Credit
====== ------
Thanks go to the PCSX-Redux team for their excellent work reverse engineering Thanks go to the PCSX-Redux team for their excellent work reverse engineering
the Sony PS1 BIOS. the Sony PS1 BIOS.

View file

@ -0,0 +1 @@
Install free/opensource BIOS boot firmware on your Sony PlayStation (PS1/PSX), optionally compiling it with GNU GCC. This uses PCSX-Redux Open BIOS.

View file

@ -1,5 +1,5 @@
--- ---
title: Flashing the ThinkPad R400 title: Install Libreboot on Lenovo ThinkPad R400
x-toc-enable: true x-toc-enable: true
... ...
@ -28,12 +28,12 @@ x-toc-enable: true
| **Flash chip** | SOIC-8/SOIC-16 4MiB/8MiB (Upgradable to 16MiB) | | **Flash chip** | SOIC-8/SOIC-16 4MiB/8MiB (Upgradable to 16MiB) |
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
``` ```
| ***Features*** | | | ***Features*** | |
@ -52,16 +52,13 @@ P*: Partially works with blobs
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Dell Latitude E6400 Open source BIOS/UEFI firmware
=================== -------------------------
**If you haven't bought an R400 yet: the [Dell Latitude This document will teach you how to install Libreboot, on your
E6400](../install/latitude.md) is much easier to flash; no disassembly required, Lenovo ThinkPad R400 laptop motherboard.
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
same hardware generation (GM45), with same CPUs, video processor, etc.** that replaces proprietary BIOS/UEFI firmware.
Introduction
============
It is believed that all or most R400 laptops are compatible. See notes It is believed that all or most R400 laptops are compatible. See notes
about [CPU about [CPU
@ -74,17 +71,26 @@ the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16.
*The R400 laptops come with the ME (and sometimes AMT in addition) *The R400 laptops come with the ME (and sometimes AMT in addition)
before flashing libreboot. libreboot disables and removes it by using a before flashing libreboot. libreboot disables and removes it by using a
modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* modified descriptor.*
(contains notes, plus instructions)
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashprog](../install/#flashprog) [../install/\#flashprog](../install/#flashprog)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
Dell Latitude E6400
-------------------
**If you haven't bought an R400 yet: the [Dell Latitude
E6400](../install/latitude.md) is much easier to flash; no disassembly required,
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
same hardware generation (GM45), with same CPUs, video processor, etc.**
EC update {#ecupdate} EC update {#ecupdate}
========= --------------------
It is recommended that you update to the latest EC firmware version. The It is recommended that you update to the latest EC firmware version. The
[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from
@ -109,7 +115,7 @@ TODO: put hardware register logs here like on the [X200](x200.md) and
[T400](t400.md) page. [T400](t400.md) page.
Installation notes Installation notes
================== ------------------
[External flashing](spi.md) required, if Lenovo BIOS is running. [External flashing](spi.md) required, if Lenovo BIOS is running.
@ -129,15 +135,14 @@ ROM properly first. Although ROM images are provided pre-built in
libreboot, there are some modifications that you need to make to the one libreboot, there are some modifications that you need to make to the one
you chose before flashing. (instructions referenced later in this guide) you chose before flashing. (instructions referenced later in this guide)
Serial port {#serial_port} ### Serial port {#serial_port}
-----------
EHCI debug might not be needed. It has been reported that the docking EHCI debug might not be needed. It has been reported that the docking
station for this laptop has a serial port, so it might be possible to station for this laptop has a serial port, so it might be possible to
use that instead. use that instead.
A note about CPUs A note about CPUs
================= -----------------
[ThinkWiki](http://www.thinkwiki.org/wiki/Category:R400) has a list of [ThinkWiki](http://www.thinkwiki.org/wiki/Category:R400) has a list of
CPUs for this system. The Core 2 Duo P8400 and P8600 are believed to CPUs for this system. The Core 2 Duo P8400 and P8600 are believed to
@ -145,13 +150,12 @@ work in libreboot. The Core 2 Duo T9600 was confirmed to work, so the
T9400 probably also works. *The Core 2 Duo T5870/5670 and Celeron M T9400 probably also works. *The Core 2 Duo T5870/5670 and Celeron M
575/585 are untested!* 575/585 are untested!*
Quad-core CPUs ### Quad-core CPUs
--------------
Incompatible. Do not use. Incompatible. Do not use.
A note about GPUs A note about GPUs
================= -----------------
Some models have an Intel GPU, while others have both an ATI and an Some models have an Intel GPU, while others have both an ATI and an
Intel GPU; this is referred to as "Dual Graphics" (previously Intel GPU; this is referred to as "Dual Graphics" (previously
@ -165,32 +169,33 @@ Intel GPU is used and the ATI GPU is disabled, so native graphics
initialization works all the same. initialization works all the same.
CPU paste required CPU paste required
================== ------------------
See [\#paste](#paste). See [\#paste](#paste).
Flash chip size {#flashchips} Flash chip size {#flashchips}
=============== -----------------------------
Use this to find out: Use this to find out:
flashprog -p internal flashprog -p internal
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
MAC address {#macaddress} MAC address {#macaddress}
=========== -------------------------
Refer to [mac\_address.md](../install/mac_address.md). Refer to [mac\_address.md](../install/mac_address.md).
External flashing External flashing
================= -----------------
Refer to [spi.md](spi.md) as a guide for external re-flashing. Refer to [spi.md](spi.md) as a guide for external re-flashing.
Disassembly ### Disassembly
-----------
Remove all screws:\ Remove all screws:\
![](https://av.libreboot.org/r400/0000.jpg)\ ![](https://av.libreboot.org/r400/0000.jpg)\
@ -276,7 +281,7 @@ Read [this article](spi.md) to learn how you may flash the chip, which is near
to the RAM. to the RAM.
Thermal paste (IMPORTANT) Thermal paste (IMPORTANT)
========================= -------------------------
Because part of this procedure involved removing the heatsink, you will Because part of this procedure involved removing the heatsink, you will
need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl
@ -293,7 +298,7 @@ show how to properly apply the thermal paste. Other guides online detail
the proper application procedure. the proper application procedure.
Memory Memory
====== ------
In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks
that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500).

View file

@ -0,0 +1 @@
ThinkPad R400 installation. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader.

View file

@ -4,7 +4,7 @@ x-toc-enable: true
... ...
Need help? Need help?
========== ----------
Help is available on [Libreboot IRC](../../contact.md) and other channels. Help is available on [Libreboot IRC](../../contact.md) and other channels.
@ -16,14 +16,51 @@ if you want to send your machine in to have Libreboot installed for you.
Leah Rowe, the founder and lead developer of Libreboot, also owns and Leah Rowe, the founder and lead developer of Libreboot, also owns and
operates Minifree Ltd; sales provide funding for the Libreboot project. operates Minifree Ltd; sales provide funding for the Libreboot project.
Introduction Install open source BIOS/UEFI firmware
============ --------------------------------------
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) This guide is predominantly about *installing Libreboot* (flashing it) onto
your motherboard's main system flash. You can also adapt this guide for dumping,
erasing and verifying firmware images; this guide shows you how to use
the [flashprog](https://flashprog.org/) software with various external
25XX NOR flash programmers. This guide is written for *Linux* users, but BSD
operating systems are also compatible with flashprog; Windows might be feasible,
ditto Apple's MacOS, as flashprog can also run on those, but they are not
officially supported by Libreboot, and *we recommend* that you use Linux/BSD.
Although this documentation is written *for the Libreboot project*, it can be
used on any compatible 25xx NOR flash, on any number of devices, such as home
routers and even certain videogame systems. If you're a refurbisher, and not
a Libreboot-based one, but just a regular refurbisher e.g. on eBay, dealing
with proprietary UEFI firmware (and perhaps Windows installations), it may be
that on some of them, SMM-based flash writes are performed to store UEFI firmware
configurations (instead of the old NVRAM/CMOS memory); you could adapt this
guide (and read flashprog documentation) to erase/flash custom configurations,
for example when unlocking boot passwords on the computers that you sell. This
is the power of [Free Software](https://writefreesoftware.org/learn); flashprog
is a Free Software project. The use-case scenario of the humble eBay seller is
real; several of them have in fact used this guide in the past.
So keep that in mind; this is part of the Libreboot installation instructions,
but it can be used for *any* flashing operation on *any* 25xx NOR flash, with
all sorts of firmware; you could also use this to *reverse* a Libreboot
installation, re-flashing the original vendor firmware if you made a dump of it,
**and we definitely recommend backing that up prior to Libreboot installation**.
**Please ensure that your programmer's voltage matches that of the flash IC,
and read this guide carefully to account for proper electrical safety. In
general, these programmers operate at 3.3v, so you'll need a logic level
adapter and e.g. buck converter, if you're dealing with a 1.8V flash IC.**
**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
This guide will teach you how to use various tools for externally reprogramming This guide will teach you how to use various tools for externally reprogramming
a 25xx NOR flash via SPI protocol. This is the most common type of flash IC for a 25xx NOR flash via SPI protocol. This is the most common type of flash IC for
@ -33,12 +70,12 @@ which uses LPC flash in a PLCC32 socket, which you can simply hot-swap after
booting the vendor firmware, and then flash internally. Simple! booting the vendor firmware, and then flash internally. Simple!
We will be using We will be using
the [flashprog](https://flashprog.org/Flashrom) software which is written to the [flashprog](https://flashprog.org/) software which is written to
dump, erase and rewrite these flash chips. dump, erase and rewrite these flash chips.
libreboot currently documents how to use these SPI programmers: Libreboot currently documents how to use these SPI programmers:
* Raspberry Pi Pico * Raspberry Pi Pico / Pico 2
* Raspberry Pi (RPi) single-board computers * Raspberry Pi (RPi) single-board computers
* BeagleBone Black (BBB) * BeagleBone Black (BBB)
* Libre Computer 'Le Potato' * Libre Computer 'Le Potato'
@ -58,10 +95,24 @@ SPI flash, using an on-board SPI programmer (which all boards have). You do this
from Linux, with flashprog. from Linux, with flashprog.
*This* guide that you're reading now is for using an *external* programmer. It *This* guide that you're reading now is for using an *external* programmer. It
is called *external* because it's not the *internal* one on your mainboard. is called *external* because it's not the *internal* one on your motherboard.
Raspberry Pi Pico Raspberry Pi Pico
================= -----------------
### Pico 1 (RP2040) supported
Pico 2 support was removed, due to stability issues. These are the RP2530
devices. Pico 1 dongles work just fine (RP2040).
**NOTE: RP2530 dongles removed in the Libreboot 25.04 testing release, but will
be re-added in future revisions. It was removed due to bugs, so Libreboot only
supports Pico1 (RP2040) for now, and the Pico2 images were also removed from the
December release of 2024, retroactively. Subsequent revisions will once again
re-add Pico 2 support, after it has been better tested.**
The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you
must take care to flash the correct image on either device.
![Left to right: Raspberry Pi Pico and Pico H](https://av.libreboot.org/rpi_pico/two_picos.webp) ![Left to right: Raspberry Pi Pico and Pico H](https://av.libreboot.org/rpi_pico/two_picos.webp)
@ -72,16 +123,19 @@ Additionally, all the software running on it is free, down to the full
versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip,
but that is not needed for following this guide. but that is not needed for following this guide.
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't ### Download serprog firmware pre-compiled
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
you need to add a logic level converter.
First, connect just the Pico to your computer with a micro-USB cable. Download the pico serprog tarball from Libreboot releases. For example, the
Mount it like any other USB flash drive. If it isn't detected, you might need Libreboot 20241206rev8 one would be
to press the BOOTSEL button while you plug it in (this forces it into the named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under
bootloader mode). the `roms/` directory in each release. With these binaries, you can easily
get started.
You can download the serprog firmware here:\ ### Build serprog firmware from source (OPTIONAL)
**Pre-compiled binaries are also available, in Libreboot releases.**
You can alternatively download the serprog firmware here:\
<https://codeberg.org/libreboot/pico-serprog>\ <https://codeberg.org/libreboot/pico-serprog>\
or here:\ or here:\
<https://notabug.org/libreboot/pico-serprog> <https://notabug.org/libreboot/pico-serprog>
@ -90,7 +144,7 @@ You can also find the source code for these, under `src/` in Libreboot release
archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading
using the build instructions below. using the build instructions below.
Copy the file `rpi-pico-serprog.uf2` into your Pico. To build this firmware, you Alternatively to the binaries, you
could build it yourself or you could also clone `lbmk.git` and [install build could build it yourself or you could also clone `lbmk.git` and [install build
dependencies](../build/#first-install-build-dependencies), then inside lbmk, dependencies](../build/#first-install-build-dependencies), then inside lbmk,
do: do:
@ -98,8 +152,34 @@ do:
./mk -b pico-serprog ./mk -b pico-serprog
This will automatically build the rpi-pico firmware, and the file will be This will automatically build the rpi-pico firmware, and the file will be
at `bin/serprog_rp2040/serprog_pico.uf2` at `bin/serprog_pico/serprog_pico.uf2`
and `bin/serprog_rp2040/serprog_pico_w.uf2`. and `bin/serprog_pico/serprog_pico_w.uf2`.
### Install the serprog firmware
First, connect just the Pico to your computer with a micro-USB cable.
Mount it like any other USB flash drive. If it isn't detected, you might need
to press the BOOTSEL button while you plug it in (this forces it into the
bootloader mode).
When you have the build, or if you're using a release build, copy the
file `.uf2` file into your Pico. You must make sure to build the correct
target, or otherwise copy the correct file, because many RP2040 and RP2530
devices exist and Libreboot provides images for **all of them** in the same
release tarball.
**NOTE: Other RP2040/2530 devices will also work. You just have to match
the right pins and use the correct firmware file!**
### Logic levels
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
you need to add a logic level converter. **Please ensure that you have matched
the voltage of your programmer to the voltage of your chip; both the data lines
and power lines to the chip must match.**
### Wiring
Disconnect the Pico and proceed to wire it to your Disconnect the Pico and proceed to wire it to your
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
@ -113,6 +193,8 @@ above](https://av.libreboot.org/rpi_pico/pinout_serprog.png)
![A Raspberry Pi Pico connected to a SOIC16 flash ![A Raspberry Pi Pico connected to a SOIC16 flash
chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp) chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp)
![SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg)
Headers were manually soldered on the top side, and the plastic packaging Headers were manually soldered on the top side, and the plastic packaging
was repurposed as an insulating base. These might be nice to have, but by no was repurposed as an insulating base. These might be nice to have, but by no
means necessary. If your headers are on the other side, just keep in mind means necessary. If your headers are on the other side, just keep in mind
@ -123,7 +205,7 @@ will appear:
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device [453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
Take note of the ttyACMx. Flashrom is now usable Take note of the ttyACMx. Flashprog is now usable
(substitute ttyACMx with what you observed earlier). (substitute ttyACMx with what you observed earlier).
flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
@ -131,11 +213,13 @@ Take note of the ttyACMx. Flashrom is now usable
spispeed=32M usually works, but since it's not much faster it's probably spispeed=32M usually works, but since it's not much faster it's probably
not worth it. The 12Mbps USB port is limiting the actual speed here. not worth it. The 12Mbps USB port is limiting the actual speed here.
Do not use CH341A! Higher speeds might work nicely, on Pico 2.
==================
Do not buy CH341A!
------------------
NOR flashes on libreboot systems run on 3.3V DC or 1.8V DC, and this includes NOR flashes on libreboot systems run on 3.3V DC or 1.8V DC, and this includes
data lines. CH341A has 5V logic levels on data lines, which will damage your data lines. CH341A can have 5V logic levels on data lines, which can damage your
SPI flash and also the southbridge that it's connected to, plus anything else SPI flash and also the southbridge that it's connected to, plus anything else
that it's connected to. that it's connected to.
@ -162,12 +246,12 @@ build up and possibly fire (and definitely damaged circuitry). On SOIC8, pin 3
is WP and 4 is GND, so a direct 3.3v connection there is quite hazardous for is WP and 4 is GND, so a direct 3.3v connection there is quite hazardous for
that reason; all the more reason to use a pull-up resistor.** that reason; all the more reason to use a pull-up resistor.**
The mainboard that you want to flash (if using e.g. pomona clip) will probably The motherboard that you want to flash (if using e.g. pomona clip) will probably
have pull-up resistors on it already for WP/HOLD, so simply cutting WP/HOLD have pull-up resistors on it already for WP/HOLD, so simply cutting WP/HOLD
on the CH341A would also be acceptable. The pull-up resistors that you on the CH341A would also be acceptable. The pull-up resistors that you
place (in such a mod) on the CH341A are only useful if you also want to flash place (in such a mod) on the CH341A are only useful if you also want to flash
chips in the ZIF socket. If pull-up resistors exist both on e.g. the laptop chips in the ZIF socket. If pull-up resistors exist both on e.g. the laptop
mainboard and on the CH341A, it just means the equivalent series resistance motherboard and on the CH341A, it just means the equivalent series resistance
will be of the two resistors (on each line) in parallel. If we assume that will be of the two resistors (on each line) in parallel. If we assume that
a laptop is likely to have a resistor size of ~3.3k for pull-ups, then a value a laptop is likely to have a resistor size of ~3.3k for pull-ups, then a value
of ~5.6k ohms on the CH341A side seems reasonable. of ~5.6k ohms on the CH341A side seems reasonable.
@ -193,10 +277,71 @@ resistors) performed, on the black CH341A:\
<img tabindex=1 src="https://av.libreboot.org/ch341a/0001_th.jpg" /><span class="f"><img src="https://av.libreboot.org/ch341a/0001.jpg" /></span> <img tabindex=1 src="https://av.libreboot.org/ch341a/0001_th.jpg" /><span class="f"><img src="https://av.libreboot.org/ch341a/0001.jpg" /></span>
The green version (not shown above) may come with 3.3v logic already wired, but The green version (not shown above) may come with 3.3v logic already wired, but
still needs to have pull-up resistors placed for WP/HOLD. still needs to have pull-up resistors placed for WP/HOLD. Some of them may have
switchable voltage instead, via a physical toggle on the board.
Disclaimer: A few (not many, but wily) people have criticised this section of the
documentation, due to a misconception about what it really means and also because
this section was previously very poorly written. So to be clear:
Yes, we are quite well aware that the CH341A can in fact operate at 3.3v,
even unmodified black models; the VCC line is 3.3v, and if when you either
directly wire VCC to WP/HOLD pins yourself, or a pull-up resistor on the
motherboard you're flashing pulls these high at 3.3v, then the logic levels
on the data lines do in fact switch to 3V *during an erase, read or write cycle*.
When no flashing operation is underway, the data lines are outputting at almost
negligable current, so the actual amount of heat generated will be negligable,
and therefore damage is unlikely. However, as stated above and as we will state
again:
* This is bad electrical design. The CH341A can switch flexibly between 3V
and 5V operation, but most flashes today are 1.8V or 3V anyway, and there are
all kinds of scenarios (such as over-current or surge event) where this 5V
idle logic level could still be applied. Modifying your CH341a to 3.3v
only, as defined in the datasheet (and by this page) is highly recommended.
* The drive level is extremely poor anyway, on CH341a, making ISP-based
flashing ill advisable in many cases, such as where the PCH (Intel platforms)
is partly active and the data lines have lower resistance, because some
boards have 0ohms or very low resistance on these lines.
* No pull-ups on the WP/hold lines, when flashing in the socket; they are high
via 0ohm trace to VCC, whereas you are advised to use a pull-up resistor to
mitigate over-current events.
* Crap LDO on the board, and no ESD/overcurrent protection; the CH341a probably
can't provide much current on the VCC line, especially for ISP-based flashing
where the flash shares a common power rail with many other components.
CH341a is cheap junk. Get yourself a Raspberry Pi Pico instead; it's about the
same price, but of much higher quality from an electrical design perspective,
supports much higher (12mA!) drive levels on data lines, can control multiple
chip selects at once; it's just better, in every way. And the Raspberry Pi is
completely reprogrammable, so you can use it for something else when you're
done, e.g. UART dongle, or if you're wily enough, [PlayStation 1 Optical Disc
Emulator](https://github.com/paulocode/picostation) - the Pico is simply a
highly versatile tool, much better value for money.
There is only one instance where the CH341a is *good*, and that is when you're
actually flashing a loose (not soldered) chip, in the ZIF socket on the CH341a
board. It's a DIP-8 socket, and you can also buy WSON-8 and SOIC-8 or SOIC-16
adapters for it; you can also plug a special adapter board into it that converts
the voltages (VCC and data lines) to 1.8V, for 1.8V flashes (you could also
use that same 1.8V adapter circuit in a breadboard wired to your Pico). On
socket-based flashing, *which is specifically what the CH341a was designed
for*, you don't have to worry about weak drive level because there is nothing
contending with it on the flash IC's data pins.
The *socket-based* flashing operation is what we recommend this programmer
for, *only if you already have one*. We still recommend fixing the issue with
the WP/HOLD pins as described above; if you're doing this, note that there are
also newer models that have a voltage switch and logic level shifter already
on the board, which can be very useful. *Clip-based* flashing (ISP / in-system
programming) is, specifically, what we advise against using the CH341a for.
Why pay $10 for a CH341a when you can pay $10 for a Raspberry Pi Pico which is
electrically and functionally superior in every way? And the Pico is completely
open source, right down to the boot rom.
Identify which flash type you have Identify which flash type you have
================================== ----------------------------------
In all of them, a dot or marking shows pin 1 (in the case of WSON8, pad 1). In all of them, a dot or marking shows pin 1 (in the case of WSON8, pad 1).
@ -204,8 +349,7 @@ Use the following photos and then look at your board. When you've figured out
what type of chip you have, use that knowledge and the rest of this guide, to what type of chip you have, use that knowledge and the rest of this guide, to
accomplish your goal, which is to read from and/or write to the boot flash. accomplish your goal, which is to read from and/or write to the boot flash.
SOIC8 ### SOIC8
-----
![](https://av.libreboot.org/chip/soic8.jpg) ![](https://av.libreboot.org/chip/soic8.jpg)
@ -220,8 +364,7 @@ SOIC8
| 7 | HOLD | | 7 | HOLD |
| 8 | VCC | | 8 | VCC |
SOIC16 ### SOIC16
------
![](https://av.libreboot.org/chip/soic16.jpg) ![](https://av.libreboot.org/chip/soic16.jpg)
@ -238,8 +381,7 @@ SOIC16
SOIC8 and SOIC16 are the most common types, but there are others: SOIC8 and SOIC16 are the most common types, but there are others:
WSON8 ### WSON8
-----
It will be like this on an X200S or X200 Tablet:\ It will be like this on an X200S or X200 Tablet:\
@ -250,15 +392,13 @@ On T400S, it is in this location near the RAM:\
![](https://av.libreboot.org/t400s/soic8.jpg)\ ![](https://av.libreboot.org/t400s/soic8.jpg)\
NOTE: in this photo, the chip has been replaced with SOIC8. NOTE: in this photo, the chip has been replaced with SOIC8.
DIP8 ### DIP8
----
![](https://av.libreboot.org/dip8/dip8.jpg) ![](https://av.libreboot.org/dip8/dip8.jpg)
Pinout is the same as SOIC8 above. Pinout is the same as SOIC8 above.
Supply Voltage ### Supply Voltage
--------------
Historically, all boards that Libreboot supports happened to have SPI NOR chips Historically, all boards that Libreboot supports happened to have SPI NOR chips
which work at 3.3V DC. With the recent addition of Chromebooks whose chips are which work at 3.3V DC. With the recent addition of Chromebooks whose chips are
@ -271,18 +411,16 @@ connect it to the chip through an adapter or logic level converter, never
directly. directly.
Software configuration Software configuration
====================== ----------------------
General/Le potato ### General/Le potato
-----------------
The [generic guide](spi_generic.md) is intended to help those looking to use an The [generic guide](spi_generic.md) is intended to help those looking to use an
SBC which is not listed in this guide. SBC which is not listed in this guide.
The guide will, however, use the libre computer 'Le Potato' as a reference board. The guide will, however, use the libre computer 'Le Potato' as a reference board.
If you have that board, you should refer to the [generic guide.](spi_generic.md) If you have that board, you should refer to the [generic guide.](spi_generic.md)
BeagleBone Black (BBB) ### BeagleBone Black (BBB)
----------------------
SSH into your BeagleBone Black. It is assumed that you are running Debian 9 on SSH into your BeagleBone Black. It is assumed that you are running Debian 9 on
your BBB. You will run `flashprog` from your BBB. your BBB. You will run `flashprog` from your BBB.
@ -344,8 +482,7 @@ Note: flashprog can never write if the flash chip isn't found automatically.
This means that it's working (the clip isn't connected to any flash This means that it's working (the clip isn't connected to any flash
chip, so the error is fine). chip, so the error is fine).
Caution about BBB ### Caution about BBB
-----------------
BeagleBone Black is not recommended, because it's very slow and unstable for BeagleBone Black is not recommended, because it's very slow and unstable for
SPI flashing, and nowadays much better options exist. We used to mainly SPI flashing, and nowadays much better options exist. We used to mainly
@ -354,8 +491,7 @@ Software on it, but nowadays there are superior options.
TODO: document other SPI flashers TODO: document other SPI flashers
Rasberry Pi (RPi) ### Rasberry Pi (RPi)
-----------------
SSH into your Raspberry Pi. You will run `flashprog` from your Raspberry Pi. SSH into your Raspberry Pi. You will run `flashprog` from your Raspberry Pi.
@ -374,9 +510,9 @@ Under the Interface section, you can enable SPI.
The device for communicating via SPI as at `/dev/spidev0.0` The device for communicating via SPI as at `/dev/spidev0.0`
RPi Drive Strength ### RPi Drive Strength
------------------
Flashrom on the RPi may not be able to detect the SPI flash chip on some Flashprog on the RPi may not be able to detect the SPI flash chip on some
systems, even if your wiring and clip are set up perfectly. This may be due to systems, even if your wiring and clip are set up perfectly. This may be due to
the drive strength of the Raspberry Pi GPIOs, which is 8mA by default. Drive the drive strength of the Raspberry Pi GPIOs, which is 8mA by default. Drive
strength is essentially the maximum current the pin can output while also strength is essentially the maximum current the pin can output while also
@ -432,8 +568,7 @@ See
<https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control>
for more information about the drive strength control on the Pi. for more information about the drive strength control on the Pi.
Caution about RPi ### Caution about RPi
-----------------
Basically, the Raspbian project, now called Raspberry Pi OS, put in their repo Basically, the Raspbian project, now called Raspberry Pi OS, put in their repo
an update that added a new "trusted" repository, which just so happened to be an update that added a new "trusted" repository, which just so happened to be
@ -453,8 +588,7 @@ They then removed it, after a public backlash, via the following commits:
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555> * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555>
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6> * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6>
Libre firmware on RPi ### Libre firmware on RPi
---------------------
The boot firmware on older Raspberry Pi models can be replaced, with entirely The boot firmware on older Raspberry Pi models can be replaced, with entirely
libre firmware. This may be a useful additional step, for some users. See: libre firmware. This may be a useful additional step, for some users. See:
@ -465,12 +599,11 @@ Website:
<https://librerpi.github.io/> <https://librerpi.github.io/>
Install flashprog ### Install flashprog
----------------
If you're using a BBB or RPi, you will do this while SSH'd into those. If you're using a BBB or RPi, you will do this while SSH'd into those.
Flashrom is the software that you will use, for dumping, erasing and rewriting Flashprog is the software that you will use, for dumping, erasing and rewriting
the contents of your NOR flash. the contents of your NOR flash.
In the libreboot build system, from the Git repository, you can download and In the libreboot build system, from the Git repository, you can download and
@ -499,7 +632,7 @@ for use on x86-64 systems running Ubuntu 20.04, but it should work in Raspbian
on the Raspberry Pi. on the Raspberry Pi.
Alternatively, you may download flashprog directly from upstream Alternatively, you may download flashprog directly from upstream
at <https://flashprog.org/Flashrom> at <https://flashprog.org/Flashprog>
If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to
use a special patched version of flashprog, which you can download here: use a special patched version of flashprog, which you can download here:
@ -514,13 +647,12 @@ at `config/dependencies/` which you can install
using the `apt-get` software. using the `apt-get` software.
How to use flashprog How to use flashprog
=================== --------------------
Read past these sections, further down this page, to learn about specific chip Read past these sections, further down this page, to learn about specific chip
types and how to wire them. types and how to wire them.
Reading ### Reading
-------
Before flashing a new ROM image, it is highly advisable that you dump the Before flashing a new ROM image, it is highly advisable that you dump the
current chip contents to a file. current chip contents to a file.
@ -580,8 +712,7 @@ You can combine both flashes together with `cat` for example:
Note that you will need this combined rom if you intend to manually extract vendor Note that you will need this combined rom if you intend to manually extract vendor
files, which is a method not officially supported by Libreboot's build system. files, which is a method not officially supported by Libreboot's build system.
Writing ### Writing
-------
Next, run this command (RPi): Next, run this command (RPi):
@ -617,15 +748,13 @@ For example, to split a rom for the x230, t430, t530, or t440p run:
Flash the resulting roms to each of their respective chips according to the above instructions. Flash the resulting roms to each of their respective chips according to the above instructions.
Hardware configuration Hardware configuration
====================== ----------------------
Refer to the above guidance about software configuration. The following advice Refer to the above guidance about software configuration. The following advice
will teach you how to wire each type of flash chip. will teach you how to wire each type of flash chip.
WARNINGS ### WARNINGS
--------
Do not connect the power source until your chip is otherwise properly Do not connect the power source until your chip is otherwise properly
wired. For instance, do not connect a test clip that has power attached. wired. For instance, do not connect a test clip that has power attached.
@ -648,24 +777,22 @@ voltage range is between 2.7V and 3.6V, but 3.3V is the most ideal level).
DO NOT connect more than 1 DC power source to your flash chip either! DO NOT connect more than 1 DC power source to your flash chip either!
Mixing voltages like that can easily cause damage to your equipment, and to Mixing voltages like that can easily cause damage to your equipment, and to
your chip/mainboard. your chip/motherboard.
MISO/MOSI/CS/CLK lines ### MISO/MOSI/CS/CLK lines
----------------------
You may want to add 47ohm series resistors on these lines, when flashing the You may want to add 47ohm series resistors on these lines, when flashing the
chips. Only do it on those lines (NOT the VCC or GND lines). This provides chips. Only do it on those lines (NOT the VCC or GND lines). This provides
some protection from over-current. On Intel platforms, the SPI flash is usually some protection from over-current. On Intel platforms, the SPI flash is usually
connected via such resistors, directly to the Southbridge chipset. connected via such resistors, directly to the Southbridge chipset.
ISP programming and VCC diode ### ISP programming and VCC diode
-----------------------------
ISP means in-system programming. It's when you flash a chip that is already ISP means in-system programming. It's when you flash a chip that is already
mounted to the mainboard of your computer that you wish to install libreboot mounted to the motherboard of your computer that you wish to install libreboot
on. on.
It may be beneficial to modify the mainboard so that the SPI flash is powered It may be beneficial to modify the motherboard so that the SPI flash is powered
(on the VCC pin) through a diode, but please note: a diode will cause a voltage (on the VCC pin) through a diode, but please note: a diode will cause a voltage
drop. The tolerated range for a chip expecting 3.3V VCC is usually around 2.7V drop. The tolerated range for a chip expecting 3.3V VCC is usually around 2.7V
to 3.6V DC, and the drop may cause the voltage to fall outside that. If you do to 3.6V DC, and the drop may cause the voltage to fall outside that. If you do
@ -685,7 +812,7 @@ other components on that board, which share the same power rail. Further,
ensure that the pull-up resistors for WP/HOLD are *only* connected to the side ensure that the pull-up resistors for WP/HOLD are *only* connected to the side
of the diode that has continuity with the VCC pin (this is important because if of the diode that has continuity with the VCC pin (this is important because if
they're not, they won't be held high while doing ISP flashing, even if they're they're not, they won't be held high while doing ISP flashing, even if they're
still held high when the mainboard is fully powered on). still held high when the motherboard is fully powered on).
Furthermore: ensure that the SPI flash is operating at the appropriate supply Furthermore: ensure that the SPI flash is operating at the appropriate supply
voltage (2.7V to 3.6V for a 3.3V chip) when fully powered on, after installing voltage (2.7V to 3.6V for a 3.3V chip) when fully powered on, after installing
@ -696,11 +823,10 @@ the SOIC8/WSON8 if it uses that, and replace with an IC socket (for SOIC8,
WSON8 or DIP8, whatever you want), because then you could easily just insert WSON8 or DIP8, whatever you want), because then you could easily just insert
the flash into a breadboard when flashing. the flash into a breadboard when flashing.
TODO: Make a page on libreboot.org, showing how to do this on all mainboards TODO: Make a page on libreboot.org, showing how to do this on all motherboards
supported by libreboot. supported by libreboot.
GPIO pins on BeagleBone Black (BBB) ### GPIO pins on BeagleBone Black (BBB)
-----------------------------------
Use this image for reference when connecting the pomona to the BBB: Use this image for reference when connecting the pomona to the BBB:
<https://beagleboard.org/Support/bone101#headers> (D0 = MISO or connects <https://beagleboard.org/Support/bone101#headers> (D0 = MISO or connects
@ -709,8 +835,7 @@ to MISO).
On that page, look at the *P9 header*. It is what you will use to wire up your On that page, look at the *P9 header*. It is what you will use to wire up your
chip for flashing. chip for flashing.
GPIO pins on Raspberry Pi (RPi) 40 Pin ### GPIO pins on Raspberry Pi (RPi) 40 Pin
--------------------------------------
This diagram shows the pinout for most modern Pi's and Pi derivatives. This diagram shows the pinout for most modern Pi's and Pi derivatives.
The diagram shows the pins of an RPi on the left and the two SOIC clips The diagram shows the pins of an RPi on the left and the two SOIC clips
@ -718,8 +843,7 @@ on the left.
![](https://av.libreboot.org/rpi/wiring.webp) ![](https://av.libreboot.org/rpi/wiring.webp)
GPIO pins on Raspberry Pi (RPi) 26 Pin ### GPIO pins on Raspberry Pi (RPi) 26 Pin
-------------------------------
Diagram of the 26 GPIO Pins of the Raspberry Pi Model B (for the Model Diagram of the 26 GPIO Pins of the Raspberry Pi Model B (for the Model
B+ with 40 pins, start counting from the right and leave 14 pins): B+ with 40 pins, start counting from the right and leave 14 pins):
@ -728,8 +852,7 @@ B+ with 40 pins, start counting from the right and leave 14 pins):
Use this as a reference for the other sections in this page, seen below: Use this as a reference for the other sections in this page, seen below:
SOIC8/DIP8/WSON8 wiring diagram ### SOIC8/DIP8/WSON8 wiring diagram
-------------------------------
Refer to this diagram: Refer to this diagram:
@ -751,13 +874,12 @@ use pull-up resistors on those (see notes below), and decoupling capacitor on
pin 8 (VCC). pin 8 (VCC).
NOTE: On X60/T60 thinkpads, don't connect pin 8. Instead, plug in your the PSU NOTE: On X60/T60 thinkpads, don't connect pin 8. Instead, plug in your the PSU
to the charging port on your mainboard, but do not power on the mainboard. This to the charging port on your motherboard, but do not power on the motherboard. This
will provide a stable 3.3V voltage, with adequate current levels. On those will provide a stable 3.3V voltage, with adequate current levels. On those
laptops, this is necessary because the flash shares a common 3.3V DC rail with laptops, this is necessary because the flash shares a common 3.3V DC rail with
many other ICs that all draw quite a lot of current. many other ICs that all draw quite a lot of current.
SOIC16 wiring diagram (Raspberry Pi) ### SOIC16 wiring diagram (Raspberry Pi)
------------------------------------
RPi GPIO header:\ RPi GPIO header:\
![](https://av.libreboot.org/rpi/0009.webp) ![](https://av.libreboot.org/rpi/0009.webp)
@ -795,14 +917,13 @@ NOTE: pins 1 and 9 are WP/HOLD pins. If flashing a chip on a breadboard, please
use pull-up resistors on those (see notes below), and decoupling capacitor on use pull-up resistors on those (see notes below), and decoupling capacitor on
pin 2 (VCC). pin 2 (VCC).
Pull-up resistors and decoupling capacitors ### Pull-up resistors and decoupling capacitors
-------------------------------------------
**Do this for chips mounted to a breadboard. Ignore this section if you're **Do this for chips mounted to a breadboard. Ignore this section if you're
flashing a chip that is already soldered to a mainboard.** flashing a chip that is already soldered to a motherboard.**
This section is only relevant if you're flashing a new chip that is not yet This section is only relevant if you're flashing a new chip that is not yet
mounted to a mainboard. You need pull-up resistors on the WP and HOLD pins, mounted to a motherboard. You need pull-up resistors on the WP and HOLD pins,
and decoupling capacitors on the VCC pin. If the chip is already mounted to a and decoupling capacitors on the VCC pin. If the chip is already mounted to a
board, whether soldered or in a socket, these capacitors and resistors will board, whether soldered or in a socket, these capacitors and resistors will
probably already exist on the board and you can just flash it without pulling probably already exist on the board and you can just flash it without pulling
@ -819,11 +940,11 @@ The best way is as follows:
SOIC8/WSON8/DIP8: pin 3 and 7 must be held to a high logic state, which means SOIC8/WSON8/DIP8: pin 3 and 7 must be held to a high logic state, which means
that each pin has its own pull-up resistor to VCC (from the voltage plane that that each pin has its own pull-up resistor to VCC (from the voltage plane that
pin 8 connects to); anything from 1Kohm to 10Kohm will do. When you're flashing pin 8 connects to); anything from 1Kohm to 10Kohm will do. When you're flashing
a chip that's already on a laptop/desktop/server mainboard, pin 3 and 7 are a chip that's already on a laptop/desktop/server motherboard, pin 3 and 7 are
likely already held high, so you don't need to bother. likely already held high, so you don't need to bother.
SOIC8/WSON8/DIP8: pin 8, which is VCC, will already have decoupling capacitors on it SOIC8/WSON8/DIP8: pin 8, which is VCC, will already have decoupling capacitors on it
if the chip is on a mainboard, but lone chip flashing means that these capacitors if the chip is on a motherboard, but lone chip flashing means that these capacitors
do not exist. A capacitor passes AC but blocks DC. Due to electromagnetic do not exist. A capacitor passes AC but blocks DC. Due to electromagnetic
indunctance, and RF noise from high-speed switching ICs, a DC voltage line isn't indunctance, and RF noise from high-speed switching ICs, a DC voltage line isn't
actually straight (when viewed on an oscilloscope), but actually has low voltage actually straight (when viewed on an oscilloscope), but actually has low voltage
@ -844,12 +965,11 @@ WP/HOLD are not pin 3/7 like above, but instead pins 1 and 9, so wire your
pull-up resistors on those. VCC on SOIC16 is pin 2, so wire your decoupling pull-up resistors on those. VCC on SOIC16 is pin 2, so wire your decoupling
capacitors up on that. capacitors up on that.
SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard ### SOIC8/WSON8/DIP8/SOIC16 not mounted to a motherboard
--------------------------------------------------
If your system has lower capacity SPI flash, you can upgrade. On *most* systems, If your system has lower capacity SPI flash, you can upgrade. On *most* systems,
SPI flash is memory mapped and the maximum (in practise) that you can use is a SPI flash is memory mapped and the maximum (in practise) that you can use is a
16MiB chip. For example, KGPE-D16 and KCMA-D8 mainboards in libreboot have 16MiB chip. For example, KGPE-D16 and KCMA-D8 motherboards in libreboot have
2MiB flash by default, but you can easily upgrade these. Another example is the 2MiB flash by default, but you can easily upgrade these. Another example is the
ThinkPad X200S, X200 Tablet and T400S, all of which have WSON8 where the best ThinkPad X200S, X200 Tablet and T400S, all of which have WSON8 where the best
course of action is to replace it with a SOIC8 flash chip. course of action is to replace it with a SOIC8 flash chip.
@ -886,7 +1006,7 @@ video, but for WSON8. Sometimes they are called DFN8 or QFN8 sockets. Get one
that is 1.27mm pitch. that is 1.27mm pitch.
If you're flashing/dumping a lone WSON8, get a WSON8/QFN8/DFN8 socket (1.27mm If you're flashing/dumping a lone WSON8, get a WSON8/QFN8/DFN8 socket (1.27mm
pitch) and mount it to a breadboard for flashing. If your mainboard's landing pitch) and mount it to a breadboard for flashing. If your motherboard's landing
pads for the flash IC can take a SOIC8, we recommend that you use a SOIC8 pads for the flash IC can take a SOIC8, we recommend that you use a SOIC8
instead because a test clip is possible later on when you wish to re-flash it, instead because a test clip is possible later on when you wish to re-flash it,
however you may be dealing with a board where replacing existing WSON8 with however you may be dealing with a board where replacing existing WSON8 with
@ -917,8 +1037,7 @@ and good 60/40 or 63/37 leaded solder (don't use lead-free):
![](https://av.libreboot.org/dip8/adapter.jpg) ![](https://av.libreboot.org/dip8/adapter.jpg)
![](https://av.libreboot.org/dip8/sop8todip8.jpg) ![](https://av.libreboot.org/dip8/sop8todip8.jpg)
SOIC8/SOIC16 soldered to a mainboard ### SOIC8/SOIC16 soldered to a motherboard
------------------------------------
This is an example of *in-system programming* or *ISP* for short. This is an example of *in-system programming* or *ISP* for short.
@ -926,16 +1045,16 @@ SOIC8:\
Pomona 5250 is a SOIC8 test clip. There are others available, but this is the Pomona 5250 is a SOIC8 test clip. There are others available, but this is the
best one. Use that. Use the SOIC8 diagram (see above) to wire up your Raspberry best one. Use that. Use the SOIC8 diagram (see above) to wire up your Raspberry
Pi. Pi.
Your mainboard likely already pulls WP/HOLD (pins 3 and 7) high, so don't Your motherboard likely already pulls WP/HOLD (pins 3 and 7) high, so don't
connect these. VCC on SOIC8's pin 8 probably already has decoupling connect these. VCC on SOIC8's pin 8 probably already has decoupling
capacitors on the mainboard, so just hook that up without using a capacitor. capacitors on the motherboard, so just hook that up without using a capacitor.
SOIC16:\ SOIC16:\
Pomona 5252 is a SOIC16 test clip. There are others available, but this is the Pomona 5252 is a SOIC16 test clip. There are others available, but this is the
best one. Use that. Use the SOIC16 diagram (see above) to wire up your Raspberry best one. Use that. Use the SOIC16 diagram (see above) to wire up your Raspberry
Pi. WP/HOLD pins are pins 1 and 9, and likely already held high, so no pull-up Pi. WP/HOLD pins are pins 1 and 9, and likely already held high, so no pull-up
resistors needed. You do not need a decoupling capacitor for pin 2 (VCC) either resistors needed. You do not need a decoupling capacitor for pin 2 (VCC) either
because the mainboard will already have one. because the motherboard will already have one.
Here is an example of a test clip connected for SOIC16:\ Here is an example of a test clip connected for SOIC16:\
![](https://av.libreboot.org/rpi/0002.jpg) ![](https://av.libreboot.org/rpi/0002.jpg)
@ -943,10 +1062,9 @@ Here is an example of a test clip connected for SOIC16:\
And here is an example photo for SOIC8:\ And here is an example photo for SOIC8:\
![](https://av.libreboot.org/x60/th_bbb_flashing.jpg) ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg)
DIP8 soldered to the mainboard ### DIP8 soldered to the motherboard
------------------------------
It is extremely cursed for DIP8 to be soldered directly to the mainboard. It is It is extremely cursed for DIP8 to be soldered directly to the motherboard. It is
usually mounted to a socket. usually mounted to a socket.
The pins are large enough that you can just use test hooks to wire up your chip The pins are large enough that you can just use test hooks to wire up your chip
@ -959,8 +1077,7 @@ directly soldered. It is almost always mounted in a socket.
Your DIP8 IC has the same pinout as a SOIC8 IC. Your DIP8 IC has the same pinout as a SOIC8 IC.
Replace WSON8 IC with SOIC8 ### Replace WSON8 IC with SOIC8
---------------------------
**NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress.
They look similar to SOIC8 clips, and they work similarly.** They look similar to SOIC8 clips, and they work similarly.**
@ -1075,7 +1192,7 @@ evaporates quickly and it does not leave a corrosive residue.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
LICENSING LICENSING
========= ---------
This page is released under different copyright terms than most other pages This page is released under different copyright terms than most other pages
on this website. on this website.
@ -1084,11 +1201,7 @@ This page and the photos on it are available under
[CC BY SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt) [CC BY SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt)
Check the Git repository for history of who owns what part of the document. Check the Git repository for history of who owns what part of the document.
Some of these resources originate from the *old* Libreboot git repository, Photos showing a BeagleBone Black are under the normal GFDL
before Libreboot split into separate repositories that include its `lbmk`
repository.
Photos showing a BeagleBone Black are under the normal GNU Free Documentation
license like other pages and images on this website, or you can use them under license like other pages and images on this website, or you can use them under
the CC-BY-SA 4.0 license if you wish (I, Leah Rowe, own all BBB photos shown the CC-BY-SA 4.0 license if you wish (I, Leah Rowe, own all BBB photos shown
on this page, except for the one on the beaglebone website, and that one is on this page, except for the one on the beaglebone website, and that one is

View file

@ -0,0 +1 @@
Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware by way of external flashing, using compatible 25xx NOR programmer (SPI flasher).

View file

@ -4,7 +4,7 @@ x-toc-enable: true
... ...
Need help? Need help?
========== ----------
Help is available on [Libreboot IRC](../../contact.md) and other channels. Help is available on [Libreboot IRC](../../contact.md) and other channels.
@ -16,18 +16,18 @@ if you want to send your machine in to have Libreboot installed for you.
Leah Rowe, the founder and lead developer of Libreboot, also owns and Leah Rowe, the founder and lead developer of Libreboot, also owns and
operates Minifree Ltd; sales provide funding for the Libreboot project. operates Minifree Ltd; sales provide funding for the Libreboot project.
Introduction Install open source BIOS/UEFI firmware
============ ------------
**[安装之前请先阅读这些指示](../../news/safety.md),否则你的机器可能会成砖:[安全措施](../../news/safety.md)** **[安装之前请先阅读这些指示](ivy_has_common.md),否则你的机器可能会成砖:[安全措施](ivy_has_common.md)**
本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash唯一的例外就是 ASUS KFSN4-DRE它在 PLCC32 芯片座中使用了 LPC flash你可以在供应商固件启动后对其进行热切换然后再内部刷入。十分简单 本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash唯一的例外就是 ASUS KFSN4-DRE它在 PLCC32 芯片座中使用了 LPC flash你可以在供应商固件启动后对其进行热切换然后再内部刷入。十分简单
我们会用到 [flashprog](https://flashprog.org/Flashrom) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。 我们会用到 [flashprog](https://flashprog.org/) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。
libreboot 目前记录了这些 SPI 编程器的使用方法: libreboot 目前记录了这些 SPI 编程器的使用方法:
* Raspberry Pi Pico * Raspberry Pi Pico / Pico 2
* 树莓派Raspberry PiRPi * 树莓派Raspberry PiRPi
* BeagleBone BlackBBB * BeagleBone BlackBBB
* Libre Computer 'Le Potato' * Libre Computer 'Le Potato'
@ -41,7 +41,16 @@ libreboot 目前记录了这些 SPI 编程器的使用方法:
你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。 你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。
Raspberry Pi Pico Raspberry Pi Pico
================= -----------------
### RP2040/RP2530 both supported
**Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8
or higher. Releases before this only supported the original Pico, and other
RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.**
The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you
must take care to flash the correct image on either device.
![Left to right: Raspberry Pi Pico and Pico H](https://av.libreboot.org/rpi_pico/two_picos.webp) ![Left to right: Raspberry Pi Pico and Pico H](https://av.libreboot.org/rpi_pico/two_picos.webp)
@ -52,21 +61,26 @@ Additionally, all the software running on it is free, down to the full
versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip,
but that is not needed for following this guide. but that is not needed for following this guide.
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't ### Download serprog firmware pre-compiled
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
you need to add a logic level converter.
First, connect just the Pico to your computer with a micro-USB cable. Download the pico serprog tarball from Libreboot releases. For example, the
Mount it like any other USB flash drive. If it isn't detected, you might need Libreboot 20241206rev8 one would be
to press the BOOTSEL button while you plug it in (this forces it into the named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under
bootloader mode). the `roms/` directory in each release. With these binaries, you can easily
get started.
You can download the serprog firmware here:\ ### Build serprog firmware from source
You can alternatively download the serprog firmware here:\
<https://codeberg.org/libreboot/pico-serprog>\ <https://codeberg.org/libreboot/pico-serprog>\
or here:\ or here:\
<https://notabug.org/libreboot/pico-serprog> <https://notabug.org/libreboot/pico-serprog>
Copy the file `rpi-pico-serprog.uf2` into your Pico. To build this firmware, you You can also find the source code for these, under `src/` in Libreboot release
archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading
using the build instructions below.
Alternatively to the binaries, you
could build it yourself or you could also clone `lbmk.git` and [install build could build it yourself or you could also clone `lbmk.git` and [install build
dependencies](../build/#first-install-build-dependencies), then inside lbmk, dependencies](../build/#first-install-build-dependencies), then inside lbmk,
do: do:
@ -74,15 +88,48 @@ do:
./mk -b pico-serprog ./mk -b pico-serprog
This will automatically build the rpi-pico firmware, and the file will be This will automatically build the rpi-pico firmware, and the file will be
at `bin/serprog_rp2040/serprog_pico.uf2` at `bin/serprog_pico/serprog_pico.uf2`
and `bin/serprog_rp2040/serprog_pico_w.uf2`. and `bin/serprog_pico/serprog_pico_w.uf2`.
### Install the serprog firmware
First, connect just the Pico to your computer with a micro-USB cable.
Mount it like any other USB flash drive. If it isn't detected, you might need
to press the BOOTSEL button while you plug it in (this forces it into the
bootloader mode).
When you have the build, or if you're using a release build, copy the
file `.uf2` file into your Pico. You must make sure to build the correct
target, or otherwise copy the correct file, because many RP2040 and RP2530
devices exist and Libreboot provides images for **all of them** in the same
release tarball.
**NOTE: Other RP2040/2530 devices will also work. You just have to match
the right pins and use the correct firmware file!**
### Logic levels
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
you need to add a logic level converter. **Please ensure that you have matched
the voltage of your programmer to the voltage of your chip; both the data lines
and power lines to the chip must match.**
### Wiring
Disconnect the Pico and proceed to wire it to your Disconnect the Pico and proceed to wire it to your
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
![Raspberry Pi Pico pinout, when using the firmware linked above](https://av.libreboot.org/rpi_pico/pinout_serprog.png) **NOTE: SCK and CLK mean the same thing. The diagram below says SCK, and other
parts of this guide say CLK. It's the same thing!**
![A Raspberry Pi Pico connected to a SOIC16 flash chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp) ![Raspberry Pi Pico pinout, when using the firmware linked
above](https://av.libreboot.org/rpi_pico/pinout_serprog.png)
![A Raspberry Pi Pico connected to a SOIC16 flash
chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp)
![SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg)
Headers were manually soldered on the top side, and the plastic packaging Headers were manually soldered on the top side, and the plastic packaging
was repurposed as an insulating base. These might be nice to have, but by no was repurposed as an insulating base. These might be nice to have, but by no
@ -94,7 +141,7 @@ will appear:
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device [453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
Take note of the ttyACMx. Flashrom is now usable Take note of the ttyACMx. Flashprog is now usable
(substitute ttyACMx with what you observed earlier). (substitute ttyACMx with what you observed earlier).
flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
@ -102,8 +149,10 @@ Take note of the ttyACMx. Flashrom is now usable
spispeed=32M usually works, but since it's not much faster it's probably spispeed=32M usually works, but since it's not much faster it's probably
not worth it. The 12Mbps USB port is limiting the actual speed here. not worth it. The 12Mbps USB port is limiting the actual speed here.
Higher speeds might work nicely, on Pico 2.
不要使用 CH341A 不要使用 CH341A
================== ----------------
libreboot 支持的机器NOR flash 使用的是 3.3V DC 或 1.8V DC这也包括了数据线路。CH341A 在数据线路上有 5V 逻辑电平,这会损伤 SPI flash 和它连接的南桥,以及它连接的其它任何东西。 libreboot 支持的机器NOR flash 使用的是 3.3V DC 或 1.8V DC这也包括了数据线路。CH341A 在数据线路上有 5V 逻辑电平,这会损伤 SPI flash 和它连接的南桥,以及它连接的其它任何东西。
@ -134,26 +183,23 @@ libreboot 支持的机器NOR flash 使用的是 3.3V DC 或 1.8V DC这也
绿色版本(上面未展示)可能已经连接了 3.3v 逻辑电平,但仍然需要为 WP/HOLD 增加上拉电阻。 绿色版本(上面未展示)可能已经连接了 3.3v 逻辑电平,但仍然需要为 WP/HOLD 增加上拉电阻。
识别你的 flash 类型 识别你的 flash 类型
================================== -------------------
每一个 flash都会有一个点或者标记表明这是第 1 引脚(如 WSON8 的第 1 焊盘)。 每一个 flash都会有一个点或者标记表明这是第 1 引脚(如 WSON8 的第 1 焊盘)。
参考下面的图片,再看看你的主板。搞清楚你的芯片类型之后,根据你了解的情况及本教程剩下的部分,来实现你的目标,即对你的引导 flash 进行读/写。 参考下面的图片,再看看你的主板。搞清楚你的芯片类型之后,根据你了解的情况及本教程剩下的部分,来实现你的目标,即对你的引导 flash 进行读/写。
SOIC8 ### SOIC8
-----
![](https://av.libreboot.org/chip/soic8.jpg) ![](https://av.libreboot.org/chip/soic8.jpg)
SOIC16 ### SOIC16
------
![](https://av.libreboot.org/chip/soic16.jpg) ![](https://av.libreboot.org/chip/soic16.jpg)
SOIC8 和 SOIC16 是最常见的类型,但也有其他的类型: SOIC8 和 SOIC16 是最常见的类型,但也有其他的类型:
WSON8 ### WSON8
-----
X200S 或 X200 Tablet 上是像这样的:\ X200S 或 X200 Tablet 上是像这样的:\
![](https://av.libreboot.org/x200t_flash/X200T-flashchip-location.jpg) ![](https://av.libreboot.org/x200t_flash/X200T-flashchip-location.jpg)
@ -162,28 +208,24 @@ T400S 上,是在 RAM 附近的这个位置:\
![](https://av.libreboot.org/t400s/soic8.jpg)\ ![](https://av.libreboot.org/t400s/soic8.jpg)\
注意: 本照片中的芯片换成了 SOIC8 注意: 本照片中的芯片换成了 SOIC8
DIP8 ### DIP8
----
![](https://av.libreboot.org/dip8/dip8.jpg) ![](https://av.libreboot.org/dip8/dip8.jpg)
电源电压 ### 电源电压
--------------
之前Libreboot 支持的所有主板,刚好都有在 3.3V DC 下工作的 SPI NOR 芯片。因为最近添加了额定 1.8V DC 芯片的 Chromebook所以就不再是这么回事了。 之前Libreboot 支持的所有主板,刚好都有在 3.3V DC 下工作的 SPI NOR 芯片。因为最近添加了额定 1.8V DC 芯片的 Chromebook所以就不再是这么回事了。
检查主板上芯片的元件型号,再查找一下它的数据表。找出它需要的电源电压并记下来。如果它和你外部刷写硬件的输出电压不匹配,那你只能通过适配器或者逻辑电平转换器,把它连至芯片,而绝不能直接连接。 检查主板上芯片的元件型号,再查找一下它的数据表。找出它需要的电源电压并记下来。如果它和你外部刷写硬件的输出电压不匹配,那你只能通过适配器或者逻辑电平转换器,把它连至芯片,而绝不能直接连接。
软件配置 软件配置
====================== --------
通用/Le potato ### 通用/Le potato
-----------------
[通用指南](spi_generic.md)可以帮助你使用本指南未列出的 SBC单板电脑。不过那份指南会使用 libre computer 'Le Potato' 作为参考板。如果你有那块板子,你应该参考 [通用指南](spi_generic.md)。 [通用指南](spi_generic.md)可以帮助你使用本指南未列出的 SBC单板电脑。不过那份指南会使用 libre computer 'Le Potato' 作为参考板。如果你有那块板子,你应该参考 [通用指南](spi_generic.md)。
BeagleBone BlackBBB ### BeagleBone BlackBBB
----------------------
SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog` SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog`
@ -240,15 +282,13 @@ Note: flashprog can never write if the flash chip isn't found automatically.
这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。 这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。
BBB 注意事项 ### BBB 注意事项
-----------------
不建议使用 BeagleBone Black因为拿它来进行 SPI 刷写,速度很慢而且不稳定,并且现在有更好的选择了。我们以前建议使用 BBB因为它可以完全运行自由软件但现在有了更佳的选择。 不建议使用 BeagleBone Black因为拿它来进行 SPI 刷写,速度很慢而且不稳定,并且现在有更好的选择了。我们以前建议使用 BBB因为它可以完全运行自由软件但现在有了更佳的选择。
计划:讲解其他 SPI 刷写工具 计划:讲解其他 SPI 刷写工具
Rasberry PiRPi ### Rasberry PiRPi
-----------------
SSH 连接到树莓派。你将在树莓派上运行 `flashprog` SSH 连接到树莓派。你将在树莓派上运行 `flashprog`
@ -265,8 +305,7 @@ SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。
用于 SPI 通讯的设备位于 `/dev/spidev0.0` 用于 SPI 通讯的设备位于 `/dev/spidev0.0`
RPi 驱动强度Drive Strength ### RPi 驱动强度Drive Strength
------------------
RPi 的 flashprog 可能无法检测到一些系统的 SPI flash即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是在保持高电平最低电压的同时引脚最高能输出的电流。对树莓派而言这个电压是 3.0 V。 RPi 的 flashprog 可能无法检测到一些系统的 SPI flash即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是在保持高电平最低电压的同时引脚最高能输出的电流。对树莓派而言这个电压是 3.0 V。
@ -296,8 +335,7 @@ RPi 的 flashprog 可能无法检测到一些系统的 SPI flash即使你已
<https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> 了解树莓派上的驱动强度控制。 <https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#gpio-pads-control> 了解树莓派上的驱动强度控制。
RPi 注意事项 ### RPi 注意事项
-----------------
基本上Raspbian 项目,即现在的 Raspberry Pi OS对其仓库进行了更新增加了一个新的“受信任”仓库这刚好是一个微软软件仓库。他们这么做似乎是为了 VS Code但问题在于这可以让微软自由地控制他们喜欢的依赖根据 apt-get 规则)。每当你更新,你都会对微软的服务器发送请求。不觉得这很奇怪吗? 基本上Raspbian 项目,即现在的 Raspberry Pi OS对其仓库进行了更新增加了一个新的“受信任”仓库这刚好是一个微软软件仓库。他们这么做似乎是为了 VS Code但问题在于这可以让微软自由地控制他们喜欢的依赖根据 apt-get 规则)。每当你更新,你都会对微软的服务器发送请求。不觉得这很奇怪吗?
@ -310,8 +348,7 @@ RPi 注意事项
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555> * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/ed96790e6de281bc393b575c38aa8071ce39b555>
* <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6> * <https://github.com/RPi-Distro/raspberrypi-sys-mods/commit/4d1afece91008f3787495b520ac03b53fef754c6>
RPi 的自由固件 ### RPi 的自由固件
---------------------
旧款树莓派的引导固件可以替换成完全自由的固件。对有些用户而言,这额外的一步可能很有用。参见: 旧款树莓派的引导固件可以替换成完全自由的固件。对有些用户而言,这额外的一步可能很有用。参见:
@ -321,12 +358,11 @@ RPi 的自由固件
<https://librerpi.github.io/> <https://librerpi.github.io/>
安装 flashprog ### 安装 flashprog
----------------
如果你在使用 BBB 或者 RPi你需要在 SSH 进去之后再这么做。 如果你在使用 BBB 或者 RPi你需要在 SSH 进去之后再这么做。
Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。 Flashprog 是用来读出、擦除、重写 NOR flash 内容的软件。
使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行: 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行:
@ -341,19 +377,18 @@ Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。 接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。
或者,你可以直接从上游下载 flashprog位于<https://flashprog.org/Flashrom> 或者,你可以直接从上游下载 flashprog位于<https://flashprog.org/>
如果你是在 ThinkPad X200 上刷写 Macronix flash 芯片,则要使用一个 flashprog 的特别修改版,下载地址在这里:<https://vimuser.org/hackrom.tar.xz> —— 其中有修改版的源代码,也有可以直接运行的二进制文件。将 `--workaround-mx` 参数传给 flashprog。这会缓解稳定性问题。 如果你是在 ThinkPad X200 上刷写 Macronix flash 芯片,则要使用一个 flashprog 的特别修改版,下载地址在这里:<https://vimuser.org/hackrom.tar.xz> —— 其中有修改版的源代码,也有可以直接运行的二进制文件。将 `--workaround-mx` 参数传给 flashprog。这会缓解稳定性问题。
如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。 如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。
如何使用 flashprog 如何使用 flashprog
=================== ------------------
请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。 请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。
读出 ### 读出
-------
刷入新的 ROM 镜像之前,强烈建议你将当前芯片的内容读出到一个文件。 刷入新的 ROM 镜像之前,强烈建议你将当前芯片的内容读出到一个文件。
@ -393,8 +428,7 @@ BBB 的话,这样:
注意,如果你要手动提取 blob那你就需要这个组合而成的 rom。 注意,如果你要手动提取 blob那你就需要这个组合而成的 rom。
写入 ### 写入
-------
接下来运行这个命令RPi 接下来运行这个命令RPi
@ -427,12 +461,11 @@ Verifying flash... VERIFIED.
硬件配置 硬件配置
====================== --------
软件配置请参考上面的教程。下面的建议会教你如何为每种 flash 芯片接线。 软件配置请参考上面的教程。下面的建议会教你如何为每种 flash 芯片接线。
警告 ### 警告
--------
在芯片还没有正确接好线时,先不要连接电源。例如,不要连接到接通电源的测试夹。 在芯片还没有正确接好线时,先不要连接电源。例如,不要连接到接通电源的测试夹。
@ -444,13 +477,11 @@ Verifying flash... VERIFIED.
也不要给你的 flash 芯片连接超过 1 个 DC 电源!那样混合电压的话,很容易损伤你的设备及芯片/主板。 也不要给你的 flash 芯片连接超过 1 个 DC 电源!那样混合电压的话,很容易损伤你的设备及芯片/主板。
MISO/MOSI/CS/CLK 接线 ### MISO/MOSI/CS/CLK 接线
----------------------
在刷写这些芯片的时候,你可能也想增加 47 欧姆的串联电阻(不是加在 VCC 或 GND 线上)。这可以提供一些过流保护。在 Intel 平台上SPI flash 直接连接到南桥芯片组时,通常会通过这样的电阻。 在刷写这些芯片的时候,你可能也想增加 47 欧姆的串联电阻(不是加在 VCC 或 GND 线上)。这可以提供一些过流保护。在 Intel 平台上SPI flash 直接连接到南桥芯片组时,通常会通过这样的电阻。
ISP 编程及 VCC 二极管 ### ISP 编程及 VCC 二极管
-----------------------------
ISP 即系统内编程in-system programming。它指的是一块芯片已经装在了你想安装 libreboot 的电脑的主板上,而你要对这块芯片进行刷写。 ISP 即系统内编程in-system programming。它指的是一块芯片已经装在了你想安装 libreboot 的电脑的主板上,而你要对这块芯片进行刷写。
@ -466,22 +497,19 @@ ISP 即系统内编程in-system programming。它指的是一块芯片
计划:在 libreboot.org 创建一个页面,讲怎么在 libreboot 支持的所有主板这么做。 计划:在 libreboot.org 创建一个页面,讲怎么在 libreboot 支持的所有主板这么做。
BeagleBone BlackBBB上的 GPIO 引脚 ### BeagleBone BlackBBB上的 GPIO 引脚
-----------------------------------
把 pomona 夹子连接到 BBB 时,参考这张图片:<https://beagleboard.org/Support/bone101#headers> D0 = MISO 或连接到 MISO 把 pomona 夹子连接到 BBB 时,参考这张图片:<https://beagleboard.org/Support/bone101#headers> D0 = MISO 或连接到 MISO
如果你要用 *P9 排针*来连接芯片刷写的话,请看那个页面的那个部分。 如果你要用 *P9 排针*来连接芯片刷写的话,请看那个页面的那个部分。
40 引脚树莓派RPi的 GPIO 引脚 ### 40 引脚树莓派RPi的 GPIO 引脚
--------------------------------------
下图展示了大多数现代树莓派及其衍生版的引脚分配。图中右边是 RPi 的引脚,左边是两个 SOIC 夹。 下图展示了大多数现代树莓派及其衍生版的引脚分配。图中右边是 RPi 的引脚,左边是两个 SOIC 夹。
![](https://av.libreboot.org/rpi/wiring.webp) ![](https://av.libreboot.org/rpi/wiring.webp)
26 引脚树莓派RPi的 GPIO 引脚 ### 26 引脚树莓派RPi的 GPIO 引脚
-------------------------------
树莓派 B 款 26 GPIO 引脚图(对 40 引脚的 B+ 款而言,从右边开始数,剩下 14 个引脚): 树莓派 B 款 26 GPIO 引脚图(对 40 引脚的 B+ 款而言,从右边开始数,剩下 14 个引脚):
@ -489,8 +517,7 @@ BeagleBone BlackBBB上的 GPIO 引脚
此处的信息,也请在阅读以下其他部分时参考: 此处的信息,也请在阅读以下其他部分时参考:
SOIC8/DIP8/WSON8 接线图 ### SOIC8/DIP8/WSON8 接线图
-------------------------------
参考此表: 参考此表:
@ -511,8 +538,7 @@ SOIC8/DIP8/WSON8 接线图
注意:在 X60/T60 thinkpad 上,不要连接第 8 引脚。而是将你的 PSU 接在主板供电口上,但不要启动主板。这会提供稳定的 3.3V 电压及足够的电流。在这些笔记本上,这是必要的,因为 flash 和其他许多 IC 共用一路 3.3V DC 电源,这些 IC 都会分走很多电流。 注意:在 X60/T60 thinkpad 上,不要连接第 8 引脚。而是将你的 PSU 接在主板供电口上,但不要启动主板。这会提供稳定的 3.3V 电压及足够的电流。在这些笔记本上,这是必要的,因为 flash 和其他许多 IC 共用一路 3.3V DC 电源,这些 IC 都会分走很多电流。
SOIC16 接线图(树莓派) ### SOIC16 接线图(树莓派)
------------------------------------
RPi GPIO 排针:\ RPi GPIO 排针:\
![](https://av.libreboot.org/rpi/0009.webp) ![](https://av.libreboot.org/rpi/0009.webp)
@ -548,8 +574,7 @@ BBB P9 排针:\
注意:第 1 和第 9 引脚是 WP/HOLD 引脚。在面包板上刷写芯片时,请对它们使用上拉电阻(见上面的注记),并在第 2 引脚VCC使用去耦电容。 注意:第 1 和第 9 引脚是 WP/HOLD 引脚。在面包板上刷写芯片时,请对它们使用上拉电阻(见上面的注记),并在第 2 引脚VCC使用去耦电容。
上拉电阻和去耦电容 ### 上拉电阻和去耦电容
-------------------------------------------
**如果芯片是装在面包板上的,那请遵循这里的步骤。如果你要刷写的芯片已经焊接在了主板上,那请忽略这一部分。** **如果芯片是装在面包板上的,那请遵循这里的步骤。如果你要刷写的芯片已经焊接在了主板上,那请忽略这一部分。**
@ -570,8 +595,7 @@ SOIC8/WSON8/DIP8如果芯片在主板上那第 8 引脚,即 VCC就已
SOIC16同上但在面包板上使用 SOIC16 socket。在 SOIC16 上WP/HOLD 不同于上面的第 3/7 引脚,而是第 1 和第 9 引脚所以要把上拉电阻接到那里。SOIC16 上的 VCC 是第 2 引脚,所以要把去耦电容接到那里。 SOIC16同上但在面包板上使用 SOIC16 socket。在 SOIC16 上WP/HOLD 不同于上面的第 3/7 引脚,而是第 1 和第 9 引脚所以要把上拉电阻接到那里。SOIC16 上的 VCC 是第 2 引脚,所以要把去耦电容接到那里。
SOIC8/WSON8/DIP8/SOIC16 未安装在主板上 ### SOIC8/WSON8/DIP8/SOIC16 未安装在主板上
--------------------------------------------------
如果你的机器的 SPI flash 容量较低,那你可以升级。在*大多数*机器上SPI flash 是经过映射的内存,而(实际上)你最大可以使用 16MiB 的芯片。例如libreboot 的 KGPE-D16 和 KCMA-D8 主板默认有 2MiB flash但你可以对它们轻松升级。另一个例子是 ThinkPad X200S、X200 Tablet 和 T400S它们都有 WSON8而最佳的方案就是将它替换为 SOIC8 flash 芯片。 如果你的机器的 SPI flash 容量较低,那你可以升级。在*大多数*机器上SPI flash 是经过映射的内存,而(实际上)你最大可以使用 16MiB 的芯片。例如libreboot 的 KGPE-D16 和 KCMA-D8 主板默认有 2MiB flash但你可以对它们轻松升级。另一个例子是 ThinkPad X200S、X200 Tablet 和 T400S它们都有 WSON8而最佳的方案就是将它替换为 SOIC8 flash 芯片。
@ -608,8 +632,7 @@ SOIC8/WSON8/DIP8/SOIC16 未安装在主板上
![](https://av.libreboot.org/dip8/adapter.jpg) ![](https://av.libreboot.org/dip8/adapter.jpg)
![](https://av.libreboot.org/dip8/sop8todip8.jpg) ![](https://av.libreboot.org/dip8/sop8todip8.jpg)
SOIC8/SOIC16 焊接在主板上 ### SOIC8/SOIC16 焊接在主板上
------------------------------------
这是*系统内编程*或 *ISP* 的一个简短例子。 这是*系统内编程*或 *ISP* 的一个简短例子。
@ -625,8 +648,7 @@ Pomona 5252 是一个 SOIC16 测试夹。也有其他的可以用,但这个是
SOIC8 例子的照片如下:\ SOIC8 例子的照片如下:\
![](https://av.libreboot.org/x60/th_bbb_flashing.jpg) ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg)
DIP8 焊接在主板上 ### DIP8 焊接在主板上
------------------------------
把 DIP8 直接焊接在主板上怪异至极。它通常是安装在芯片座上的。 把 DIP8 直接焊接在主板上怪异至极。它通常是安装在芯片座上的。
@ -636,8 +658,7 @@ DIP8 焊接在主板上
DIP8 IC 的引脚分配和 SOIC8 IC 一样。 DIP8 IC 的引脚分配和 SOIC8 IC 一样。
使用 SOIC8 替换 WSON8 IC ### 使用 SOIC8 替换 WSON8 IC
---------------------------
**NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress.
They look similar to SOIC8 clips, and they work similarly.** They look similar to SOIC8 clips, and they work similarly.**
@ -703,7 +724,7 @@ WSON8 IC\
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
许可证 许可证
========= ------
本页面发布所使用的版权条款,不同于本网站上大多数其他页面。 本页面发布所使用的版权条款,不同于本网站上大多数其他页面。
@ -711,6 +732,6 @@ WSON8 IC\
部分这些资源源自于*旧的* Libreboot git 仓库Libreboot 随后分离成了单独的仓库,包括 `lbmk` 仓库。 部分这些资源源自于*旧的* Libreboot git 仓库Libreboot 随后分离成了单独的仓库,包括 `lbmk` 仓库。
展示了 BeagleBone Black 的照片,以 GNU Free Documentation License 许可,如同本网站的其他页面和图像。如果你想的话,你也可以在 CC-BY-SA 4.0 下使用它们Leah Rowe拥有本页展示的全部 BBB 照片的所有权,除了 beaglebone 网站上的那一张以外;而那一张只是在这里链接的,而不是托管在 av.libreboot.org 服务器的)。 展示了 BeagleBone Black 的照片,以 GFDL 许可,如同本网站的其他页面和图像。如果你想的话,你也可以在 CC-BY-SA 4.0 下使用它们Leah Rowe拥有本页展示的全部 BBB 照片的所有权,除了 beaglebone 网站上的那一张以外;而那一张只是在这里链接的,而不是托管在 av.libreboot.org 服务器的)。
本页面的该版本托管在 `lbwww` git 仓库,其图像托管在 `lbwww-img` 仓库(来自用户 libreboot 本页面的该版本托管在 `lbwww` git 仓库,其图像托管在 `lbwww-img` 仓库(来自用户 libreboot

View file

@ -1,13 +1,20 @@
--- ---
title: Generic SPI Flashing Guide title: Generic SPI Flashing Guide for Libreboot Installation
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom. now, as of 27 January 2024, which is a fork of flashrom.
The reason why was explained, in
the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)**
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
Background information
----------------------
There are a plethora of single board computers with which you can flash libreboot to a SOIC chip. There are a plethora of single board computers with which you can flash libreboot to a SOIC chip.
Some users might be daunted by the price of a raspberry pi. Some users might be daunted by the price of a raspberry pi.
@ -25,7 +32,7 @@ All of this means that you should try to find a board that is *known* to support
It is *not* enough to know that the board itself supports SPI. It is *not* enough to know that the board itself supports SPI.
Selecting an Operating System Selecting an Operating System
============================= -----------------------------
In theory, any linux based operating system will do. In theory, any linux based operating system will do.
In practice, many distros are highly limited when it comes to single-board-computers. In practice, many distros are highly limited when it comes to single-board-computers.
@ -39,7 +46,7 @@ If your SBC supports [Raspbian](https://www.raspberrypi.com/software/) then usin
As a bonus, you may refer to the [main guide](spi.md) if the SBC you have supports raspbian, should you get confused with this guide. As a bonus, you may refer to the [main guide](spi.md) if the SBC you have supports raspbian, should you get confused with this guide.
Connecting to your Programmer Connecting to your Programmer
============================= -----------------------------
Many SBC operating systems enable ssh by default. Many SBC operating systems enable ssh by default.
If the OS you chose does not enable ssh on first boot, try checking the distro documentation and looking for terms such as 'headless install.' If the OS you chose does not enable ssh on first boot, try checking the distro documentation and looking for terms such as 'headless install.'
@ -57,10 +64,10 @@ SSH to your programmer using the default credentials as specified in your distro
The IP address is the one determined in the earlier step. The IP address is the one determined in the earlier step.
For example: For example:
`ssh root@192.168.0.167` ssh root@192.168.0.167
Finding GPIO Pins Finding GPIO Pins
================= -----------------
If you have determined that a board supports SPI then the only step left is to If you have determined that a board supports SPI then the only step left is to
determine the correct location of the SPI pins. determine the correct location of the SPI pins.
@ -72,7 +79,7 @@ Match each of the categories in the 'signal' column with those in the 'pin' colu
Using this method, you can theoretically use any single board computer with SPI support. Using this method, you can theoretically use any single board computer with SPI support.
Enabling SPI Enabling SPI
============ ------------
The modules needed and methods to enable SPI vary based on the SBC you choose. The modules needed and methods to enable SPI vary based on the SBC you choose.
You should always make sure there is a well documented method for enabling SPI on your SBC before purchasing. You should always make sure there is a well documented method for enabling SPI on your SBC before purchasing.
@ -83,8 +90,8 @@ sudo ldto enable spicc spicc-spidev
sudo ldto merge spicc spicc-spidev sudo ldto merge spicc spicc-spidev
``` ```
Using Flashrom Using flashprog
============== --------------
Most linux distros will provide flashprog in their default repositories. Most linux distros will provide flashprog in their default repositories.
You can also download flashprog in binary form with [libreboot utils.](https://libreboot.org/download.html#https) You can also download flashprog in binary form with [libreboot utils.](https://libreboot.org/download.html#https)

View file

@ -0,0 +1 @@
Learn how to flash Libreboot using Le Potato, which supports SPI flashing on NOR 25xx ICs.

View file

@ -1,10 +1,12 @@
--- ---
title: Dell Precision T1650 title: Install Libreboot on Dell Precision T1650
x-toc-enable: true x-toc-enable: true
... ...
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions
there, before flashing. For posterity,
[here is the link again](ivy_has_common.md).**
<div class="specs"> <div class="specs">
<center> <center>
@ -29,20 +31,20 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
``` ```
W+: Works without blobs; W+: Works without vendor firmware;
N: Doesn't work; N: Doesn't work;
W*: Works with blobs; W*: Works with vendor firmware;
U: Untested; U: Untested;
P+: Partially works; P+: Partially works;
P*: Partially works with blobs P*: Partially works with vendor firmware
?: UNKNOWN AT THIS TIME ?: UNKNOWN AT THIS TIME
``` ```
| ***Features*** | | | ***Features*** | |
|---------------------------------------------------|----| |---------------------------------------------------|----|
| **Internal flashing with original boot firmware** | ? | | **Internal flashing with original boot firmware** | W* |
| **Display (if Intel GPU)** | W+ | | **Display (if Intel GPU)** | W+ |
| **Display (discrete CPU, SeaBIOS payload only)** | W* | | **Display (discrete GPU, SeaBIOS payload only)** | W* |
| **Audio** | W+ | | **Audio** | W+ |
| **RAM Init** | W+ | | **RAM Init** | W+ |
@ -52,8 +54,14 @@ P*: Partially works with blobs
| **SeaBIOS** | Works | | **SeaBIOS** | Works |
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Introduction
============ Open source BIOS/UEFI firmware
------------------------------
This document will teach you how to install Libreboot, on your
Dell Precision T1650 desktop motherboard.
Libreboot is a [Free Software](https://writefreesoftware.org/learn) project
that replaces proprietary BIOS/UEFI firmware.
**Unavailable in Libreboot 20230625 or earlier. You must [compile from **Unavailable in Libreboot 20230625 or earlier. You must [compile from
source](../build/), or use at least Libreboot 20231021.** source](../build/), or use at least Libreboot 20231021.**
@ -65,18 +73,19 @@ This is similar code-wise to [Dell
OptiPlex 9010](https://doc.coreboot.org/mainboard/dell/optiplex_9010.html) OptiPlex 9010](https://doc.coreboot.org/mainboard/dell/optiplex_9010.html)
which coreboot supports. which coreboot supports.
Build ROM image from source ### Build ROM image from source
---------------------------
The build target, when building from source, is thus: The build target, when building from source, is thus:
./mk -b coreboot t1650_12mb ./mk -b coreboot t1650_12mb
Installation Alternatively, you can use release images, but please ensure that you've
============ inserted vendor files prior to flashing; see notes.
Insert binary files Install Libreboot
------------------- -----------------
### Insert vendor files
If you're using a release ROM, please ensure that you've inserted extra firmware If you're using a release ROM, please ensure that you've inserted extra firmware
required refer to the [guide](../install/ivy_has_common.md) for that. (failure required refer to the [guide](../install/ivy_has_common.md) for that. (failure
@ -86,15 +95,13 @@ Libreboot's build system automatically downloads and processes these files if
you build Libreboot from source, but the same logic that it uses must be re-run you build Libreboot from source, but the same logic that it uses must be re-run
if you're using a release image. if you're using a release image.
Set MAC address ### Set MAC address
---------------
This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
region. As such, release/build ROMs will contain the same MAC address. To region. As such, release/build ROMs will contain the same MAC address. To
change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
WARNING about CPU/GPU compatibility ### WARNING about CPU/GPU compatibility
-------------------------------
At the time of testing this board, I didn't have a CPU with graphics built in, At the time of testing this board, I didn't have a CPU with graphics built in,
so I could only use discrete graphics on the PCI-E slot (in my case, Nvidia so I could only use discrete graphics on the PCI-E slot (in my case, Nvidia
@ -127,14 +134,27 @@ way (SeaBIOS first) because Libreboot's configuration does not tell *coreboot*
to execute VGA Option ROMs, and it's important that we try to prevent bricks to execute VGA Option ROMs, and it's important that we try to prevent bricks
whenever possible. whenever possible.
Flash a ROM image (software) ### Flash a ROM image (software)
-----------------
If you're already running Libreboot, and you don't have flash protection If you're already running Libreboot, and you don't have flash protection
turned on, [internal flashing](../install/) is possible. turned on, [internal flashing](../install/) is possible.
Flash a ROM image (hardware) Internal flashing is *also* possible from the factory BIOS, if you set the
----------------- service mode jumper. This shorts `HDA_SDO` (Soft Descriptor Override), which
disables the ME after early bringup and disables IFD-based flash protections.
Observe, below the PCI slots:
<img tabindex=1 style="max-width:35%;" src="https://av.libreboot.org/t1650/t1650_motherboard.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_motherboard.jpg" /></span>
Here is a close-up:
<img tabindex=1 style="max-width:35%;" src="https://av.libreboot.org/t1650/t1650_service_mode.jpg" /><span class="f"><img src="https://av.libreboot.org/t1650/t1650_service_mode.jpg" /></span>
Simply short those pins, on the header, using a jumper. When you do this, all
flash protections will be disabled.
### Flash a ROM image (hardware)
**REMOVE all power sources and connectors from the machine, before doing this. **REMOVE all power sources and connectors from the machine, before doing this.
This is to prevent short circuiting and power surges while flashing.** This is to prevent short circuiting and power surges while flashing.**
@ -183,4 +203,4 @@ flashing instructions [in Chinese](../install/spi.zh-cn.md):
Other aspects of the machine are not much to write home about. It's a standard Other aspects of the machine are not much to write home about. It's a standard
desktop PC form factor, and you can just run whatever you want on it. desktop PC form factor, and you can just run whatever you want on it.
Enjoy! Enjoy your Libreboot machine!

Some files were not shown because too many files have changed in this diff Show more