summaryrefslogtreecommitdiffstats
path: root/docs/index.html
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2014-11-05 20:52:36 (EST)
committer Francis Rowe <info@gluglug.org.uk>2014-11-05 20:52:36 (EST)
commit8b2219bfa2da36e7809588ef723a10483a6e137f (patch)
tree8c4d74b9efbdabc1a2604b8cbd508c006c225241 /docs/index.html
parent7429bdcdbb4fc51c61897115112468642afeecfc (diff)
downloadlibreboot-8b2219bfa2da36e7809588ef723a10483a6e137f.zip
libreboot-8b2219bfa2da36e7809588ef723a10483a6e137f.tar.gz
libreboot-8b2219bfa2da36e7809588ef723a10483a6e137f.tar.bz2
Documentation: *major* cleanup.
Cleanup was long overdue. Old structure was messy and inefficient.
Diffstat (limited to 'docs/index.html')
-rw-r--r--docs/index.html1743
1 files changed, 78 insertions, 1665 deletions
diff --git a/docs/index.html b/docs/index.html
index e5fe5df..fe17fc4 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -5,1752 +5,165 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
- body {
- background:#fff;
- color:#000;
- font-family:sans-serif;
- font-size:1em;
- }
- p.lenovobios {
- font-weight:bold; color:#f00; font-style:italic; font-size:1.2em;
- }
- p.lenovobios:hover {
- color: #000;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('css/main.css');
</style>
- <title>Libreboot documentation: Main</title>
+ <title>Documentation for libreboot project</title>
</head>
<body>
- <header>
- <h1 id="pagetop">Libreboot Documentation</h1>
- <aside>This is for the release, as per <a href="release.html">release.html</a>.</aside>
- <aside>The latest release (along with documentation) can be found at <a href="http://libreboot.org/">libreboot.org</a></aside>
- </header>
-
- <p>
- It is assumed that you are running GNU/Linux. No other operating system is known to be compatible (with libreboot) for this release.
- </p>
-
- <p>
- The information here is mainly user documentation. For development notes and TODO's, see <a href="release.html">release.html</a> and
- <a href="future/index.html">future/index.html</a>
- </p>
-
- <h2>GNU/Linux distributions</h2>
- <ul>
- <li><a href="howtos/grub_boot_installer.html">How to install a GNU/Linux distribution</a></li>
- <li><a href="howtos/grub_cbfs.html">How to change your default GRUB menu</a></li>
- <li>
- <a href="howtos/encrypted_parabola.html">Installing Parabola GNU/Linux-libre with full disk encryption (including /boot)</a>
- <ul>
- <li>Follow-up tutorial: <a href="howtos/configuring_parabola.html">Configuring Parabola (post-install)</a></li>
- </ul>
- </li>
- <li><a href="howtos/encrypted_trisquel.html">Installing Trisquel GNU/Linux-libre with full disk encryption (including /boot)</a></li>
- </ul>
-
- <h2>Working with source code</h2>
- <ul>
- <li><a href="#build_dependencies">Install build dependencies</a></li>
- <li><a href="#build_meta">Get the full source code from metadata (git clone)</a></li>
- <li><a href="#build_bucts">How to build &quot;bucts&quot; (for LenovoBIOS X60/X60S/X60T/T60)</a></li>
- <li><a href="#build_flashrom">How to build &quot;flashrom&quot;</a></li>
- <li>
- <a href="#config">Configuring libreboot</a>
- <ul>
- <li><a href="#config_dmidecode">dmidecode</a></li>
- <li><a href="#config_x60">ThinkPad X60</a></li>
- <li><a href="#config_x60t">ThinkPad X60 Tablet</a></li>
- <li><a href="#config_t60">ThinkPad T60</a></li>
- <li><a href="#config_macbook21">MacBook2,1</a></li>
- </ul>
- </li>
- <li><a href="#build">How to build your ROM's</a></li>
- <li><a href="#build_addseabios">Add SeaBIOS to your ROM's</a></li>
- </ul>
-
- <h2>Supported hardware</h2>
- <ul>
- <li><a href="#supported_list">List of supported hardware</a></li>
- <li><a href="#recommended_wifi">Recommended wifi chipsets</a></li>
- <li><a href="#supported_x60_list">List of supported ThinkPad X60/X60s</a></li>
- <li><a href="#supported_x60t_list">List of supported ThinkPad X60 Tablets</a></li>
- <li><a href="#supported_t60_list">List of supported ThinkPad T60's</a></li>
- <li><a href="#t60_ati_intel">ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.</a></li>
- <li><a href="#macbook11">Information about the Macbook1,1</a></li></li>
- <li><a href="#macbook21">Information about the Macbook2,1</a></li></li>
- </ul>
-
- <h2>Installing libreboot (software: using internal programmer)</h2>
- <ul>
- <li><a href="#rom">Recommended ROM's to flash</a></li>
- <li><a href="#flashrom_lenovobios">X60/X60S/X60T/T60: How to flash your ROM (if running Lenovo BIOS firmware)</a></li>
- <li><a href="#flashrom_macbook21">macbook21: How to flash your ROM (if running Apple EFI firmware)</a></li>
- <li><a href="#flashrom">X60/X60S/X60T/T60/macbook21: How to flash your ROM (if running libreboot or coreboot already)</a></li>
- </ul>
-
- <h2>Installing libreboot (hardware: using external programmer)</h2>
- <ul>
- <li><a href="howtos/x60_unbrick.html">ThinkPad X60/X60S: How to unbrick</a></li>
- <li><a href="howtos/x60tablet_unbrick.html">ThinkPad X60 Tablet: How to unbrick</a></li>
- <li><a href="howtos/t60_unbrick.html">ThinkPad T60: How to unbrick</a></li>
- </ul>
-
- <h2>Security topics</h2>
- <ul>
- <li><a href="howtos/x60_security.html">ThinkPad X60/X60S: hardware security</a></li>
- <li><a href="howtos/t60_security.html">ThinkPad T60: hardware security</a></li>
- </ul>
-
- <h2>Hardware maintenance</h2>
- <ul>
- <li><a href="howtos/x60_heatsink.html">ThinkPad X60/X60S: change the fan/heatsink</a></li>
- <li><a href="howtos/x60_lcd_change.html">ThinkPad X60/X60s: How to change the LCD panel</a> (incomplete. pics only for now)</li>
- <li><a href="howtos/t60_lcd_15.html">ThinkPad T60 15.1&quot; changing LCD panel</a></li>
- <li><a href="howtos/t60_heatsink.html">ThinkPad T60: change the fan/heatsink</a></li>
- </ul>
-
- <h2>GRUB2 payload</h2>
- <ul>
- <li><a href="#grub_font">Setting font in GRUB</a></li>
- <li><a href="#grub_keyboard">GRUB keyboard layouts</a>
- <ul>
- <li><a href="#grub_custom_keyboard">Custom keyboard layout in GRUB</a></li>
- <li><a href="#grub_ukdvorak_keyboard">UK Dvorak keyboard layout in GRUB</a></li>
- </ul>
- </li>
- </ul>
-
- <h2>Miscallaneous</h2>
- <ul>
- <li><a href="#high_pitch_trisquel">High Pitched Whining Noise on Idle (how to remove in Trisquel)</a>
- <ul>
- <li><a href="#howtouse_powertop">Powertop - how to use</a></li>
- <li><a href="#powertop_autostart">Powertop - Start automatically at boot time</a></li>
- </ul>
- </li>
- <li><a href="#high_pitch_parabola">High Pitched Whining Noise on Idle (how to remove in Parabola)</a></li>
- <li><a href="#serial">X60/T60: Serial port - how to use (for dock owners)</a></li>
- <li><a href="patch.html">Using diff and patch</a></li>
- <li><a href="#get_edid_panelname">Get EDID: Find out the name (model) of your LCD panel</a></li>
- </ul>
-
-<hr/>
-
- <h1 id="why">What is libreboot, really?</h1>
-
- <h2>
- Project goals (and differences versus coreboot):
- </h2>
- <ul>
- <li>
- Coreboot contains blobs (proprietary data/code) and libreboot does not (it intentionally removes them).
- </li>
- <li>
- Coreboot is hacker-friendly and focuses on software developers, libreboot is user-focused and attempts to
- turn coreboot into a distribution, sort of like a GNU/Linux distribution (same concept, different software). For example, libreboot
- distributes GRUB/memtest86+/bucts/flashrom (and more) and comes with user-focused documentation and build scripts; libreboot
- is therefore made more 'user-friendly'.
- </li>
- </ul>
-
- <p>
- Libreboot is <b>not</b> a fork of coreboot, despite misconceptions of this fact. Libreboot (downstream supplier) is a parallel effort
- which works closely with and re-bases on the latest coreboot (upstream supplier) every so often.
- </p>
-
- <p>
- <b>
- As such, all new coreboot development should be done in coreboot, not libreboot!
- Libreboot is about deblobbing, and packaging coreboot in a user-friendly way, where most work is already done for the user!
- If, for example you wanted to attempt porting a new motherboard then you should do that in coreboot. Libreboot will (as a downstream)
- receive your change at some point in the future, in a future release.
- </b>
- </p>
-
- <h2>
- A 'stable' coreboot:
- </h2>
- <ul>
- <li>
- Coreboot uses the <a href="https://en.wikipedia.org/wiki/Rolling_release">rolling release</a> model
- (and it is therefore quite volatile; one day when you build coreboot, it may or may not work correctly on your machine).
- </li>
- <li>
- Libreboot changes less often (as far as the release model is concerned), focusing instead on 'tested' releases for <i>specific machines</i>.
- At any given time, it might also be possible to build ROM images for systems other than those officially supported. If you get your board to work
- (without violating the <i>&quot;coreboot development goes in coreboot&quot;</i> rule, then others could benefit from your work).
- </li>
- </ul>
-
- <p>
- On the other hand, coreboot is also strict about what it accepts (merges) into the main git repository:
- most of the time, a lot of changes are under review at review.coreboot.org (as a way of encouraging as much further development
- as possible before accepting the patch).
- </p>
-
- <p>
- Meanwhile, libreboot is a lot less strict in this area and freely merges specific patches that are desirable, sometimes before they are merged into coreboot's main repository.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="build_dependencies">Install build dependencies</h1>
-
- <p>
- Before doing anything, you need the dependencies first.
- </p>
- <ul>
- <li><b>deps-trisquel</b> script installs dependencies for Trisquel 6 (also tested in Trisquel 7).</li>
- <li><b>deps-parabola</b> script installs dependencies for Parabola</li>
- </ul>
-
- <p>
- For all other GNU/Linux distributions, you may have to adapt these scripts. By all means send patches!
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="build_meta">Get the full source code from metadata (git clone)</h1>
-
- <p>
- If you downloaded libreboot from git, then there are some steps to download and patch
- the source code for all relevant dependencies. The archive in the git repository used to be
- available as a tarball called 'libreboot_meta.tar.gz'. It contains 'metadata' (scripts)
- which define how the source was created (where it came from).
- </p>
-
- <p>
- You can use the scripts included to download everything.
- </p>
+ <h1 id="pagetop">Documentation for libreboot project</h1>
<p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
+ It is assumed that you are running <a href="https://www.gnu.org/distros/">GNU/Linux</a>
+ (no other operating system is known to work with this release).
</p>
-
<p>
- After that, run the get script:<br/>
- <b>$ ./getall</b>
+ <a href="#why">What is libreboot?</a>
</p>
- <p>
- What this did was download everything (grub, coreboot, memtest86+, bucts, flashrom)
- at the versions last tested for this release, and patch them. Read the script
- in a text editor to learn more.
- </p>
-
- <p>
- To build the ROM's, see <a href="#build">#build</a>.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="build_bucts">How to build &quot;bucts&quot; (for LenovoBIOS X60/X60S/X60T/T60)</h1>
-
- <p>
- <b>This is for Lenovo BIOS users on the ThinkPad X60/X60S, X60 Tablet and T60. If you have coreboot or libreboot running already, ignore this.</b>
- </p>
-
- <p>
- Bucts is needed when flashing in software the X60/X60S/X60T/T60 ROM while Lenovo BIOS is running;
- external flashing will be safe regardless.
- Each ROM contains identical data inside the two final 64K region in the file.
- This corresponds to the final two 64K regions in the flash chip. Lenovo BIOS will prevent you from writing the
- final one, so running &quot;<b>bucts 1</b>&quot; will set the machine to boot from the other block instead (which
- is writeable along with everything beneath it when using a patched flashrom. see <a href="#build_flashrom">#build_flashrom</a>).
- After shutting down and booting up after the first flash,
- the final 64K block is writeable so you flash the ROM again with an unpatched flashrom and run "<b>bucts 0</b>" to
- make the machine boot from the normal (highest) block again.
- </p>
-
- <p>
- BUC.TS utility is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.<br/>
- <b>If you downloaded from git, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
- </p>
-
- <p>
- &quot;BUC&quot; means &quot;<b>B</b>ack<b>u</b>p <b>C</b>ontrol&quot; (it's a register) and &quot;TS&quot; means &quot;<b>T</b>op <b>S</b>wap&quot;
- (it's a status bit). Hence &quot;bucts&quot; (BUC.TS). TS 1 and TS 0 corresponds to bucts 1 and bucts 0.
- </p>
-
- <p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
- </p>
-
- <p>
- To build bucts, do this in the main directory:<br/>
- <b>$ ./builddeps-bucts</b>
- </p>
-
- <p>
- The &quot;builddeps&quot; script in libreboot_src also makes use of builddeps-bucts.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="build_flashrom">How to build &quot;flashrom&quot;</h1>
-
- <p>
- Flashrom is the utility for flashing/dumping ROM's. This is what you will use to install libreboot.
- </p>
-
- <p>
- Flashrom source code is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.<br/>
- <b>If you downloaded from git, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
- </p>
-
- <p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
- </p>
-
- <p>
- To build it, do that in the main directory:<br/>
- <b>$ ./builddeps-flashrom</b>
- </p>
-
- <p>
- After you've done that, under ./flashrom/ you will find the following executables:
- </p>
- <ul>
- <li>
- <b>flashrom</b>
- <ul>
- <li>For flashing while coreboot or libreboot is running.</li>
- </ul>
- </li>
- <li>
- <b>flashrom_lenovobios_sst</b>
- <ul>
- <li>This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the SST25VF016B (SST) flash chip.</li>
- </ul>
- </li>
- <li>
- <b>flashrom_lenovobios_macronix</b>
- <ul>
- <li>This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the MX25L1605D (Macronix) flash chip.</li>
- </ul>
- </li>
- </ul>
-
- <p>
- The &quot;builddeps&quot; script in libreboot_src also makes use of builddeps-flashrom.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="config">Configuring libreboot</h1>
-
- <p>
- Before building a ROM in libreboot (or coreboot, for that matter), you need to configure it.
- This is done using the following inside the source tree:<br/>
- <b>$ make menuconfig</b>
- </p>
-
- <p>
- If you've already built a kernel before, you know how to use this interface.
- </p>
-
- <p>
- Configurations are then saved as files called <b>&quot;.config&quot;</b>. Copies of each configuration used
- for each machine type by the libreboot build scripts are stored in resources/libreboot/config/
- </p>
-
- <h2 id="config_dmidecode">
- dmidecode
- </h2>
- <p>
- There is certain information that can be useful to enter in particular:
- </p>
- <ul>
- <li>Local version string</li>
- <li>SMBIOS Serial Number</li>
- <li>SMBIOS Manufacturer</li>
- <li>SMBIOS Version</li>
- <li>SMBIOS Product name</li>
- </ul>
+ <h2>Release information</h2>
<p>
- This information can be obtained using:<br/>
- <b>$ sudo dmidecode</b><br/>
- <b># dmidecode</b>
+ Information about this release can be found at <a href="release.html">release.html</a>.
+ Always check <a href="http://libreboot.org">libreboot.org</a> for updates.
</p>
<p>
- Specifically, it's good practise to enter the same information for libreboot that you found when running this
- with the original BIOS or firmware. <b>libreboot has already done this for you. This information is for reference,
- in the hope that it will be useful.</b>
+ The release page and <a href="future/index.html">future/index.html</a> contain details
+ about future work.
</p>
- <h2 id="config_x60">
- ThinkPad X60 configuration (file: resources/libreboot/config/x60/config)
- </h2>
- <ul>
- <li>General setup / Expert mode = <i>enable</i></li>
- <li>General setup / Local version string = <i>7BETC7WW (2.08 )</i></li>
- <li>Mainboard / Mainboard vendor = <i>Lenovo</i></li>
- <li>Mainboard / Mainboard model = <i>ThinkPad X60 / X60s / X60t</i></li>
- <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
- <li>Mainboard / SMBIOS Serial Number = <i>L3BH242</i></li>
- <li>Mainboard / SMBIOS Version Number = <i>ThinkPad X60s</i></li>
- <li>Mainboard / SMBIOS Manufacturer = <i>LENOVO</i></li>
- <li>Mainboard / SMBIOS Product name = <i>1702L8G</i></li>
- <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
- <li>Devices / Use native graphics initialization = <i>enable</i></li>
- <li>
- Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
- <ul>
- <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time
- to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
- </ul>
- </li>
- <li>Generic Drivers / Digitizer = <i>Autodetect</i></li>
- <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
- <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
- <li>Payload / Payload path and filename = <i>grub.elf</i></li>
- </ul>
+ <h2>Hardware compatibility list</h2>
<p>
- Now go back into Devices:
+ Information about what systems libreboot supports.
</p>
- <ul>
- <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
- <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
- </ul>
<p>
- The resulting .config file was saved as resources/libreboot/config/<b>x60/config</b> and is used by the build
- scripts for this machine.
+ Goto <a href="hcl/index.html">hcl/index.html</a>.
</p>
+
+ <h2>Installing libreboot</h2>
<p>
- This is based on an X60S with the Core 2 Duo L7400 processor.
+ Information about how to install libreboot on supported targets,
+ using software and/or dedicated hardware.
</p>
<p>
- SMBIOS Version Number is ThinkPad X60 on the X60, but it is believed that the X60 and X60s both have identical
- motherboards where the only difference is the CPU. This same configuration is used on the X60 and X60s.
+ Goto <a href="install/index.html">install/index.html</a>.
</p>
- <h2 id="config_x60t">
- ThinkPad X60 Tablet configuration (file: resources/libreboot/config/x60t/config)
- </h2>
- <ul>
- <li>General setup / Expert mode = <i>enable</i></li>
- <li>General setup / Local version string = <i>7JET23WW (1.08 )</i></li>
- <li>Mainboard / Mainboard vendor = <i>Lenovo</i></li>
- <li>Mainboard / Mainboard model = <i>ThinkPad X60 / X60s / X60t</i></li>
- <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
- <li>Mainboard / SMBIOS Serial Number = <i>L3B8281</i></li>
- <li>Mainboard / SMBIOS Version Number = <i>ThinkPad X60 Tablet</i></li>
- <li>Mainboard / SMBIOS Manufacturer = <i>LENOVO</i></li>
- <li>Mainboard / SMBIOS Product name = <i>6364WJ1</i></li>
- <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
- <li>Devices / Use native graphics initialization = <i>enable</i></li>
- <li>
- Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
- <ul>
- <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time
- to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
- </ul>
- </li>
- <li>Generic Drivers / Digitizer = <i>Present</i></li>
- <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
- <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
- <li>Payload / Payload path and filename = <i>grub.elf</i></li>
- </ul>
+ <h2>GNU/Linux distributions</h2>
<p>
- Now go back into Devices:
+ Installing GNU/Linux distributions, preparing bootable USB drives, changing the default GRUB
+ menu and so on.
</p>
- <ul>
- <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
- <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
- </ul>
<p>
- The resulting .config file was saved as resources/libreboot/config/<b>x60t/config</b> and is used by the build
- scripts for this machine.
+ This also contains guides for fully encrypted Trisquel and Parabola GNU/Linux-libre installations.
</p>
<p>
- This is based on an X60T with the Core 2 Duo L7400 processor.
+ Goto <a href="gnulinux/index.html">gnulinux/index.html</a>.
</p>
- <h2 id="config_t60">
- ThinkPad T60 configuration (file: resources/libreboot/config/t60/config)
- </h2>
- <ul>
- <li>General setup / Expert mode = <i>enable</i></li>
- <li>General setup / Local version string = <i>79ETE7WW (2.27 )</i></li>
- <li>Mainboard / Mainboard vendor = <i>Lenovo</i></li>
- <li>Mainboard / Mainboard model = <i>ThinkPad T60 / T60p</i></li>
- <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
- <li>Mainboard / SMBIOS Serial Number = <i>L3DKE06</i></li>
- <li>Mainboard / SMBIOS Version Number = <i>ThinkPad T60</i></li>
- <li>Mainboard / SMBIOS Manufacturer = <i>LENOVO</i></li>
- <li>Mainboard / SMBIOS Product name = <i>1951FEG</i></li>
- <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
- <li>Devices / Use native graphics initialization = <i>enable</i></li>
- <li>
- Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
- <ul>
- <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time
- to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
- </ul>
- </li>
- <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
- <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
- <li>Payload / Payload path and filename = <i>grub.elf</i></li>
- </ul>
- Go back into Devices:
- </p>
- <ul>
- <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
- <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
- </ul>
- <p>
- The resulting .config file was saved as resources/libreboot/config/<b>t60/config</b> and is used by the build
- scripts for this machine.
- </p>
+ <h2>Developing libreboot</h2>
<p>
- It is believed that the motherboards on 14.1&quot; and 15.1&quot; T60's are the same, so the same configuration is used
- on both the 14.1&quot; and 15.1&quot; T60's.
+ Information about configuring libreboot, building from source, maintaining the project,
+ working in git and so on.
</p>
-
- <h2 id="config_macbook21">
- MacBook2,1 configuration (file: resources/libreboot/config/macbook21/config)
- </h2>
- <ul>
- <li>General / Expert mode = <i>enable</i></li>
- <li>General / Local version string = <i>&quot;&nbsp;&nbsp;&nbsp;&nbsp;MB21.88Z.00A5.B07.0706270922&quot;</i> (without the quotes)</li>
- <li>Mainboard / Mainboard vendor = <i>Apple</i></li>
- <li>Mainboard / Mainboard model = <i>Macbook2,1 ICH7 TESTING</i></li>
- <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
- <li>Mainboard / SMBIOS Serial Number = <i>W8724XXXXXX</i></li>
- <li>Mainboard / SMBIOS Version Number = <i>1.0</i></li>
- <li>Mainboard / SMBIOS Manufacturer = <i>Apple Inc.</i></li>
- <li>Mainboard / SMBIOS Product Name = <i>MacBook2,1</i></li>
- <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
- <li>Devices / Use native graphics initialization = <i>enable</i></li>
- <li>
- Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
- <ul>
- <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time
- to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
- </ul>
- </li>
- <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
- <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
- <li>Payload / Payload path and filename = <i>grub.elf</i></li>
- </ul>
<p>
- Go back and disable option ROM's:
+ Goto <a href="git/index.html">git/index.html</a>.
</p>
- <ul>
- <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
- <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
- </ul>
- <p>
- The resulting .config file was saved as resources/libreboot/config/<b>macbook21/config</b> and is used by the build
- scripts for this machine. <b>This config is also used for the MacBook1,1</b>.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="build">How to build the ROM's!</h1>
-
- <p>You don't need to do much, as there are scripts already written for you that can build everything automatically.</p>
-
- <p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
- </p>
- <p>
- If you downloaded libreboot from git, refer to <a href="#build_meta">#build_meta</a>.
- </p>
-
- <p>If running for the first time, run this:<br/>
- <b>$ ./buildall</b> (also performs the "./build" step below)<br/>
- Or if you only want to build dependencies (crossgcc, grub and so on):<br/>
- <b>$ ./builddeps</b></p>
-
- <p>If you've already run ./builddeps and/or ./buildall before, you don't need to run them again.
- Just run that from now on to build your ROM's:<br/>
- <b>$ ./build</b></p>
-
- <p>To un-build (clean) the build dependencies that you built before, do the following:<br/>
- This also deletes the ROM images under ./bin/:<br/>
- <b>$ ./cleandeps</b></p>
-
- <p>Note: after running 'cleandeps', you will need to run 'builddeps' or 'buildall' again before you can use 'build'.</p>
-
- <p>After 'build' or 'buildall' has finished, you'll find the ROM images for each machine under ./bin/</p>
-
- <h2>Preparing release archives (optional)</h2>
+ <h2>Security topics</h2>
<p>
- Run that script:<br/>
- <b>$ ./build-release</b>
+ Goto <a href="security/index.html">security/index.html</a>.
</p>
+ <h2>Hardware maintenance</h2>
<p>
- You'll find that the files libreboot_bin.tar.xz and libreboot_src.tar.xz have been created.
+ Goto <a href="hardware/index.html">hardware/index.html</a>.
</p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="build_addseabios">How to add SeaBIOS to your ROM's</h1>
-
- <p>
- SeaBIOS isn't really needed since libreboot uses the GRUB payload which
- is much better (for several reasons), so it is no longer included in the ROM
- images by default. Instead, you can add it afterwards.
- </p>
-
- <p>
- In the supplied binary archives, or in your own (if you did 'build-release') you can add SeaBIOS
- to the ROM images, along with SeaVGABIOS which is a free/libre Video BIOS implementation that wraps
- around the 'native graphics initializitation' code in coreboot, for boards that have support for it.
- </p>
-
- <p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
- </p>
-
- <p>
- Build cbfstool:<br/>
- $ <b>./builddeps-cbfstool</b>
- </p>
-
- <p>
- Now:<br/>
- $ <b>./addseabios</b>
- </p>
-
- <p>
- SeaBIOS and SeaVGABIOS (which the build scripts created, and the build-release script put - compiled -
- inside the binary archive) have now been added to all of the ROM images under ./bin/. A GRUB menuentry will show
- up when you boot your machine, allowing you to use SeaBIOS.
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="supported_list">List of supported hardware</h1>
-
- <p>
- Libreboot supports the following machines in this release:
- </p>
- <ul>
- <li><a href="#supported_x60_list">Lenovo ThinkPad X60/X60s</a></li>
- <li><a href="#supported_x60t_list">Lenovo ThinkPad X60 Tablet</a></li>
- <li><a href="#supported_t60_list">Lenovo ThinkPad T60</a> (there are exceptions. see link)</li>
- <li><a href="#macbook11">Apple MacBook1,1</a></li>
- <li><a href="#macbook21">Apple MacBook2,1</a></li>
- </ul>
-
- <p>
- 'Supported' means that the build scripts know how to build ROM's for these machines,
- and that the machines have been tested (confirmed working). There may be exceptions;
- in other words, this is a list of 'officially' supported machines.
- </p>
-
- <p>
- It is also possible to build ROM images (from source) for other machines (and virtual machines, e.g. QEMU).
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="recommended_wifi">Recommended wifi chipsets</h1>
- <p>
- The following are known to work well:
- </p>
- <ul>
- <li><a href="http://h-node.org/search/results/en/1/search/wifi/ar9285">Atheros AR5B95</a> (chipset: Atheros AR9285); mini PCI-E. Most of these are half-height, so you will need a half&gt;full height mini PCI express adapter/bracket.</li>
- <li><a href="http://h-node.org/wifi/view/en/116/Atheros-Communications-Inc--AR928X-Wireless-Network-Adapter--PCI-Express---rev-01-">Atheros AR928X</a> chipset; mini PCI-E. Most of these are half-height, so you will need a half&gt;full height mini PCI express adapter/bracket</li>
- <li>Unex DNUA-93F (chipset: <a href="http://h-node.org/search/results/en/1/search/wifi/ar9271">Atheros AR9271</a>); USB.</li>
- <li>Any of the chipsets listed at <a href="https://fsf.org/ryf">https://fsf.org/ryf</a></li>
- <li>Any of the chipsets listed at <a href="http://h-node.org/wifi/catalogue/en/1/1/undef/undef/yes?">http://h-node.org/wifi/catalogue/en/1/1/undef/undef/yes?</a>
- </ul>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="supported_x60_list">List of supported ThinkPad X60's</h1>
-
- <p>
- Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM
- ('<a href="https://en.wikipedia.org/wiki/Video_BIOS">Video BIOS</a>' or 'VBIOS'),
- all known LCD panels are currently compatible:
- </p>
-
- <p>
- To find what LCD panel you have, see: <a href="#get_edid_panelname">#get_edid_panelname</a>.
- </p>
-
- <ul>
- <li>TMD-Toshiba LTD121ECHB: #</li>
- <li>CMO N121X5-L06: #</li>
- <li>Samsung LTN121XJ-L07: #</li>
- <li>BOE-Hydis HT121X01-101: #</li>
- </ul>
-
- <p>
- You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical
- and the motherboards are the same shape/size.
- </p>
-
- <p>
- The X60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running
- the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced;
- just remove the card and install another one <b>after</b> libreboot is installed. See <a href="#recommended_wifi">#recommended_wifi</a> for replacements.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="supported_x60t_list">List of supported ThinkPad X60 Tablets</h1>
-
- <p>
- Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM
- ('<a href="https://en.wikipedia.org/wiki/Video_BIOS">Video BIOS</a>' or 'VBIOS').
- </p>
-
- <p>
- To find what LCD panel you have, see: <a href="#get_edid_panelname">#get_edid_panelname</a>.
- </p>
-
- <p>
- There are 5 known LCD panels for the X60 Tablet:
- </p>
- <ul>
- <li>
- <b>X60T XGA (1024x768):</b>
- <ul>
- <li>BOE-Hydis HV121X03-100 (works)</li>
- <li>Samsung LTN121XP01 (does not work. blank screen)</li>
- <li>BOE-Hydis HT12X21-351 (does not work. blank screen)</li>
- </ul>
- </li>
- <li>
- <b>X60T SXGA+ (1400x1050):</b>
- <ul>
- <li>BOE-Hydis HV121P01-100 (works)</li>
- <li>BOE-Hydis HV121P01-101 (works)</li>
- </ul>
- </li>
- </ul>
-
- <p>
- Most X60T's only have digitizer (pen), but some have finger (touch) aswell as pen; finger/multitouch doesn't work, only digitizer (pen) does.
- </p>
-
- <p>
- You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical
- and the motherboards are the same shape/size. <b>It is unknown if the same applies between the X60 Tablet and the X61 Tablet</b>.
- </p>
-
- <p>
- The X60 Tablet typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running
- the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced;
- just remove the card and install another one <b>after</b> libreboot is installed. See <a href="#recommended_wifi">#recommended_wifi</a> for replacements.
- </p>
-
- <p>
- A user with a X60T that has digitizer+finger support, reported that they could get finger input working. They
- used linuxwacom at git tag 0.25.99.2 and had the following in their xorg.conf:
- </p>
-
-<pre>
-# This file be public domain.
-
-# Now, for some reason (probably a bug in linuxwacom),
-# the 'Touch=on' directive gets reset to 'off'.
-# So you'll need to do
-# $ xsetwacom --set WTouch Touch on
-#
-# tested with linuxwacom git 42a42b2a8636abc9e105559e5dea467163499de7
-
-Section "Monitor"
- Identifier "<default monitor>"
- DisplaySize 245 184
-EndSection
-
-Section "Screen"
- Identifier "Default Screen Section"
- Monitor "<default monitor>"
-EndSection
-
-Section "InputDevice"
- Identifier "WTouch"
- Driver "wacom"
- Option "Device" "/dev/ttyS0"
-# Option "DebugLevel" "12"
- Option "BaudRate" "38400"
- Option "Type" "touch"
- Option "Touch" "on"
- Option "Gesture" "on"
- Option "ForceDevice" "ISDV4"
-# Option "KeepShape" "on"
- Option "Mode" "Absolute"
- Option "RawSample" "2"
-# Option "TPCButton" "off"
- Option "TopX" "17"
- Option "TopY" "53"
- Option "BottomX" "961"
- Option "BottomY" "985"
-EndSection
-
-Section "ServerLayout"
- Identifier "Default Layout"
- Screen "Default Screen Section"
- InputDevice "WTouch" "SendCoreEvents"
-EndSection
-
-</pre>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="supported_t60_list">Supported T60 list</h1>
-
- <p>
- Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM
- ('<a href="https://en.wikipedia.org/wiki/Video_BIOS">Video BIOS</a>' or 'VBIOS').
- </p>
-
- <p>
- To find what LCD panel you have, see: <a href="#get_edid_panelname">#get_edid_panelname</a>.
- </p>
-
- <p>
- <b>
- Some T60's have ATI GPU's, and all T60p's have ATI GPU's These are incompatible! See <a href="#t60_ati_intel">#t60_ati_intel</a> for how to remedy this.
- </b>
- </p>
-
- <p>
- How to dump the EDID:<br/>
-
- </p>
-
- <p>
- Tested LCD panels: <b>working(compatible)</b>
- </p>
- <ul>
- <li>TMD-Toshiba LTD141EN9B (14.1&quot; 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)</li>
- <li>Samsung LTN141P4-L02 (14.1&quot; 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)</li>
- <li>LG-Philips LP150E05-A2K1 (15.1&quot; 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
- <li>Samsung LTN150P4-L01 (15.1&quot; 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board) (not a T60 screen afaik, but it works)</li>
- <li>BOE-Hydis HV150UX1-100 (15.1&quot; 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
- <li>IDtech IAQX10N (15.1&quot; 2048x1536) (GRUB doesn't display at the moment, but GNU/Linux works) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
- </ul>
-
- <div class="important">
-
+
+ <h2>GRUB payload</h2>
<p>
- Tested LCD panels: <b>not working yet (incompatible; see <a href="future/index.html#lcd_i945_incompatibility">future/index.html#lcd_i945_incompatibility</a>)</b>
+ Information about fonts and keyboard layouts used in GRUB.
</p>
- <ul>
- <li>Samsung LTN141XA-L01 (14.1&quot; 1024x768)</li>
- <li>LG-Philips LP150X09 (15.1&quot; 1024x768)</li>
- <li>Samsung LTN150XG (15.1&quot; 1024x768) - <a href="future/dumps/LTN150XG_edid">EDID dump</a> (taken using <b>sudo i2cdump -y 5 0x50</b>)</li>
- <li>LG-Philips LP150E06-A5K4 (15.1&quot; 1400x1050) (also, not an official T60 screen)</li>
- <li>Samsung LTN154X3-L0A (15.4&quot; 1280x800)</li>
- </ul>
-
<p>
- <u><i>The following LCD panels are <b>UNTESTED</b>. If you have one of these panels
- then please submit a report!</i></u>:
+ Goto <a href="grub/index.html">grub/index.html</a>
</p>
- <ul>
- <li>CMO(IDtech?) N141XC (14.1&quot; 1024x768)</li>
- <li>BOE-Hydis HT14X14 (14.1&quot; 1024x768)</li>
- <li>TMD-Toshiba LTD141ECMB (14.1&quot; 1024x768)</li>
- <li>Boe-Hydis HT14P12 (14.1&quot; 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)</li>
- <li>CMO (IDtech?) 13N7068 (15.1&quot; 1024x768)</li>
- <li>CMO (IDtech?) 13N7069 (15.1&quot; 1024x768)</li>
- <li>BOE-Hydis HV150P01-100 (15.1&quot; 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
- <li>IDtech N150U3-L01 (15.1&quot; 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
- <li>BOE-Hydis HV150UX1-102 (15.1&quot; 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
- <li>IDtech IAQX10S (15.1&quot; 2048x1536) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
- <li>Samsung LTN154P2-L05 (42X4641 42T0329) (15.4&quot; 1680x1050)</li>
- <li>LG-Philips LP154W02-TL10 (13N7020 42T0423) (15.4&quot; 1680x1050)</li>
- <li>LG-Philips LP154WU1-TLB1 (42T0361) (15.4&quot; 1920x1200) <b>(for T61p but it might work in T60. Unknown!)</b></li>
- <li>Samsung LTN154U2-L05 (42T0408 42T0574) (15.4&quot; 1920x1200) <b>(for T61p but it might work in T60. Unknown!)</b></li>
- </ul>
+ <h2>Miscellaneous</h2>
<p>
- It is unknown whether the 1680x1050 (15.4&quot;) and 1920x1200 (15.4&quot;) panels use a different inverter board than the 1280x800 panels.
+ Random topics that don't belong anywhere else.
</p>
-
- <p>
- The T60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running
- the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced;
- just remove the card and install another one <b>after</b> libreboot is installed. See <a href="#recommended_wifi">#recommended_wifi</a> for replacements.
- </p>
-
- </div>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="t60_ati_intel">ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.</h1>
-
- <p>
- If your T60 is a 14.1&quot; or 15.1&quot; model with an ATI GPU, it won't work with libreboot by default but
- you can replace the motherboard with another T60 motherboard that has an Intel GPU, and then libreboot should work.
- </p>
-
- <p>
- As far as I know, 14.1&quot; (Intel GPU) and 15.1&quot; (Intel GPU) T60 motherboards are the same, where
- 'spacers' are used on the 15.1&quot; T60. In any case, it makes sense to find one that is guaranteed to fit in your chassis.
- </p>
-
- <p>
- There is also a 15.4&quot; T60 with Intel GPU.
- </p>
-
- <p>
- Note: the T60<b>p</b> laptops all have ATI graphics.
- The T60p laptops cannot be used with libreboot under any circumstances.
- </p>
-
- <p>
- The following T60 motherboard (see area highlighted in white) shows an empty space where the ATI GPU would be (this particular motherboard has an Intel GPU):
- <img src="howtos/t60_dev/t60_unbrick.jpg" alt="" />
- </p>
-
- <p>
- The reason that the ATI GPU on T60 is unsupported is due to the VBIOS (Video BIOS) which is non-free.
- The VBIOS for the Intel GPU on X60/T60 has been reverse engineered, and replaced with Free Software and
- so will work in libreboot.
- </p>
-
- <p>
- The 'Video BIOS' is what initializes graphics.
- </p>
-
- <p>
- See: <a href="https://en.wikipedia.org/wiki/Video_BIOS">https://en.wikipedia.org/wiki/Video_BIOS</a>.<br/>
- In fact, lack of free VBIOS in general is a big problem in coreboot, and is one reason (among others) why many ports for coreboot are
- unsuitable for libreboot's purpose.
- </p>
-
- <p>
- Theoretically, the ThinkPad T60 with ATI GPU can work with libreboot and have ROM's compiled for it, however
- in practise it would not be usable as a laptop because there would be no visual display at all. That being said,
- such a configuration is acceptable for use in a 'headless' server setup (with serial and/or ssh console as the display).
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="macbook11">Information about the macbook1,1</h1>
-
- <p>
- There is an Apple laptop called the macbook1,1 from 2006 which uses the same i945 chipset as the ThinkPad X60/T60.
- A developer ported the <a href="#macbook21">MacBook2,1</a> to coreboot, the ROM images also work on the macbook1,1.
- </p>
-
- <p>
- You can refer to <a href="#macbook21">#macbook21</a> for most of this. Macbook2,1 laptops come with Core 2 Duo processors
- which support 64-bit operating systems (and 32-bit). The MacBook1,1 uses Core Duo processors (supports 32-bit OS but not 64-bit),
- and it is believed that this is the only difference.
- </p>
-
- <p>
- It is believed that all models are compatible, listed here:
- </p>
- <ul>
- <li><a href="http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1">http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1</a></li>
- </ul>
-
- <h2>
- Compatible models
- </h2>
<p>
- Specifically (Order No. / Model No. / CPU):
+ Goto <a href="misc/index.html">misc/index.html</a>.
</p>
- <ul>
- <li>MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 <b>(tested - working)</b></i>
- <li>MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 (untested)</li>
- <li>MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested)</li>
- </ul>
-
- <p>
- Also of interest: <a href="#config_macbook21">#config_macbook21</a>.
- </p>
-
- <p>
- Unbricking: <a href="https://www.ifixit.com/Device/MacBook_Core_2_Duo">this page shows disassembly guides</a> and mono's page (see <a href="#macbook21">#macbook21</a>)
- shows the location of the SPI flash chip on the motherboard. <a href="https://www.ifixit.com/Guide/MacBook+Core+2+Duo+PRAM+Battery+Replacement/529">How to remove the motherboard</a>.
- </p>
-
- <p>
- No method is yet known for flashing in GNU/Linux while the Apple firmware is running. You will need to disassemble the machine and flash externally.
- Reading from flash seems to work. Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable,
- bus pirate cable (for connecting Pomona to the bus pirate).
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
<hr/>
- <h1 id="macbook21">Information about the macbook2,1</h1>
+ <h1 id="why">What is libreboot, really?</h1>
<p>
- There is an Apple laptop called the macbook2,1 from late 2006 or early 2007 that uses the same i945 chipset
- as the ThinkPad X60 and ThinkPad T60. A developer ported coreboot to his macbook2,1, and now libreboot can run on it.
- </p>
- <p>
- Mono Moosbart is the person who wrote the port for macbook2,1. Referenced below are copies (up to date at the time of writing, 20140630)
- of the pages he wrote when porting coreboot to the macbook2,1. They are included here in case the main site goes down for
- whatever reason, since they include a lot of useful information.
- </p>
- <p>
- Backups created using wget:<br/>
- <b>$ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/</b><br/>
- <b>$ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/coreboot/</b><br/>
- Use <b>-e robots=off</b> if using this trick for other sites and the site restricts using robots.txt
+ Libreboot is a <a href="http://coreboot.org/">coreboot</a> distribution (distro) with proprietary software removed,
+ intended to be a <a href="https://www.fsf.org/about/what-is-free-software">free</a>
+ (libre) 'BIOS' replacement for your computer.
</p>
<p>
- <b>Links to wget backups (and the backups themselves) of Mono's pages (see above) removed temporarily. Mono has given me permission to distribute them, but I need to ask
- him to tell me what license these works fall under first. Otherwise, the above URL's should be fine. NOTE TO SELF: REMOVE THIS WHEN DONE</b>
+ Read the full <a href="https://www.gnu.org/philosophy/free-sw.html">Free Software definition</a>.
</p>
<h2>
- Installing GNU/Linux distributions (on Apple EFI firmware)
- </h2>
- <ul>
- <li><a href="#">Parabola GNU/Linux installation on a macbook2,1 with Apple EFI firmware</a> (this is a copy of Mono's page, see above)</li>
- </ul>
- <p>
- How to boot an ISO: burn it to a CD (like you would normally) and hold down the Alt/Control key while booting.
- The bootloader will detect the GNU/Linux CD as 'Windows' (because Apple doesn't think GNU/Linux exists). Install it like you normally would.
- When you boot up again, hold Alt/Control once more. The installation (on the HDD) will once again be seen as 'Windows'. (it's not actually Windows,
- but Apple likes to think that Apple and Microsoft are all that exist.)
- Now to install libreboot, follow <a href="#flashrom_macbook21">#flashrom_macbook21</a>.
- </p>
-
- <h2>
- Information about coreboot
- </h2>
- <ul>
- <li><a href="#">Coreboot on the macbook2,1</a> (this is a copy of Mono's page, see above)</li>
- </ul>
-
- <h2>
- coreboot wiki page
- </h2>
- <ul>
- <li><a href="http://www.coreboot.org/Board:apple/macbook21">http://www.coreboot.org/Board:apple/macbook21</a></li>
- </ul>
-
- <h2>
- Compatible models
+ Project goals (and differences versus coreboot):
</h2>
- <p>
- It is believed that all models are compatible, listed here:
- </p>
- <ul>
- <li><a href="http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1">http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1</a></li>
- </ul>
- <p>
- Specifically (Order No. / Model No. / CPU):
- </p>
- <ul>
- <li>MA699LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T5600 <b>(tested - working)</b></li>
- <li>MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 <b>(tested - working)</b></li>
- <li>MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 (untested)</li>
- <li>MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 <b>(tested - working)</b></li>
- <li>MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 (untested)</li>
- <li>MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 <b>(tested - working)</b></li>
- </ul>
-
- <p>
- Also of interest: <a href="#config_macbook21">#config_macbook21</a>.
- </p>
-
- <p>
- Unbricking: <a href="https://www.ifixit.com/Device/MacBook_Core_2_Duo">this page shows disassembly guides</a> and mono's page (see above)
- shows the location of the SPI flash chip on the motherboard. <a href="https://www.ifixit.com/Guide/MacBook+Core+2+Duo+PRAM+Battery+Replacement/529">How to remove the motherboard</a>.
- </p>
-
- <p>
- Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable,
- bus pirate cable (for connecting Pomona to the bus pirate).
- </p>
-
- <p>
- You need to replace OS X with GNU/Linux before flashing libreboot. (OSX won't run at all in libreboot).
- </p>
-
- <p>
- There are some issues with this machine (compared to other computers that libreboot supports):
- </p>
-
- <p>
- This is an apple laptop, so it comes with OS X: it has an Apple keyboard, which means that certain keys you expect are missing:
- insert, del, home, end, pgup, pgdown. There is also one mouse button only. Battery life is poor compared to X60/T60 (for now).
- It also has other issues: for example, the Apple logo on the back is a hole, exposing the backlight, which means that it glows. You should cover it up.
- </p>
-
- <p>
- The macbook21 gets extremely hot under GNU/Linux and libreboot; Macfanctld (mac fan control daemon) I'm told is a programme (GPLv3 license) that can help with this.
- </p>
-
- <p>
- Debugging the heating issues (initial work):<br/>
- Distro: Trisquel 7. kernel(linux-libre): 3.13.0-32<br/>
- <b>CPU temperatures:</b><br/>
- 52C(idle)/81C(stress) on factory.bin<br/>
- 70C(idle)/80C(stress) on coreboot(with microcode updates). libreboot results (without microcode updates) were the same.<br/>
- (libreboot and coreboot rom's were both built from the same code, just with or without microcode included in the rom)<br/>
- battery life was higher on original firmware, lower on coreboot/libreboot.<br/>
- microcode patches included [y/n] makes no difference.<br/>
- libreboot: 1hr18min left on idle (99% battery), 42mins left on stress (82% battery)<br/>
- factory.bin: 2 hours left on idle (99% battery), 48mins left on stress (82% battery)
- </p>
- <p>
- Todo: see what the non-free firmware has in it's ACPI tables using acpidump and iasl -d. Try to implement cstate support in coreboot
- (this will allow for lower temperatures).
- </p>
-
- <p>
- <b>
- The MacBook2,1 comes with a webcam, which does not work without proprietary software. Also, webcams are a security risk; cover it up! Or remove it.
- </b>
- </p>
-
- <p>
- A user reported that they could get better response from the touchpad with the following in their xorg.conf:
- </p>
-
-<pre>
-Section "InputClass"
- Identifier "Synaptics Touchpad"
- Driver "synaptics"
- MatchIsTouchpad "on"
- MatchDevicePath "/dev/input/event*"
- Driver "synaptics"
-# The next two values determine how much pressure one needs
-# for tapping, moving the cursor and other events.
- Option "FingerLow" "10"
- Option "FingerHigh" "15"
-# Do not emulate mouse buttons in the touchpad corners.
- Option "RTCornerButton" "0"
- Option "RBCornerButton" "0"
- Option "LTCornerButton" "0"
- Option "LBCornerButton" "0"
-# One finger tap = left-click
- Option "TapButton1" "1"
-# Two fingers tap = right-click
- Option "TapButton2" "3"
-# Three fingers tap = middle-mouse
- Option "TapButton3" "2"
-# Try to not count the palm of the hand landing on the touchpad
-# as a tap. Not sure if helps.
- Option "PalmDetect" "1"
-# The following modifies how long and how fast scrolling continues
-# after lifting the finger when scrolling
- Option "CoastingSpeed" "20"
- Option "CoastingFriction" "200"
-# Smaller number means that the finger has to travel less distance
-# for it to count as cursor movement. Larger number prevents cursor
-# shaking.
- Option "HorizHysteresis" "10"
- Option "VertHysteresis" "10"
-# Prevent two-finger scrolling. Very jerky movement
- Option "HorizTwoFingerScroll" "0"
- Option "VertTwoFingerScroll" "0"
-# Use edge scrolling
- Option "HorizEdgeScroll" "1"
- Option "VertEdgeScroll" "1"
-EndSection
-</pre>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="rom">Recommended ROM's to flash</h1>
-
- <p>
- List of directories corresponding to each board:
- </p>
- <ul>
- <li>ThinkPad X60, X60s: <b>bin/x60/</b></li>
- <li>ThinkPad X60 Tablet: <b>bin/x60t/</b></li>
- <li>ThinkPad T60: <b>bin/t60/</b> (note, see <a href="#supported_t60_list">#supported_t60_list</a>)</li>
- <li>Apple MacBook2,1: <b>bin/macbook21/</b></li>
- <li>Apple MacBook1,1: <b>bin/macbook21/</b> (it's not a typo; the same ROM's work)</li>
- </ul>
-
- <p>These images use coreboot text-mode graphics:</p>
<ul>
- <li>US Qwerty keyboard: <b>libreboot_usqwerty_txtmode.rom</b></li>
- <li>UK Qwerty keyboard: <b>libreboot_ukqwerty_txtmode.rom</b></li>
- <li>US Dvorak keyboard: <b>libreboot_usdvorak_txtmode.rom</b></li>
- <li>UK Dvorak keyboard: <b>libreboot_ukdvorak_txtmode.rom</b></li>
- <li>French Azerty keyboard: <b>libreboot_frazerty_txtmode.rom</b></li>
- <li>Italian Qwerty keyboard: <b>libreboot_itqwerty_txtmode.rom</b></li>
- <li>Swedish Qwerty keyboard: <b>libreboot_svenska_txtmode.rom</b></li>
- </ul>
- <p>These images use coreboot framebuffer graphics:</p>
- <ul>
- <li>US Qwerty keyboard: <b>libreboot_usqwerty_vesafb.rom</b></li>
- <li>UK Qwerty keyboard: <b>libreboot_ukqwerty_vesafb.rom</b></li>
- <li>US Dvorak keyboard: <b>libreboot_usdvorak_vesafb.rom</b></li>
- <li>UK Dvorak keyboard: <b>libreboot_ukdvorak_vesafb.rom</b></li>
- <li>French Azerty keyboard: <b>libreboot_frazerty_vesafb.rom</b></li>
- <li>Italian Qwerty keyboard: <b>libreboot_itqwerty_vesafb.rom</b></li>
- <li>Swedish Qwerty keyboard: <b>libreboot_svenska_vesafb.rom</b></li>
+ <li>
+ Coreboot contains blobs (proprietary data/code) and libreboot does not (it intentionally removes them).
+ </li>
+ <li>
+ Coreboot is hacker-friendly and focuses on software developers, libreboot is user-focused and attempts to
+ turn coreboot into a distribution, sort of like a GNU/Linux distribution (same concept, different software). For example, libreboot
+ distributes GRUB/memtest86+/bucts/flashrom (and more) and comes with user-focused documentation and build scripts; libreboot
+ is therefore made more 'user-friendly'.
+ </li>
</ul>
- <p>
- _txtmode images come with a working MemTest86+ and GRUB Invaders, both of which require text-mode.
- _vesafb images are recommended in most cases.
- </p>
-
- <p>
- This will give you your native keyboard layout inside GRUB. The preferences in your OS are not affected, it just makes using
- the GRUB command line easier (if you ever need to do that).
- <a href="#grub_keyboard">#grub_keyboard</a>shows you how this was done. If your native keyboard layout
- differs, you can adapt those notes and hack the 'build' script for your needs.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="flashrom_lenovobios">X60/X60S/X60T/T60: How to flash the ROM's onto your machine (if running Lenovo BIOS firmware).</h1>
-
- <div class="important">
-
- <p>
- Hover over the next paragraph to make it black.
- </p>
- <p class="lenovobios">
- Following this guide means simply flashing a libreboot ROM. This guide will not (directly) teach you how to make a backup (dump) of the original Lenovo BIOS
- because to do so would be to explicitly endorse proprietary software. However, for the purposes of reverse engineering it can be useful
- to have a backup. Each copy of the original Lenovo BIOS is tied to the specific machine that it came from; it will not run
- on any other machine, even if it's the same type of machine as yours. What this means is that, effectively, you can back it up now (so that you can
- re-flash it later if you want to run the original Lenovo BIOS again) or lose it forever. The X60/T60 installation
- guide on the coreboot wiki will show you how to do this:
- <a href="http://www.coreboot.org/Board:lenovo/x60/Installation">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.<br/>
- Do not make this decision lightly! This is your last and only chance.
- </p>
-
- <p>
- The following is for the libreboot image and *not* the factory bios dump:
- </p>
- <p>
- Check the last two 64K regions in your ROM file (libreboot.rom in this example):<br/>
- <b>$ dd if=libreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x10000] count=64k</b><br/>
- <b>$ dd if=libreboot.rom of=lower64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k</b><br/>
- <b>$ sha512sum lower64k.bin top64k.bin</b><br/>
- Make *sure* that they match before you continue. The ROM's included pre-compiled in libreboot should already match.
- If they don't match, then do this (based on those instructions from <a href="http://www.coreboot.org/Board:lenovo/x60/Installation">coreboot wiki</a>):<br/>
- <b>$ dd if=top64k.bin of=libreboot.rom bs=1 seek=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k conv=notrunc</b><br/>
- After this, the ROM will be safe to flash. Explanation is provided in <a href="#build_bucts">#build_bucts</a>.
- </p>
-
- </div>
-
- <p><b>This is for the ThinkPad X60 and T60 while running Lenovo BIOS. If you already have coreboot or libreboot running,
- then go to <a href="#flashrom">#flashrom</a> instead!</b></p>
-
- <p><b>If you are flashing a Lenovo ThinkPad T60, be sure to read <a href="#supported_t60_list">#supported_t60_list</a></b></p>
-
- <p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
- </p>
-
- <div class="important">
-
- <p>
- <b>
- Before you proceed, make *sure* to build flashrom and bucts from source. Both are provided. This is very important!
- </b>
- </p>
- <ul>
- <li><a href="#build_flashrom">How to build flashrom from source</a></li>
- <li><a href="#build_bucts">How to build bucts from source</a></li>
- </ul>
-
- </div>
-
- <p>&quot;YOURBOARD/YOURROM&quot; should be replaced with what is correct as per <a href="#rom">#rom</a>. Alternatively
- you may be using your own custom ROM. Adapt.</p>
-
- <p>
- Run the script:<br/>
- <b>$ sudo ./lenovobios_firstflash bin/<a href="#rom">YOURBOARD/YOURROM</a>.</b>
- </p>
-
- <div class="important">
-
- <p>
- You should see within the output the following:<br/>
- <b>&quot;Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped&quot;</b>.
- </p>
-
- <p>
- You should also see within the output the following:<br/>
- <b>&quot;Flash chip is in an unknown state&quot;</b>, <b>&quot;FAILED&quot;</b> and <b>&quot;DO NOT SHUTDOWN OR REBOOT&quot;</b><br/>
- Seeing this means that the operation was a <b>resounding</b> success! <b>DON'T PANIC</b>.
- </p>
-
- <p>
- See this link for more details:
- <a href="http://thread.gmane.org/gmane.linux.bios.flashrom/575">http://thread.gmane.org/gmane.linux.bios.flashrom/575</a>.
- </p>
-
- <p>
- If the above is what you see, then <b>SHUT DOWN</b>. Wait a few seconds, and then boot; libreboot is running, but there is a 2nd procedure <b>*needed*</b> (see below).
- </p>
-
- </div>
-
- <p>
- <b>
- If you boot and you see nothing, try turning up the backlight (Fn+Home).
- </b>
- </p>
-
- <p>
- When you have booted up again:<br/>
- <b>$ sudo ./lenovobios_secondflash bin/<a href="#rom">YOURBOARD/YOURROM</a></b>
- </p>
-
- <div class="important">
-
- <p>
- You should see within the output the following:<br/>
- <b>&quot;Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated&quot;</b>
- </p>
-
- <p>
- You should also see within the output the following:<br/>
- <b>&quot;Verifying flash... VERIFIED.&quot;</b>
- </p>
-
- <p>Shut down again, wait a few seconds, and then boot.</p>
-
- </div>
-
- <p>
- Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed.
- You might also want to remove bluetooth. See <a href="howtos/x60_security.html">x60_security.html</a> and
- <a href="howtos/t60_security.html">t60_security.html</a>.
- </p>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="flashrom_macbook21">macbook21: How to flash your ROM (if running Apple EFI firmware)</h1>
-
- <div class="important">
-
- <p>
- Hover over the next paragraph to make it black.
- </p>
- <p class="lenovobios">
- Following this guide means simply flashing a libreboot ROM. This guide will not (directly) teach you how to make a backup (dump) of the original Apple EFI firmware
- because to do so would be to explicitly endorse proprietary software. However, for the purposes of reverse engineering it can be useful
- to have a backup. Each copy of the original Apple EFI is (believed, but unproven to be) tied to the specific machine that it came from; it will not (as is believed) run
- on any other machine, even if it's the same type of machine as yours. What this means is that, effectively, you can back it up now (so that you can
- re-flash it later if you want to run the original Apple EFI firmware again) or lose it forever. The macbook21 installation
- guide on the coreboot wiki will show you how to do this:
- <a href="http://www.coreboot.org/Board:apple/macbook21">http://www.coreboot.org/Board:apple/macbook21</a>.<br/>
- Do not make this decision lightly! This is (very likely) your last and only chance.
- </p>
-
- <p>
- (this theory is untested at the time of writing)
- </p>
-
<p>
- Note: <b>If you have a MacBook1,1 then these instructions will not work. See <a href="#macbook11">#macbook11</a> for MacBook1,1 flashing instructions.</b>
- </p>
-
- </div>
-
- <p>
- <b>
- This is for the MacBook2,1 while running Apple EFI firmware. If you already have
- coreboot or libreboot running, then go to <a href="#flashrom">#flashrom</a> instead!
- </b>
- </p>
-
- <p>
- Be sure to read the information in <a href="#macbook21">#macbook21</a>.
- </p>
-
- <p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
- </p>
-
- <div class="important">
-
- <p>
- <b>
- Before you proceed, make *sure* to build flashrom from source. This is very important!
- </b>
- </p>
- <ul>
- <li><a href="#build_flashrom">How to build flashrom from source</a></li>
- </ul>
-
- </div>
-
- <p>
- Look at <a href="#rom">#rom</a> to see which ROM is suitable for your machine. Alternatively you may be using your own
- custom ROM. Adapt.
- </p>
-
- <p>
- Flashing is actually easy (compared to X60/T60).<br/>
- <b>$ sudo flashrom -p internal:laptop=force_I_want_a_brick -w bin/<a href="#rom">YOURBOARD/YOURROM</a></b>
- </p>
-
- <p>
- Alternatively, a script is provided which does the same thing:<br/>
- <b>$ sudo ./macbook21_firstflash bin/<a href="#rom">YOURBOARD/YOURROM</a></b>
- </p>
-
- <div class="important">
-
- <p>
- You should also see within the output the following:<br/>
- <b>&quot;Verifying flash... VERIFIED.&quot;</b>
- </p>
-
- <p>
- If you see that, great! Shut down now (power off). Wait a few seconds and then boot!
- </p>
-
- <p>
- <b>
- If you boot and you see nothing, try turning up the backlight (F2 for macbook21).
- </b>
- </p>
-
-
- </div>
-
- <p><a href="#pagetop">Back to top of page.</a></p>
-
-<hr/>
-
- <h1 id="flashrom">X60/X60S/X60T/T60/macbook21: How to flash the ROM's onto your machine (if running libreboot or coreboot already)</h1>
-
- <p>
- <b>
- These instructions work for the Lenovo ThinkPad X60/X60S/X60T/T60 and Apple MacBook2,1.
- </b>
- </p>
- <p>
- <b>
- This assumes that you already have coreboot or libreboot running.
- </b>
- </p>
- <p>
- <b>
- If you have Lenovo BIOS running (X60/X60S/X60T/T60), go to <a href="#flashrom_lenovobios">#flashrom_lenovobios</a> instead.
- </b>
- </p>
- <p>
- <b>
- If you have Apple EFI firmware running (macbook21), go to <a href="#flashrom_macbook21">#flashrom_macbook21</a> instead.
- </b>
- </p>
- <p>
- <b>
- If you are flashing a Lenovo ThinkPad T60, be sure to read <a href="#supported_t60_list">#supported_t60_list</a>.
- </b>
- </p>
- <p>
- <b>
- If you are flashing an Apple MacBook2,1, be sure to read the information in <a href="#macbook21">#macbook21</a>.
- </b>
- </p>
- <p>
- First, <a href="#build_dependencies">install the build dependencies</a>.
- </p>
- <div class="important">
-
- <p>
- <b>
- Before you proceed, make *sure* to build flashrom from source. This is very important!
- </b>
- </p>
- <ul>
- <li><a href="#build_flashrom">How to build flashrom from source</a></li>
- </ul>
-
- </div>
- <p>
- Look at <a href="#rom">#rom</a> to see which ROM is suitable for your machine. Alternative you may be using your own
- custom ROM. Adapt.
- </p>
- <p>
- Flash the ROM:<br/>
- <b>$ sudo ./flash bin/<a href="#rom">YOURBOARD/YOURROM</a></b>
- </p>
-
- <div class="important">
-
- <p>
- You should see <b>&quot;Verifying flash... VERIFIED.&quot;</b> written at the end of the flashrom output. <b>SHUT DOWN</b>
- after you see this, and then boot up again after a few seconds.
+ Libreboot is <b>not</b> a fork of coreboot, despite misconceptions of this fact. Libreboot (downstream supplier) is a parallel effort
+ which works closely with and re-bases on the latest coreboot (upstream supplier) every so often.
</p>
<p>
<b>
- If you boot and you see nothing, try turning up the backlight (Fn+Home for X60/X60S/X60T/T60, F2 for macbook21).
+ As such, all new coreboot development should be done in coreboot, not libreboot!
+ Libreboot is about deblobbing, and packaging coreboot in a user-friendly way, where most work is already done for the user!
+ If, for example you wanted to attempt porting a new motherboard then you should do that in coreboot. Libreboot will (as a downstream)
+ receive your change at some point in the future, in a future release.
</b>
</p>
- </div>
-
- <p>
- Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed.
- You might also want to remove bluetooth. See <a href="howtos/x60_security.html">x60_security.html</a> and
- <a href="howtos/t60_security.html">t60_security.html</a>.
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="grub_font">Setting font in GRUB (for reference)</h1>
-
- <p>You don't need to do this unless you would like to change the default font yourself.
- (this is just for reference. It has already been done for you)</p>
-
- <p>The old font used was Unifont, and this had some missing characters: for instance, the border showed ??? characters instead of lines.</p>
-
- <p>I tried DeJavu Sans Mono from this website:
- <a href="http://dejavu-fonts.org/wiki/Download">dejavu-fonts.org</a></p>
-
- <p>Specifically, the version that I chose was the latest at the time of writing (Saturday 21 June 2014):
- <a href="http://sourceforge.net/projects/dejavu/files/dejavu/2.34/dejavu-fonts-ttf-2.34.tar.bz2">this one</a></p>
-
- <p>This is a free font that is also contained in GNU/Linux distributions like Trisquel or Parabola.</p>
-
- <p><b>$ cd libreboot_src/grub</b><br/>
- compile grub ('build' script has the info on how to do this)<br/>
- come back out into libreboot_src/resources/grub:<br/>
- <b>$ cd ../libreboot_src/resources/grub/font</b></p>
-
- <p>I took Dejavu Sans Mono from dejavu (included in this version of libreboot) and did:<br/>
- <b>$ ../../../grub/grub-mkfont -o dejavusansmono.pf2 ../../../dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf</b></p>
-
- <p>I then added the instructions to 'build' script to include resources/grub/dejavusansmono.pf2 in all of the ROM's in root of cbfs.<br/>
- I then added that instructions to the grub.cfg files (to load the font):<br/>
- <b>loadfont (cbfsdisk)/dejavusansmono.pf2</b></p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="grub_keyboard">GRUB keyboard layouts (for reference)</h1>
-
- <h2 id="grub_custom_keyboard">Custom keyboard layout in GRUB (for reference)</h2>
-
- <p>
- Keymaps are stored in resources/utilities/grub-assemble/keymap/.
- </p>
-
- <p>
- Example (French Azerty):<br/>
- <b>$ ckbcomp fr > frazerty</b><br/><br/>
- Go in grub directory:<br/>
- <b>cat frazerty | ./grub/grub-mklayout -o frazerty.gkb</b>
- </p>
-
- <p>
- You must make sure that the files are named keymap and keymap.gkb (where 'keymap' can be whatever you want).
- </p>
-
- <p>
- Then from the above example, you would put <b>frazerty</b> in <b>resources/utilities/grub-assemble/keymap/original/</b> and
- the <b>frazerty.gkb</b> file goes under <b>resources/utilities/grub-assemble/keymap/</b>
- </p>
+ <h2>
+ A 'stable' coreboot:
+ </h2>
+ <ul>
+ <li>
+ Coreboot uses the <a href="https://en.wikipedia.org/wiki/Rolling_release">rolling release</a> model
+ (and it is therefore quite volatile; one day when you build coreboot, it may or may not work correctly on your machine).
+ </li>
+ <li>
+ Libreboot changes less often (as far as the release model is concerned), focusing instead on 'tested' releases for <i>specific machines</i>.
+ At any given time, it might also be possible to build ROM images for systems other than those officially supported. If you get your board to work
+ (without violating the <i>&quot;coreboot development goes in coreboot&quot;</i> rule, then others could benefit from your work).
+ </li>
+ </ul>
<p>
- The scripts <b>build</b> and <b>buildrom-withgrub</b> will automatically see this, and automatically build
- ROM's with your custom layout (given the name) and include them under bin. Example: <b>libreboot_frazerty.rom</b>.
+ On the other hand, coreboot is also strict about what it accepts (merges) into the main git repository:
+ most of the time, a lot of changes are under review at review.coreboot.org (as a way of encouraging as much further development
+ as possible before accepting the patch).
</p>
- <p><a href="#pagetop">Back to top of page</a></p>
-
- <h2 id="grub_ukdvorak_keyboard">UK Dvorak keyboard layout in GRUB (for reference)</h2>
-
<p>
- ukdvorak had to be created manually, based on usdvorak. diff them (under resources/utilities/grub-assemble/keymap/original)
- to see how ukdvorak file was created
+ Meanwhile, libreboot is a lot less strict in this area and freely merges specific patches that are desirable, sometimes before they are merged into coreboot's main repository.
</p>
- <b>$ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb</b></p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="high_pitch_trisquel">High Pitched Whining Noise on Idle (how to remove in Trisquel)</h1>
-
- <p>
- Tested in Trisquel 6.
- </p>
- <p>
- Note: untested in Trisquel 7. Remove this note when it is.
- </p>
-
- <h2 id="howtouse_powertop">Powertop - how to use</h2>
-
- <p>Now you can use this command to kill that noise:<br/>
- <b>$ sudo powertop --auto-tune</b></p>
-
- <p>You can also run it without parameters and then go into 'Tunables' and set everything to 'Good'</p>
-
- <p>Note: On Trisquel 6, you will need to use a later powertop version from git. The one in the repositories is too old. See below:</p>
-
- <h2 id="powertop_autostart">Powertop - Start automatically at boot time (Trisquel 6)</h2>
-
- <p>Included with libreboot is a script called 'powertop.trisquel6'. Run this and it will setup powertop to run with --auto-tune
- at boot time. Load the file in your text editor to see how it does that.</p>
-
- <p><b>$ ./powertop.trisquel6</b></p>
-
- <p>This has been tested on Trisquel 6.</p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="high_pitch_parabola">High Pitched Whining Noise on Idle (how to remove in Parabola)</h1>
-
- <p>The following removes most of the noise. It reduces what is a high frequency whine
- (that not everyone can hear) to a slight buzz (which most people can't hear or doesn't bother most people).</p>
-
- <p>This is not perfect! The full solution is still not discovered but this is a step towards that.
- Also, in some instances you will need to run 'sudo powertop --auto-tune' again.
- This needs to be implemented properly in coreboot itself!</p>
-
- <p>On the X60 with coreboot or libreboot, there is a high pitched sound when idle.
- So far we have use processor.max_cstate=2 or idle=halt in GRUB.
- These consume power. Stop using them! </p>
-
- <p>Be root<br/>
- <b>$ su -</b></p>
-
- <p>Installed powertop:<br/>
- <b># pacman -S powertop</b></p>
-
- <p>and added the following to /etc/systemd/system/powertop.service :</p>
-
-<pre><i>
-[Unit]
-Description=Powertop tunings
-
-[Service]
-Type=oneshot
-RemainAfterExit=no
-ExecStart=/usr/bin/powertop --auto-tune
-# "powertop --auto-tune" still needs a terminal for some reason. Possibly a bug?
-Environment="TERM=xterm"
-
-[Install]
-WantedBy=multi-user.target
-</i></pre>
-
-
- <p>Finally, as root do that:<br/>
- <b># systemctl enable powertop</b><br/>
- <b># systemctl start powertop</b></p>
-
- <p>The next time you boot the machine, the buzz will be gone.</p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="serial">X60/T60: Serial port - how to use (for dock owners)</h1>
- <p>
- For the Thinkpad X60 you can use the <b>&quot;UltraBase X6&quot;</b> dock (for the X60 Tablet it is called
- X6 Tablet UltraBase). For the ThinkPad T60,
- you can use the <b>&quot;Advanced Mini Dock&quot;</b>.
- </p>
- <p>
- If you are using one of the ROM's with 'serial' in the name, then you have serial port enabled in libreboot
- and you have memtest86+ included inside the ROM. Connect your null modem cable to the serial port on the dock
- and connect the other end to a 2nd machine using your USB Serial adapter.
- </p>
- <p>
- On the 2nd machine, you can try this (using GNU Screen):<br/>
- <b>$ sudo screen /dev/ttyUSB0 115200</b>
- </p>
- <p>
- How to quit GNU Screen: Ctrl+A then release and press K, and then press Y.
- </p>
- <p>There are also others like Minicom but I like GNU Screen</p>
- <p>
- By doing this before booting the X60/T60, you will see console output from libreboot. You will also see
- GRUB displaying on the serial output, and you will be able to see MemTest86+ on the serial output aswell.
- You can also configure your distro so that a terminal (TTY) is accessible from the serial console.
- </p>
- <p>
- The following guide is for Ubuntu, and can be followed for Trisquel 6.0 which is based on Ubuntu 12.04
- (should also work in Trisquel 7, based on Ubuntu 14.04) to enable a serial console using GeTTY:<br/>
- <a href="https://help.ubuntu.com/community/SerialConsoleHowto" target="_blank">https://help.ubuntu.com/community/SerialConsoleHowto</a>
- </p>
- <p>
- Note: part of the tutorial above requires changing your grub.cfg. Just change the <b>linux</b> line to add instructions for enabling getty.
- See <a href="howtos/grub_cbfs.html">howtos/grub_cbfs.html</a>.
- </p>
- <p><a href="#pagetop">Back to top of page</a>
-
-<hr/>
-
- <h1 id="get_edid_panelname">Get EDID: Find out the name (model) of your LCD panel</h1>
- <p>
- Get the panel name with <b>sudo get-edid | strings</b><br/>
- Or look in <b>/sys/class/drm/card0-LVDS-1/edid</b>
- </p>
- <p>
- Alternatively you can use i2cdump. In Trisquel, this is in the package i2c-tools.<br/>
- $ <b>sudo modprobe i2c-dev</b><br/>
- $ <b>sudo i2cdump -y 5 0x50</b><br/>
- $ <b>sudo rmmod i2c-dev</b><br/>
- You'll see the panel name in the output (from the EDID dump).
- </p>
- <p>
- If neither of these options work (or they are unavailable), physically removing the LCD panel is an option.
- Usually, there will be information printed on the back.
- </p>
-
<p><a href="#pagetop">Back to top of page.</a></p>
<hr/>