summaryrefslogtreecommitdiffstats
path: root/docs/hcl
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2015-02-04 04:14:49 (EST)
committer Francis Rowe <info@gluglug.org.uk>2015-02-04 04:14:49 (EST)
commit4c3d46238022f0c9955ae7e8b10c9f1716dd871a (patch)
tree8639e21d93df6493d952bda5f324efbe4d89447f /docs/hcl
parent5b6f5884280657c8554035503ee2bde5d84a276c (diff)
downloadlibreboot-4c3d46238022f0c9955ae7e8b10c9f1716dd871a.zip
libreboot-4c3d46238022f0c9955ae7e8b10c9f1716dd871a.tar.gz
libreboot-4c3d46238022f0c9955ae7e8b10c9f1716dd871a.tar.bz2
Documentation: implement theme, drastically improve readability
Diffstat (limited to 'docs/hcl')
-rw-r--r--docs/hcl/index.html826
-rw-r--r--docs/hcl/x200.html373
-rw-r--r--docs/hcl/x200_remove_me.html585
3 files changed, 918 insertions, 866 deletions
diff --git a/docs/hcl/index.html b/docs/hcl/index.html
index 29a587a..6aec1c7 100644
--- a/docs/hcl/index.html
+++ b/docs/hcl/index.html
@@ -13,156 +13,164 @@
<body>
- <h1 id="pagetop">Hardware compatibility list</h1>
- <p>
- This sections relates to known hardware compatibility in libreboot.
- </p>
- <p>
- Or <a href="../index.html">back to main index</a>.
- </p>
- <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 T60s</a></li>
- <li><a href="x200.html">List of supported ThinkPad X200s</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><a href="#macbook21">Information about the Macbook2,1</a></li>
- </ul>
-
-<hr/>
-
- <h1 id="supported_list">List of supported hardware</h1>
-
- <p>
- Libreboot supports the following machines in this release:
- </p>
+ <div class="section">
+ <h1 id="pagetop">Hardware compatibility list</h1>
+ <p>
+ This sections relates to known hardware compatibility in libreboot.
+ </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="x200.html">Lenovo ThinkPad X200</a></li>
- <li><a href="#macbook11">Apple MacBook1,1</a></li>
- <li><a href="#macbook21">Apple MacBook2,1</a></li>
+ <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 T60s</a></li>
+ <li><a href="x200.html">List of supported ThinkPad X200s</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><a href="#macbook21">Information about the Macbook2,1</a></li>
</ul>
+ <p>
+ <a href="../index.html">Back to previous index</a>.
+ </p>
+ </div>
- <p>
- 'Supported' means that the build scripts know how to build ROM images 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>
+ <div class="section">
- <p>
- It is also possible to build ROM images (from source) for other machines (and virtual machines, e.g. QEMU).
- </p>
+ <h2 id="supported_list">List of supported hardware</h2>
- <p><a href="#pagetop">Back to top of page</a></p>
+ <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="x200.html">Lenovo ThinkPad X200</a></li>
+ <li><a href="#macbook11">Apple MacBook1,1</a></li>
+ <li><a href="#macbook21">Apple MacBook2,1</a></li>
+ </ul>
-<hr/>
+ <p>
+ 'Supported' means that the build scripts know how to build ROM images 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>
- <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>
+ 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>
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+ </div>
-<hr/>
+ <div class="section">
- <h1 id="supported_x60_list">List of supported ThinkPad X60s</h1>
+ <h2 id="recommended_wifi">Recommended wifi chipsets</h2>
+ <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>
- 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><a href="#pagetop">Back to top of page</a></p>
+
+ </div>
- <p>
- To find what LCD panel you have, see: <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>.
- </p>
+ <div class="section">
- <ul>
- <li>TMD-Toshiba LTD121ECHB: #</li>
- <li>CMO N121X5-L06: #</li>
- <li>Samsung LTN121XJ-L07: #</li>
- <li>BOE-Hydis HT121X01-101: #</li>
- </ul>
+ <h2 id="supported_x60_list">List of supported ThinkPad X60s</h2>
- <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>
+ 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>
- 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>
+ To find what LCD panel you have, see: <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>.
+ </p>
- <p><a href="#pagetop">Back to top of page.</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>
-<hr/>
+ <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>
- <h1 id="supported_x60t_list">List of supported ThinkPad X60 Tablets</h1>
+ <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>
- 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><a href="#pagetop">Back to top of page.</a></p>
+
+ </div>
- <p>
- To find what LCD panel you have, see: <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>.
- </p>
+ <div class="section">
- <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>
+ <h2 id="supported_x60t_list">List of supported ThinkPad X60 Tablets</h2>
- <p>
- Most X60Ts only have digitizer (pen), but some have finger (touch) aswell as pen; finger/multitouch doesn't work, only digitizer (pen) does.
- </p>
+ <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>
- You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in its 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>
+ To find what LCD panel you have, see: <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>.
+ </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>
+ 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>
- 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>
+ <p>
+ Most X60Ts 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 its 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>
# Now, for some reason (probably a bug in linuxwacom),
@@ -173,33 +181,33 @@
# tested with linuxwacom git 42a42b2a8636abc9e105559e5dea467163499de7
Section &quot;Monitor&quot;
- Identifier &quot;&lt;default monitor&gt;&quot;
- DisplaySize 245 184
+ Identifier &quot;&lt;default monitor&gt;&quot;
+ DisplaySize 245 184
EndSection
Section &quot;Screen&quot;
- Identifier &quot;Default Screen Section&quot;
- Monitor &quot;&lt;default monitor&lt;&quot;
+ Identifier &quot;Default Screen Section&quot;
+ Monitor &quot;&lt;default monitor&lt;&quot;
EndSection
Section &quot;InputDevice&quot;
- Identifier &quot;WTouch&quot;
- Driver &quot;wacom&quot;
- Option &quot;Device&quot; &quot;/dev/ttyS0&quot;
+ Identifier &quot;WTouch&quot;
+ Driver &quot;wacom&quot;
+ Option &quot;Device&quot; &quot;/dev/ttyS0&quot;
# Option &quot;DebugLevel&quot; &quot;12&quot;
- Option &quot;BaudRate&quot; &quot;38400&quot;
- Option &quot;Type&quot; &quot;touch&quot;
- Option &quot;Touch&quot; &quot;on&quot;
- Option &quot;Gesture&quot; &quot;on&quot;
- Option &quot;ForceDevice&quot; &quot;ISDV4&quot;
+ Option &quot;BaudRate&quot; &quot;38400&quot;
+ Option &quot;Type&quot; &quot;touch&quot;
+ Option &quot;Touch&quot; &quot;on&quot;
+ Option &quot;Gesture&quot; &quot;on&quot;
+ Option &quot;ForceDevice&quot; &quot;ISDV4&quot;
# Option &quot;KeepShape&quot; &quot;on&quot;
- Option &quot;Mode&quot; &quot;Absolute&quot;
- Option &quot;RawSample&quot; &quot;2&quot;
+ Option &quot;Mode&quot; &quot;Absolute&quot;
+ Option &quot;RawSample&quot; &quot;2&quot;
# Option &quot;TPCButton&quot; &quot;off&quot;
- Option &quot;TopX&quot; &quot;17&quot;
- Option &quot;TopY&quot; &quot;53&quot;
- Option &quot;BottomX&quot; &quot;961&quot;
- Option &quot;BottomY&quot; &quot;985&quot;
+ Option &quot;TopX&quot; &quot;17&quot;
+ Option &quot;TopY&quot; &quot;53&quot;
+ Option &quot;BottomX&quot; &quot;961&quot;
+ Option &quot;BottomY&quot; &quot;985&quot;
EndSection
Section &quot;ServerLayout&quot;
@@ -210,310 +218,332 @@ 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><a href="#pagetop">Back to top of page.</a></p>
+
+ </div>
- <p>
- To find what LCD panel you have, see: <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>.
- </p>
+ <div class="section">
- <p>
- <b>
- Some T60s have ATI GPUs, and all T60P laptops have ATI GPUs These are incompatible! See <a href="#t60_ati_intel">#t60_ati_intel</a> for how to remedy this.
- </b>
- </p>
+ <h2 id="supported_t60_list">Supported T60 list</h2>
- <p>
- How to dump the EDID:<br/>
-
- </p>
+ <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>
- 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>
- </ul>
+ <p>
+ To find what LCD panel you have, see: <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>.
+ </p>
- <div class="important">
+ <p>
+ <b>
+ Some T60s have ATI GPUs, and all T60P laptops have ATI GPUs These are incompatible! See <a href="#t60_ati_intel">#t60_ati_intel</a> for how to remedy this.
+ </b>
+ </p>
<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>
+ How to dump the EDID:<br/>
+
</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>
- <li>IDtech IAQX10N (15.1&quot; 2048x1536) (no display in GRUB, display in GNU/Linux is temperamental) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</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>:
+ Tested LCD panels: <b>working(compatible)</b>
</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>
+ <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>
</ul>
- <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.
- </p>
+ <div class="subsection">
- <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>
+ <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>
+ </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>
+ <li>IDtech IAQX10N (15.1&quot; 2048x1536) (no display in GRUB, display in GNU/Linux is temperamental) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)</li>
+ </ul>
- </div>
+ </div>
+
+ <div class="subsection">
- <p><a href="#pagetop">Back to top of page.</a></p>
+ <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>:
+ </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>
-<hr/>
+ <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.
+ </p>
- <h1 id="t60_ati_intel">ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.</h1>
+ <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>
- <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>
+ </div>
- <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><a href="#pagetop">Back to top of page.</a></p>
+
+ </div>
- <p>
- There is also a 15.4&quot; T60 with Intel GPU.
- </p>
+ <div class="section">
- <p>
- Note: the T60<b>p</b> laptops all have ATI graphics.
- The T60p laptops cannot be used with libreboot under any circumstances.
- </p>
+ <h2 id="t60_ati_intel">ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.</h2>
- <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):<br/>
- <img src="../images/t60_dev/t60_unbrick.jpg" alt="" />
- </p>
+ <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>
- 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>
+ 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>
- The 'Video BIOS' is what initializes graphics.
- </p>
+ <p>
+ There is also a 15.4&quot; T60 with Intel GPU.
+ </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>
+ Note: the T60<b>p</b> laptops all have ATI graphics.
+ The T60p laptops cannot be used with libreboot under any circumstances.
+ </p>
- <p>
- Theoretically, the ThinkPad T60 with ATI GPU can work with libreboot and have ROM images 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>
+ 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):<br/><br/>
+ <img src="../images/t60_dev/t60_unbrick.jpg" alt="" />
+ </p>
- <p><a href="#pagetop">Back to top of page.</a></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>
-<hr/>
+ <p>
+ The 'Video BIOS' is what initializes graphics.
+ </p>
- <h1 id="macbook11">Information about the macbook1,1</h1>
+ <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>
- 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>
+ Theoretically, the ThinkPad T60 with ATI GPU can work with libreboot and have ROM images 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>
- 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><a href="#pagetop">Back to top of page.</a></p>
+
+ </div>
- <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>
+ <div class="section">
+
+ <h2 id="macbook11">Information about the macbook1,1</h2>
- <h2>
- Compatible models
- </h2>
<p>
- Specifically (Order No. / Model No. / CPU):
+ 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>MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 <b>(tested - working)</b></li>
- <li>MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 (untested)</li>
- <li>MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested)</li>
+ <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>
+
+ <div class="subsection">
+ <h3>
+ Compatible models
+ </h3>
+ <p>
+ Specifically (Order No. / Model No. / CPU):
+ </p>
+ <ul>
+ <li>MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 <b>(tested - working)</b></li>
+ <li>MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 (untested)</li>
+ <li>MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested)</li>
+ </ul>
+ </div>
- <p>
- Also of interest: <a href="../git/index.html#config_macbook21">../git/index.html#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>
+ Also of interest: <a href="../git/index.html#config_macbook21">../git/index.html#config_macbook21</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. For external flashing, refer to <a href="../install/bbb_setup.html">../install/bbb_setup.html</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><a href="#pagetop">Back to top of page.</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. For external flashing, refer to <a href="../install/bbb_setup.html">../install/bbb_setup.html</a>.
+ </p>
-<hr/>
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+ </div>
- <h1 id="macbook21">Information about the macbook2,1</h1>
+ <div class="section">
- <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
- </p>
+ <h2 id="macbook21">Information about the macbook2,1</h2>
- <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 URLs should be fine. NOTE TO SELF: REMOVE THIS WHEN DONE</b>
- </p>
+ <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
+ </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="../install/index.html#flashrom_macbook21">../install/index.html#flashrom_macbook21</a>.
+ <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 URLs should be fine. NOTE TO SELF: REMOVE THIS WHEN DONE</b>
</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>
+ <div class="subsection">
+ <h3>
+ Installing GNU/Linux distributions (on Apple EFI firmware)
+ </h3>
+ <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="../install/index.html#flashrom_macbook21">../install/index.html#flashrom_macbook21</a>.
+ </p>
+ </div>
+
+ <div class="subsection">
+ <h3>
+ Information about coreboot
+ </h3>
+ <ul>
+ <li><a href="#">Coreboot on the macbook2,1</a> (this is a copy of Mono's page, see above)</li>
+ </ul>
+ </div>
- <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>
+ <div class="subsection">
+ <h3>
+ coreboot wiki page
+ </h3>
+ <ul>
+ <li><a href="http://www.coreboot.org/Board:apple/macbook21">http://www.coreboot.org/Board:apple/macbook21</a></li>
+ </ul>
+ </div>
+
+ <div class="subsection">
+ <h3>
+ Compatible models
+ </h3>
+ <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>
+ </div>
- <h2>
- Compatible models
- </h2>
<p>
- It is believed that all models are compatible, listed here:
+ Also of interest: <a href="../git/index.html#config_macbook21">../git/index.html#config_macbook21</a>.
</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):
+ 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>
- <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="../git/index.html#config_macbook21">../git/index.html#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>
- For external flashing, refer to <a href="../install/bbb_setup.html">../install/bbb_setup.html</a>.
- </p>
+ <p>
+ For external flashing, refer to <a href="../install/bbb_setup.html">../install/bbb_setup.html</a>.
+ </p>
- <p>
- You need to replace OS X with GNU/Linux before flashing libreboot. (OSX won't run at all in libreboot).
- </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>
+ 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>
+ 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 machine does get a bit hotter compared to when running the original firmware. It is certainly hotter
- than an X60/T60. The heat issues have been partially fixed by the following patch (now merged in libreboot):
- <a href="http://review.coreboot.org/#/c/7923/">http://review.coreboot.org/#/c/7923/</a>.
- </p>
+ <p>
+ The machine does get a bit hotter compared to when running the original firmware. It is certainly hotter
+ than an X60/T60. The heat issues have been partially fixed by the following patch (now merged in libreboot):
+ <a href="http://review.coreboot.org/#/c/7923/">http://review.coreboot.org/#/c/7923/</a>.
+ </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>
+ <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>
+ <p>
+ A user reported that they could get better response from the touchpad with the following in their xorg.conf:
+ </p>
<pre>
Section "InputClass"
@@ -558,21 +588,25 @@ Section "InputClass"
EndSection
</pre>
- <p><a href="#pagetop">Back to top of page.</a></p>
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+ </div>
-<hr/>
+ <div class="section">
- <p>
- Copyright &copy; 2014, 2015 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
- This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
- A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
- </p>
+ <p>
+ Copyright &copy; 2014, 2015 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
- <p>
- This document is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../../license.txt</a> for more information.
- </p>
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
+ </p>
+
+ </div>
</body>
</html>
diff --git a/docs/hcl/x200.html b/docs/hcl/x200.html
index 3aa1963..0435efc 100644
--- a/docs/hcl/x200.html
+++ b/docs/hcl/x200.html
@@ -13,38 +13,39 @@
<body>
- <h1 id="pagetop">ThinkPad X200</h1>
- <p>
- Or <a href="index.html">back to main index</a>.
- </p>
-
- <p>
- It is believed that all X200 laptops are compatible. X200S and X200 Tablet will
- also work, <a href="#x200s">depending on the configuration</a>.
- </p>
- <p>
- It *might* be possible to put an X200 motherboard in an X201 chassis, though this is currently untested
- by the libreboot project. The same may also apply between X200S and X201S; again, this is untested.
- <b>It's most likely true.</b>
- </p>
-
- <p>
- There are two possible flash chip sizes for the X200: 4MiB (32Mbit) or 8MiB (64Mbit).
- This can be identified by the type of flash chip below the palmrest: 4MiB is SOIC-8, 8MiB
- is SOIC-16.
- </p>
-
- <p>
- <b>The X200 laptops come with the ME (and sometimes AMT in addition) before flashing libreboot. Libreboot disables and removes it
- by using a modified descriptor: see <a href="x200_remove_me.html">x200_remove_me.html</a></b> (contains notes, plus
- instructions)
- </p>
-
- <p>
- Flashing instructions can be found at <a href="../install/index.html#flashrom">../install/index.html#flashrom</a>
- </p>
+ <div class="section">
+ <h1 id="pagetop">ThinkPad X200</h1>
+
+ <p>
+ It is believed that all X200 laptops are compatible. X200S and X200 Tablet will
+ also work, <a href="#x200s">depending on the configuration</a>.
+ </p>
+ <p>
+ It *might* be possible to put an X200 motherboard in an X201 chassis, though this is currently untested
+ by the libreboot project. The same may also apply between X200S and X201S; again, this is untested.
+ <b>It's most likely true.</b>
+ </p>
+
+ <p>
+ There are two possible flash chip sizes for the X200: 4MiB (32Mbit) or 8MiB (64Mbit).
+ This can be identified by the type of flash chip below the palmrest: 4MiB is SOIC-8, 8MiB
+ is SOIC-16.
+ </p>
+
+ <p>
+ <b>The X200 laptops come with the ME (and sometimes AMT in addition) before flashing libreboot. Libreboot disables and removes it
+ by using a modified descriptor: see <a href="x200_remove_me.html">x200_remove_me.html</a></b> (contains notes, plus
+ instructions)
+ </p>
-<hr/>
+ <p>
+ Flashing instructions can be found at <a href="../install/index.html#flashrom">../install/index.html#flashrom</a>
+ </p>
+
+ <p>
+ <a href="index.html">Back to previous index</a>.
+ </p>
+ </div>
<div class="section">
@@ -68,22 +69,22 @@
non-descriptor mode would wipe it out).
</p>
- <h3 id="hwvirt">Hardware virtualization (vt-x)</h3>
- <p>
- The X200, when run without CPU microcode updates in coreboot, currently kernel panics
- if running QEMU with vt-x enabled on 2 cores for the guest. With a single core enabled
- for the guest, the guest panics (but the host is fine). Working around this in QEMU
- might be possible; if not, software virtualization should work fine (it's just slower).
- </p>
- <p>
- The following errata datasheet from Intel might help with investigation:
- <a href="http://download.intel.com/design/mobile/specupdt/320121.pdf">http://download.intel.com/design/mobile/specupdt/320121.pdf</a>
- </p>
+ <div class="subsection">
+ <h3 id="hwvirt">Hardware virtualization (vt-x)</h3>
+ <p>
+ The X200, when run without CPU microcode updates in coreboot, currently kernel panics
+ if running QEMU with vt-x enabled on 2 cores for the guest. With a single core enabled
+ for the guest, the guest panics (but the host is fine). Working around this in QEMU
+ might be possible; if not, software virtualization should work fine (it's just slower).
+ </p>
+ <p>
+ The following errata datasheet from Intel might help with investigation:
+ <a href="http://download.intel.com/design/mobile/specupdt/320121.pdf">http://download.intel.com/design/mobile/specupdt/320121.pdf</a>
+ </p>
+ </div>
</div>
-<hr/>
-
<div class="section">
<h2 id="x200s">X200S and X200 Tablet.</h2>
@@ -140,140 +141,146 @@
src or git).
</p>
- <h3 id="x200s_raminit">Proper GS45 raminit</h3>
- <p>
- A new northbridge gs45 should be added to coreboot, based on gm45,
- and a new port x200st (X200S and X200T) should be added based on
- the x200 port.
- </p>
- <p>
- This port would have proper raminit. Alternatively, gs45 (if
- raminit is taken to be the only issue with it) can be part of
- gm45 northbridge support (and X200S/Tablet being part of the X200
- port) with conditional checks in the raminit that make raminit
- work differently (as required) for GS45. nico_h and pgeorgi/patrickg
- in the coreboot IRC channel should know more about raminit on gm45
- and likely gs45.
- </p>
- <p>
- pgeorgi recommends to run SerialICE on the factory BIOS (for X200S),
- comparing it with X200 (factory BIOS) and X200 (gm45 raminit code
- in coreboot), to see what the differences are. Then tweak raminit
- code based on that.
- </p>
+ <div class="subsection">
+ <h3 id="x200s_raminit">Proper GS45 raminit</h3>
+ <p>
+ A new northbridge gs45 should be added to coreboot, based on gm45,
+ and a new port x200st (X200S and X200T) should be added based on
+ the x200 port.
+ </p>
+ <p>
+ This port would have proper raminit. Alternatively, gs45 (if
+ raminit is taken to be the only issue with it) can be part of
+ gm45 northbridge support (and X200S/Tablet being part of the X200
+ port) with conditional checks in the raminit that make raminit
+ work differently (as required) for GS45. nico_h and pgeorgi/patrickg
+ in the coreboot IRC channel should know more about raminit on gm45
+ and likely gs45.
+ </p>
+ <p>
+ pgeorgi recommends to run SerialICE on the factory BIOS (for X200S),
+ comparing it with X200 (factory BIOS) and X200 (gm45 raminit code
+ in coreboot), to see what the differences are. Then tweak raminit
+ code based on that.
+ </p>
+ </div>
</div>
+
+ <div class="section">
-<hr/>
-
- <h1 id="lcd_supported_list">LCD compatibility list</h1>
- <p>
- Unless otherwise noted (italic styling, underlined), these are CCFL 1280x800 screens with TN panels inside.
- Please do advise if you spot mistakes here.
- </p>
- <p>
- Use the instructions at <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>
- to get the name of your panel, then check it against the list below. If your panel is untested, then by all means
- try it! (and get in touch with the libreboot project to advise whether or not it worked).
- </p>
- <p>
- AUO = AU Optronics. List of panels below based on
- <a href="http://www.thinkwiki.org/wiki/TFT_display">http://www.thinkwiki.org/wiki/TFT_display</a>
- </p>
- <p>
- Tested LCD panels (confirmed working):
- </p>
- <ul>
- <li>X200/X200S: LG-Philips LP121WX3-TLC1 (sgsit on IRC has this panel) (LED backlight)</li>
- <li>X200/X200S: Samsung LTN121AT03 (phcoder on IRC has this panel)</li>
- <li>X200/X200S: AUO B121EW03 V.6 (fchmmr on IRC has this panel)</li>
- <li>X200S: TMD-Toshiba LTD121EQ3B (1440x900 resolution) (LED backlight) (sgsit on IRC has this panel)</li>
- </ul>
- <p>
- Untested LCD panels (status unknown):
- </p>
- <ul>
- <li>X200 Tablet: TMD-Toshiba LTD121KX6B (LED backlight)</li>
- <li>X200/X200S: TMD-Toshiba LTD121EWVB</li>
- <li>X200/X200S: AOU B121EW09 V.2 (LED backlight)</li>
- <li>X200/X200S: FRU 42T0715 (no manufacturer/model given) (LED backlight)</li>
- <li>X200/X200S: LG-Philips LP121WX3-TLA1 (LED backlight)</li>
- <li>X200/X200S: 42T0713 FRU (no model/manufacturer given) (LED backlight)</li>
- </ul>
- <p>
- <a href="#pagetop">Back to top of page.</a>
- </p>
-
- <h2 id="ips">
- AFFS/IPS panels
- </h2>
- <h3>X200</h3>
- <p>
- Adapted from <a href="https://github.com/bibanon/Coreboot-ThinkPads/wiki/ThinkPad-X200">https://github.com/bibanon/Coreboot-ThinkPads/wiki/ThinkPad-X200</a>
- </p>
- <p>
- Look at wikipedia for difference between TN and IPS panels. IPS have much better colour/contrast than
- a regular TN, and will typically have good viewing angles.
- </p>
- <p>
- These seem to be from the X200 tablet. You need to find one without the glass touchscreen protection on it
- (might be able to remove it, though). It also must not have a digitizer on it (again, might be possible to
- just simply remove the digitizer).
- </p>
- <ul>
- <li>BOE-Hydis HV121WX4-120, HV121WX4-110 or HV121WX4-100 - cheap-ish, might be hard to find</li>
- <li>Samsung LTN121AP02-001 - common to find, cheap</li>
- </ul>
- <p>
- <b>If your X200 has an LED backlit panel in it, then you also need to get an inverter and harness cable
- that is compatible with the CCFL panels. To see which panel type you have, see
- <a href="#led_howtotell">#led_howtotell</a>. If you need the inverter/cable, here are part numbers:
- 44C9909 for CCFL LVDS cable with bluetooth and camera connections, and 42W8009 or 42W8010 for the
- inverter.</b>
- </p>
- <p>
- There are glossy and matte versions of these. Matte means anti-glare, which is what you want (in this authors opinion).
- </p>
- <p>
- Refer to the HMM (hardware maintenance manual) for how to replace the screen.
- </p>
- <p>Sources:</p>
- <ul>
- <li><a href="http://forum.thinkpads.com/viewtopic.php?f=2&t=84941">ThinkPad Forums - Matte AFFS Panel on X200</a></li>
- <li><a href="http://forum.thinkpads.com/viewtopic.php?p=660662#p660662">ThinkPad Forums - Parts for X200 AFFS Mod</a></li>
- <li><a href="http://thinkwiki.de/X200_Displayumbau">ThinkWiki.de - X200 Displayumbau</a> (achtung: du musst lesen und/oder spreche deutsch;
- oder ein freund fur hilfe)</li>
- </ul>
- <h3>X200S</h3>
- <p>
- <a href="http://forum.thinkpads.com/viewtopic.php?p=618928#p618928">http://forum.thinkpads.com/viewtopic.php?p=618928#p618928</a>
- explains that the X200S screens/assemblies are thinner. You need to replace the whole lid with one from a normal X200/X201.
- </p>
+ <h2 id="lcd_supported_list">LCD compatibility list</h2>
+ <p>
+ Unless otherwise noted (italic styling, underlined), these are CCFL 1280x800 screens with TN panels inside.
+ Please do advise if you spot mistakes here.
+ </p>
+ <p>
+ Use the instructions at <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a>
+ to get the name of your panel, then check it against the list below. If your panel is untested, then by all means
+ try it! (and get in touch with the libreboot project to advise whether or not it worked).
+ </p>
+ <p>
+ AUO = AU Optronics. List of panels below based on
+ <a href="http://www.thinkwiki.org/wiki/TFT_display">http://www.thinkwiki.org/wiki/TFT_display</a>
+ </p>
+ <p>
+ Tested LCD panels (confirmed working):
+ </p>
+ <ul>
+ <li>X200/X200S: LG-Philips LP121WX3-TLC1 (sgsit on IRC has this panel) (LED backlight)</li>
+ <li>X200/X200S: Samsung LTN121AT03 (phcoder on IRC has this panel)</li>
+ <li>X200/X200S: AUO B121EW03 V.6 (fchmmr on IRC has this panel)</li>
+ <li>X200S: TMD-Toshiba LTD121EQ3B (1440x900 resolution) (LED backlight) (sgsit on IRC has this panel)</li>
+ </ul>
+ <p>
+ Untested LCD panels (status unknown):
+ </p>
+ <ul>
+ <li>X200 Tablet: TMD-Toshiba LTD121KX6B (LED backlight)</li>
+ <li>X200/X200S: TMD-Toshiba LTD121EWVB</li>
+ <li>X200/X200S: AOU B121EW09 V.2 (LED backlight)</li>
+ <li>X200/X200S: FRU 42T0715 (no manufacturer/model given) (LED backlight)</li>
+ <li>X200/X200S: LG-Philips LP121WX3-TLA1 (LED backlight)</li>
+ <li>X200/X200S: 42T0713 FRU (no model/manufacturer given) (LED backlight)</li>
+ </ul>
+ <p>
+ <a href="#pagetop">Back to top of page.</a>
+ </p>
+ <div class="subsection">
+ <h3 id="ips">
+ AFFS/IPS panels
+ </h3>
+ <h4>X200</h4>
+ <p>
+ Adapted from <a href="https://github.com/bibanon/Coreboot-ThinkPads/wiki/ThinkPad-X200">https://github.com/bibanon/Coreboot-ThinkPads/wiki/ThinkPad-X200</a>
+ </p>
+ <p>
+ Look at wikipedia for difference between TN and IPS panels. IPS have much better colour/contrast than
+ a regular TN, and will typically have good viewing angles.
+ </p>
+ <p>
+ These seem to be from the X200 tablet. You need to find one without the glass touchscreen protection on it
+ (might be able to remove it, though). It also must not have a digitizer on it (again, might be possible to
+ just simply remove the digitizer).
+ </p>
+ <ul>
+ <li>BOE-Hydis HV121WX4-120, HV121WX4-110 or HV121WX4-100 - cheap-ish, might be hard to find</li>
+ <li>Samsung LTN121AP02-001 - common to find, cheap</li>
+ </ul>
+ <p>
+ <b>If your X200 has an LED backlit panel in it, then you also need to get an inverter and harness cable
+ that is compatible with the CCFL panels. To see which panel type you have, see
+ <a href="#led_howtotell">#led_howtotell</a>. If you need the inverter/cable, here are part numbers:
+ 44C9909 for CCFL LVDS cable with bluetooth and camera connections, and 42W8009 or 42W8010 for the
+ inverter.</b>
+ </p>
+ <p>
+ There are glossy and matte versions of these. Matte means anti-glare, which is what you want (in this authors opinion).
+ </p>
+ <p>
+ Refer to the HMM (hardware maintenance manual) for how to replace the screen.
+ </p>
+ <p>Sources:</p>
+ <ul>
+ <li><a href="http://forum.thinkpads.com/viewtopic.php?f=2&t=84941">ThinkPad Forums - Matte AFFS Panel on X200</a></li>
+ <li><a href="http://forum.thinkpads.com/viewtopic.php?p=660662#p660662">ThinkPad Forums - Parts for X200 AFFS Mod</a></li>
+ <li><a href="http://thinkwiki.de/X200_Displayumbau">ThinkWiki.de - X200 Displayumbau</a> (achtung: du musst lesen und/oder spreche deutsch;
+ oder ein freund fur hilfe)</li>
+ </ul>
+ </div>
+ <div class="subsection">
+ <h3>X200S</h3>
+ <p>
+ <a href="http://forum.thinkpads.com/viewtopic.php?p=618928#p618928">http://forum.thinkpads.com/viewtopic.php?p=618928#p618928</a>
+ explains that the X200S screens/assemblies are thinner. You need to replace the whole lid with one from a normal X200/X201.
+ </p>
+ </div>
+
<p>
<a href="#pagetop">Back to top of page.</a>
</p>
-
-<hr/>
-
- <h1 id="led_howtotell">How to tell if it has an LED or CCFL?</h1>
-
- <p>
- Some X200s have a CCFL backlight and some have an LED backlight, in their LCD panel. This
- also means that the inverters will vary, so you must be careful if ever replacing either
- the panel and/or inverter. (a CCFL inverter is high-voltage and will destroy an LED backlit panel).
- </p>
- <p>
- CCFLs contain mercury. An X200 with a CCFL backlight will (<b></b>unless it has been changed to an LED,
- with the correct inverter. Check with your supplier!</b>) the following: <i>&quot;This product
- contains Lithium Ion Battery, Lithium Battery and a lamp which contains mercury; dispose according to
- local, state or federal laws&quot;</i> (one with an LED backlit panel will say something different).
- </p>
- <p>
- <a href="#pagetop">Back to top of page.</a>
- </p>
+
+ </div>
-<hr/>
+ <div class="section">
+ <h2 id="led_howtotell">How to tell if it has an LED or CCFL?</h2>
+
+ <p>
+ Some X200s have a CCFL backlight and some have an LED backlight, in their LCD panel. This
+ also means that the inverters will vary, so you must be careful if ever replacing either
+ the panel and/or inverter. (a CCFL inverter is high-voltage and will destroy an LED backlit panel).
+ </p>
+ <p>
+ CCFLs contain mercury. An X200 with a CCFL backlight will (<b></b>unless it has been changed to an LED,
+ with the correct inverter. Check with your supplier!</b>) the following: <i>&quot;This product
+ contains Lithium Ion Battery, Lithium Battery and a lamp which contains mercury; dispose according to
+ local, state or federal laws&quot;</i> (one with an LED backlit panel will say something different).
+ </p>
+ <p>
+ <a href="#pagetop">Back to top of page.</a>
+ </p>
+ </div>
<div class="section">
@@ -299,8 +306,6 @@
</div>
-<hr/>
-
<div class="section">
<h2 id="unsorted">Unsorted notes</h2>
@@ -315,19 +320,21 @@
</div>
-<hr/>
+ <div class="section">
- <p>
- Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
- This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
- A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
- </p>
+ <p>
+ Copyright &copy; 2014, 2015 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
- <p>
- This document is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../../license.txt</a> for more information.
- </p>
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
+ </p>
+
+ </div>
</body>
</html>
diff --git a/docs/hcl/x200_remove_me.html b/docs/hcl/x200_remove_me.html
index 48468c6..ae0a83f 100644
--- a/docs/hcl/x200_remove_me.html
+++ b/docs/hcl/x200_remove_me.html
@@ -13,181 +13,189 @@
<body>
- <h1 id="pagetop">ThinkPad X200: remove the ME (manageability engine)</h1>
- <p>
- This sections relates to disabling and removing the ME (Intel <b>M</b>anagement <b>E</b>ngine)
- on the ThinkPad X200.
- </p>
- <p>
- The ME is a blob that typically must be left inside the flash chip (in the ME region, as outlined
- by the default descriptor). On the X200, it is possible to remove it without any ill effects. All
- other parts of coreboot on the X200 can be blob-free, so removing the ME was the last obstacle to
- get X200 support in libreboot (the machine can also work without the microcode blobs).
- </p>
- <p>
- The ME is removed and disabled in libreboot by modifying the descriptor. More info about
- this can be found in the ich9deblob/ich9gen source code in resources/utilities/ich9deblob/
- in libreboot, or more generally on this page.
- </p>
- <p>
- Or <a href="x200.html">back to main X200 compatibility page (x200.html)</a>.
- </p>
+ <div class="section">
+
+ <h1 id="pagetop">ThinkPad X200: remove the ME (manageability engine)</h1>
+ <p>
+ This sections relates to disabling and removing the ME (Intel <b>M</b>anagement <b>E</b>ngine)
+ on the ThinkPad X200.
+ </p>
+ <p>
+ The ME is a blob that typically must be left inside the flash chip (in the ME region, as outlined
+ by the default descriptor). On the X200, it is possible to remove it without any ill effects. All
+ other parts of coreboot on the X200 can be blob-free, so removing the ME was the last obstacle to
+ get X200 support in libreboot (the machine can also work without the microcode blobs).
+ </p>
+ <p>
+ The ME is removed and disabled in libreboot by modifying the descriptor. More info about
+ this can be found in the ich9deblob/ich9gen source code in resources/utilities/ich9deblob/
+ in libreboot, or more generally on this page.
+ </p>
+ <p>
+ <a href="x200.html">Back to main X200 compatibility page (x200.html)</a>.
+ </p>
+
+ </div>
-<hr/>
+ <div class="section">
- <h1 id="ich9gen">ICH9 gen utility</h1>
-
- <p>
- <b>This is no longer strictly necessary. Libreboot ROM images for X200 now
- contain the 12KiB descriptor+gbe generated from ich9gen, by default.</b>
- </p>
-
- <p>
- It is no longer necessary to use <a href="#ich9deblob">ich9deblob</a> to generate
- a deblobbed descriptor+gbe image for the X200. ich9gen is a small utility within
- ich9deblob that can generate them from scratch, without a factory.bin dump.
- </p>
-
- <p>
- Run:<br/>
- $ <b>./ich9gen</b>
- </p>
-
- <p>
- It is also possible to generate a descriptor+gbe image with your own MAC address
- inside (with the Gbe checksum updated to match). Run:<br/>
- $ <b>./ich9gen --macaddress XX:XX:XX:XX:XX:XX</b><br/>
- (replace the XX chars with the hexadecimal chars in the MAC address that you want)
- </p>
-
- <p>
- You can find out your MAC address from <b>ip addr</b> or <b>ifconfig</b> in GNU/Linux.
- Alternatively, if you are running libreboot already (with the correct MAC address in your
- ROM), dump it (flashrom -r) and read the first 6 bytes from position 0x1000 (or 0x2000) in a hex editor
- (or, rename it to factory.rom and run it in ich9deblob: in the newly created mkgbe.c
- will be the individual bytes of your MAC address). If you are currently running the stock firmware
- and haven't installed libreboot yet, you can also run that through ich9deblob to get the mac address.
- </p>
-
- <p>
- An even simpler way to get the MAC address would be to read what's on the little sticker on
- the underside. (on the X200, this would be near the VGA port).
- </p>
+ <h1 id="ich9gen">ICH9 gen utility</h1>
- <p>
- A bash script is also included in libreboot which will change the mac address (using ich9gen)
- on all X200 ROM images. For instance:<br/>
- $ <b>./ich9macchange XX:XX:XX:XX:XX:XX</b>
- </p>
+ <p>
+ <b>This is no longer strictly necessary. Libreboot ROM images for X200 now
+ contain the 12KiB descriptor+gbe generated from ich9gen, by default.</b>
+ </p>
- <p>
- Two new files will be created:
- </p>
- <ul>
- <li><b>ich9fdgbe_4m.bin</b>: this is for X200 laptops with the 4MB flash chip.</li>
- <li><b>ich9fdgbe_8m.bin</b>: this is for X200 laptops with the 8MB flash chip.</li>
- </ul>
+ <p>
+ It is no longer necessary to use <a href="#ich9deblob">ich9deblob</a> to generate
+ a deblobbed descriptor+gbe image for the X200. ich9gen is a small utility within
+ ich9deblob that can generate them from scratch, without a factory.bin dump.
+ </p>
- <p>
- ich9gen executables can be found under ./ich9deblob/ statically compiled in
- libreboot_bin. If you are using src or git, build ich9gen from source with:<br/>
- $ <b>./builddeps-ich9deblob</b><br/>
- The executable will appear under resources/utilities/ich9deblob/
- </p>
-
- <p>
- Assuming that your X200 libreboot image is named <b>libreboot.rom</b>, copy
- the file to where <b>libreboot.rom</b> is located
- and then run, for instance:<br/>
- $ <b>dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=1 count=12k conv=notrunc</b><br/>
- or:<br/>
- $ <b>dd if=ich9fdgbe_4m.bin of=libreboot.rom bs=1 count=12k conv=notrunc</b>
- </p>
-
- <p>
- Your X200 libreboot.rom image is now ready to be flashed on the machine. Refer back to
- <a href="../install/index.html#flashrom">../install/index.html#flashrom</a>
- for how to flash it.
- </p>
+ <p>
+ Run:<br/>
+ $ <b>./ich9gen</b>
+ </p>
+
+ <p>
+ It is also possible to generate a descriptor+gbe image with your own MAC address
+ inside (with the Gbe checksum updated to match). Run:<br/>
+ $ <b>./ich9gen --macaddress XX:XX:XX:XX:XX:XX</b><br/>
+ (replace the XX chars with the hexadecimal chars in the MAC address that you want)
+ </p>
+
+ <p>
+ You can find out your MAC address from <b>ip addr</b> or <b>ifconfig</b> in GNU/Linux.
+ Alternatively, if you are running libreboot already (with the correct MAC address in your
+ ROM), dump it (flashrom -r) and read the first 6 bytes from position 0x1000 (or 0x2000) in a hex editor
+ (or, rename it to factory.rom and run it in ich9deblob: in the newly created mkgbe.c
+ will be the individual bytes of your MAC address). If you are currently running the stock firmware
+ and haven't installed libreboot yet, you can also run that through ich9deblob to get the mac address.
+ </p>
+
+ <p>
+ An even simpler way to get the MAC address would be to read what's on the little sticker on
+ the underside. (on the X200, this would be near the VGA port).
+ </p>
+
+ <p>
+ A bash script is also included in libreboot which will change the mac address (using ich9gen)
+ on all X200 ROM images. For instance:<br/>
+ $ <b>./ich9macchange XX:XX:XX:XX:XX:XX</b>
+ </p>
+
+ <p>
+ Two new files will be created:
+ </p>
+ <ul>
+ <li><b>ich9fdgbe_4m.bin</b>: this is for X200 laptops with the 4MB flash chip.</li>
+ <li><b>ich9fdgbe_8m.bin</b>: this is for X200 laptops with the 8MB flash chip.</li>
+ </ul>
+
+ <p>
+ ich9gen executables can be found under ./ich9deblob/ statically compiled in
+ libreboot_bin. If you are using src or git, build ich9gen from source with:<br/>
+ $ <b>./builddeps-ich9deblob</b><br/>
+ The executable will appear under resources/utilities/ich9deblob/
+ </p>
+
+ <p>
+ Assuming that your X200 libreboot image is named <b>libreboot.rom</b>, copy
+ the file to where <b>libreboot.rom</b> is located
+ and then run, for instance:<br/>
+ $ <b>dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=1 count=12k conv=notrunc</b><br/>
+ or:<br/>
+ $ <b>dd if=ich9fdgbe_4m.bin of=libreboot.rom bs=1 count=12k conv=notrunc</b>
+ </p>
+
+ <p>
+ Your X200 libreboot.rom image is now ready to be flashed on the machine. Refer back to
+ <a href="../install/index.html#flashrom">../install/index.html#flashrom</a>
+ for how to flash it.
+ </p>
+
+ </div>
-<hr/>
+ <div class="section">
- <h1 id="ich9deblob">ICH9 deblob utility</h1>
-
- <p>
- <b>This is no longer strictly necessary. Libreboot ROM images for X200 now
- contain the 12KiB descriptor+gbe generated from ich9gen, by default.</b>
- </p>
+ <h1 id="ich9deblob">ICH9 deblob utility</h1>
- <p>
- This was the tool originally used to disable the ME on X200. <a href="#ich9gen">ich9gen</a> now supersedes it;
- ich9gen is better because it does not rely on dumping the factory.rom image (whereas, ich9deblob does).
- </p>
-
- <p>
- This is what you will use to generate the deblobbed descriptor+gbe regions for your libreboot ROM image.
- </p>
- <p>
- If you are working with libreboot_src (or git), you can find the source under resources/utilities/ich9deblob/
- and will already be compiled if you ran ./builddeps or ./builddeps-ich9deblob from the main directory (./),
- otherwise you can build it like so:<br/>
- $ <b>./builddeps-ich9deblob</b><br/>
- An executable file named <b>ich9deblob</b> will now appear under resources/utilities/ich9deblob/
- </p>
- <p>
- If you are working with libreboot_bin release archive, you can find the utility included, statically compiled
- (for i686 and x86_64 on GNU/Linux) under ./ich9deblob/.
- </p>
-
- <p>
- Place the factory.rom from your X200
- (can be obtained using the guide at <a href="../install/x200_external.html">../install/x200_external.html</a>) in
- the directory where you have your ich9deblob executable, then run the tool:<br/>
- $ <b>./ich9deblob</b>
- </p>
- <p>
- A 12kiB file named <b>deblobbed_descriptor.bin</b> will now appear. <b>Keep this and the factory.rom stored in a safe location!</b>
- The first 4KiB contains the descriptor data region for your machine, and the next 8KiB contains the gbe region (config data for your
- gigabit NIC). These 2 regions could actually be separate files, but they are joined into 1 file in this case.
- </p>
-
- <p>
- Assuming that your X200 libreboot image is named <b>libreboot.rom</b>, copy
- the <b>deblobbed_descriptor.bin</b> file to where <b>libreboot.rom</b> is located
- and then run:<br/>
- $ <b>dd if=deblobbed_descriptor.bin of=libreboot.rom bs=1 count=12k conv=notrunc</b>
- </p>
-
- <p>
- The utility will also generate 4 additional files:
- </p>
- <ul>
- <li>mkdescriptor.c</li>
- <li>mkdescriptor.h</li>
- <li>mkgbe.c</li>
- <li>mkgbe.h</li>
- </ul>
- <p>
- These are C source files that can re-generate the very same Gbe and Descriptor structs
- (from ich9deblob/ich9gen). To use these, place them in src/ich9gen/ in ich9deblob, then re-build.
- The newly built <b>ich9gen</b> executable will be able to re-create the very same 12KiB file from scratch,
- based on the C structs, this time <b>without</b> the need for a factory.rom dump!
- </p>
+ <p>
+ <b>This is no longer strictly necessary. Libreboot ROM images for X200 now
+ contain the 12KiB descriptor+gbe generated from ich9gen, by default.</b>
+ </p>
+
+ <p>
+ This was the tool originally used to disable the ME on X200. <a href="#ich9gen">ich9gen</a> now supersedes it;
+ ich9gen is better because it does not rely on dumping the factory.rom image (whereas, ich9deblob does).
+ </p>
- <p>
- You should now have a <b>libreboot.rom</b> image containing the correct 4K descriptor and 8K gbe regions, which
- will then be safe to flash. Refer back to <a href="../install/index.html#flashrom">../install/index.html#flashrom</a>
- for how to flash it.
- </p>
+ <p>
+ This is what you will use to generate the deblobbed descriptor+gbe regions for your libreboot ROM image.
+ </p>
+ <p>
+ If you are working with libreboot_src (or git), you can find the source under resources/utilities/ich9deblob/
+ and will already be compiled if you ran ./builddeps or ./builddeps-ich9deblob from the main directory (./),
+ otherwise you can build it like so:<br/>
+ $ <b>./builddeps-ich9deblob</b><br/>
+ An executable file named <b>ich9deblob</b> will now appear under resources/utilities/ich9deblob/
+ </p>
+ <p>
+ If you are working with libreboot_bin release archive, you can find the utility included, statically compiled
+ (for i686 and x86_64 on GNU/Linux) under ./ich9deblob/.
+ </p>
+
+ <p>
+ Place the factory.rom from your X200
+ (can be obtained using the guide at <a href="../install/x200_external.html">../install/x200_external.html</a>) in
+ the directory where you have your ich9deblob executable, then run the tool:<br/>
+ $ <b>./ich9deblob</b>
+ </p>
+ <p>
+ A 12kiB file named <b>deblobbed_descriptor.bin</b> will now appear. <b>Keep this and the factory.rom stored in a safe location!</b>
+ The first 4KiB contains the descriptor data region for your machine, and the next 8KiB contains the gbe region (config data for your
+ gigabit NIC). These 2 regions could actually be separate files, but they are joined into 1 file in this case.
+ </p>
+
+ <p>
+ Assuming that your X200 libreboot image is named <b>libreboot.rom</b>, copy
+ the <b>deblobbed_descriptor.bin</b> file to where <b>libreboot.rom</b> is located
+ and then run:<br/>
+ $ <b>dd if=deblobbed_descriptor.bin of=libreboot.rom bs=1 count=12k conv=notrunc</b>
+ </p>
+
+ <p>
+ The utility will also generate 4 additional files:
+ </p>
+ <ul>
+ <li>mkdescriptor.c</li>
+ <li>mkdescriptor.h</li>
+ <li>mkgbe.c</li>
+ <li>mkgbe.h</li>
+ </ul>
+ <p>
+ These are C source files that can re-generate the very same Gbe and Descriptor structs
+ (from ich9deblob/ich9gen). To use these, place them in src/ich9gen/ in ich9deblob, then re-build.
+ The newly built <b>ich9gen</b> executable will be able to re-create the very same 12KiB file from scratch,
+ based on the C structs, this time <b>without</b> the need for a factory.rom dump!
+ </p>
+
+ <p>
+ You should now have a <b>libreboot.rom</b> image containing the correct 4K descriptor and 8K gbe regions, which
+ will then be safe to flash. Refer back to <a href="../install/index.html#flashrom">../install/index.html#flashrom</a>
+ for how to flash it.
+ </p>
+
+ </div>
-<hr/>
+ <div class="section">
<p>
The sections below are adapted from (mostly) IRC logs related to early development getting the ME removed on the X200.
They are useful for background information. This could not have been done without sgsit's help.
</p>
- <div class="section">
+ <div class="subsection">
<h2 id="early_notes">Early notes</h2>
@@ -216,9 +224,11 @@
</div>
-<hr/>
+ </div>
+
+ <div class="section">
- <div class="section">
+ <div class="subsection">
<h2 id="flashchips">Flash chips</h2>
@@ -243,11 +253,11 @@
</div>
-<hr/>
+ </div>
- <div class="section">
+ <div class="section">
- <h2 id="early_development_notes">Early development notes</h2>
+ <h2 id="early_development_notes">Early development notes</h2>
<pre>
<i>
@@ -312,35 +322,33 @@ Flash Erase Size = 0x1000
</i>
</pre>
- <p>
- It's a utility called 'Flash Image Tool' for ME 4.x that was used for this. You drag a complete
- image into in and the utility decomposes the various components, allowing you to set soft straps.
- </p>
- <p>
- This tool is proprietary, for Windows only, but was used to deblob the X200. End justified means, and
- the utility is no longer needed since the ich9deblob utility (documented on this page) can now be
- used to create deblobbed descriptors.
- </p>
-
- </div>
+ <p>
+ It's a utility called 'Flash Image Tool' for ME 4.x that was used for this. You drag a complete
+ image into in and the utility decomposes the various components, allowing you to set soft straps.
+ </p>
+ <p>
+ This tool is proprietary, for Windows only, but was used to deblob the X200. End justified means, and
+ the utility is no longer needed since the ich9deblob utility (documented on this page) can now be
+ used to create deblobbed descriptors.
+ </p>
-<hr/>
+ </div>
- <div class="section">
+ <div class="section">
- <h2 id="gbe_region">
- GBE (gigabit ethernet) region in SPI flash
- </h2>
+ <h2 id="gbe_region">
+ GBE (gigabit ethernet) region in SPI flash
+ </h2>
- <p>
- Of the 8K, about 95% is 0xFF.
- The data is the gbe region is fully documented in this public datasheet:
- <a href="http://www.intel.co.uk/content/dam/doc/application-note/i-o-controller-hub-9m-82567lf-lm-v-nvm-map-appl-note.pdf">http://www.intel.co.uk/content/dam/doc/application-note/i-o-controller-hub-9m-82567lf-lm-v-nvm-map-appl-note.pdf</a>
- </p>
+ <p>
+ Of the 8K, about 95% is 0xFF.
+ The data is the gbe region is fully documented in this public datasheet:
+ <a href="http://www.intel.co.uk/content/dam/doc/application-note/i-o-controller-hub-9m-82567lf-lm-v-nvm-map-appl-note.pdf">http://www.intel.co.uk/content/dam/doc/application-note/i-o-controller-hub-9m-82567lf-lm-v-nvm-map-appl-note.pdf</a>
+ </p>
- <p>
- The only actual content found was:
- </p>
+ <p>
+ The only actual content found was:
+ </p>
<pre>
<i>
@@ -358,17 +366,19 @@ DD CC 18 00 11 20 17 00 DD DD 18 00 12 20 17 00
</i>
</pre>
- <p>
- The first part is the MAC address set to all 0x1F. It's repeated haly way through
- the 8K area, and the rest is all 0xFF. This is all documented in the datasheet.
- </p>
+ <p>
+ The first part is the MAC address set to all 0x1F. It's repeated haly way through
+ the 8K area, and the rest is all 0xFF. This is all documented in the datasheet.
+ </p>
- <p>
- The GBe region starts at 0x20A000 bytes from the *end* of a factory image and is 0x2000 bytes long.
- In libreboot (deblobbed) the descriptor is set to put gbe directly after the initial 4K flash descriptor.
- So the first 4K of the ROM is the descriptor, and then the next 8K is the gbe region.
- </p>
+ <p>
+ The GBe region starts at 0x20A000 bytes from the *end* of a factory image and is 0x2000 bytes long.
+ In libreboot (deblobbed) the descriptor is set to put gbe directly after the initial 4K flash descriptor.
+ So the first 4K of the ROM is the descriptor, and then the next 8K is the gbe region.
+ </p>
+ <div class="subsection">
+
<h3 id="gbe_region_changemacaddress">GBE region: change MAC address</h3>
<p>
@@ -399,116 +409,117 @@ DD CC 18 00 11 20 17 00 DD DD 18 00 12 20 17 00
and that has to add up to 0xBABA. In other words, the checksum is 0xBABA minus the total of the first
0x3E 16bit numbers (unsigned), ignoring any overflow.</li>
</ul>
-
+
</div>
-<hr/>
+ </div>
- <div class="section">
+ <div class="section">
- <h2 id="flash_descriptor_region">Flash descriptor region</h2>
+ <h2 id="flash_descriptor_region">Flash descriptor region</h2>
- <p>
- <a href="http://www.intel.co.uk/content/dam/doc/datasheet/io-controller-hub-9-datasheet.pdf">http://www.intel.co.uk/content/dam/doc/datasheet/io-controller-hub-9-datasheet.pdf</a>
- from page 850 onwards. This explains everything that is in the flash descriptor, which can be used to understand what libreboot
- is doing about modifying it.
- </p>
+ <p>
+ <a href="http://www.intel.co.uk/content/dam/doc/datasheet/io-controller-hub-9-datasheet.pdf">http://www.intel.co.uk/content/dam/doc/datasheet/io-controller-hub-9-datasheet.pdf</a>
+ from page 850 onwards. This explains everything that is in the flash descriptor, which can be used to understand what libreboot
+ is doing about modifying it.
+ </p>
- <p>
- How to deblob:
- </p>
- <ul>
- <li>patch the number of regions present in the descriptor from 5 - 3</li>
- <li>originally descriptor + bios + me + gbe + platform</li>
- <li>modified = descriptor + bios + gbe</li>
- <li>the next stage is to patch the part of the descriptor which defines the start and end point of each section</li>
- <li>then cut out the gbe region and insert it just after the region</li>
- <li>all this can be substantiated with public docs (ICH9 datasheet)</li>
- <li>the final part is flipping 2 bits. Halting the ME via 1 MCH soft strap and 1 ICH soft strap</li>
- <li>the part of the descriptor described there gives the base address and length of each region (bits 12:24 of each address)</li>
- <li>to disable a region, you set the base address to 0xFFF and the length to 0</li>
- <li>and you change the number of regions from 4 (zero based) to 2</li>
- </ul>
+ <p>
+ How to deblob:
+ </p>
+ <ul>
+ <li>patch the number of regions present in the descriptor from 5 - 3</li>
+ <li>originally descriptor + bios + me + gbe + platform</li>
+ <li>modified = descriptor + bios + gbe</li>
+ <li>the next stage is to patch the part of the descriptor which defines the start and end point of each section</li>
+ <li>then cut out the gbe region and insert it just after the region</li>
+ <li>all this can be substantiated with public docs (ICH9 datasheet)</li>
+ <li>the final part is flipping 2 bits. Halting the ME via 1 MCH soft strap and 1 ICH soft strap</li>
+ <li>the part of the descriptor described there gives the base address and length of each region (bits 12:24 of each address)</li>
+ <li>to disable a region, you set the base address to 0xFFF and the length to 0</li>
+ <li>and you change the number of regions from 4 (zero based) to 2</li>
+ </ul>
- <p>
- There's an interesting parameter called 'ME Alternate disable', which allows the ME to only handle hardware errata in the southbridge,
- but disables any other functionality. This is similar to the 'ignition' in the 5 series and higher but using the standard firmware
- instead of a small 128K version. Useless for libreboot, though.
- </p>
+ <p>
+ There's an interesting parameter called 'ME Alternate disable', which allows the ME to only handle hardware errata in the southbridge,
+ but disables any other functionality. This is similar to the 'ignition' in the 5 series and higher but using the standard firmware
+ instead of a small 128K version. Useless for libreboot, though.
+ </p>
- <p>
- To deblob the x200, you chop out the platform and ME regions and correct the addresses in flReg1-4.
- Then you set meDisable to 1 in ICHSTRAP0 and MCHSTRAP0.
- </p>
+ <p>
+ To deblob the x200, you chop out the platform and ME regions and correct the addresses in flReg1-4.
+ Then you set meDisable to 1 in ICHSTRAP0 and MCHSTRAP0.
+ </p>
- <p>How to patch the descriptor from the factory.rom dump</p>
- <ul>
- <li>map the first 4k into the struct (minus the gbe region)</li>
- <li>set NR in FLMAP0 to 2 (from 4)</li>
- <li>adjust BASE and LIMIT in flReg1,2,3,4 to reflect the new location of each region (or remove them in the case of Platform and ME)</li>
- <li>set meDisable to 1/true in ICHSTRAP0 and MCHSTRAP0</li>
- <li>extract the 8k GBe region and append that to the end of the 4k descriptor</li>
- <li>output the 12k concatenated chunk</li>
- <li>Then it can be dd'd into the first 12K part of a coreboot image.</li>
- <li>the GBe region always starts 0x20A000 bytes from the end of the ROM</li>
- </ul>
+ <p>How to patch the descriptor from the factory.rom dump</p>
+ <ul>
+ <li>map the first 4k into the struct (minus the gbe region)</li>
+ <li>set NR in FLMAP0 to 2 (from 4)</li>
+ <li>adjust BASE and LIMIT in flReg1,2,3,4 to reflect the new location of each region (or remove them in the case of Platform and ME)</li>
+ <li>set meDisable to 1/true in ICHSTRAP0 and MCHSTRAP0</li>
+ <li>extract the 8k GBe region and append that to the end of the 4k descriptor</li>
+ <li>output the 12k concatenated chunk</li>
+ <li>Then it can be dd'd into the first 12K part of a coreboot image.</li>
+ <li>the GBe region always starts 0x20A000 bytes from the end of the ROM</li>
+ </ul>
- <p>
- This means that libreboot's descriptor region will simply define the following regions:
- </p>
- <ul>
- <li>descriptor (4K)</li>
- <li>gbe (8K)</li>
- <li>bios (rest of flash chip. CBFS also set to occupy this whole size)</li>
- </ul>
+ <p>
+ This means that libreboot's descriptor region will simply define the following regions:
+ </p>
+ <ul>
+ <li>descriptor (4K)</li>
+ <li>gbe (8K)</li>
+ <li>bios (rest of flash chip. CBFS also set to occupy this whole size)</li>
+ </ul>
- <p>
- The data in the descriptor region is little endian, and it represents bits 24:12 of the address
- (bits 12-24, written this way since bit 24 is nearer to left than bit 12 in the binary representation).
- </p>
- <p>
- So, <i>x &lt;&lt; 12 = address</i>
- </p>
- <p>
- If it's in descriptor mode, then the first 4 bytes will be 5A A5 F0 0F.
- </p>
+ <p>
+ The data in the descriptor region is little endian, and it represents bits 24:12 of the address
+ (bits 12-24, written this way since bit 24 is nearer to left than bit 12 in the binary representation).
+ </p>
+ <p>
+ So, <i>x &lt;&lt; 12 = address</i>
+ </p>
+ <p>
+ If it's in descriptor mode, then the first 4 bytes will be 5A A5 F0 0F.
+ </p>
- </div>
+ </div>
-<hr/>
- <div class="section">
+ <div class="section">
- <h2 id="platform_data_region">platform data partition in boot flash (factory.rom / lenovo bios)</h2>
+ <h2 id="platform_data_region">platform data partition in boot flash (factory.rom / lenovo bios)</h2>
- <p>
- Basically useless for libreboot, since it appears to be a blob.
- Removing it didn't cause any issues in libreboot.
- </p>
- <p>
- This is a 32K region from the factory image. It could be data
- (non-functional) that the original Lenovo BIOS used, but we don't know.
- </p>
-
- <p>
- It has only a 448 byte fragment different from 0x00 or 0xFF.
- </p>
+ <p>
+ Basically useless for libreboot, since it appears to be a blob.
+ Removing it didn't cause any issues in libreboot.
+ </p>
+ <p>
+ This is a 32K region from the factory image. It could be data
+ (non-functional) that the original Lenovo BIOS used, but we don't know.
+ </p>
- </div>
+ <p>
+ It has only a 448 byte fragment different from 0x00 or 0xFF.
+ </p>
+
+ </div>
-<hr/>
+ <div class="section">
- <p>
- Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
- This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
- A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
- </p>
+ <p>
+ Copyright &copy; 2014, 2015 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
- <p>
- This document is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../../license.txt</a> for more information.
- </p>
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../../license.txt</a> for more information.
+ </p>
+
+ </div>
</body>
</html>