aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2014-11-06 01:52:36 +0000
committerFrancis Rowe <info@gluglug.org.uk>2014-11-06 01:52:36 +0000
commit8b2219bfa2da36e7809588ef723a10483a6e137f (patch)
tree8c4d74b9efbdabc1a2604b8cbd508c006c225241
parent7429bdcdbb4fc51c61897115112468642afeecfc (diff)
downloadlibrebootfr-8b2219bfa2da36e7809588ef723a10483a6e137f.tar.gz
librebootfr-8b2219bfa2da36e7809588ef723a10483a6e137f.zip
Documentation: *major* cleanup.
Cleanup was long overdue. Old structure was messy and inefficient.
-rw-r--r--docs/archive_old.html90
-rw-r--r--docs/css/main.css46
-rw-r--r--docs/future/dumps/kernel312_irc12
-rw-r--r--docs/future/index.html18
-rw-r--r--docs/future/old.html14
-rw-r--r--docs/git/index.html503
-rw-r--r--docs/gnulinux/cbfstool_libreboot5_strace (renamed from docs/howtos/cbfstool_libreboot5_strace)0
-rw-r--r--docs/gnulinux/configuring_parabola.html (renamed from docs/howtos/configuring_parabola.html)12
-rw-r--r--docs/gnulinux/encrypted_parabola.html (renamed from docs/howtos/encrypted_parabola.html)16
-rw-r--r--docs/gnulinux/encrypted_trisquel.html (renamed from docs/howtos/encrypted_trisquel.html)14
-rw-r--r--docs/gnulinux/grub_boot_installer.html (renamed from docs/howtos/grub_boot_installer.html)9
-rw-r--r--docs/gnulinux/grub_cbfs.html (renamed from docs/howtos/grub_cbfs.html)32
-rw-r--r--docs/gnulinux/index.html51
-rw-r--r--docs/grub/index.html123
-rw-r--r--docs/hardware/index.html45
-rw-r--r--docs/hardware/t60_heatsink.html (renamed from docs/howtos/t60_heatsink.html)35
-rw-r--r--docs/hardware/t60_lcd_15.html (renamed from docs/howtos/t60_lcd_15.html)31
-rw-r--r--docs/hardware/x60_heatsink.html (renamed from docs/howtos/x60_heatsink.html)43
-rw-r--r--docs/hardware/x60_lcd_change.html (renamed from docs/howtos/x60_lcd_change.html)23
-rw-r--r--docs/hcl/index.html593
-rw-r--r--docs/howtos/x60_unbrick/0016.jpgbin32380 -> 0 bytes
-rw-r--r--docs/howtos/x60_unbrick/0018.jpgbin37295 -> 0 bytes
-rw-r--r--docs/howtos/x60_unbrick/0019.jpgbin33700 -> 0 bytes
-rw-r--r--docs/howtos/x60_unbrick/0021.jpgbin33441 -> 0 bytes
-rw-r--r--docs/howtos/x60_unbrick/0022.jpgbin36356 -> 0 bytes
-rw-r--r--docs/howtos/x60_unbrick/0023.jpgbin34821 -> 0 bytes
-rw-r--r--docs/images/t60_dev/.htaccess (renamed from docs/howtos/t60_dev/.htaccess)0
-rw-r--r--docs/images/t60_dev/0001.JPG (renamed from docs/howtos/t60_dev/0001.JPG)bin29286 -> 29286 bytes
-rw-r--r--docs/images/t60_dev/0002.JPG (renamed from docs/howtos/t60_dev/0002.JPG)bin18438 -> 18438 bytes
-rw-r--r--docs/images/t60_dev/0003.JPG (renamed from docs/howtos/t60_dev/0003.JPG)bin25880 -> 25880 bytes
-rw-r--r--docs/images/t60_dev/0004.JPG (renamed from docs/howtos/t60_dev/0004.JPG)bin29980 -> 29980 bytes
-rw-r--r--docs/images/t60_dev/0005.JPG (renamed from docs/howtos/t60_dev/0005.JPG)bin34349 -> 34349 bytes
-rw-r--r--docs/images/t60_dev/0006.JPG (renamed from docs/howtos/t60_dev/0006.JPG)bin32029 -> 32029 bytes
-rw-r--r--docs/images/t60_dev/0007.JPG (renamed from docs/howtos/t60_dev/0007.JPG)bin21920 -> 21920 bytes
-rw-r--r--docs/images/t60_dev/0008.JPG (renamed from docs/howtos/t60_dev/0008.JPG)bin27410 -> 27410 bytes
-rw-r--r--docs/images/t60_dev/0009.JPG (renamed from docs/howtos/t60_dev/0009.JPG)bin28007 -> 28007 bytes
-rw-r--r--docs/images/t60_dev/0010.JPG (renamed from docs/howtos/t60_dev/0010.JPG)bin26159 -> 26159 bytes
-rw-r--r--docs/images/t60_dev/0011.JPG (renamed from docs/howtos/t60_dev/0011.JPG)bin29595 -> 29595 bytes
-rw-r--r--docs/images/t60_dev/0012.JPG (renamed from docs/howtos/t60_dev/0012.JPG)bin33949 -> 33949 bytes
-rw-r--r--docs/images/t60_dev/0013.JPG (renamed from docs/howtos/t60_dev/0013.JPG)bin36311 -> 36311 bytes
-rw-r--r--docs/images/t60_dev/0014.JPG (renamed from docs/howtos/t60_dev/0014.JPG)bin24707 -> 24707 bytes
-rw-r--r--docs/images/t60_dev/0015.JPG (renamed from docs/howtos/t60_dev/0015.JPG)bin39588 -> 39588 bytes
-rw-r--r--docs/images/t60_dev/0016.JPG (renamed from docs/howtos/t60_dev/0016.JPG)bin27100 -> 27100 bytes
-rw-r--r--docs/images/t60_dev/0017.JPG (renamed from docs/howtos/t60_dev/0017.JPG)bin28726 -> 28726 bytes
-rw-r--r--docs/images/t60_dev/0018.JPG (renamed from docs/howtos/t60_dev/0018.JPG)bin29222 -> 29222 bytes
-rw-r--r--docs/images/t60_dev/0019.JPG (renamed from docs/howtos/t60_dev/0019.JPG)bin25665 -> 25665 bytes
-rw-r--r--docs/images/t60_dev/0020.JPG (renamed from docs/howtos/t60_dev/0020.JPG)bin25546 -> 25546 bytes
-rw-r--r--docs/images/t60_dev/0021.JPG (renamed from docs/howtos/t60_dev/0021.JPG)bin31706 -> 31706 bytes
-rw-r--r--docs/images/t60_dev/0022.JPG (renamed from docs/howtos/t60_dev/0022.JPG)bin31204 -> 31204 bytes
-rw-r--r--docs/images/t60_dev/0023.JPG (renamed from docs/howtos/t60_dev/0023.JPG)bin24873 -> 24873 bytes
-rw-r--r--docs/images/t60_dev/0024.JPG (renamed from docs/howtos/t60_dev/0024.JPG)bin23202 -> 23202 bytes
-rw-r--r--docs/images/t60_dev/0025.JPG (renamed from docs/howtos/t60_dev/0025.JPG)bin30328 -> 30328 bytes
-rw-r--r--docs/images/t60_dev/0026.JPG (renamed from docs/howtos/t60_dev/0026.JPG)bin31226 -> 31226 bytes
-rw-r--r--docs/images/t60_dev/0027.JPG (renamed from docs/howtos/t60_dev/0027.JPG)bin46231 -> 46231 bytes
-rw-r--r--docs/images/t60_dev/0028.JPG (renamed from docs/howtos/t60_dev/0028.JPG)bin23612 -> 23612 bytes
-rw-r--r--docs/images/t60_dev/0029.JPG (renamed from docs/howtos/t60_dev/0029.JPG)bin25268 -> 25268 bytes
-rw-r--r--docs/images/t60_dev/0030.JPG (renamed from docs/howtos/t60_dev/0030.JPG)bin30434 -> 30434 bytes
-rw-r--r--docs/images/t60_dev/0031.JPG (renamed from docs/howtos/t60_dev/0031.JPG)bin23611 -> 23611 bytes
-rw-r--r--docs/images/t60_dev/0032.JPG (renamed from docs/howtos/t60_dev/0032.JPG)bin40278 -> 40278 bytes
-rw-r--r--docs/images/t60_dev/0033.JPG (renamed from docs/howtos/t60_dev/0033.JPG)bin27035 -> 27035 bytes
-rw-r--r--docs/images/t60_dev/0034.JPG (renamed from docs/howtos/t60_dev/0034.JPG)bin31013 -> 31013 bytes
-rw-r--r--docs/images/t60_dev/0035.JPG (renamed from docs/howtos/t60_dev/0035.JPG)bin21980 -> 21980 bytes
-rw-r--r--docs/images/t60_dev/0036.JPG (renamed from docs/howtos/t60_dev/0036.JPG)bin25031 -> 25031 bytes
-rw-r--r--docs/images/t60_dev/0037.JPG (renamed from docs/howtos/t60_dev/0037.JPG)bin26085 -> 26085 bytes
-rw-r--r--docs/images/t60_dev/0038.JPG (renamed from docs/howtos/t60_dev/0038.JPG)bin29137 -> 29137 bytes
-rw-r--r--docs/images/t60_dev/0039.JPG (renamed from docs/howtos/t60_dev/0039.JPG)bin26270 -> 26270 bytes
-rw-r--r--docs/images/t60_dev/0040.JPG (renamed from docs/howtos/t60_dev/0040.JPG)bin18541 -> 18541 bytes
-rw-r--r--docs/images/t60_dev/0041.JPG (renamed from docs/howtos/t60_dev/0041.JPG)bin21721 -> 21721 bytes
-rw-r--r--docs/images/t60_dev/0042.JPG (renamed from docs/howtos/t60_dev/0042.JPG)bin20235 -> 20235 bytes
-rw-r--r--docs/images/t60_dev/0043.JPG (renamed from docs/howtos/t60_dev/0043.JPG)bin23633 -> 23633 bytes
-rw-r--r--docs/images/t60_dev/0044.JPG (renamed from docs/howtos/t60_dev/0044.JPG)bin19500 -> 19500 bytes
-rw-r--r--docs/images/t60_dev/0045.JPG (renamed from docs/howtos/t60_dev/0045.JPG)bin27856 -> 27856 bytes
-rw-r--r--docs/images/t60_dev/0046.JPG (renamed from docs/howtos/t60_dev/0046.JPG)bin20677 -> 20677 bytes
-rw-r--r--docs/images/t60_dev/0047.JPG (renamed from docs/howtos/t60_dev/0047.JPG)bin27700 -> 27700 bytes
-rw-r--r--docs/images/t60_dev/0048.JPG (renamed from docs/howtos/t60_dev/0048.JPG)bin28463 -> 28463 bytes
-rw-r--r--docs/images/t60_dev/0049.JPG (renamed from docs/howtos/t60_dev/0049.JPG)bin24666 -> 24666 bytes
-rw-r--r--docs/images/t60_dev/0050.JPG (renamed from docs/howtos/t60_dev/0050.JPG)bin22518 -> 22518 bytes
-rw-r--r--docs/images/t60_dev/0051.JPG (renamed from docs/howtos/t60_dev/0051.JPG)bin26041 -> 26041 bytes
-rw-r--r--docs/images/t60_dev/0052.JPG (renamed from docs/howtos/t60_dev/0052.JPG)bin30542 -> 30542 bytes
-rw-r--r--docs/images/t60_dev/0053.JPG (renamed from docs/howtos/t60_dev/0053.JPG)bin24306 -> 24306 bytes
-rw-r--r--docs/images/t60_dev/0054.JPG (renamed from docs/howtos/t60_dev/0054.JPG)bin25897 -> 25897 bytes
-rw-r--r--docs/images/t60_dev/0055.JPG (renamed from docs/howtos/t60_dev/0055.JPG)bin26165 -> 26165 bytes
-rw-r--r--docs/images/t60_dev/0056.JPG (renamed from docs/howtos/t60_dev/0056.JPG)bin26494 -> 26494 bytes
-rw-r--r--docs/images/t60_dev/0057.JPG (renamed from docs/howtos/t60_dev/0057.JPG)bin23831 -> 23831 bytes
-rw-r--r--docs/images/t60_dev/0058.JPG (renamed from docs/howtos/t60_dev/0058.JPG)bin25265 -> 25265 bytes
-rw-r--r--docs/images/t60_dev/0059.JPG (renamed from docs/howtos/t60_dev/0059.JPG)bin23332 -> 23332 bytes
-rw-r--r--docs/images/t60_dev/0060.JPG (renamed from docs/howtos/t60_dev/0060.JPG)bin23005 -> 23005 bytes
-rw-r--r--docs/images/t60_dev/0061.JPG (renamed from docs/howtos/t60_dev/0061.JPG)bin27218 -> 27218 bytes
-rw-r--r--docs/images/t60_dev/0062.JPG (renamed from docs/howtos/t60_dev/0062.JPG)bin25952 -> 25952 bytes
-rw-r--r--docs/images/t60_dev/0063.JPG (renamed from docs/howtos/t60_dev/0063.JPG)bin24230 -> 24230 bytes
-rw-r--r--docs/images/t60_dev/0064.JPG (renamed from docs/howtos/t60_dev/0064.JPG)bin22184 -> 22184 bytes
-rw-r--r--docs/images/t60_dev/0065.JPG (renamed from docs/howtos/t60_dev/0065.JPG)bin24711 -> 24711 bytes
-rw-r--r--docs/images/t60_dev/0066.JPG (renamed from docs/howtos/t60_dev/0066.JPG)bin28270 -> 28270 bytes
-rw-r--r--docs/images/t60_dev/0068.JPG (renamed from docs/howtos/t60_dev/0068.JPG)bin20900 -> 20900 bytes
-rw-r--r--docs/images/t60_dev/0069.JPG (renamed from docs/howtos/t60_dev/0069.JPG)bin22345 -> 22345 bytes
-rw-r--r--docs/images/t60_dev/0070.JPG (renamed from docs/howtos/t60_dev/0070.JPG)bin22149 -> 22149 bytes
-rw-r--r--docs/images/t60_dev/0071.JPG (renamed from docs/howtos/t60_dev/0071.JPG)bin48759 -> 48759 bytes
-rw-r--r--docs/images/t60_dev/0072.JPG (renamed from docs/howtos/t60_dev/0072.JPG)bin42778 -> 42778 bytes
-rw-r--r--docs/images/t60_dev/0073.JPG (renamed from docs/howtos/t60_dev/0073.JPG)bin49383 -> 49383 bytes
-rw-r--r--docs/images/t60_dev/0074.JPG (renamed from docs/howtos/t60_dev/0074.JPG)bin42206 -> 42206 bytes
-rw-r--r--docs/images/t60_dev/t60_unbrick.jpg (renamed from docs/howtos/t60_dev/t60_unbrick.jpg)bin61220 -> 61220 bytes
-rw-r--r--docs/images/x60_heatsink/0000.jpg (renamed from docs/howtos/x60_heatsink/0000.jpg)bin53772 -> 53772 bytes
-rw-r--r--docs/images/x60_heatsink/0001.jpg (renamed from docs/howtos/x60_heatsink/0001.jpg)bin38997 -> 38997 bytes
-rw-r--r--docs/images/x60_heatsink/0002.jpg (renamed from docs/howtos/x60_heatsink/0002.jpg)bin31435 -> 31435 bytes
-rw-r--r--docs/images/x60_heatsink/0003.jpg (renamed from docs/howtos/x60_heatsink/0003.jpg)bin29815 -> 29815 bytes
-rw-r--r--docs/images/x60_heatsink/0004.jpg (renamed from docs/howtos/x60_heatsink/0004.jpg)bin42084 -> 42084 bytes
-rw-r--r--docs/images/x60_heatsink/0005.jpg (renamed from docs/howtos/x60_heatsink/0005.jpg)bin42715 -> 42715 bytes
-rw-r--r--docs/images/x60_heatsink/0006.jpg (renamed from docs/howtos/x60_heatsink/0006.jpg)bin33748 -> 33748 bytes
-rw-r--r--docs/images/x60_heatsink/0007.jpg (renamed from docs/howtos/x60_heatsink/0007.jpg)bin45537 -> 45537 bytes
-rw-r--r--docs/images/x60_heatsink/0008.jpg (renamed from docs/howtos/x60_heatsink/0008.jpg)bin46045 -> 46045 bytes
-rw-r--r--docs/images/x60_heatsink/0009.jpg (renamed from docs/howtos/x60_heatsink/0009.jpg)bin34013 -> 34013 bytes
-rw-r--r--docs/images/x60_heatsink/0010.jpg (renamed from docs/howtos/x60_heatsink/0010.jpg)bin30985 -> 30985 bytes
-rw-r--r--docs/images/x60_heatsink/0011.jpg (renamed from docs/howtos/x60_heatsink/0011.jpg)bin45500 -> 45500 bytes
-rw-r--r--docs/images/x60_heatsink/0012.jpg (renamed from docs/howtos/x60_heatsink/0012.jpg)bin39202 -> 39202 bytes
-rw-r--r--docs/images/x60_heatsink/0013.jpg (renamed from docs/howtos/x60_heatsink/0013.jpg)bin45481 -> 45481 bytes
-rw-r--r--docs/images/x60_heatsink/0014.jpg (renamed from docs/howtos/x60_heatsink/0014.jpg)bin40388 -> 40388 bytes
-rw-r--r--docs/images/x60_heatsink/0015.jpg (renamed from docs/howtos/x60_heatsink/0015.jpg)bin38045 -> 38045 bytes
-rw-r--r--docs/images/x60_heatsink/0016.jpg (renamed from docs/howtos/x60_heatsink/0016.jpg)bin125147 -> 125147 bytes
-rw-r--r--docs/images/x60_heatsink/0017.jpg (renamed from docs/howtos/x60_heatsink/0017.jpg)bin143009 -> 143009 bytes
-rw-r--r--docs/images/x60_heatsink/0018.jpg (renamed from docs/howtos/x60_heatsink/0018.jpg)bin175369 -> 175369 bytes
-rwxr-xr-xdocs/images/x60_lcd_change/0001.JPG (renamed from docs/howtos/x60_lcd_change/0001.JPG)bin80828 -> 80828 bytes
-rwxr-xr-xdocs/images/x60_lcd_change/0002.JPG (renamed from docs/howtos/x60_lcd_change/0002.JPG)bin72986 -> 72986 bytes
-rwxr-xr-xdocs/images/x60_lcd_change/0003.JPG (renamed from docs/howtos/x60_lcd_change/0003.JPG)bin81777 -> 81777 bytes
-rwxr-xr-xdocs/images/x60_lcd_change/0004.JPG (renamed from docs/howtos/x60_lcd_change/0004.JPG)bin87164 -> 87164 bytes
-rwxr-xr-xdocs/images/x60_lcd_change/0005.JPG (renamed from docs/howtos/x60_lcd_change/0005.JPG)bin66652 -> 66652 bytes
-rwxr-xr-xdocs/images/x60_lcd_change/0006.JPG (renamed from docs/howtos/x60_lcd_change/0006.JPG)bin57127 -> 57127 bytes
-rwxr-xr-xdocs/images/x60_lcd_change/0007.JPG (renamed from docs/howtos/x60_lcd_change/0007.JPG)bin31729 -> 31729 bytes
-rw-r--r--docs/images/x60_security/0000.jpg (renamed from docs/howtos/x60_security/0000.jpg)bin53772 -> 53772 bytes
-rw-r--r--docs/images/x60_security/0000_bluetooth.jpg (renamed from docs/howtos/x60_security/0000_bluetooth.jpg)bin120337 -> 120337 bytes
-rw-r--r--docs/images/x60_security/0000_bluetooth0.jpg (renamed from docs/howtos/x60_security/0000_bluetooth0.jpg)bin19558 -> 19558 bytes
-rw-r--r--docs/images/x60_security/0000_simcard0.jpg (renamed from docs/howtos/x60_security/0000_simcard0.jpg)bin105696 -> 105696 bytes
-rw-r--r--docs/images/x60_security/0000_simcard1.jpg (renamed from docs/howtos/x60_security/0000_simcard1.jpg)bin129884 -> 129884 bytes
-rw-r--r--docs/images/x60_security/0001.jpg (renamed from docs/howtos/x60_security/0001.jpg)bin38997 -> 38997 bytes
-rw-r--r--docs/images/x60_security/0001_microphone.jpg (renamed from docs/howtos/x60_security/0001_microphone.jpg)bin128637 -> 128637 bytes
-rw-r--r--docs/images/x60_security/0001_modem.jpg (renamed from docs/howtos/x60_security/0001_modem.jpg)bin124855 -> 124855 bytes
-rw-r--r--docs/images/x60_security/0001_overview.jpg (renamed from docs/howtos/x60_security/0001_overview.jpg)bin200563 -> 200563 bytes
-rw-r--r--docs/images/x60_security/0001_speaker.jpg (renamed from docs/howtos/x60_security/0001_speaker.jpg)bin121336 -> 121336 bytes
-rw-r--r--docs/images/x60_security/0001_wlan_wwan.jpg (renamed from docs/howtos/x60_security/0001_wlan_wwan.jpg)bin151989 -> 151989 bytes
-rw-r--r--docs/images/x60_security/0002.jpg (renamed from docs/howtos/x60_security/0002.jpg)bin31435 -> 31435 bytes
-rw-r--r--docs/images/x60_security/0003.jpg (renamed from docs/howtos/x60_security/0003.jpg)bin29815 -> 29815 bytes
-rw-r--r--docs/images/x60_security/0004.jpg (renamed from docs/howtos/x60_security/0004.jpg)bin42084 -> 42084 bytes
-rw-r--r--docs/images/x60_unbrick/0000.jpg (renamed from docs/howtos/x60_unbrick/0000.jpg)bin53772 -> 53772 bytes
-rw-r--r--docs/images/x60_unbrick/0001.jpg (renamed from docs/howtos/x60_unbrick/0001.jpg)bin38997 -> 38997 bytes
-rw-r--r--docs/images/x60_unbrick/0002.jpg (renamed from docs/howtos/x60_unbrick/0002.jpg)bin31435 -> 31435 bytes
-rw-r--r--docs/images/x60_unbrick/0003.jpg (renamed from docs/howtos/x60_unbrick/0003.jpg)bin29815 -> 29815 bytes
-rw-r--r--docs/images/x60_unbrick/0004.jpg (renamed from docs/howtos/x60_unbrick/0004.jpg)bin42084 -> 42084 bytes
-rw-r--r--docs/images/x60_unbrick/0005.jpg (renamed from docs/howtos/x60_unbrick/0005.jpg)bin42715 -> 42715 bytes
-rw-r--r--docs/images/x60_unbrick/0006.jpg (renamed from docs/howtos/x60_unbrick/0006.jpg)bin33748 -> 33748 bytes
-rw-r--r--docs/images/x60_unbrick/0007.jpg (renamed from docs/howtos/x60_unbrick/0007.jpg)bin45537 -> 45537 bytes
-rw-r--r--docs/images/x60_unbrick/0008.jpg (renamed from docs/howtos/x60_unbrick/0008.jpg)bin46045 -> 46045 bytes
-rw-r--r--docs/images/x60_unbrick/0009.jpg (renamed from docs/howtos/x60_unbrick/0009.jpg)bin34013 -> 34013 bytes
-rw-r--r--docs/images/x60_unbrick/0010.jpg (renamed from docs/howtos/x60_unbrick/0010.jpg)bin30985 -> 30985 bytes
-rw-r--r--docs/images/x60_unbrick/0011.jpg (renamed from docs/howtos/x60_unbrick/0011.jpg)bin38650 -> 38650 bytes
-rw-r--r--docs/images/x60_unbrick/0012.jpg (renamed from docs/howtos/x60_unbrick/0012.jpg)bin39202 -> 39202 bytes
-rw-r--r--docs/images/x60_unbrick/0013.jpg (renamed from docs/howtos/x60_unbrick/0013.jpg)bin45481 -> 45481 bytes
-rw-r--r--docs/images/x60_unbrick/0014.jpg (renamed from docs/howtos/x60_unbrick/0014.jpg)bin40388 -> 40388 bytes
-rw-r--r--docs/images/x60_unbrick/0015.jpg (renamed from docs/howtos/x60_unbrick/0015.jpg)bin38045 -> 38045 bytes
-rw-r--r--docs/images/x60_unbrick/0016.jpgbin0 -> 34554 bytes
-rw-r--r--docs/images/x60_unbrick/0017.jpg (renamed from docs/howtos/x60_unbrick/0017.jpg)bin36115 -> 36115 bytes
-rw-r--r--docs/images/x60_unbrick/0019.jpgbin0 -> 39446 bytes
-rw-r--r--docs/images/x60_unbrick/0020.jpg (renamed from docs/howtos/x60_unbrick/0020.jpg)bin26069 -> 26069 bytes
-rw-r--r--docs/images/x60_unbrick/0022.jpgbin0 -> 38531 bytes
-rw-r--r--docs/images/x60_unbrick/0024.jpg (renamed from docs/howtos/x60_unbrick/0024.jpg)bin32001 -> 32001 bytes
-rw-r--r--docs/images/x60_unbrick/0025.jpg (renamed from docs/howtos/x60_unbrick/0025.jpg)bin31621 -> 31621 bytes
-rw-r--r--docs/images/x60_unbrick/0026.jpg (renamed from docs/howtos/x60_unbrick/0026.jpg)bin39855 -> 39855 bytes
-rw-r--r--docs/images/x60_unbrick/0027.jpg (renamed from docs/howtos/x60_unbrick/0027.jpg)bin37302 -> 37302 bytes
-rw-r--r--docs/images/x60_unbrick/0028.jpg (renamed from docs/howtos/x60_unbrick/0028.jpg)bin39501 -> 39501 bytes
-rw-r--r--docs/images/x60_unbrick/0029.jpg (renamed from docs/howtos/x60_unbrick/0029.jpg)bin37530 -> 37530 bytes
-rw-r--r--docs/images/x60_unbrick/0030.jpg (renamed from docs/howtos/x60_unbrick/0030.jpg)bin43484 -> 43484 bytes
-rw-r--r--docs/images/x60_unbrick/0031.jpg (renamed from docs/howtos/x60_unbrick/0031.jpg)bin38022 -> 38022 bytes
-rw-r--r--docs/images/x60_unbrick/0032.jpg (renamed from docs/howtos/x60_unbrick/0032.jpg)bin44860 -> 44860 bytes
-rw-r--r--docs/images/x60_unbrick/0033.jpg (renamed from docs/howtos/x60_unbrick/0033.jpg)bin30821 -> 30821 bytes
-rw-r--r--docs/images/x60_unbrick/0034.jpg (renamed from docs/howtos/x60_unbrick/0034.jpg)bin37249 -> 37249 bytes
-rw-r--r--docs/images/x60_unbrick/0035.jpg (renamed from docs/howtos/x60_unbrick/0035.jpg)bin38429 -> 38429 bytes
-rw-r--r--docs/images/x60_unbrick/0036.jpg (renamed from docs/howtos/x60_unbrick/0036.jpg)bin41042 -> 41042 bytes
-rw-r--r--docs/images/x60_unbrick/0037.jpg (renamed from docs/howtos/x60_unbrick/0037.jpg)bin33911 -> 33911 bytes
-rw-r--r--docs/images/x60_unbrick/0038.jpg (renamed from docs/howtos/x60_unbrick/0038.jpg)bin38246 -> 38246 bytes
-rw-r--r--docs/images/x60_unbrick/0039.jpg (renamed from docs/howtos/x60_unbrick/0039.jpg)bin45794 -> 45794 bytes
-rw-r--r--docs/images/x60_unbrick/0040.jpg (renamed from docs/howtos/x60_unbrick/0040.jpg)bin40020 -> 40020 bytes
-rw-r--r--docs/images/x60_unbrick/0041.jpg (renamed from docs/howtos/x60_unbrick/0041.jpg)bin37564 -> 37564 bytes
-rw-r--r--docs/images/x60_unbrick/0042.jpg (renamed from docs/howtos/x60_unbrick/0042.jpg)bin35915 -> 35915 bytes
-rw-r--r--docs/images/x60_unbrick/0043.jpg (renamed from docs/howtos/x60_unbrick/0043.jpg)bin36692 -> 36692 bytes
-rw-r--r--docs/images/x60_unbrick/0044.jpg (renamed from docs/howtos/x60_unbrick/0044.jpg)bin37146 -> 37146 bytes
-rw-r--r--docs/images/x60_unbrick/0045.jpg (renamed from docs/howtos/x60_unbrick/0045.jpg)bin39062 -> 39062 bytes
-rw-r--r--docs/images/x60_unbrick/0046.jpg (renamed from docs/howtos/x60_unbrick/0046.jpg)bin35431 -> 35431 bytes
-rw-r--r--docs/images/x60_unbrick/0047.jpg (renamed from docs/howtos/x60_unbrick/0047.jpg)bin37275 -> 37275 bytes
-rw-r--r--docs/images/x60_unbrick/0048.jpg (renamed from docs/howtos/x60_unbrick/0048.jpg)bin39975 -> 39975 bytes
-rw-r--r--docs/images/x60_unbrick/0049.jpg (renamed from docs/howtos/x60_unbrick/0049.jpg)bin42058 -> 42058 bytes
-rw-r--r--docs/images/x60t_unbrick/.htaccess (renamed from docs/howtos/x60t_unbrick/.htaccess)0
-rw-r--r--docs/images/x60t_unbrick/0000.JPG (renamed from docs/howtos/x60t_unbrick/0000.JPG)bin127355 -> 127355 bytes
-rw-r--r--docs/images/x60t_unbrick/0001.JPG (renamed from docs/howtos/x60t_unbrick/0001.JPG)bin132522 -> 132522 bytes
-rw-r--r--docs/images/x60t_unbrick/0002.JPG (renamed from docs/howtos/x60t_unbrick/0002.JPG)bin110933 -> 110933 bytes
-rw-r--r--docs/images/x60t_unbrick/0003.JPG (renamed from docs/howtos/x60t_unbrick/0003.JPG)bin137253 -> 137253 bytes
-rw-r--r--docs/images/x60t_unbrick/0004.JPG (renamed from docs/howtos/x60t_unbrick/0004.JPG)bin125196 -> 125196 bytes
-rw-r--r--docs/images/x60t_unbrick/0005.JPG (renamed from docs/howtos/x60t_unbrick/0005.JPG)bin144601 -> 144601 bytes
-rw-r--r--docs/images/x60t_unbrick/0006.JPG (renamed from docs/howtos/x60t_unbrick/0006.JPG)bin153727 -> 153727 bytes
-rw-r--r--docs/images/x60t_unbrick/0007.JPG (renamed from docs/howtos/x60t_unbrick/0007.JPG)bin158552 -> 158552 bytes
-rw-r--r--docs/images/x60t_unbrick/0008.JPG (renamed from docs/howtos/x60t_unbrick/0008.JPG)bin140421 -> 140421 bytes
-rw-r--r--docs/images/x60t_unbrick/0009.JPG (renamed from docs/howtos/x60t_unbrick/0009.JPG)bin109582 -> 109582 bytes
-rw-r--r--docs/images/x60t_unbrick/0010.JPG (renamed from docs/howtos/x60t_unbrick/0010.JPG)bin159827 -> 159827 bytes
-rw-r--r--docs/images/x60t_unbrick/0011.JPG (renamed from docs/howtos/x60t_unbrick/0011.JPG)bin162493 -> 162493 bytes
-rw-r--r--docs/index.html1743
-rw-r--r--docs/install/index.html405
-rw-r--r--docs/install/t60_unbrick.html (renamed from docs/howtos/t60_unbrick.html)119
-rw-r--r--docs/install/x60_unbrick.html (renamed from docs/howtos/x60_unbrick.html)141
-rw-r--r--docs/install/x60tablet_unbrick.html (renamed from docs/howtos/x60tablet_unbrick.html)64
-rw-r--r--docs/misc/index.html184
-rw-r--r--docs/misc/patch.html (renamed from docs/patch.html)13
-rw-r--r--docs/release.html34
-rw-r--r--docs/security/dock.html (renamed from docs/howtos/dock.html)17
-rw-r--r--docs/security/index.html40
-rw-r--r--docs/security/t60_security.html (renamed from docs/howtos/t60_security.html)93
-rw-r--r--docs/security/x60_security.html (renamed from docs/howtos/x60_security.html)41
213 files changed, 2432 insertions, 2172 deletions
diff --git a/docs/archive_old.html b/docs/archive_old.html
index 9ceb6c31..1b28817a 100644
--- a/docs/archive_old.html
+++ b/docs/archive_old.html
@@ -5,21 +5,7 @@
<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 { /* for people who are colour-blind */
- color: #000;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('css/main.css');
</style>
<title>Libreboot release information (old)</title>
@@ -27,7 +13,7 @@
<body>
<header>
<h1 id="pagetop">Libreboot release information (old)</h1>
- <aside>Documentation for this release can be found at <a href="index.html">index.html</a>.</aside>
+ <aside>Current release information can be found at <a href="release.html">release.html</a>.</aside>
</header>
<div class="important">
@@ -51,12 +37,12 @@
<h2>Releases</h2>
<ul>
- <li><a href="#release6">6th release</a> (2014 September 11th <b>pre-release, 7th beta</b>) (see <a href="#critical_tasks">critical</a> and <a href="#noncritical_tasks">non-critical</a> tasks)</h1>
- <li><a href="#release5">5th release</a> (2014 March 7th, revised 2014 June 22nd)</h1>
- <li><a href="#release4">4th release</a> (2014 February 21st)</h1>
- <li><a href="#release3">3rd release</a> (2013 December 14th)</h1>
- <li><a href="#release2">2nd release</a> (2013 December 13th)</h1>
- <li><a href="#release1">1st release</a> (2013 December 12th)</h1>
+ <li><a href="#release6">6th release</a> (2014 September 11th <b>pre-release, 7th beta</b>)</li>
+ <li><a href="#release5">5th release</a> (2014 March 7th, revised 2014 June 22nd)</li>
+ <li><a href="#release4">4th release</a> (2014 February 21st)</li>
+ <li><a href="#release3">3rd release</a> (2013 December 14th)</li>
+ <li><a href="#release2">2nd release</a> (2013 December 13th)</li>
+ <li><a href="#release1">1st release</a> (2013 December 12th)</li>
</ul>
<p>
<b><i>&quot;Release&quot;</i></b> means that a new coreboot git revision with substantially different code has been adapted for libreboot.
@@ -110,29 +96,28 @@
<li>
<b>Lenovo ThinkPad X60 Tablet</b> (1024x768 and 1400x1050) with digitizer support
<ul>
- <li>See <a href="index.html#supported_x60t_list">index.html#supported_x60t_list</a> for list of supported LCD panels</li>
+ <li>See <a href="hcl/index.html#supported_x60t_list">hcl/index.html#supported_x60t_list</a> for list of supported LCD panels</li>
<li>It is unknown whether an X61 Tablet can have it's mainboard replaced with an X60 Tablet motherboard.</li>
</ul>
</li>
<li>
- <b>Lenovo ThinkPad T60</b> (Intel GPU) (there are issues; see below)</b>
+ <b>Lenovo ThinkPad T60</b> (Intel GPU) (there are issues; see below)
<ul>
- <li>See notes below for exceptions, and <a href="index.html#supported_t60_list">index.html#supported_t60_list</a> for known working LCD panels.</li>
+ <li>See notes below for exceptions, and <a href="hcl/index.html#supported_t60_list">hcl/index.html#supported_t60_list</a> for known working LCD panels.</li>
<li>It is unknown whether a T61 can have it's mainboard replaced with a T60 motherboard.</li>
- <li>See <a href="future/index.html#t60_cpu_microcode">future/index.html#t60_cpu_microcode</a>.</li>
- <li>T60p (and T60's with ATI GPU) will likely never be supported: <a href="index.html#t60_ati_intel">index.html#t60_ati_intel</a></li>
+ <li>T60p (and T60's with ATI GPU) will likely never be supported: <a href="hcl/index.html#t60_ati_intel">hcl/index.html#t60_ati_intel</a></li>
</ul>
</li>
<li>
<b>Apple MacBook1,1</b> (MA255LL/A, MA254LL/A, MA472LL/A)
<ul>
- <li>See <a href="index.html#macbook11">index.html#macbook11</a>.</li>
+ <li>See <a href="hcl/index.html#macbook11">hcl/index.html#macbook11</a>.</li>
</ul>
</li>
<li>
<b>Apple MacBook2,1</b> (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A)
<ul>
- <li>See <a href="index.html#macbook21">index.html#macbook21</a>.</li>
+ <li>See <a href="hcl/index.html#macbook21">hcl/index.html#macbook21</a>.</li>
</ul>
</li>
</ul>
@@ -168,9 +153,9 @@
<li>Added modified builddeb* scripts for Parabola GNU/Linux-libre: buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah Vesely)</li>
<li>Documentation: updated all relevant areas to mention use of buildpac* scripts for Parabola users.</li>
<li>Documentation: added information showing how to enable or disable bluetooth on the X60</li>
- <li>MacBook1,1 tested! See <a href="index.html#macbook11">index.html#macbook11"</a></li>
+ <li>MacBook1,1 tested! See <a href="hcl/index.html#macbook11">hcl/index.html#macbook11</a></li>
<li>Documentation: fixed typo in index.html#get_edid_panelname (get-edit changed to get-edid)</li>
- <li>Documentation: added howtos/x60_lcd_change/ (pics only for now)</li>
+ <li>Documentation: added images/x60_lcd_change/ (pics only for now)</li>
<li>Added gcry_serpent and gcry_whirlpool to the GRUB module list in the 'build' script (for luks users)</li>
<li>
<b>Libreboot is now based on a new coreboot version from August 23rd, 2014:<br/>
@@ -274,7 +259,7 @@
<li>Documentation: removed all parts talking about build dependencies, replaced them with links to index.html#build_dependencies</li>
<li>Documentation: emphasized more strongly on the documentation, the need to re-build bucts and/or flashrom before flashing a ROM image.</li>
<li>build-release: flashrom, nvramtool, cbfstool and bucts are no longer provided pre-compiled in binary archives, and are now in source form only. (to maximize distro compatibility).</li>
- <li>Documentation: added howtos/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload.</li>
+ <li>Documentation: added gnulinux/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload.</li>
<li>'build' script: replaced grub.elf assembly instructons, it's now handled by a utility added under resources/utilities/grub-assemble</li>
<li>Moved resources/grub/keymap to resources/utilities/grub-assemble/keymap, and updated that utility to use it</li>
<li>Documentation: removed useless links to pictures of keyboard layouts and unmodified layouts.</li>
@@ -308,10 +293,10 @@
</li>
<li>
Documentation: added note about 'fb=false' workaround for text-mode debian-installer (Trisquel net install) to
- howtos/grub_boot_installer.html
+ gnulinux/grub_boot_installer.html
</li>
<li>
- Documentation: updated howtos/grub_cbfs.html to make it safer (and easier) to follow.
+ Documentation: updated gnulinux/grub_cbfs.html to make it safer (and easier) to follow.
</li>
</ul>
@@ -330,11 +315,11 @@
<li>build: added 'luks', 'lvm', 'cmosdump' and 'cmostest' to the list of modules for grub.elf</li>
<li>Documentation: added pics showing T60 unbricking (still need to write a tutorial)</li>
<li>build: include cmos.layout (coreboot/src/mainboard/manufacturer/model/cmos.layout) files in libreboot_bin</li>
- <li>Documentation: added <a href="howtos/x60tablet_unbrick.html">howtos/x60tablet_unbrick.html</a></li>
- <li>Documentation: added <a href="howtos/t60_unbrick.html">howtos/t60_unbrick.html</a></li>
- <li>Documentation: added <a href="howtos/t60_lcd_15.html">howtos/t60_lcd_15.html</a></li>
- <li>Documentation: added <a href="howtos/t60_security.html">howtos/t60_security.html</a></li>
- <li>Documentation: added <a href="howtos/t60_heatsink.html">howtos/t60_heatsink.html</a></li>
+ <li>Documentation: added <a href="install/x60tablet_unbrick.html">install/x60tablet_unbrick.html</a></li>
+ <li>Documentation: added <a href="install/t60_unbrick.html">install/t60_unbrick.html</a></li>
+ <li>Documentation: added <a href="hardware/t60_lcd_15.html">install/t60_lcd_15.html</a></li>
+ <li>Documentation: added <a href="security/t60_security.html">install/t60_security.html</a></li>
+ <li>Documentation: added <a href="hardware/t60_heatsink.html">install/t60_heatsink.html</a></li>
<li>Documentation: Renamed RELEASE.html to release.html</li>
<li>Documentation: removed pcmcia reference in x60_security.html (it's cardbus)</li>
<li>Documentation: added preliminary information about randomized seal (for physical intrusion detection) in x60_security.html and t60_security.html</li>
@@ -358,7 +343,7 @@
Revisions for 4th beta (2014 July 29th)
</h2>
<ul>
- <li>Documentation: improved (more explanations, background info) in docs/howtos/x60_security.html (courtesy of Denis Carikli)</li>
+ <li>Documentation: improved (more explanations, background info) in docs/security/x60_security.html (courtesy of Denis Carikli)</li>
<li>MacBook2,1 tested (confirmed)</li>
<li>macbook21: Added script 'macbook21_firstflash' for flashing libreboot while Apple EFI firmware is running.</li>
<li>Documentation: macbook21: added software-based flashing instructions for flashing libreboot while Apple EFI firmware is running.</li>
@@ -398,7 +383,7 @@
Documentation: added (preliminary) details about (rare) buggy CPU's on the ThinkPad T60 that were found to fail (instability, kernel panics, etc)
without the microcode updates.
</li>
- <li>Documentation: added docs/howtos/x60_heatsink.html for showing how to change the heatsink on the Thinkpad X60</li>
+ <li>Documentation: added docs/hardware/x60_heatsink.html for showing how to change the heatsink on the Thinkpad X60</li>
<li>Added ROM images for Azerty (French) keyboard layout in GRUB (courtesy of Olivier Mondoloni)</li>
<li>
Tidied up some scripts:
@@ -428,7 +413,7 @@
</ul>
</li>
<li>
- Documentation: added docs/howtos/x60_security.html (security hardening for X60)
+ Documentation: added docs/security/x60_security.html (security hardening for X60)
</li>
</ul>
@@ -599,7 +584,7 @@
<li>Documentation: added notes about cbfstool (standalone) in libreboot_bin</li>
</ul>
</li>
- <li>Documentation: made docs/howtos/grub_cbfs.html slightly easier to follow.</li>
+ <li>Documentation: made docs/gnulinux/grub_cbfs.html slightly easier to follow.</li>
<li>Annotate the 'build*' scripts with 'echo' commands, to help the user understand what it actually happening during the build process.</li>
<li>
Documentation: added information about how 'dmidecode' data was put in the coreboot configs
@@ -680,7 +665,8 @@
<li>sha512: a773462fd60b529f20e14a82281f962985579bd523c3e6c9ab8639f7a12da8f1ccb44a56c648b19de914a15d4490366222d0bbc80552e91419f2afecbddc10ae</li>
</ul>
<p>
- (gluglug.org.uk/X60/release/4/X60_source.tar.gz and gluglug.org.uk/X60/release/4/X60_binary.tar.gz were the old links)
+ (gluglug.org.uk/X60/release/4/X60_source.tar.gz and gluglug.org.uk/X60/release/4/X60_binary.tar.gz were the old links,
+ but they no longer exist)
</p>
<h2>Development notes</h2>
@@ -810,12 +796,12 @@
<h2>Binaries (for flashing)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/3/X60_binary.tar.gz">http://gluglug.org.uk/X60/release/3/X60_binary.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/3/X60_binary.tar.gz">http://libreboot.org/release/ancient/3/X60_binary.tar.gz</a></li>
</ul>
<h2>Source code (for hacking)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/3/X60_source.tar.gz">http://gluglug.org.uk/X60/release/3/X60_source.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/3/X60_source.tar.gz">http://libreboot.org/release/ancient/3/X60_source.tar.gz</a></li>
</ul>
<h2>Development notes</h2>
@@ -870,12 +856,12 @@
<h2>Binaries (for flashing)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/2/X60_binary.tar.gz">http://gluglug.org.uk/X60/release/2/X60_binary.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/2/X60_binary.tar.gz">http://libreboot.org/release/ancient/2/X60_binary.tar.gz</a></li>
</ul>
<h2>Source code (for hacking)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/2/X60_source.tar.gz">http://gluglug.org.uk/X60/release/2/X60_source.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/2/X60_source.tar.gz">http://libreboot.org/release/ancient/2/X60_source.tar.gz</a></li>
</ul>
<h2>Development notes</h2>
@@ -902,12 +888,12 @@
<h2>Binaries (for flashing)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/1/X60_binary.tar.gz">http://gluglug.org.uk/X60/release/1/X60_binary.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/1/X60_binary.tar.gz">http://libreboot.org/release/ancient/1/X60_binary.tar.gz</a></li>
</ul>
<h2>Source code (for hacking)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/1/X60_source.tar.gz">http://gluglug.org.uk/X60/release/1/X60_source.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/1/X60_source.tar.gz">http://libreboot.org/release/ancient/1/X60_source.tar.gz</a></li>
</ul>
<h2>Development notes</h2>
@@ -936,12 +922,12 @@
<h2>Binaries (for flashing)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/0/X60_binary.tar.gz">http://gluglug.org.uk/X60/release/0/X60_binary.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/0/X60_binary.tar.gz">http://libreboot.org/release/ancient/0/X60_binary.tar.gz</a></li>
</ul>
<h2>Source code (for hacking)</h2>
<ul>
- <li><a href="http://gluglug.org.uk/X60/release/0/X60_source.tar.gz">http://gluglug.org.uk/X60/release/0/X60_source.tar.gz</a></li>
+ <li><a href="http://libreboot.org/release/ancient/0/X60_source.tar.gz">http://libreboot.org/release/ancient/0/X60_source.tar.gz</a></li>
</ul>
<h2>Development notes</h2>
diff --git a/docs/css/main.css b/docs/css/main.css
new file mode 100644
index 00000000..11a07737
--- /dev/null
+++ b/docs/css/main.css
@@ -0,0 +1,46 @@
+/*
+
+ Main CSS stylesheet for libreboot.org (documentation section)
+
+ Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+body {
+ background:#fff;
+ color:#000;
+ font-family:100% sans-serif;
+ font-size:0.875em;
+}
+p, aside {
+ margin: 0.33em 0px 0.6em;
+}
+h1,h2,h3 {
+ margin-bottom:0.2em;
+ margin-top:0.2em;
+}
+img {
+ max-width:100%;
+ height:auto;
+}
+p.lenovobios {
+ font-weight:bold; color:#f00; font-style:italic; font-size:1.2em;
+}
+p.lenovobios:hover {
+ color: #000;
+}
+div.important, pre {
+ background-color:#ccc;
+}
diff --git a/docs/future/dumps/kernel312_irc b/docs/future/dumps/kernel312_irc
index c04a00c5..30896426 100644
--- a/docs/future/dumps/kernel312_irc
+++ b/docs/future/dumps/kernel312_irc
@@ -38,7 +38,7 @@ Back then we had no idea that GTT address was incorrect, and we had no idea what
Note: see <a href="#i945_312fix">this fix</a> for the initial fix that was found.
<b><font color="red">not working yet</font></b>
-<a href="http://review.coreboot.org/#/c/5885/" target="_blank">http://review.coreboot.org/#/c/5885/</a>
+<a href="http://review.coreboot.org/#/c/5885/" >http://review.coreboot.org/#/c/5885/</a>
untested. will test this.
checkout 5320. cherry pick 5345 on top.
@@ -131,13 +131,13 @@ http://lists.freedesktop.org/archives/intel-gfx/2014-May/046310.html
<pre>
Note: see <a href="#i945_312fix">this fix</a> for the initial fix that was found.
-see: <a href="http://www.coreboot.org/Board:lenovo/x60#Problems_in_native_graphics_code_exposed_by_recent_kernels" target="_blank">http://www.coreboot.org/Board:lenovo/x60#Problems_in_native_graphics_code_exposed_by_recent_kernels</a>
-see: <a href="http://www.coreboot.org/Lenovo_x60x_vgainit_todos" target="_blank">http://www.coreboot.org/Lenovo_x60x_vgainit_todos</a>
+see: <a href="http://www.coreboot.org/Board:lenovo/x60#Problems_in_native_graphics_code_exposed_by_recent_kernels" >http://www.coreboot.org/Board:lenovo/x60#Problems_in_native_graphics_code_exposed_by_recent_kernels</a>
+see: <a href="http://www.coreboot.org/Lenovo_x60x_vgainit_todos" >http://www.coreboot.org/Lenovo_x60x_vgainit_todos</a>
Non-coreboot (not even i945) platforms also have issues with 3.12+
-see: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=76520" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=76520</a>
+see: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=76520" >https://bugs.freedesktop.org/show_bug.cgi?id=76520</a>
-Is this relevant?: <a href="http://lists.freedesktop.org/archives/intel-gfx/2014-February/040771.html" target="_blank">http://lists.freedesktop.org/archives/intel-gfx/2014-February/040771.html</a>
+Is this relevant?: <a href="http://lists.freedesktop.org/archives/intel-gfx/2014-February/040771.html" >http://lists.freedesktop.org/archives/intel-gfx/2014-February/040771.html</a>
@@ -244,7 +244,7 @@ fchmmr: samnob we think it might be classed under linux "no regression" policy
fchmmr: PaulePanter's idea
samnob: can't hurt to try :)
-Here is the debugging results then: <a href="coreboot_native_3.12_bug.tar.gz" target="_blank">coreboot_native_3.12_bug.tar.gz</a>
+Here is the debugging results then: <a href="coreboot_native_3.12_bug.tar.gz" >coreboot_native_3.12_bug.tar.gz</a>
---
diff --git a/docs/future/index.html b/docs/future/index.html
index 52f1ec8d..5b861397 100644
--- a/docs/future/index.html
+++ b/docs/future/index.html
@@ -5,13 +5,7 @@
<title>libreboot tutorials</title>
<style type="text/css">
- body {
- font-family: sans-serif;
- font-size: 1em;
- background: #fff;
- color: #000;
- }
-
+ @import url('../css/main.css');
</style>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -28,7 +22,7 @@
</header>
<p>
- Or go <a href="../">back to main document index</a>.
+ Or go <a href="../index.html">back to main document index</a>.
</p>
<hr/>
@@ -131,7 +125,7 @@
<h1 id="lcd_i945_incompatibility">LCD panels on i945 - fix incompatible panels</h1>
<p>
- Fix T60 issues (see incompatible panels listed at <a href="../index.html#supported_t60_list">../index.html#supported_t60_list</a>).
+ Fix T60 issues (see incompatible panels listed at <a href="../hcl/index.html#supported_t60_list">../hcl/index.html#supported_t60_list</a>).
</p>
<p>
@@ -304,7 +298,7 @@
<p>
Here is an example of how VBT was implemented on the ThinkPad X230:
- <a href="http://review.coreboot.org/#/c/5396" target="_blank">http://review.coreboot.org/#/c/5396</a>.
+ <a href="http://review.coreboot.org/#/c/5396">http://review.coreboot.org/#/c/5396</a>.
</p>
<p>
@@ -323,12 +317,12 @@
Now dump a copy of the running VGA BIOS:
<b>$ sudo dd if=/dev/mem bs=64k of=runningvga.bin skip=12 count=1</b><br/>
Then do (and record the output):<br/>
- <b>$ ./intelvbttool runningvga.bin > intelvbttool_out</b>
+ <b>$ ./intelvbttool runningvga.bin &gt; intelvbttool_out</b>
</p>
<p>
Backup both files (runningvga.bin and intelvbttool_out), renaming them to match the machine and LCD panel used.
- <a href="../index.html#get_edid_panelname">../index.html#get_edid_panelname</a> will show you how to get the name (model) of the LCD panel used.
+ <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a> will show you how to get the name (model) of the LCD panel used.
</p>
<h2>Test results (# means untested and all had docks, unless noted).</h2>
diff --git a/docs/future/old.html b/docs/future/old.html
index 7d72ec74..eeaa96e1 100644
--- a/docs/future/old.html
+++ b/docs/future/old.html
@@ -5,13 +5,7 @@
<title>libreboot tutorials</title>
<style type="text/css">
- body {
- font-family: sans-serif;
- font-size: 1em;
- background: #fff;
- color: #000;
- }
-
+ @import url('../css/main.css');
</style>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -126,16 +120,16 @@
<b>Add backlight controls:</b> in <i>src/mainboard/lenovo/t60/devicetree.cb</i>, change <b>gpu_backlight</b> to <b>0x58BF58BE</b>
</p>
<p>
- Hold on! Check <a href="../index.html#get_edid_panelname">../index.html#get_edid_panelname</a> to know what LCD panel you have. This is important for the next step!
+ Hold on! Check <a href="../misc/index.html#get_edid_panelname">../misc/index.html#get_edid_panelname</a> to know what LCD panel you have. This is important for the next step!
</p>
<h2>Supported panels</h2>
<p>
- <a href="../index.html#supported_t60_list">../index.html#supported_t60_list</a>.
+ <a href="../hcl/index.html#supported_t60_list">../hcl/index.html#supported_t60_list</a>.
</p>
<p>
- See <a href="#lcd_i945_incompatibility">#lcd_i945_incompatibility</a>.
+ See <a href="index.html#lcd_i945_incompatibility">index.html#lcd_i945_incompatibility</a>.
</p>
<p><a href="#pagetop">Back to top of page</a></p>
diff --git a/docs/git/index.html b/docs/git/index.html
new file mode 100644
index 00000000..a2596c3a
--- /dev/null
+++ b/docs/git/index.html
@@ -0,0 +1,503 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>Developing libreboot</title>
+</head>
+
+<body>
+
+ <h1 id="pagetop">Developing libreboot</h1>
+ <p>
+ This section relates to building libreboot from source, and
+ working with the git repository.
+ </p>
+ <p>
+ Or <a href="../index.html">Back to main index</a>.
+ </p>
+ <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>
+
+<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>
+
+ <p>
+ First, <a href="#build_dependencies">install the build dependencies</a>.
+ </p>
+
+ <p>
+ After that, run the get script:<br/>
+ <b>$ ./getall</b>
+ </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.xz and libreboot_bin.tar.xz.<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>
+ <p>
+ This information can be obtained using:<br/>
+ <b>$ sudo dmidecode</b><br/>
+ <b># dmidecode</b>
+ </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>
+ </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>
+ <p>
+ Now 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>x60/config</b> and is used by the build
+ scripts for this machine.
+ </p>
+ <p>
+ This is based on an X60S with the Core 2 Duo L7400 processor.
+ </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.
+ </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>
+ <p>
+ Now 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>x60t/config</b> and is used by the build
+ scripts for this machine.
+ </p>
+ <p>
+ This is based on an X60T with the Core 2 Duo L7400 processor.
+ </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>
+ <p>
+ 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>
+ <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.
+ </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:
+ </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>
+
+ <p>
+ Run that script:<br/>
+ <b>$ ./build-release</b>
+ </p>
+
+ <p>
+ You'll find that the files libreboot_bin.tar.xz and libreboot_src.tar.xz have been created.
+ </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/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/howtos/cbfstool_libreboot5_strace b/docs/gnulinux/cbfstool_libreboot5_strace
index 7e3794f7..7e3794f7 100644
--- a/docs/howtos/cbfstool_libreboot5_strace
+++ b/docs/gnulinux/cbfstool_libreboot5_strace
diff --git a/docs/howtos/configuring_parabola.html b/docs/gnulinux/configuring_parabola.html
index 56c5420d..270d2bbe 100644
--- a/docs/howtos/configuring_parabola.html
+++ b/docs/gnulinux/configuring_parabola.html
@@ -5,15 +5,7 @@
<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;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('../css/main.css');
</style>
<title>Configuring Parabola (post-install)</title>
@@ -22,7 +14,7 @@
<body>
<header>
<h1 id="pagetop">Configuring Parabola (post-install)</h1>
- <aside>Or <a href="../index.html">back to main index</a></aside>
+ <aside>Or <a href="index.html">back to main index</a></aside>
</header>
<hr/>
diff --git a/docs/howtos/encrypted_parabola.html b/docs/gnulinux/encrypted_parabola.html
index 3a1a75d1..ce49cbc3 100644
--- a/docs/howtos/encrypted_parabola.html
+++ b/docs/gnulinux/encrypted_parabola.html
@@ -5,15 +5,7 @@
<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;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('../css/main.css');
</style>
<title>Installing Parabola GNU/Linux with full disk encryption (including /boot)</title>
@@ -22,7 +14,7 @@
<body>
<header>
<h1>Installing Parabola GNU/Linux with full disk encryption (including /boot)</h1>
- <aside>Or <a href="../index.html">back to main index</a></aside>
+ <aside>Or <a href="index.html">back to main index</a></aside>
</header>
<p>
@@ -87,7 +79,7 @@
it is already 'wiped'. You should just wipe the LUKS header.
<a href="https://www.lisenet.com/2013/luks-add-keys-backup-and-restore-volume-header/">https://www.lisenet.com/2013/luks-add-keys-backup-and-restore-volume-header/</a>
showed me how to do this. It recommends to do the first 3MiB. Now, that guide is recommending putting zero there. I'm doing to use urandom. Do this:<br/>
- # <b>head -c 3145728 /dev/urandom > /dev/sda; sync</b><br/>
+ # <b>head -c 3145728 /dev/urandom &gt; /dev/sda; sync</b><br/>
(wiping the LUKS header is important, since it has hashed passphrases and so on. It's 'secure', but 'potentially' a risk).
</p>
<p>
@@ -279,7 +271,7 @@
<h3>Configure the system</h3>
<p>
From the Parabola installation guide (Arch's one was identical):<br/>
- # <b>genfstab -p /mnt >> /mnt/etc/fstab</b>
+ # <b>genfstab -p /mnt &gt;&gt; /mnt/etc/fstab</b>
</p>
<p>
Chroot into new system:<br/>
diff --git a/docs/howtos/encrypted_trisquel.html b/docs/gnulinux/encrypted_trisquel.html
index 7599e02f..5becddcb 100644
--- a/docs/howtos/encrypted_trisquel.html
+++ b/docs/gnulinux/encrypted_trisquel.html
@@ -5,15 +5,7 @@
<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;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('../css/main.css');
</style>
<title>Installing Trisquel GNU/Linux with full disk encryption (including /boot)</title>
@@ -22,7 +14,7 @@
<body>
<header>
<h1>Installing Trisquel GNU/Linux with full disk encryption (including /boot)</h1>
- <aside>Or <a href="../index.html">back to main index</a></aside>
+ <aside>Or <a href="index.html">back to main index</a></aside>
</header>
<p>
@@ -278,7 +270,7 @@
<p>
After this, you will have a modified ROM with the menu entry for cryptomount, and the entry before that for the GRUB password. Flash the modified ROM
- using <a href="../index.html#flashrom">this tutorial</a>.
+ using <a href="../install/index.html#flashrom">this tutorial</a>.
</p>
<h1>
diff --git a/docs/howtos/grub_boot_installer.html b/docs/gnulinux/grub_boot_installer.html
index 757b48f6..68536801 100644
--- a/docs/howtos/grub_boot_installer.html
+++ b/docs/gnulinux/grub_boot_installer.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: installing GNU/Linux</title>
@@ -19,7 +14,7 @@
<body>
<header>
<h1>Boot a GNU/Linux installer on USB</h1>
- <aside>Or <a href="../index.html">back to main index</a></aside>
+ <aside>Or <a href="index.html">back to main index</a></aside>
</header>
<h2>Prepare the USB drive (in GNU/Linux)</h2>
diff --git a/docs/howtos/grub_cbfs.html b/docs/gnulinux/grub_cbfs.html
index e6032474..c9a0f453 100644
--- a/docs/howtos/grub_cbfs.html
+++ b/docs/gnulinux/grub_cbfs.html
@@ -5,15 +5,7 @@
<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;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: GRUB menu</title>
@@ -22,7 +14,7 @@
<body>
<header>
<h1 id="pagetop">How to change your default GRUB menu</h1>
- <aside>Or <a href="../index.html">back to main index</a></aside>
+ <aside>Or <a href="index.html">back to main index</a></aside>
</header>
<p>
@@ -44,7 +36,7 @@
<p>
Here is an excellent writeup about CBFS (coreboot filesystem):
- <a href="http://lennartb.home.xs4all.nl/coreboot/col5.html" target="_blank">http://lennartb.home.xs4all.nl/coreboot/col5.html</a>.
+ <a href="http://lennartb.home.xs4all.nl/coreboot/col5.html">http://lennartb.home.xs4all.nl/coreboot/col5.html</a>.
</p>
<hr/>
@@ -61,8 +53,8 @@
<ul>
<li><a href="#example_modifications_trisquel">Trisquel GNU/Linux-libre</a></li>
<li><a href="#example_modifications_parabola">Parabola GNU/Linux-libre</a></li>
- </lu>
- </ul>
+ </ul>
+ </li>
<li><a href="#reinsert_modified_grubtest">Re-insert the modified grubtest.cfg into the ROM image</a></li>
<li><a href="#test_it">Test it!</a>
<li><a href="#final_steps">Final steps</a></li>
@@ -75,13 +67,13 @@
<p>
Download the latest release from
- <a href="http://libreboot.org/" target="_blank">http://libreboot.org/</a>
+ <a href="http://libreboot.org/">http://libreboot.org/</a>
<br/><b>If you downloaded from git, refer to
- <a href="../index.html#build_meta">../index.html#build_meta</a> before continuing.</b>
+ <a href="../git/index.html#build_meta">../git/index.html#build_meta</a> before continuing.</b>
</p>
<p>
- <a href="../index.html#build_dependencies">Install the build dependencies</a>.
+ <a href="../git/index.html#build_dependencies">Install the build dependencies</a>.
</p>
<p>
@@ -118,7 +110,7 @@
<p>
If you want to re-use the ROM that you currently have flashed (and running) then see
- <a href="../index.html#build_flashrom">../index.html#build_flashrom</a>
+ <a href="../git/index.html#build_flashrom">../git/index.html#build_flashrom</a>
and then run:<br/>
<b>$ sudo ./flashrom -p internal -r libreboot.rom</b><br/>
Notice that this is using <b>&quot;-r&quot;</b> (read) instead of <b>&quot;-w&quot;</b> (write).
@@ -256,7 +248,7 @@
There are lots of possible variations so please try to adapt.
</p>
- <h3 id="example_modifications_parabola">Parabola GNU/Linux-libre</h2>
+ <h3 id="example_modifications_parabola">Parabola GNU/Linux-libre</h3>
<p>
You can basically adapt the above. Note however that Parabola does not keep old kernels still installed, and the file names
@@ -303,7 +295,7 @@
<p>
<b>
- Now you have a modified ROM. Refer back to <a href="../index.html#flashrom">../index.html#flashrom</a> for information
+ Now you have a modified ROM. Refer back to <a href="../install/index.html#flashrom">../install/index.html#flashrom</a> for information
on how to flash it. Once you have done that, shut down and then boot up with your new test configuration.
</b>
</p>
@@ -359,7 +351,7 @@
<p>
<b>
- Now you have a modified ROM. Refer back to <a href="../index.html#flashrom">../index.html#flashrom</a> for information
+ Now you have a modified ROM. Refer back to <a href="../install/index.html#flashrom">../install/index.html#flashrom</a> for information
on how to flash it. Once you have done that, shut down and then boot up with your new configuration.
</b>
</p>
diff --git a/docs/gnulinux/index.html b/docs/gnulinux/index.html
new file mode 100644
index 00000000..c384575b
--- /dev/null
+++ b/docs/gnulinux/index.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>GNU/Linux distributions</title>
+</head>
+
+<body>
+
+ <h1 id="pagetop">GNU/Linux distributions</h1>
+ <p>
+ This section relates to dealing with GNU/Linux distributions: preparing bootable USB drives,
+ changing the default GRUB menu and so on.
+ </p>
+ <p>
+ Or <a href="../index.html">Back to main index</a>.
+ </p>
+ <ul>
+ <li><a href="grub_boot_installer.html">How to install a GNU/Linux distribution</a></li>
+ <li><a href="grub_cbfs.html">How to change your default GRUB menu</a></li>
+ <li>
+ <a href="encrypted_parabola.html">Installing Parabola GNU/Linux-libre with full disk encryption (including /boot)</a>
+ <ul>
+ <li>Follow-up tutorial: <a href="configuring_parabola.html">Configuring Parabola (post-install)</a></li>
+ </ul>
+ </li>
+ <li><a href="encrypted_trisquel.html">Installing Trisquel GNU/Linux-libre with full disk encryption (including /boot)</a></li>
+ </ul>
+
+<hr/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/grub/index.html b/docs/grub/index.html
new file mode 100644
index 00000000..f2d554ad
--- /dev/null
+++ b/docs/grub/index.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>GRUB payload</title>
+</head>
+
+<body>
+
+ <h1 id="pagetop">GRUB payload</h1>
+ <p>
+ This section relates to the GRUB payload used in libreboot.
+ </p>
+ <p>
+ Or <a href="../index.html">Back to main index</a>.
+ </p>
+ <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>
+
+<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 &gt; 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>
+
+ <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>.
+ </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
+ </p>
+
+ <p><b>$ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb</b></p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/hardware/index.html b/docs/hardware/index.html
new file mode 100644
index 00000000..7a09e6f0
--- /dev/null
+++ b/docs/hardware/index.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>Hardware maintenance</title>
+</head>
+
+<body>
+
+ <h1 id="pagetop">Hardware maintenance</h1>
+ <p>
+ This section relates to hardware maintenance on supported targets.
+ </p>
+ <p>
+ Or <a href="../index.html">Back to main index</a>.
+ </p>
+ <ul>
+ <li><a href="x60_heatsink.html">ThinkPad X60/X60S: change the fan/heatsink</a></li>
+ <li><a href="x60_lcd_change.html">ThinkPad X60/X60s: How to change the LCD panel</a> (incomplete. pics only for now)</li>
+ <li><a href="t60_lcd_15.html">ThinkPad T60 15.1&quot; changing LCD panel</a></li>
+ <li><a href="t60_heatsink.html">ThinkPad T60: change the fan/heatsink</a></li>
+ </ul>
+
+<hr/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/howtos/t60_heatsink.html b/docs/hardware/t60_heatsink.html
index f10ea60c..c4b68d5d 100644
--- a/docs/howtos/t60_heatsink.html
+++ b/docs/hardware/t60_heatsink.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Unbricking the ThinkPad T60</title>
@@ -23,7 +18,7 @@
<aside>Using this guide you can also change/upgrade the CPU.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h1 id="hardware_requirements">Hardware requirements</h1>
<ul>
@@ -41,27 +36,27 @@
<p>
Remove those screws and remove the HDD:<br/>
- <img src="t60_dev/0001.JPG" alt="" /> <img src="t60_dev/0002.JPG" alt="" />
+ <img src="../images/t60_dev/0001.JPG" alt="" /> <img src="../images/t60_dev/0002.JPG" alt="" />
</p>
<p>
Lift off the palm rest:<br/>
- <img src="t60_dev/0003.JPG" alt="" />
+ <img src="../images/t60_dev/0003.JPG" alt="" />
</p>
<p>
Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:<br/>
- <img src="t60_dev/0004.JPG" alt="" /> <img src="t60_dev/0005.JPG" alt="" /> <img src="t60_dev/0006.JPG" alt="" />
+ <img src="../images/t60_dev/0004.JPG" alt="" /> <img src="../images/t60_dev/0005.JPG" alt="" /> <img src="../images/t60_dev/0006.JPG" alt="" />
</p>
<p>
Gently wedge both sides loose:<br/>
- <img src="t60_dev/0007.JPG" alt="" /> <img src="t60_dev/0008.JPG" alt="" />
+ <img src="../images/t60_dev/0007.JPG" alt="" /> <img src="../images/t60_dev/0008.JPG" alt="" />
</p>
<p>
Remove that cable from the position:<br/>
- <img src="t60_dev/0009.JPG" alt="" /> <img src="t60_dev/0010.JPG" alt="" />
+ <img src="../images/t60_dev/0009.JPG" alt="" /> <img src="../images/t60_dev/0010.JPG" alt="" />
</p>
<p>
@@ -72,7 +67,7 @@
On the CPU (and there is another chip south-east to it, sorry forgot to take pic)
clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too)
you should also clean the heatsink the same way<br/>
- <img src="t60_dev/0051.JPG" alt="" />
+ <img src="../images/t60_dev/0051.JPG" alt="" />
</p>
<p>
@@ -82,37 +77,37 @@
<p>
Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):<br/>
- <img src="t60_dev/0052.JPG" alt="" />
+ <img src="../images/t60_dev/0052.JPG" alt="" />
</p>
<p>
Reinstall that upper bezel:<br/>
- <img src="t60_dev/0053.JPG" alt="" />
+ <img src="../images/t60_dev/0053.JPG" alt="" />
</p>
<p>
Do that:<br/>
- <img src="t60_dev/0054.JPG" alt="" /> <img src="t60_dev/0055.JPG" alt="" />
+ <img src="../images/t60_dev/0054.JPG" alt="" /> <img src="../images/t60_dev/0055.JPG" alt="" />
</p>
<p>
Attach keyboard:<br/>
- <img src="t60_dev/0056.JPG" alt="" />
+ <img src="../images/t60_dev/0056.JPG" alt="" />
</p>
<p>
Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:<br/>
- <img src="t60_dev/0058.JPG" alt="" />
+ <img src="../images/t60_dev/0058.JPG" alt="" />
</p>
<p>
It lives!<br/>
- <img src="t60_dev/0071.JPG" alt="" /> <img src="t60_dev/0072.JPG" alt="" /> <img src="t60_dev/0073.JPG" alt="" />
+ <img src="../images/t60_dev/0071.JPG" alt="" /> <img src="../images/t60_dev/0072.JPG" alt="" /> <img src="../images/t60_dev/0073.JPG" alt="" />
</p>
<p>
Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:<br/>
- <img src="t60_dev/0074.JPG" alt="" />
+ <img src="../images/t60_dev/0074.JPG" alt="" />
</p>
<hr/>
diff --git a/docs/howtos/t60_lcd_15.html b/docs/hardware/t60_lcd_15.html
index 3b382f5a..b1293c14 100644
--- a/docs/howtos/t60_lcd_15.html
+++ b/docs/hardware/t60_lcd_15.html
@@ -5,15 +5,10 @@
<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;
- }
+ @import url('../css/main.css');
</style>
- <title>Libreboot documentation: Unbricking the ThinkPad T60</title>
+ <title>Changing LCD panel on 15.1 inch T60</title>
</head>
<body>
@@ -24,13 +19,13 @@
to remove the hinges and the procedure is a bit more involved than on 15.1&quot;.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h1 id="recovery">Disassembly</h1>
<p>
Remove those covers and unscrew:<br/>
- <img src="t60_dev/0059.JPG" alt="" /> <img src="t60_dev/0060.JPG" alt="" /> <img src="t60_dev/0061.JPG" alt="" />
+ <img src="../images/t60_dev/0059.JPG" alt="" /> <img src="../images/t60_dev/0060.JPG" alt="" /> <img src="../images/t60_dev/0061.JPG" alt="" />
</p>
<p>
@@ -39,32 +34,32 @@
<p>
Remove inverter board:<br/>
- <img src="t60_dev/0064.JPG" alt="" />
+ <img src="../images/t60_dev/0064.JPG" alt="" />
</p>
<p>
Disconnect LCD cable:<br/>
- <img src="t60_dev/0065.JPG" alt="" />
+ <img src="../images/t60_dev/0065.JPG" alt="" />
</p>
<p>
Remove the panel:<br/>
- <img src="t60_dev/0066.JPG" alt="" />
+ <img src="../images/t60_dev/0066.JPG" alt="" />
</p>
<p>
Move the rails (left and right side) from the old panel to the new one and then attach LCD cable:<br/>
- <img src="t60_dev/0068.JPG" alt="" />
+ <img src="../images/t60_dev/0068.JPG" alt="" />
</p>
<p>
- Insert panel (this one is an LG-Philips LP150E05-A2K1, and there are others. See <a href="../index.html#supported_t60_list">../index.html#supported_t60_list</a>):<br/>
- <img src="t60_dev/0069.JPG" alt="" />
+ Insert panel (this one is an LG-Philips LP150E05-A2K1, and there are others. See <a href="../hcl/index.html#supported_t60_list">../hcl/index.html#supported_t60_list</a>):<br/>
+ <img src="../images/t60_dev/0069.JPG" alt="" />
</p>
<p>
- Insert new inverter board (see <a href="../index.html#supported_t60_list">../index.html#supported_t60_list</a> for what is recommended on your LCD panel):<br/>
- <img src="t60_dev/0070.JPG" alt="" />
+ Insert new inverter board (see <a href="../hcl/index.html#supported_t60_list">../hcl/index.html#supported_t60_list</a> for what is recommended on your LCD panel):<br/>
+ <img src="../images/t60_dev/0070.JPG" alt="" />
</p>
<p>
@@ -73,7 +68,7 @@
<p>
It lives!<br/>
- <img src="t60_dev/0071.JPG" alt="" /> <img src="t60_dev/0072.JPG" alt="" /> <img src="t60_dev/0073.JPG" alt="" />
+ <img src="../images/t60_dev/0071.JPG" alt="" /> <img src="../images/t60_dev/0072.JPG" alt="" /> <img src="../images/t60_dev/0073.JPG" alt="" />
</p>
<hr/>
diff --git a/docs/howtos/x60_heatsink.html b/docs/hardware/x60_heatsink.html
index 22b55e1c..1e14f964 100644
--- a/docs/howtos/x60_heatsink.html
+++ b/docs/hardware/x60_heatsink.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Switch heatsink on ThinkPad X60</title>
@@ -23,7 +18,7 @@
<aside>This guide will teach you how to replace the fan and heatsink on your ThinkPad X60.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h2>Table of Contents</h2>
<ul>
@@ -49,75 +44,75 @@
<h1 id="procedure">Disassembly</h1>
<p>
Remove those screws:<br/>
- <img src="x60_heatsink/0000.jpg" alt="" />
+ <img src="../images/x60_heatsink/0000.jpg" alt="" />
</p>
<p>
Push the keyboard forward (carefully):<br/>
- <img src="x60_heatsink/0001.jpg" alt="" />
+ <img src="../images/x60_heatsink/0001.jpg" alt="" />
</p>
<p>
Lift the keyboard up and disconnect it from the board:<br/>
- <img src="x60_heatsink/0002.jpg" alt="" />
+ <img src="../images/x60_heatsink/0002.jpg" alt="" />
</p>
<p>
Grab the right-hand side of the chassis and force it off (gently) and pry up the rest of the chassis:<br/>
- <img src="x60_heatsink/0003.jpg" alt="" />
+ <img src="../images/x60_heatsink/0003.jpg" alt="" />
</p>
<p>
You should now have this:<br/>
- <img src="x60_heatsink/0004.jpg" alt="" />
+ <img src="../images/x60_heatsink/0004.jpg" alt="" />
</p>
<p>
Disconnect the wifi antenna cables, the modem cable and the speaker:<br/>
- <img src="x60_heatsink/0005.jpg" alt="" />
+ <img src="../images/x60_heatsink/0005.jpg" alt="" />
</p>
<p>
Unroute the cables along their path, carefully lifting the tape that holds them in place. Then, disconnect the modem
cable (other end) and power connection and unroute all the cables so that they dangle by the monitor hinge on the right-hand
side:<br/>
- <img src="x60_heatsink/0006.jpg" alt="" />
+ <img src="../images/x60_heatsink/0006.jpg" alt="" />
</p>
<p>
Disconnect the monitor from the motherboard, and unroute the grey antenna cable, carefully lifting the tape
that holds it into place:<br/>
- <img src="x60_heatsink/0008.jpg" alt="" />
+ <img src="../images/x60_heatsink/0008.jpg" alt="" />
</p>
<p>
Carefully lift the remaining tape and unroute the left antenna cable so that it is loose:<br/>
- <img src="x60_heatsink/0009.jpg" alt="" />
+ <img src="../images/x60_heatsink/0009.jpg" alt="" />
</p>
<p>
Remove those screws:<br/>
- <img src="x60_heatsink/0011.jpg" alt="" />
+ <img src="../images/x60_heatsink/0011.jpg" alt="" />
</p>
<p>
Remove those screws:<br/>
- <img src="x60_heatsink/0012.jpg" alt="" />
+ <img src="../images/x60_heatsink/0012.jpg" alt="" />
</p>
<p>
Carefully remove the plate, like so:<br/>
- <img src="x60_heatsink/0013.jpg" alt="" />
+ <img src="../images/x60_heatsink/0013.jpg" alt="" />
</p>
<p>
Remove the SATA connector:<br/>
- <img src="x60_heatsink/0014.jpg" alt="" />
+ <img src="../images/x60_heatsink/0014.jpg" alt="" />
</p>
<p>
Now remove the motherboard (gently) and cast the lcd/chassis aside:<br/>
- <img src="x60_heatsink/0015.jpg" alt="" />
+ <img src="../images/x60_heatsink/0015.jpg" alt="" />
</p>
<p>
Look at that black tape above the heatsink, remove it:<br/>
- <img src="x60_heatsink/0016.jpg" alt="" />
+ <img src="../images/x60_heatsink/0016.jpg" alt="" />
</p>
<p>
Now you have removed it:<br/>
- <img src="x60_heatsink/0017.jpg" alt="" />
+ <img src="../images/x60_heatsink/0017.jpg" alt="" />
</p>
<p>
Disconnect the fan and remove all the screws, heatsink will easily come off:<br/>
- <img src="x60_heatsink/0018.jpg" alt="" />
+ <img src="../images/x60_heatsink/0018.jpg" alt="" />
</p>
<p>
diff --git a/docs/howtos/x60_lcd_change.html b/docs/hardware/x60_lcd_change.html
index 3ddeaac0..261814a5 100644
--- a/docs/howtos/x60_lcd_change.html
+++ b/docs/hardware/x60_lcd_change.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Unbricking the ThinkPad T60</title>
@@ -22,18 +17,18 @@
<h1>Changing the LCD panel on X60</h1>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<p>This tutorial is incomplete, and only pictures for now.</p>
<p>
- <img src="x60_lcd_change/0001.JPG" alt="" />
- <img src="x60_lcd_change/0002.JPG" alt="" />
- <img src="x60_lcd_change/0003.JPG" alt="" />
- <img src="x60_lcd_change/0004.JPG" alt="" />
- <img src="x60_lcd_change/0005.JPG" alt="" />
- <img src="x60_lcd_change/0006.JPG" alt="" />
- <img src="x60_lcd_change/0007.JPG" alt="" />
+ <img src="../images/x60_lcd_change/0001.JPG" alt="" />
+ <img src="../images/x60_lcd_change/0002.JPG" alt="" />
+ <img src="../images/x60_lcd_change/0003.JPG" alt="" />
+ <img src="../images/x60_lcd_change/0004.JPG" alt="" />
+ <img src="../images/x60_lcd_change/0005.JPG" alt="" />
+ <img src="../images/x60_lcd_change/0006.JPG" alt="" />
+ <img src="../images/x60_lcd_change/0007.JPG" alt="" />
</p>
<hr/>
diff --git a/docs/hcl/index.html b/docs/hcl/index.html
new file mode 100644
index 00000000..3ffaea8d
--- /dev/null
+++ b/docs/hcl/index.html
@@ -0,0 +1,593 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>Hardware compatibility list</title>
+</head>
+
+<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 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><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>
+ <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="../misc/index.html#get_edid_panelname">../misc/index.html#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="../misc/index.html#get_edid_panelname">../misc/index.html#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>
+# 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 &quot;Monitor&quot;
+ 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;
+EndSection
+
+Section &quot;InputDevice&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;KeepShape&quot; &quot;on&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;
+EndSection
+
+Section &quot;ServerLayout&quot;
+ Identifier &quot;Default Layout&quot;
+ Screen &quot;Default Screen Section&quot;
+ InputDevice &quot;WTouch&quot; &quot;SendCoreEvents&quot;
+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="../misc/index.html#get_edid_panelname">../misc/index.html#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">
+
+ <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>
+ </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>:
+ </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>
+
+ <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>
+
+ <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):<br/>
+ <img src="../images/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):
+ </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>
+
+ <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>
+ 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>
+
+ <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>
+
+ <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>
+ </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>.
+ </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
+ </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="../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>
+ 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/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/howtos/x60_unbrick/0016.jpg b/docs/howtos/x60_unbrick/0016.jpg
deleted file mode 100644
index f10ca887..00000000
--- a/docs/howtos/x60_unbrick/0016.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0018.jpg b/docs/howtos/x60_unbrick/0018.jpg
deleted file mode 100644
index 7145d9f5..00000000
--- a/docs/howtos/x60_unbrick/0018.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0019.jpg b/docs/howtos/x60_unbrick/0019.jpg
deleted file mode 100644
index 959a6eea..00000000
--- a/docs/howtos/x60_unbrick/0019.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0021.jpg b/docs/howtos/x60_unbrick/0021.jpg
deleted file mode 100644
index 65bcb60a..00000000
--- a/docs/howtos/x60_unbrick/0021.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0022.jpg b/docs/howtos/x60_unbrick/0022.jpg
deleted file mode 100644
index cfcad6d7..00000000
--- a/docs/howtos/x60_unbrick/0022.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0023.jpg b/docs/howtos/x60_unbrick/0023.jpg
deleted file mode 100644
index 10824fd2..00000000
--- a/docs/howtos/x60_unbrick/0023.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/t60_dev/.htaccess b/docs/images/t60_dev/.htaccess
index 75da6747..75da6747 100644
--- a/docs/howtos/t60_dev/.htaccess
+++ b/docs/images/t60_dev/.htaccess
diff --git a/docs/howtos/t60_dev/0001.JPG b/docs/images/t60_dev/0001.JPG
index 84d2f4fe..84d2f4fe 100644
--- a/docs/howtos/t60_dev/0001.JPG
+++ b/docs/images/t60_dev/0001.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0002.JPG b/docs/images/t60_dev/0002.JPG
index 5f8ead50..5f8ead50 100644
--- a/docs/howtos/t60_dev/0002.JPG
+++ b/docs/images/t60_dev/0002.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0003.JPG b/docs/images/t60_dev/0003.JPG
index 4b0826fb..4b0826fb 100644
--- a/docs/howtos/t60_dev/0003.JPG
+++ b/docs/images/t60_dev/0003.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0004.JPG b/docs/images/t60_dev/0004.JPG
index 42d90867..42d90867 100644
--- a/docs/howtos/t60_dev/0004.JPG
+++ b/docs/images/t60_dev/0004.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0005.JPG b/docs/images/t60_dev/0005.JPG
index 8e9bce3e..8e9bce3e 100644
--- a/docs/howtos/t60_dev/0005.JPG
+++ b/docs/images/t60_dev/0005.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0006.JPG b/docs/images/t60_dev/0006.JPG
index 6371b467..6371b467 100644
--- a/docs/howtos/t60_dev/0006.JPG
+++ b/docs/images/t60_dev/0006.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0007.JPG b/docs/images/t60_dev/0007.JPG
index cedc9d9b..cedc9d9b 100644
--- a/docs/howtos/t60_dev/0007.JPG
+++ b/docs/images/t60_dev/0007.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0008.JPG b/docs/images/t60_dev/0008.JPG
index bec57a15..bec57a15 100644
--- a/docs/howtos/t60_dev/0008.JPG
+++ b/docs/images/t60_dev/0008.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0009.JPG b/docs/images/t60_dev/0009.JPG
index aeeda578..aeeda578 100644
--- a/docs/howtos/t60_dev/0009.JPG
+++ b/docs/images/t60_dev/0009.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0010.JPG b/docs/images/t60_dev/0010.JPG
index c776171b..c776171b 100644
--- a/docs/howtos/t60_dev/0010.JPG
+++ b/docs/images/t60_dev/0010.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0011.JPG b/docs/images/t60_dev/0011.JPG
index 24cb4439..24cb4439 100644
--- a/docs/howtos/t60_dev/0011.JPG
+++ b/docs/images/t60_dev/0011.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0012.JPG b/docs/images/t60_dev/0012.JPG
index c7199586..c7199586 100644
--- a/docs/howtos/t60_dev/0012.JPG
+++ b/docs/images/t60_dev/0012.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0013.JPG b/docs/images/t60_dev/0013.JPG
index b8ed7ee1..b8ed7ee1 100644
--- a/docs/howtos/t60_dev/0013.JPG
+++ b/docs/images/t60_dev/0013.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0014.JPG b/docs/images/t60_dev/0014.JPG
index 5160dc3f..5160dc3f 100644
--- a/docs/howtos/t60_dev/0014.JPG
+++ b/docs/images/t60_dev/0014.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0015.JPG b/docs/images/t60_dev/0015.JPG
index 0c1fd18f..0c1fd18f 100644
--- a/docs/howtos/t60_dev/0015.JPG
+++ b/docs/images/t60_dev/0015.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0016.JPG b/docs/images/t60_dev/0016.JPG
index c698be2c..c698be2c 100644
--- a/docs/howtos/t60_dev/0016.JPG
+++ b/docs/images/t60_dev/0016.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0017.JPG b/docs/images/t60_dev/0017.JPG
index 652a66ea..652a66ea 100644
--- a/docs/howtos/t60_dev/0017.JPG
+++ b/docs/images/t60_dev/0017.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0018.JPG b/docs/images/t60_dev/0018.JPG
index cf430675..cf430675 100644
--- a/docs/howtos/t60_dev/0018.JPG
+++ b/docs/images/t60_dev/0018.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0019.JPG b/docs/images/t60_dev/0019.JPG
index a75f68a0..a75f68a0 100644
--- a/docs/howtos/t60_dev/0019.JPG
+++ b/docs/images/t60_dev/0019.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0020.JPG b/docs/images/t60_dev/0020.JPG
index 0c4f7db9..0c4f7db9 100644
--- a/docs/howtos/t60_dev/0020.JPG
+++ b/docs/images/t60_dev/0020.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0021.JPG b/docs/images/t60_dev/0021.JPG
index c7d57576..c7d57576 100644
--- a/docs/howtos/t60_dev/0021.JPG
+++ b/docs/images/t60_dev/0021.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0022.JPG b/docs/images/t60_dev/0022.JPG
index 5971da26..5971da26 100644
--- a/docs/howtos/t60_dev/0022.JPG
+++ b/docs/images/t60_dev/0022.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0023.JPG b/docs/images/t60_dev/0023.JPG
index 99f67c3c..99f67c3c 100644
--- a/docs/howtos/t60_dev/0023.JPG
+++ b/docs/images/t60_dev/0023.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0024.JPG b/docs/images/t60_dev/0024.JPG
index f89b5379..f89b5379 100644
--- a/docs/howtos/t60_dev/0024.JPG
+++ b/docs/images/t60_dev/0024.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0025.JPG b/docs/images/t60_dev/0025.JPG
index d6b180e3..d6b180e3 100644
--- a/docs/howtos/t60_dev/0025.JPG
+++ b/docs/images/t60_dev/0025.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0026.JPG b/docs/images/t60_dev/0026.JPG
index c8f3299f..c8f3299f 100644
--- a/docs/howtos/t60_dev/0026.JPG
+++ b/docs/images/t60_dev/0026.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0027.JPG b/docs/images/t60_dev/0027.JPG
index 10ab8e08..10ab8e08 100644
--- a/docs/howtos/t60_dev/0027.JPG
+++ b/docs/images/t60_dev/0027.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0028.JPG b/docs/images/t60_dev/0028.JPG
index 64cba1c3..64cba1c3 100644
--- a/docs/howtos/t60_dev/0028.JPG
+++ b/docs/images/t60_dev/0028.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0029.JPG b/docs/images/t60_dev/0029.JPG
index 960ebdd7..960ebdd7 100644
--- a/docs/howtos/t60_dev/0029.JPG
+++ b/docs/images/t60_dev/0029.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0030.JPG b/docs/images/t60_dev/0030.JPG
index 046fd005..046fd005 100644
--- a/docs/howtos/t60_dev/0030.JPG
+++ b/docs/images/t60_dev/0030.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0031.JPG b/docs/images/t60_dev/0031.JPG
index 870f22b5..870f22b5 100644
--- a/docs/howtos/t60_dev/0031.JPG
+++ b/docs/images/t60_dev/0031.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0032.JPG b/docs/images/t60_dev/0032.JPG
index 70ff44a9..70ff44a9 100644
--- a/docs/howtos/t60_dev/0032.JPG
+++ b/docs/images/t60_dev/0032.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0033.JPG b/docs/images/t60_dev/0033.JPG
index 142ca979..142ca979 100644
--- a/docs/howtos/t60_dev/0033.JPG
+++ b/docs/images/t60_dev/0033.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0034.JPG b/docs/images/t60_dev/0034.JPG
index 907192ee..907192ee 100644
--- a/docs/howtos/t60_dev/0034.JPG
+++ b/docs/images/t60_dev/0034.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0035.JPG b/docs/images/t60_dev/0035.JPG
index bf38c895..bf38c895 100644
--- a/docs/howtos/t60_dev/0035.JPG
+++ b/docs/images/t60_dev/0035.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0036.JPG b/docs/images/t60_dev/0036.JPG
index a7e5bdf6..a7e5bdf6 100644
--- a/docs/howtos/t60_dev/0036.JPG
+++ b/docs/images/t60_dev/0036.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0037.JPG b/docs/images/t60_dev/0037.JPG
index ab30c27e..ab30c27e 100644
--- a/docs/howtos/t60_dev/0037.JPG
+++ b/docs/images/t60_dev/0037.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0038.JPG b/docs/images/t60_dev/0038.JPG
index 362c5479..362c5479 100644
--- a/docs/howtos/t60_dev/0038.JPG
+++ b/docs/images/t60_dev/0038.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0039.JPG b/docs/images/t60_dev/0039.JPG
index 224f72ee..224f72ee 100644
--- a/docs/howtos/t60_dev/0039.JPG
+++ b/docs/images/t60_dev/0039.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0040.JPG b/docs/images/t60_dev/0040.JPG
index adcd9232..adcd9232 100644
--- a/docs/howtos/t60_dev/0040.JPG
+++ b/docs/images/t60_dev/0040.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0041.JPG b/docs/images/t60_dev/0041.JPG
index 2a046824..2a046824 100644
--- a/docs/howtos/t60_dev/0041.JPG
+++ b/docs/images/t60_dev/0041.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0042.JPG b/docs/images/t60_dev/0042.JPG
index b5ed8ec9..b5ed8ec9 100644
--- a/docs/howtos/t60_dev/0042.JPG
+++ b/docs/images/t60_dev/0042.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0043.JPG b/docs/images/t60_dev/0043.JPG
index 7144a98c..7144a98c 100644
--- a/docs/howtos/t60_dev/0043.JPG
+++ b/docs/images/t60_dev/0043.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0044.JPG b/docs/images/t60_dev/0044.JPG
index 27a24c68..27a24c68 100644
--- a/docs/howtos/t60_dev/0044.JPG
+++ b/docs/images/t60_dev/0044.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0045.JPG b/docs/images/t60_dev/0045.JPG
index 997b4980..997b4980 100644
--- a/docs/howtos/t60_dev/0045.JPG
+++ b/docs/images/t60_dev/0045.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0046.JPG b/docs/images/t60_dev/0046.JPG
index 25d6baa8..25d6baa8 100644
--- a/docs/howtos/t60_dev/0046.JPG
+++ b/docs/images/t60_dev/0046.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0047.JPG b/docs/images/t60_dev/0047.JPG
index 6b57bf34..6b57bf34 100644
--- a/docs/howtos/t60_dev/0047.JPG
+++ b/docs/images/t60_dev/0047.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0048.JPG b/docs/images/t60_dev/0048.JPG
index 7339f07d..7339f07d 100644
--- a/docs/howtos/t60_dev/0048.JPG
+++ b/docs/images/t60_dev/0048.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0049.JPG b/docs/images/t60_dev/0049.JPG
index cf3a7fd5..cf3a7fd5 100644
--- a/docs/howtos/t60_dev/0049.JPG
+++ b/docs/images/t60_dev/0049.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0050.JPG b/docs/images/t60_dev/0050.JPG
index 7de4edd1..7de4edd1 100644
--- a/docs/howtos/t60_dev/0050.JPG
+++ b/docs/images/t60_dev/0050.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0051.JPG b/docs/images/t60_dev/0051.JPG
index 87c41b36..87c41b36 100644
--- a/docs/howtos/t60_dev/0051.JPG
+++ b/docs/images/t60_dev/0051.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0052.JPG b/docs/images/t60_dev/0052.JPG
index 4a8e4433..4a8e4433 100644
--- a/docs/howtos/t60_dev/0052.JPG
+++ b/docs/images/t60_dev/0052.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0053.JPG b/docs/images/t60_dev/0053.JPG
index e1044fc7..e1044fc7 100644
--- a/docs/howtos/t60_dev/0053.JPG
+++ b/docs/images/t60_dev/0053.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0054.JPG b/docs/images/t60_dev/0054.JPG
index c96c020e..c96c020e 100644
--- a/docs/howtos/t60_dev/0054.JPG
+++ b/docs/images/t60_dev/0054.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0055.JPG b/docs/images/t60_dev/0055.JPG
index 6da87d5f..6da87d5f 100644
--- a/docs/howtos/t60_dev/0055.JPG
+++ b/docs/images/t60_dev/0055.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0056.JPG b/docs/images/t60_dev/0056.JPG
index 81a6659b..81a6659b 100644
--- a/docs/howtos/t60_dev/0056.JPG
+++ b/docs/images/t60_dev/0056.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0057.JPG b/docs/images/t60_dev/0057.JPG
index 268fede4..268fede4 100644
--- a/docs/howtos/t60_dev/0057.JPG
+++ b/docs/images/t60_dev/0057.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0058.JPG b/docs/images/t60_dev/0058.JPG
index bedfb127..bedfb127 100644
--- a/docs/howtos/t60_dev/0058.JPG
+++ b/docs/images/t60_dev/0058.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0059.JPG b/docs/images/t60_dev/0059.JPG
index 422687c7..422687c7 100644
--- a/docs/howtos/t60_dev/0059.JPG
+++ b/docs/images/t60_dev/0059.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0060.JPG b/docs/images/t60_dev/0060.JPG
index 8743c0d9..8743c0d9 100644
--- a/docs/howtos/t60_dev/0060.JPG
+++ b/docs/images/t60_dev/0060.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0061.JPG b/docs/images/t60_dev/0061.JPG
index e05f6266..e05f6266 100644
--- a/docs/howtos/t60_dev/0061.JPG
+++ b/docs/images/t60_dev/0061.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0062.JPG b/docs/images/t60_dev/0062.JPG
index 1fe77a7d..1fe77a7d 100644
--- a/docs/howtos/t60_dev/0062.JPG
+++ b/docs/images/t60_dev/0062.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0063.JPG b/docs/images/t60_dev/0063.JPG
index 87b77611..87b77611 100644
--- a/docs/howtos/t60_dev/0063.JPG
+++ b/docs/images/t60_dev/0063.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0064.JPG b/docs/images/t60_dev/0064.JPG
index e80189e1..e80189e1 100644
--- a/docs/howtos/t60_dev/0064.JPG
+++ b/docs/images/t60_dev/0064.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0065.JPG b/docs/images/t60_dev/0065.JPG
index 4e77a889..4e77a889 100644
--- a/docs/howtos/t60_dev/0065.JPG
+++ b/docs/images/t60_dev/0065.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0066.JPG b/docs/images/t60_dev/0066.JPG
index 793c0f82..793c0f82 100644
--- a/docs/howtos/t60_dev/0066.JPG
+++ b/docs/images/t60_dev/0066.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0068.JPG b/docs/images/t60_dev/0068.JPG
index 9f9f299d..9f9f299d 100644
--- a/docs/howtos/t60_dev/0068.JPG
+++ b/docs/images/t60_dev/0068.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0069.JPG b/docs/images/t60_dev/0069.JPG
index 98931e6a..98931e6a 100644
--- a/docs/howtos/t60_dev/0069.JPG
+++ b/docs/images/t60_dev/0069.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0070.JPG b/docs/images/t60_dev/0070.JPG
index 09958c35..09958c35 100644
--- a/docs/howtos/t60_dev/0070.JPG
+++ b/docs/images/t60_dev/0070.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0071.JPG b/docs/images/t60_dev/0071.JPG
index 104d21ea..104d21ea 100644
--- a/docs/howtos/t60_dev/0071.JPG
+++ b/docs/images/t60_dev/0071.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0072.JPG b/docs/images/t60_dev/0072.JPG
index 66c8e3b5..66c8e3b5 100644
--- a/docs/howtos/t60_dev/0072.JPG
+++ b/docs/images/t60_dev/0072.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0073.JPG b/docs/images/t60_dev/0073.JPG
index 5d9b9fa7..5d9b9fa7 100644
--- a/docs/howtos/t60_dev/0073.JPG
+++ b/docs/images/t60_dev/0073.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/0074.JPG b/docs/images/t60_dev/0074.JPG
index 303264af..303264af 100644
--- a/docs/howtos/t60_dev/0074.JPG
+++ b/docs/images/t60_dev/0074.JPG
Binary files differ
diff --git a/docs/howtos/t60_dev/t60_unbrick.jpg b/docs/images/t60_dev/t60_unbrick.jpg
index 820a9b42..820a9b42 100644
--- a/docs/howtos/t60_dev/t60_unbrick.jpg
+++ b/docs/images/t60_dev/t60_unbrick.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0000.jpg b/docs/images/x60_heatsink/0000.jpg
index ce0ec3be..ce0ec3be 100644
--- a/docs/howtos/x60_heatsink/0000.jpg
+++ b/docs/images/x60_heatsink/0000.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0001.jpg b/docs/images/x60_heatsink/0001.jpg
index 2bbc0cae..2bbc0cae 100644
--- a/docs/howtos/x60_heatsink/0001.jpg
+++ b/docs/images/x60_heatsink/0001.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0002.jpg b/docs/images/x60_heatsink/0002.jpg
index b55db3b8..b55db3b8 100644
--- a/docs/howtos/x60_heatsink/0002.jpg
+++ b/docs/images/x60_heatsink/0002.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0003.jpg b/docs/images/x60_heatsink/0003.jpg
index c5799ae5..c5799ae5 100644
--- a/docs/howtos/x60_heatsink/0003.jpg
+++ b/docs/images/x60_heatsink/0003.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0004.jpg b/docs/images/x60_heatsink/0004.jpg
index cd47840d..cd47840d 100644
--- a/docs/howtos/x60_heatsink/0004.jpg
+++ b/docs/images/x60_heatsink/0004.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0005.jpg b/docs/images/x60_heatsink/0005.jpg
index 418c9d29..418c9d29 100644
--- a/docs/howtos/x60_heatsink/0005.jpg
+++ b/docs/images/x60_heatsink/0005.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0006.jpg b/docs/images/x60_heatsink/0006.jpg
index 6d36d932..6d36d932 100644
--- a/docs/howtos/x60_heatsink/0006.jpg
+++ b/docs/images/x60_heatsink/0006.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0007.jpg b/docs/images/x60_heatsink/0007.jpg
index 971ccdfd..971ccdfd 100644
--- a/docs/howtos/x60_heatsink/0007.jpg
+++ b/docs/images/x60_heatsink/0007.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0008.jpg b/docs/images/x60_heatsink/0008.jpg
index 24e65263..24e65263 100644
--- a/docs/howtos/x60_heatsink/0008.jpg
+++ b/docs/images/x60_heatsink/0008.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0009.jpg b/docs/images/x60_heatsink/0009.jpg
index d318395b..d318395b 100644
--- a/docs/howtos/x60_heatsink/0009.jpg
+++ b/docs/images/x60_heatsink/0009.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0010.jpg b/docs/images/x60_heatsink/0010.jpg
index 5e6fdc75..5e6fdc75 100644
--- a/docs/howtos/x60_heatsink/0010.jpg
+++ b/docs/images/x60_heatsink/0010.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0011.jpg b/docs/images/x60_heatsink/0011.jpg
index 101cf6af..101cf6af 100644
--- a/docs/howtos/x60_heatsink/0011.jpg
+++ b/docs/images/x60_heatsink/0011.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0012.jpg b/docs/images/x60_heatsink/0012.jpg
index dbb6669a..dbb6669a 100644
--- a/docs/howtos/x60_heatsink/0012.jpg
+++ b/docs/images/x60_heatsink/0012.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0013.jpg b/docs/images/x60_heatsink/0013.jpg
index 2d2b9dd4..2d2b9dd4 100644
--- a/docs/howtos/x60_heatsink/0013.jpg
+++ b/docs/images/x60_heatsink/0013.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0014.jpg b/docs/images/x60_heatsink/0014.jpg
index 733f997a..733f997a 100644
--- a/docs/howtos/x60_heatsink/0014.jpg
+++ b/docs/images/x60_heatsink/0014.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0015.jpg b/docs/images/x60_heatsink/0015.jpg
index 1e811660..1e811660 100644
--- a/docs/howtos/x60_heatsink/0015.jpg
+++ b/docs/images/x60_heatsink/0015.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0016.jpg b/docs/images/x60_heatsink/0016.jpg
index ea418a51..ea418a51 100644
--- a/docs/howtos/x60_heatsink/0016.jpg
+++ b/docs/images/x60_heatsink/0016.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0017.jpg b/docs/images/x60_heatsink/0017.jpg
index 8a67482f..8a67482f 100644
--- a/docs/howtos/x60_heatsink/0017.jpg
+++ b/docs/images/x60_heatsink/0017.jpg
Binary files differ
diff --git a/docs/howtos/x60_heatsink/0018.jpg b/docs/images/x60_heatsink/0018.jpg
index 98c43ac1..98c43ac1 100644
--- a/docs/howtos/x60_heatsink/0018.jpg
+++ b/docs/images/x60_heatsink/0018.jpg
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0001.JPG b/docs/images/x60_lcd_change/0001.JPG
index fd066eb2..fd066eb2 100755
--- a/docs/howtos/x60_lcd_change/0001.JPG
+++ b/docs/images/x60_lcd_change/0001.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0002.JPG b/docs/images/x60_lcd_change/0002.JPG
index 96949f1e..96949f1e 100755
--- a/docs/howtos/x60_lcd_change/0002.JPG
+++ b/docs/images/x60_lcd_change/0002.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0003.JPG b/docs/images/x60_lcd_change/0003.JPG
index 90216aaa..90216aaa 100755
--- a/docs/howtos/x60_lcd_change/0003.JPG
+++ b/docs/images/x60_lcd_change/0003.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0004.JPG b/docs/images/x60_lcd_change/0004.JPG
index 3b704a45..3b704a45 100755
--- a/docs/howtos/x60_lcd_change/0004.JPG
+++ b/docs/images/x60_lcd_change/0004.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0005.JPG b/docs/images/x60_lcd_change/0005.JPG
index 823bab94..823bab94 100755
--- a/docs/howtos/x60_lcd_change/0005.JPG
+++ b/docs/images/x60_lcd_change/0005.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0006.JPG b/docs/images/x60_lcd_change/0006.JPG
index 040f2ca4..040f2ca4 100755
--- a/docs/howtos/x60_lcd_change/0006.JPG
+++ b/docs/images/x60_lcd_change/0006.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0007.JPG b/docs/images/x60_lcd_change/0007.JPG
index 42c2607c..42c2607c 100755
--- a/docs/howtos/x60_lcd_change/0007.JPG
+++ b/docs/images/x60_lcd_change/0007.JPG
Binary files differ
diff --git a/docs/howtos/x60_security/0000.jpg b/docs/images/x60_security/0000.jpg
index ce0ec3be..ce0ec3be 100644
--- a/docs/howtos/x60_security/0000.jpg
+++ b/docs/images/x60_security/0000.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0000_bluetooth.jpg b/docs/images/x60_security/0000_bluetooth.jpg
index 94a255ff..94a255ff 100644
--- a/docs/howtos/x60_security/0000_bluetooth.jpg
+++ b/docs/images/x60_security/0000_bluetooth.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0000_bluetooth0.jpg b/docs/images/x60_security/0000_bluetooth0.jpg
index a750b0cd..a750b0cd 100644
--- a/docs/howtos/x60_security/0000_bluetooth0.jpg
+++ b/docs/images/x60_security/0000_bluetooth0.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0000_simcard0.jpg b/docs/images/x60_security/0000_simcard0.jpg
index 40837ea7..40837ea7 100644
--- a/docs/howtos/x60_security/0000_simcard0.jpg
+++ b/docs/images/x60_security/0000_simcard0.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0000_simcard1.jpg b/docs/images/x60_security/0000_simcard1.jpg
index c0a5b359..c0a5b359 100644
--- a/docs/howtos/x60_security/0000_simcard1.jpg
+++ b/docs/images/x60_security/0000_simcard1.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0001.jpg b/docs/images/x60_security/0001.jpg
index 2bbc0cae..2bbc0cae 100644
--- a/docs/howtos/x60_security/0001.jpg
+++ b/docs/images/x60_security/0001.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0001_microphone.jpg b/docs/images/x60_security/0001_microphone.jpg
index c419060d..c419060d 100644
--- a/docs/howtos/x60_security/0001_microphone.jpg
+++ b/docs/images/x60_security/0001_microphone.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0001_modem.jpg b/docs/images/x60_security/0001_modem.jpg
index 6a7a6a02..6a7a6a02 100644
--- a/docs/howtos/x60_security/0001_modem.jpg
+++ b/docs/images/x60_security/0001_modem.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0001_overview.jpg b/docs/images/x60_security/0001_overview.jpg
index 7268e49f..7268e49f 100644
--- a/docs/howtos/x60_security/0001_overview.jpg
+++ b/docs/images/x60_security/0001_overview.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0001_speaker.jpg b/docs/images/x60_security/0001_speaker.jpg
index 28d3ed62..28d3ed62 100644
--- a/docs/howtos/x60_security/0001_speaker.jpg
+++ b/docs/images/x60_security/0001_speaker.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0001_wlan_wwan.jpg b/docs/images/x60_security/0001_wlan_wwan.jpg
index 0db858de..0db858de 100644
--- a/docs/howtos/x60_security/0001_wlan_wwan.jpg
+++ b/docs/images/x60_security/0001_wlan_wwan.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0002.jpg b/docs/images/x60_security/0002.jpg
index b55db3b8..b55db3b8 100644
--- a/docs/howtos/x60_security/0002.jpg
+++ b/docs/images/x60_security/0002.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0003.jpg b/docs/images/x60_security/0003.jpg
index c5799ae5..c5799ae5 100644
--- a/docs/howtos/x60_security/0003.jpg
+++ b/docs/images/x60_security/0003.jpg
Binary files differ
diff --git a/docs/howtos/x60_security/0004.jpg b/docs/images/x60_security/0004.jpg
index cd47840d..cd47840d 100644
--- a/docs/howtos/x60_security/0004.jpg
+++ b/docs/images/x60_security/0004.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0000.jpg b/docs/images/x60_unbrick/0000.jpg
index ce0ec3be..ce0ec3be 100644
--- a/docs/howtos/x60_unbrick/0000.jpg
+++ b/docs/images/x60_unbrick/0000.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0001.jpg b/docs/images/x60_unbrick/0001.jpg
index 2bbc0cae..2bbc0cae 100644
--- a/docs/howtos/x60_unbrick/0001.jpg
+++ b/docs/images/x60_unbrick/0001.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0002.jpg b/docs/images/x60_unbrick/0002.jpg
index b55db3b8..b55db3b8 100644
--- a/docs/howtos/x60_unbrick/0002.jpg
+++ b/docs/images/x60_unbrick/0002.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0003.jpg b/docs/images/x60_unbrick/0003.jpg
index c5799ae5..c5799ae5 100644
--- a/docs/howtos/x60_unbrick/0003.jpg
+++ b/docs/images/x60_unbrick/0003.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0004.jpg b/docs/images/x60_unbrick/0004.jpg
index cd47840d..cd47840d 100644
--- a/docs/howtos/x60_unbrick/0004.jpg
+++ b/docs/images/x60_unbrick/0004.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0005.jpg b/docs/images/x60_unbrick/0005.jpg
index 418c9d29..418c9d29 100644
--- a/docs/howtos/x60_unbrick/0005.jpg
+++ b/docs/images/x60_unbrick/0005.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0006.jpg b/docs/images/x60_unbrick/0006.jpg
index 6d36d932..6d36d932 100644
--- a/docs/howtos/x60_unbrick/0006.jpg
+++ b/docs/images/x60_unbrick/0006.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0007.jpg b/docs/images/x60_unbrick/0007.jpg
index 971ccdfd..971ccdfd 100644
--- a/docs/howtos/x60_unbrick/0007.jpg
+++ b/docs/images/x60_unbrick/0007.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0008.jpg b/docs/images/x60_unbrick/0008.jpg
index 24e65263..24e65263 100644
--- a/docs/howtos/x60_unbrick/0008.jpg
+++ b/docs/images/x60_unbrick/0008.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0009.jpg b/docs/images/x60_unbrick/0009.jpg
index d318395b..d318395b 100644
--- a/docs/howtos/x60_unbrick/0009.jpg
+++ b/docs/images/x60_unbrick/0009.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0010.jpg b/docs/images/x60_unbrick/0010.jpg
index 5e6fdc75..5e6fdc75 100644
--- a/docs/howtos/x60_unbrick/0010.jpg
+++ b/docs/images/x60_unbrick/0010.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0011.jpg b/docs/images/x60_unbrick/0011.jpg
index edc14c74..edc14c74 100644
--- a/docs/howtos/x60_unbrick/0011.jpg
+++ b/docs/images/x60_unbrick/0011.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0012.jpg b/docs/images/x60_unbrick/0012.jpg
index dbb6669a..dbb6669a 100644
--- a/docs/howtos/x60_unbrick/0012.jpg
+++ b/docs/images/x60_unbrick/0012.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0013.jpg b/docs/images/x60_unbrick/0013.jpg
index 2d2b9dd4..2d2b9dd4 100644
--- a/docs/howtos/x60_unbrick/0013.jpg
+++ b/docs/images/x60_unbrick/0013.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0014.jpg b/docs/images/x60_unbrick/0014.jpg
index 733f997a..733f997a 100644
--- a/docs/howtos/x60_unbrick/0014.jpg
+++ b/docs/images/x60_unbrick/0014.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0015.jpg b/docs/images/x60_unbrick/0015.jpg
index 1e811660..1e811660 100644
--- a/docs/howtos/x60_unbrick/0015.jpg
+++ b/docs/images/x60_unbrick/0015.jpg
Binary files differ
diff --git a/docs/images/x60_unbrick/0016.jpg b/docs/images/x60_unbrick/0016.jpg
new file mode 100644
index 00000000..a44b2e69
--- /dev/null
+++ b/docs/images/x60_unbrick/0016.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0017.jpg b/docs/images/x60_unbrick/0017.jpg
index 69b28c06..69b28c06 100644
--- a/docs/howtos/x60_unbrick/0017.jpg
+++ b/docs/images/x60_unbrick/0017.jpg
Binary files differ
diff --git a/docs/images/x60_unbrick/0019.jpg b/docs/images/x60_unbrick/0019.jpg
new file mode 100644
index 00000000..f88cc220
--- /dev/null
+++ b/docs/images/x60_unbrick/0019.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0020.jpg b/docs/images/x60_unbrick/0020.jpg
index e6b2536b..e6b2536b 100644
--- a/docs/howtos/x60_unbrick/0020.jpg
+++ b/docs/images/x60_unbrick/0020.jpg
Binary files differ
diff --git a/docs/images/x60_unbrick/0022.jpg b/docs/images/x60_unbrick/0022.jpg
new file mode 100644
index 00000000..cb2bf33d
--- /dev/null
+++ b/docs/images/x60_unbrick/0022.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0024.jpg b/docs/images/x60_unbrick/0024.jpg
index 9ce9d45a..9ce9d45a 100644
--- a/docs/howtos/x60_unbrick/0024.jpg
+++ b/docs/images/x60_unbrick/0024.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0025.jpg b/docs/images/x60_unbrick/0025.jpg
index 7b6da739..7b6da739 100644
--- a/docs/howtos/x60_unbrick/0025.jpg
+++ b/docs/images/x60_unbrick/0025.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0026.jpg b/docs/images/x60_unbrick/0026.jpg
index 526c11c4..526c11c4 100644
--- a/docs/howtos/x60_unbrick/0026.jpg
+++ b/docs/images/x60_unbrick/0026.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0027.jpg b/docs/images/x60_unbrick/0027.jpg
index 877dc593..877dc593 100644
--- a/docs/howtos/x60_unbrick/0027.jpg
+++ b/docs/images/x60_unbrick/0027.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0028.jpg b/docs/images/x60_unbrick/0028.jpg
index d22d9324..d22d9324 100644
--- a/docs/howtos/x60_unbrick/0028.jpg
+++ b/docs/images/x60_unbrick/0028.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0029.jpg b/docs/images/x60_unbrick/0029.jpg
index 27f91907..27f91907 100644
--- a/docs/howtos/x60_unbrick/0029.jpg
+++ b/docs/images/x60_unbrick/0029.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0030.jpg b/docs/images/x60_unbrick/0030.jpg
index 813b5c61..813b5c61 100644
--- a/docs/howtos/x60_unbrick/0030.jpg
+++ b/docs/images/x60_unbrick/0030.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0031.jpg b/docs/images/x60_unbrick/0031.jpg
index 49fe5416..49fe5416 100644
--- a/docs/howtos/x60_unbrick/0031.jpg
+++ b/docs/images/x60_unbrick/0031.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0032.jpg b/docs/images/x60_unbrick/0032.jpg
index e8625ef9..e8625ef9 100644
--- a/docs/howtos/x60_unbrick/0032.jpg
+++ b/docs/images/x60_unbrick/0032.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0033.jpg b/docs/images/x60_unbrick/0033.jpg
index 3abfa37b..3abfa37b 100644
--- a/docs/howtos/x60_unbrick/0033.jpg
+++ b/docs/images/x60_unbrick/0033.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0034.jpg b/docs/images/x60_unbrick/0034.jpg
index c8ab5970..c8ab5970 100644
--- a/docs/howtos/x60_unbrick/0034.jpg
+++ b/docs/images/x60_unbrick/0034.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0035.jpg b/docs/images/x60_unbrick/0035.jpg
index 03d5482f..03d5482f 100644
--- a/docs/howtos/x60_unbrick/0035.jpg
+++ b/docs/images/x60_unbrick/0035.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0036.jpg b/docs/images/x60_unbrick/0036.jpg
index 244c06c2..244c06c2 100644
--- a/docs/howtos/x60_unbrick/0036.jpg
+++ b/docs/images/x60_unbrick/0036.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0037.jpg b/docs/images/x60_unbrick/0037.jpg
index f55db4ff..f55db4ff 100644
--- a/docs/howtos/x60_unbrick/0037.jpg
+++ b/docs/images/x60_unbrick/0037.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0038.jpg b/docs/images/x60_unbrick/0038.jpg
index 07358253..07358253 100644
--- a/docs/howtos/x60_unbrick/0038.jpg
+++ b/docs/images/x60_unbrick/0038.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0039.jpg b/docs/images/x60_unbrick/0039.jpg
index dff9ba4c..dff9ba4c 100644
--- a/docs/howtos/x60_unbrick/0039.jpg
+++ b/docs/images/x60_unbrick/0039.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0040.jpg b/docs/images/x60_unbrick/0040.jpg
index 74a9b7fb..74a9b7fb 100644
--- a/docs/howtos/x60_unbrick/0040.jpg
+++ b/docs/images/x60_unbrick/0040.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0041.jpg b/docs/images/x60_unbrick/0041.jpg
index 1b15834d..1b15834d 100644
--- a/docs/howtos/x60_unbrick/0041.jpg
+++ b/docs/images/x60_unbrick/0041.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0042.jpg b/docs/images/x60_unbrick/0042.jpg
index 849a2602..849a2602 100644
--- a/docs/howtos/x60_unbrick/0042.jpg
+++ b/docs/images/x60_unbrick/0042.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0043.jpg b/docs/images/x60_unbrick/0043.jpg
index c8426954..c8426954 100644
--- a/docs/howtos/x60_unbrick/0043.jpg
+++ b/docs/images/x60_unbrick/0043.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0044.jpg b/docs/images/x60_unbrick/0044.jpg
index 2b783804..2b783804 100644
--- a/docs/howtos/x60_unbrick/0044.jpg
+++ b/docs/images/x60_unbrick/0044.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0045.jpg b/docs/images/x60_unbrick/0045.jpg
index d6d8e2da..d6d8e2da 100644
--- a/docs/howtos/x60_unbrick/0045.jpg
+++ b/docs/images/x60_unbrick/0045.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0046.jpg b/docs/images/x60_unbrick/0046.jpg
index 5eef8787..5eef8787 100644
--- a/docs/howtos/x60_unbrick/0046.jpg
+++ b/docs/images/x60_unbrick/0046.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0047.jpg b/docs/images/x60_unbrick/0047.jpg
index 87517e02..87517e02 100644
--- a/docs/howtos/x60_unbrick/0047.jpg
+++ b/docs/images/x60_unbrick/0047.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0048.jpg b/docs/images/x60_unbrick/0048.jpg
index a701a48e..a701a48e 100644
--- a/docs/howtos/x60_unbrick/0048.jpg
+++ b/docs/images/x60_unbrick/0048.jpg
Binary files differ
diff --git a/docs/howtos/x60_unbrick/0049.jpg b/docs/images/x60_unbrick/0049.jpg
index 630ac53a..630ac53a 100644
--- a/docs/howtos/x60_unbrick/0049.jpg
+++ b/docs/images/x60_unbrick/0049.jpg
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/.htaccess b/docs/images/x60t_unbrick/.htaccess
index 75da6747..75da6747 100644
--- a/docs/howtos/x60t_unbrick/.htaccess
+++ b/docs/images/x60t_unbrick/.htaccess
diff --git a/docs/howtos/x60t_unbrick/0000.JPG b/docs/images/x60t_unbrick/0000.JPG
index 4d8de31b..4d8de31b 100644
--- a/docs/howtos/x60t_unbrick/0000.JPG
+++ b/docs/images/x60t_unbrick/0000.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0001.JPG b/docs/images/x60t_unbrick/0001.JPG
index 7783c4fc..7783c4fc 100644
--- a/docs/howtos/x60t_unbrick/0001.JPG
+++ b/docs/images/x60t_unbrick/0001.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0002.JPG b/docs/images/x60t_unbrick/0002.JPG
index ddc6aac9..ddc6aac9 100644
--- a/docs/howtos/x60t_unbrick/0002.JPG
+++ b/docs/images/x60t_unbrick/0002.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0003.JPG b/docs/images/x60t_unbrick/0003.JPG
index e1b65868..e1b65868 100644
--- a/docs/howtos/x60t_unbrick/0003.JPG
+++ b/docs/images/x60t_unbrick/0003.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0004.JPG b/docs/images/x60t_unbrick/0004.JPG
index b4ae18d3..b4ae18d3 100644
--- a/docs/howtos/x60t_unbrick/0004.JPG
+++ b/docs/images/x60t_unbrick/0004.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0005.JPG b/docs/images/x60t_unbrick/0005.JPG
index b7b324b9..b7b324b9 100644
--- a/docs/howtos/x60t_unbrick/0005.JPG
+++ b/docs/images/x60t_unbrick/0005.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0006.JPG b/docs/images/x60t_unbrick/0006.JPG
index 795d02ac..795d02ac 100644
--- a/docs/howtos/x60t_unbrick/0006.JPG
+++ b/docs/images/x60t_unbrick/0006.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0007.JPG b/docs/images/x60t_unbrick/0007.JPG
index 0ccdbadb..0ccdbadb 100644
--- a/docs/howtos/x60t_unbrick/0007.JPG
+++ b/docs/images/x60t_unbrick/0007.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0008.JPG b/docs/images/x60t_unbrick/0008.JPG
index 5312934b..5312934b 100644
--- a/docs/howtos/x60t_unbrick/0008.JPG
+++ b/docs/images/x60t_unbrick/0008.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0009.JPG b/docs/images/x60t_unbrick/0009.JPG
index 9d8e7fa7..9d8e7fa7 100644
--- a/docs/howtos/x60t_unbrick/0009.JPG
+++ b/docs/images/x60t_unbrick/0009.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0010.JPG b/docs/images/x60t_unbrick/0010.JPG
index ea37b180..ea37b180 100644
--- a/docs/howtos/x60t_unbrick/0010.JPG
+++ b/docs/images/x60t_unbrick/0010.JPG
Binary files differ
diff --git a/docs/howtos/x60t_unbrick/0011.JPG b/docs/images/x60t_unbrick/0011.JPG
index ebbaa744..ebbaa744 100644
--- a/docs/howtos/x60t_unbrick/0011.JPG
+++ b/docs/images/x60t_unbrick/0011.JPG
Binary files differ
diff --git a/docs/index.html b/docs/index.html
index e5fe5df0..fe17fc4e 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/>
diff --git a/docs/install/index.html b/docs/install/index.html
new file mode 100644
index 00000000..571e1150
--- /dev/null
+++ b/docs/install/index.html
@@ -0,0 +1,405 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>Installing libreboot</title>
+</head>
+
+<body>
+
+ <h1 id="pagetop">Installing libreboot</h1>
+ <p>
+ This section relates to installing libreboot on supported targets.
+ </p>
+ <p>
+ Or <a href="../index.html">Back to main index</a>.
+ </p>
+ <h2>Installing libreboot (software)</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)</h2>
+ <ul>
+ <li><a href="x60_unbrick.html">ThinkPad X60/X60S: How to unbrick</a></li>
+ <li><a href="x60tablet_unbrick.html">ThinkPad X60 Tablet: How to unbrick</a></li>
+ <li><a href="t60_unbrick.html">ThinkPad T60: How to unbrick</a></li>
+ </ul>
+
+<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="../hcl/index.html#supported_t60_list">../hcl/index.html#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>
+ </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/index.html#grub_keyboard">../grub/index.html#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="../git/index.html#build_bucts">../git/index.html#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="../hcl/index.html#supported_t60_list">../hcl/index.html#supported_t60_list</a></b></p>
+
+ <p>
+ First, <a href="../git/index.html#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="../git/index.html#build_flashrom">How to build flashrom from source</a></li>
+ <li><a href="../git/index.html#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="../security/x60_security.html">../security/x60_security.html</a> and
+ <a href="../security/t60_security.html">../security/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="../hcl/index.html#macbook11">../hcl/index.html#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="../hcl/index.html#macbook21">../hcl/index.html#macbook21</a>.
+ </p>
+
+ <p>
+ First, <a href="../git/index.html#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="../git/index.html#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="../hcl/index.html#supported_t60_list">../hcl/index.html#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="../hcl/index.html#macbook21">../hcl/index.html#macbook21</a>.
+ </b>
+ </p>
+ <p>
+ First, <a href="../git/index.html#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="../git/index.html#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.
+ </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).
+ </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="../security/x60_security.html">../security/x60_security.html</a> and
+ <a href="../security/t60_security.html">../security/t60_security.html</a>.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/howtos/t60_unbrick.html b/docs/install/t60_unbrick.html
index 69648e1c..b79f3de4 100644
--- a/docs/howtos/t60_unbrick.html
+++ b/docs/install/t60_unbrick.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Unbricking the ThinkPad T60</title>
@@ -23,7 +18,7 @@
<aside>This guide will show you how to recover from a bad flash that prevents your ThinkPad T60 from booting.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h2>Table of Contents</h2>
<ul>
@@ -43,15 +38,15 @@
<li>a 2nd computer (maybe another T60. any computer will do)</li>
<li>external flashrom-compatible programmer (I'm using the "bus pirate")
<li>SOIC-8 IC clip (I'm using the Pomona 5250)</li>
- <li>Cable (programmer<>clip) - mine came with the bus pirate.</li>
- <li>USB mini a to b cable (for buspirate<>computer connection).</li>
+ <li>Cable (programmer&lt;&gt;clip) - mine came with the bus pirate.</li>
+ <li>USB mini a to b cable (for buspirate&lt;&gt;computer connection).</li>
<li>rubbing a***hol (misspelling intentional. halal internet) and thermal compound for changing CPU heatsink (procedure involves removing heatsink)</li>
</ul>
<h1 id="software_requirements">Software requirements</h1>
<ul>
<li>GNU/Linux (on the 2nd computer)</li>
- <li>flashrom software (on the 2nd computer): <a href="http://flashrom.org/" target="_blank">http://flashrom.org/</a>
+ <li>flashrom software (on the 2nd computer): <a href="http://flashrom.org/">http://flashrom.org/</a>
</ul>
<h1 id="bucts_brick">Brick type 1: bucts not reset.</h1>
@@ -60,14 +55,14 @@
the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.<br/><br/>
In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:<br/>
- <img src="t60_dev/0006.JPG" alt="" /><br/><br/>
+ <img src="../images/t60_dev/0006.JPG" alt="" /><br/><br/>
*Those dd commands should be applied to all newly compiled T60 ROM's (the ROM's in libreboot binary archives already have this applied!):<br/>
dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k<br/>
dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump<br/>
dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc<br/>
(doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running,
- using those instructions: <a href="http://www.coreboot.org/Board:lenovo/x60/Installation" target="_blank">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.
+ using those instructions: <a href="http://www.coreboot.org/Board:lenovo/x60/Installation">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.
(it says x60, but instructions for t60 are identical)
</p>
@@ -83,109 +78,109 @@
<p>
Remove those screws and remove the HDD:<br/>
- <img src="t60_dev/0001.JPG" alt="" /> <img src="t60_dev/0002.JPG" alt="" />
+ <img src="../images/t60_dev/0001.JPG" alt="" /> <img src="../images/t60_dev/0002.JPG" alt="" />
</p>
<p>
Lift off the palm rest:<br/>
- <img src="t60_dev/0003.JPG" alt="" />
+ <img src="../images/t60_dev/0003.JPG" alt="" />
</p>
<p>
Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:<br/>
- <img src="t60_dev/0004.JPG" alt="" /> <img src="t60_dev/0005.JPG" alt="" /> <img src="t60_dev/0006.JPG" alt="" />
+ <img src="../images/t60_dev/0004.JPG" alt="" /> <img src="../images/t60_dev/0005.JPG" alt="" /> <img src="../images/t60_dev/0006.JPG" alt="" />
</p>
<p>
Gently wedge both sides loose:<br/>
- <img src="t60_dev/0007.JPG" alt="" /> <img src="t60_dev/0008.JPG" alt="" />
+ <img src="../images/t60_dev/0007.JPG" alt="" /> <img src="../images/t60_dev/0008.JPG" alt="" />
</p>
<p>
Remove that cable from the position:<br/>
- <img src="t60_dev/0009.JPG" alt="" /> <img src="t60_dev/0010.JPG" alt="" />
+ <img src="../images/t60_dev/0009.JPG" alt="" /> <img src="../images/t60_dev/0010.JPG" alt="" />
</p>
<p>
Now remove that bezel. Remove wifi, nvram battery and speaker connector (also remove 56k modem, on the left of wifi):<br/>
- <img src="t60_dev/0011.JPG" alt="" />
+ <img src="../images/t60_dev/0011.JPG" alt="" />
</p>
<p>
Remove those screws:<br/>
- <img src="t60_dev/0012.JPG" alt="" />
+ <img src="../images/t60_dev/0012.JPG" alt="" />
</p>
<p>
Disconnect the power jack:<br/>
- <img src="t60_dev/0013.JPG" alt="" />
+ <img src="../images/t60_dev/0013.JPG" alt="" />
</p>
<p>
Remove nvram battery:<br/>
- <img src="t60_dev/0014.JPG" alt="" />
+ <img src="../images/t60_dev/0014.JPG" alt="" />
</p>
<p>
Disconnect cable (for 56k modem) and disconnect the other cable:<br/>
- <img src="t60_dev/0015.JPG" alt="" /> <img src="t60_dev/0016.JPG" alt="" />
+ <img src="../images/t60_dev/0015.JPG" alt="" /> <img src="../images/t60_dev/0016.JPG" alt="" />
</p>
<p>
Disconnect speaker cable:<br/>
- <img src="t60_dev/0017.JPG" alt="" />
+ <img src="../images/t60_dev/0017.JPG" alt="" />
</p>
<p>
Disconnect the other end of the 56k modem cable:<br/>
- <img src="t60_dev/0018.JPG" alt="" />
+ <img src="../images/t60_dev/0018.JPG" alt="" />
</p>
<p>
Make sure you removed it:<br/>
- <img src="t60_dev/0019.JPG" alt="" />
+ <img src="../images/t60_dev/0019.JPG" alt="" />
</p>
<p>
Unscrew those:<br/>
- <img src="t60_dev/0020.JPG" alt="" />
+ <img src="../images/t60_dev/0020.JPG" alt="" />
</p>
<p>
Make sure you removed those:<br/>
- <img src="t60_dev/0021.JPG" alt="" />
+ <img src="../images/t60_dev/0021.JPG" alt="" />
</p>
<p>
Disconnect LCD cable from board:<br/>
- <img src="t60_dev/0022.JPG" alt="" />
+ <img src="../images/t60_dev/0022.JPG" alt="" />
</p>
<p>
Remove those screws then remove the LCD assembly:<br/>
- <img src="t60_dev/0023.JPG" alt="" /> <img src="t60_dev/0024.JPG" alt="" /> <img src="t60_dev/0025.JPG" alt="" />
+ <img src="../images/t60_dev/0023.JPG" alt="" /> <img src="../images/t60_dev/0024.JPG" alt="" /> <img src="../images/t60_dev/0025.JPG" alt="" />
</p>
<p>
Once again, make sure you removed those:<br/>
- <img src="t60_dev/0026.JPG" alt="" />
+ <img src="../images/t60_dev/0026.JPG" alt="" />
</p>
<p>
Remove the shielding containing the motherboard, then flip it over. Remove these screws, placing them on a steady
surface in the same layout as they were in before you removed them. Also, you should mark each screw hole after removing the
screw (a permanent marker pen will do), this is so that you have a point of reference when re-assembling the machine:<br/>
- <img src="t60_dev/0027.JPG" alt="" /> <img src="t60_dev/0028.JPG" alt="" /> <img src="t60_dev/0029.JPG" alt="" />
- <img src="t60_dev/0031.JPG" alt="" /> <img src="t60_dev/0032.JPG" alt="" /> <img src="t60_dev/0033.JPG" alt="" />
+ <img src="../images/t60_dev/0027.JPG" alt="" /> <img src="../images/t60_dev/0028.JPG" alt="" /> <img src="../images/t60_dev/0029.JPG" alt="" />
+ <img src="../images/t60_dev/0031.JPG" alt="" /> <img src="../images/t60_dev/0032.JPG" alt="" /> <img src="../images/t60_dev/0033.JPG" alt="" />
</p>
<p>
At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):<br/>
- <a href="http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts" target="_blank">http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts</a>.<br/>
+ <a href="http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts">http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts</a>.<br/>
Correlating with the following information, I was able to wire up my pirate correctly:<br/>
- <a href="http://flashrom.org/Bus_Pirate#Connections" target="_blank">http://flashrom.org/Bus_Pirate#Connections</a><br/>
+ <a href="http://flashrom.org/Bus_Pirate#Connections">http://flashrom.org/Bus_Pirate#Connections</a><br/>
And by following that advice:<br/>
- <a href="http://www.coreboot.org/Board:lenovo/x60/Installation#Howto" target="_blank">http://www.coreboot.org/Board:lenovo/x60/Installation#Howto</a>.<br/>
+ <a href="http://www.coreboot.org/Board:lenovo/x60/Installation#Howto">http://www.coreboot.org/Board:lenovo/x60/Installation#Howto</a>.<br/>
(it says X60 but instructions are virtually the same for the T60, with except to physical differences in how to disassemble the machine)<br/>
Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.<br/>
Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the
@@ -193,22 +188,22 @@
Note: I ignored that advice, and wired up all 8 pins. And it worked.<br/>
Here is the pinout (correlate it with your programmer's documentation):<br/>
- <img src="t60_dev/0030.JPG" alt="" />
+ <img src="../images/t60_dev/0030.JPG" alt="" />
</p>
<p>
Connecting the pomona:<br/>
- <img src="t60_dev/0034.JPG" alt="" />
+ <img src="../images/t60_dev/0034.JPG" alt="" />
</p>
<p>
Connect programmer to 2nd computer:<br/>
- <img src="t60_dev/0035.JPG" alt="" />
+ <img src="../images/t60_dev/0035.JPG" alt="" />
</p>
<p>
Programmer has power:<br/>
- <img src="t60_dev/0036.JPG" alt="" />
+ <img src="../images/t60_dev/0036.JPG" alt="" />
</p>
<p>
@@ -217,19 +212,21 @@
Note: there are also other ROM images for T60<br/>
Note: this is using buspirate as the programmer, so it is flashing the T60, not the 2nd computer!<br/>
Here's my terminal window on the 2nd computer (also the programmer is active):<br/>
- <img src="t60_dev/0037.JPG" alt="" /> <img src="t60_dev/0038.JPG" alt="" /><br/>
+ <img src="../images/t60_dev/0037.JPG" alt="" /> <img src="../images/t60_dev/0038.JPG" alt="" /><br/>
So, you should see the following:<br/>
--
+ </p>
<pre>
- flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
- flashrom is free software, get the source code at http://www.flashrom.org
-
- Calibrating delay loop... delay loop is unreliable, trying to continue OK.
- Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi.
- Reading old flash chip contents... done.
- Erasing and writing flash chip... Erase/write done.
- Verifying flash... VERIFIED.
- </pre>
+flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
+flashrom is free software, get the source code at http://www.flashrom.org
+
+Calibrating delay loop... delay loop is unreliable, trying to continue OK.
+Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi.
+Reading old flash chip contents... done.
+Erasing and writing flash chip... Erase/write done.
+Verifying flash... VERIFIED.
+</pre>
+ <p>
--<br/>
At the end it says "VERIFIED", which means that the procedure worked. If you see this, it means
that you can put your T60 back together. So let's do that now.
@@ -237,44 +234,44 @@
<p>
Put those screws back:<br/>
- <img src="t60_dev/0047.JPG" alt="" />
+ <img src="../images/t60_dev/0047.JPG" alt="" />
</p>
<p>
Put it back into lower chassis:<br/>
- <img src="t60_dev/0048.JPG" alt="" />
+ <img src="../images/t60_dev/0048.JPG" alt="" />
</p>
<p>
Attach LCD and insert screws (also, attach the lcd cable to the board):<br/>
- <img src="t60_dev/0049.JPG" alt="" />
+ <img src="../images/t60_dev/0049.JPG" alt="" />
</p>
<p>
Insert those screws:<br/>
- <img src="t60_dev/0050.JPG" alt="" />
+ <img src="../images/t60_dev/0050.JPG" alt="" />
</p>
<p>
On the CPU (and there is another chip south-east to it, sorry forgot to take pic)
clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too)
you should also clean the heatsink the same way<br/>
- <img src="t60_dev/0051.JPG" alt="" />
+ <img src="../images/t60_dev/0051.JPG" alt="" />
</p>
<p>
Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):<br/>
- <img src="t60_dev/0052.JPG" alt="" />
+ <img src="../images/t60_dev/0052.JPG" alt="" />
</p>
<p>
Reinstall that upper bezel:<br/>
- <img src="t60_dev/0053.JPG" alt="" />
+ <img src="../images/t60_dev/0053.JPG" alt="" />
</p>
<p>
Do that:<br/>
- <img src="t60_dev/0054.JPG" alt="" /> <img src="t60_dev/0055.JPG" alt="" />
+ <img src="../images/t60_dev/0054.JPG" alt="" /> <img src="../images/t60_dev/0055.JPG" alt="" />
</p>
<p>
@@ -283,22 +280,22 @@
<p>
Attach keyboard and install nvram battery:<br/>
- <img src="t60_dev/0056.JPG" alt="" /> <img src="t60_dev/0057.JPG" alt="" />
+ <img src="../images/t60_dev/0056.JPG" alt="" /> <img src="../images/t60_dev/0057.JPG" alt="" />
</p>
<p>
Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:<br/>
- <img src="t60_dev/0058.JPG" alt="" />
+ <img src="../images/t60_dev/0058.JPG" alt="" />
</p>
<p>
It lives!<br/>
- <img src="t60_dev/0071.JPG" alt="" /> <img src="t60_dev/0072.JPG" alt="" /> <img src="t60_dev/0073.JPG" alt="" />
+ <img src="../images/t60_dev/0071.JPG" alt="" /> <img src="../images/t60_dev/0072.JPG" alt="" /> <img src="../images/t60_dev/0073.JPG" alt="" />
</p>
<p>
Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:<br/>
- <img src="t60_dev/0074.JPG" alt="" />
+ <img src="../images/t60_dev/0074.JPG" alt="" />
</p>
<hr/>
diff --git a/docs/howtos/x60_unbrick.html b/docs/install/x60_unbrick.html
index 945712d8..751c4a80 100644
--- a/docs/howtos/x60_unbrick.html
+++ b/docs/install/x60_unbrick.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Unbricking the ThinkPad X60</title>
@@ -23,7 +18,7 @@
<aside>This guide will show you how to recover from a bad flash that prevents your ThinkPad X60 from booting.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h2>Table of Contents</h2>
<ul>
@@ -43,14 +38,14 @@
<li>a 2nd computer (maybe another X60. any computer will do)</li>
<li>external flashrom-compatible programmer (I'm using the "bus pirate")
<li>SOIC-8 IC clip (I'm using the Pomona 5250)</li>
- <li>Cable (programmer<>clip) - mine came with the bus pirate.</li>
- <li>USB mini a to b cable (for buspirate<>computer connection).</li>
+ <li>Cable (programmer&lt;&gt;clip) - mine came with the bus pirate.</li>
+ <li>USB mini a to b cable (for buspirate&lt;&gt;computer connection).</li>
</ul>
<h1 id="software_requirements">Software requirements</h1>
<ul>
<li>GNU/Linux (on the 2nd computer)</li>
- <li>flashrom software (on the 2nd computer): <a href="http://flashrom.org/" target="_blank">http://flashrom.org/</a>
+ <li>flashrom software (on the 2nd computer): <a href="http://flashrom.org/">http://flashrom.org/</a>
</ul>
<h1 id="bucts_brick">Brick type 1: bucts not reset.</h1>
@@ -59,14 +54,14 @@
the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.<br/><br/>
In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:<br/>
- <img src="x60_unbrick/0004.jpg" alt="" /><br/><br/>
+ <img src="../images/x60_unbrick/0004.jpg" alt="" /><br/><br/>
*Those dd commands should be applied to all newly compiled X60 ROM's (the ROM's in libreboot binary archives already have this applied!):<br/>
dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k<br/>
dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump<br/>
dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc<br/>
(doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running,
- using those instructions: <a href="http://www.coreboot.org/Board:lenovo/x60/Installation" target="_blank">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.
+ using those instructions: <a href="http://www.coreboot.org/Board:lenovo/x60/Installation">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.
</p>
<h1 id="recovery">bad rom (or user error), machine won't boot</h1>
@@ -79,217 +74,213 @@
</p>
<p>
Remove those screws:<br/>
- <img src="x60_unbrick/0000.jpg" alt="" />
+ <img src="../images/x60_unbrick/0000.jpg" alt="" />
</p>
<p>
Push the keyboard forward (carefully):<br/>
- <img src="x60_unbrick/0001.jpg" alt="" />
+ <img src="../images/x60_unbrick/0001.jpg" alt="" />
</p>
<p>
Lift the keyboard up and disconnect it from the board:<br/>
- <img src="x60_unbrick/0002.jpg" alt="" />
+ <img src="../images/x60_unbrick/0002.jpg" alt="" />
</p>
<p>
Grab the right-hand side of the chassis and force it off (gently) and pry up the rest of the chassis:<br/>
- <img src="x60_unbrick/0003.jpg" alt="" />
+ <img src="../images/x60_unbrick/0003.jpg" alt="" />
</p>
<p>
You should now have this:<br/>
- <img src="x60_unbrick/0004.jpg" alt="" />
+ <img src="../images/x60_unbrick/0004.jpg" alt="" />
</p>
<p>
Disconnect the wifi antenna cables, the modem cable and the speaker:<br/>
- <img src="x60_unbrick/0005.jpg" alt="" />
+ <img src="../images/x60_unbrick/0005.jpg" alt="" />
</p>
<p>
Unroute the cables along their path, carefully lifting the tape that holds them in place. Then, disconnect the modem
cable (other end) and power connection and unroute all the cables so that they dangle by the monitor hinge on the right-hand
side:<br/>
- <img src="x60_unbrick/0006.jpg" alt="" />
+ <img src="../images/x60_unbrick/0006.jpg" alt="" />
</p>
<p>
Disconnect the monitor from the motherboard, and unroute the grey antenna cable, carefully lifting the tape
that holds it into place:<br/>
- <img src="x60_unbrick/0008.jpg" alt="" />
+ <img src="../images/x60_unbrick/0008.jpg" alt="" />
</p>
<p>
Carefully lift the remaining tape and unroute the left antenna cable so that it is loose:<br/>
- <img src="x60_unbrick/0009.jpg" alt="" />
+ <img src="../images/x60_unbrick/0009.jpg" alt="" />
</p>
<p>
Remove the screw that is highlighted (do NOT remove the other one; it holds part of the heatsink (other side) into place):<br/>
- <img src="x60_unbrick/0011.jpg" alt="" />
+ <img src="../images/x60_unbrick/0011.jpg" alt="" />
</p>
<p>
Remove those screws:<br/>
- <img src="x60_unbrick/0012.jpg" alt="" />
+ <img src="../images/x60_unbrick/0012.jpg" alt="" />
</p>
<p>
Carefully remove the plate, like so:<br/>
- <img src="x60_unbrick/0013.jpg" alt="" />
+ <img src="../images/x60_unbrick/0013.jpg" alt="" />
</p>
<p>
Remove the SATA connector:<br/>
- <img src="x60_unbrick/0014.jpg" alt="" />
+ <img src="../images/x60_unbrick/0014.jpg" alt="" />
</p>
<p>
Now remove the motherboard (gently) and cast the lcd/chassis aside:<br/>
- <img src="x60_unbrick/0015.jpg" alt="" />
+ <img src="../images/x60_unbrick/0015.jpg" alt="" />
</p>
<p>
Lift back that tape and hold it with something. Highlighted is the SPI flash chip:<br/>
- <img src="x60_unbrick/0016.jpg" alt="" />
+ <img src="../images/x60_unbrick/0016.jpg" alt="" />
</p>
<p>
At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):<br/>
- <a href="http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts" target="_blank">http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts</a>.<br/>
+ <a href="http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts">http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts</a>.<br/>
Correlating with the following information, I was able to wire up my pirate correctly:<br/>
- <a href="http://flashrom.org/Bus_Pirate#Connections" target="_blank">http://flashrom.org/Bus_Pirate#Connections</a><br/>
+ <a href="http://flashrom.org/Bus_Pirate#Connections">http://flashrom.org/Bus_Pirate#Connections</a><br/>
And by following that advice:<br/>
- <a href="http://www.coreboot.org/Board:lenovo/x60/Installation#Howto" target="_blank">http://www.coreboot.org/Board:lenovo/x60/Installation#Howto</a>.<br/>
+ <a href="http://www.coreboot.org/Board:lenovo/x60/Installation#Howto">http://www.coreboot.org/Board:lenovo/x60/Installation#Howto</a>.<br/>
Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.<br/>
Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the
AC adapter (without powering on the board).<br/>
Note: I ignored that advice, and wired up all 8 pins. And it worked.<br/>
Here is the pinout (correlate it with your programmer's documentation):<br/>
- <img src="x60_unbrick/0017.jpg" alt="" />
+ <img src="../images/x60_unbrick/0017.jpg" alt="" />
</p>
<p>
- My programmer, usb cable and clip:<br/>
- <img src="x60_unbrick/0018.jpg" alt="" /><br/>
My programmer (bus pirate):<br/>
- <img src="x60_unbrick/0019.jpg" alt="" /><br/>
+ <img src="../images/x60_unbrick/0019.jpg" alt="" /><br/>
My clip (pomona 5250):<br/>
- <img src="x60_unbrick/0020.jpg" alt="" /><br/>
- My USB mini a to b cable:<br/>
- <img src="x60_unbrick/0021.jpg" alt="" /><br/>
+ <img src="../images/x60_unbrick/0020.jpg" alt="" /><br/>
Connecting the pomona:<br/>
- <img src="x60_unbrick/0022.jpg" alt="" /><br/>
+ <img src="../images/x60_unbrick/0022.jpg" alt="" /><br/>
Connecting the USB cable from programmer to 2nd(working/non-bricked) computer, my T60:<br/>
- <img src="x60_unbrick/0024.jpg" alt="" /><br/>
- Programmer is now active:<br/>
- <img src="x60_unbrick/0023.jpg" alt="" /><br/>
+ <img src="../images/x60_unbrick/0024.jpg" alt="" /><br/>
Now I install flashrom on the T60 (running Trisquel GNU/Linux) and do this:<br/>
<b>flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -w bin/x60/libreboot_usqwerty.rom</b><br/>
Note: there are also other ROM images for X60<br/>
Note: this is using buspirate as the programmer, so it is flashing the X60, not the T60!<br/>
Here's my terminal window on the T60:<br/>
- <img src="x60_unbrick/0025.jpg" alt="" /><br/>
+ <img src="../images/x60_unbrick/0025.jpg" alt="" /><br/>
So, you should see the following:<br/>
--
- <pre>
- flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
- flashrom is free software, get the source code at http://www.flashrom.org
+ </p>
+<pre>
+flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
+flashrom is free software, get the source code at http://www.flashrom.org
- Calibrating delay loop... delay loop is unreliable, trying to continue OK.
- Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi.
- Reading old flash chip contents... done.
- Erasing and writing flash chip... Erase/write done.
- Verifying flash... VERIFIED.
- </pre>
+Calibrating delay loop... delay loop is unreliable, trying to continue OK.
+Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi.
+Reading old flash chip contents... done.
+Erasing and writing flash chip... Erase/write done.
+Verifying flash... VERIFIED.
+</pre>
+ <p>
--<br/>
At the end it says "VERIFIED", which means that the procedure worked. If you see this, it means
that you can put your X60 back together. So let's do that now.
</p>
<p>
Remove the programmer and put it away somewhere. Put back the tape and press firmly over it:<br/>
- <img src="x60_unbrick/0026.jpg" alt="" />
+ <img src="../images/x60_unbrick/0026.jpg" alt="" />
</p>
<p>
Your empty chassis:<br/>
- <img src="x60_unbrick/0027.jpg" alt="" />
+ <img src="../images/x60_unbrick/0027.jpg" alt="" />
</p>
<p>
Put the motherboard back in:<br/>
- <img src="x60_unbrick/0028.jpg" alt="" />
+ <img src="../images/x60_unbrick/0028.jpg" alt="" />
</p>
<p>
Reconnect SATA:<br/>
- <img src="x60_unbrick/0029.jpg" alt="" />
+ <img src="../images/x60_unbrick/0029.jpg" alt="" />
</p>
<p>
Put the plate back and re-insert those screws:<br/>
- <img src="x60_unbrick/0030.jpg" alt="" />
+ <img src="../images/x60_unbrick/0030.jpg" alt="" />
</p>
<p>
Re-route that antenna cable around the fan and apply the tape:<br/>
- <img src="x60_unbrick/0031.jpg" alt="" />
+ <img src="../images/x60_unbrick/0031.jpg" alt="" />
</p>
<p>
Route the cable here and then (not shown, due to error on my part) reconnect the monitor cable to the motherboard
and re-insert the screws:<br/>
- <img src="x60_unbrick/0032.jpg" alt="" />
+ <img src="../images/x60_unbrick/0032.jpg" alt="" />
</p>
<p>
Re-insert that screw:<br/>
- <img src="x60_unbrick/0033.jpg" alt="" />
+ <img src="../images/x60_unbrick/0033.jpg" alt="" />
</p>
<p>
Route the black antenna cable like so:<br/>
- <img src="x60_unbrick/0034.jpg" alt="" />
+ <img src="../images/x60_unbrick/0034.jpg" alt="" />
</p>
<p>
Tuck it in neatly like so:<br/>
- <img src="x60_unbrick/0035.jpg" alt="" />
+ <img src="../images/x60_unbrick/0035.jpg" alt="" />
</p>
<p>
Route the modem cable like so:<br/>
- <img src="x60_unbrick/0036.jpg" alt="" />
+ <img src="../images/x60_unbrick/0036.jpg" alt="" />
</p>
<p>
Connect modem cable to board and tuck it in neatly like so:<br/>
- <img src="x60_unbrick/0037.jpg" alt="" />
+ <img src="../images/x60_unbrick/0037.jpg" alt="" />
</p>
<p>
Route the power connection and connect it to the board like so:<br/>
- <img src="x60_unbrick/0038.jpg" alt="" />
+ <img src="../images/x60_unbrick/0038.jpg" alt="" />
</p>
<p>
Route the antenna and modem cables neatly like so:<br/>
- <img src="x60_unbrick/0039.jpg" alt="" />
+ <img src="../images/x60_unbrick/0039.jpg" alt="" />
</p>
<p>
Connect the wifi antenna cables. At the start of the tutorial, this machine had an Intel wifi chip. Here you see I've replaced it with an
Atheros AR5B95 (supports 802.11n and can be used without blobs):<br/>
- <img src="x60_unbrick/0040.jpg" alt="" />
+ <img src="../images/x60_unbrick/0040.jpg" alt="" />
</p>
<p>
Connect the modem cable:<br/>
- <img src="x60_unbrick/0041.jpg" alt="" />
+ <img src="../images/x60_unbrick/0041.jpg" alt="" />
</p>
<p>
Connect the speaker:<br/>
- <img src="x60_unbrick/0042.jpg" alt="" />
+ <img src="../images/x60_unbrick/0042.jpg" alt="" />
</p>
<p>
You should now have this:<br/>
- <img src="x60_unbrick/0043.jpg" alt="" />
+ <img src="../images/x60_unbrick/0043.jpg" alt="" />
</p>
<p>
Re-connect the upper chassis:<br/>
- <img src="x60_unbrick/0044.jpg" alt="" />
+ <img src="../images/x60_unbrick/0044.jpg" alt="" />
</p>
<p>
Re-connect the keyboard:<br/>
- <img src="x60_unbrick/0045.jpg" alt="" />
+ <img src="../images/x60_unbrick/0045.jpg" alt="" />
</p>
<p>
Re-insert the screws that you removed earlier:<br/>
- <img src="x60_unbrick/0046.jpg" alt="" />
+ <img src="../images/x60_unbrick/0046.jpg" alt="" />
</p>
<p>
Power on!<br/>
- <img src="x60_unbrick/0047.jpg" alt="" />
+ <img src="../images/x60_unbrick/0047.jpg" alt="" />
</p>
<p>
Trisquel live USB menu (using GRUB's ISOLINUX parser):<br/>
- <img src="x60_unbrick/0048.jpg" alt="" />
+ <img src="../images/x60_unbrick/0048.jpg" alt="" />
</p>
<p>
Trisquel live desktop:<br/>
- <img src="x60_unbrick/0049.jpg" alt="" />
+ <img src="../images/x60_unbrick/0049.jpg" alt="" />
</p>
<hr/>
diff --git a/docs/howtos/x60tablet_unbrick.html b/docs/install/x60tablet_unbrick.html
index da60227f..b5aad3c5 100644
--- a/docs/howtos/x60tablet_unbrick.html
+++ b/docs/install/x60tablet_unbrick.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Unbricking the ThinkPad X60 Tablet</title>
@@ -23,7 +18,7 @@
<aside>This guide will show you how to recover from a bad flash that prevents your ThinkPad X60 Tablet from booting.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h2>Table of Contents</h2>
<ul>
@@ -43,14 +38,14 @@
<li>a 2nd computer (maybe another X60 Tablet. any computer will do)</li>
<li>external flashrom-compatible programmer (I'm using the "bus pirate")
<li>SOIC-8 IC clip (I'm using the Pomona 5250)</li>
- <li>Cable (programmer<>clip) - mine came with the bus pirate.</li>
- <li>USB mini a to b cable (for buspirate<>computer connection).</li>
+ <li>Cable (programmer&lt;&gt;clip) - mine came with the bus pirate.</li>
+ <li>USB mini a to b cable (for buspirate&lt;&gt;computer connection).</li>
</ul>
<h1 id="software_requirements">Software requirements</h1>
<ul>
<li>GNU/Linux (on the 2nd computer)</li>
- <li>flashrom software (on the 2nd computer): <a href="http://flashrom.org/" target="_blank">http://flashrom.org/</a>
+ <li>flashrom software (on the 2nd computer): <a href="http://flashrom.org/">http://flashrom.org/</a>
</ul>
<h1 id="bucts_brick">Brick type 1: bucts not reset.</h1>
@@ -59,14 +54,14 @@
the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.<br/><br/>
In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:<br/>
- <img src="x60t_unbrick/0008.JPG" alt="" /><br/><br/>
+ <img src="../images/x60t_unbrick/0008.JPG" alt="" /><br/><br/>
*Those dd commands should be applied to all newly compiled X60 ROM's (the ROM's in libreboot binary archives already have this applied!):<br/>
dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k<br/>
dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump<br/>
dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc<br/>
(doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running,
- using those instructions: <a href="http://www.coreboot.org/Board:lenovo/x60/Installation" target="_blank">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.
+ using those instructions: <a href="http://www.coreboot.org/Board:lenovo/x60/Installation">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.
</p>
<h1 id="recovery">bad rom (or user error), machine won't boot</h1>
@@ -79,103 +74,98 @@
</p>
<p>
- <img src="x60t_unbrick/0000.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0000.JPG" alt="" />
</p>
<p>
Remove those screws:<br/>
- <img src="x60t_unbrick/0001.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0001.JPG" alt="" />
</p>
<p>
Remove the HDD:<br/>
- <img src="x60t_unbrick/0002.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0002.JPG" alt="" />
</p>
<p>
Push keyboard forward to loosen it:<br/>
- <img src="x60t_unbrick/0003.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0003.JPG" alt="" />
</p>
<p>
Lift:<br/>
- <img src="x60t_unbrick/0004.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0004.JPG" alt="" />
</p>
<p>
Remove those:<br/>
- <img src="x60t_unbrick/0005.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0005.JPG" alt="" />
</p>
<p>
- <img src="x60t_unbrick/0006.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0006.JPG" alt="" />
</p>
<p>
Also remove that (marked) and unroute the antenna cables:<br/>
- <img src="x60t_unbrick/0007.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0007.JPG" alt="" />
</p>
<p>
Some X60T's you have to unroute those too:<br/>
- <img src="x60t_unbrick/0010.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0010.JPG" alt="" />
</p>
<p>
Remove the LCD extend board screws. Also remove those screws (see blue marks) and remove/unroute the cables and remove the metal plate:<br/>
- <img src="x60t_unbrick/0008.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0008.JPG" alt="" />
</p>
<p>
Remove that screw and then remove the board:<br/>
- <img src="x60t_unbrick/0009.JPG" alt="" />
+ <img src="../images/x60t_unbrick/0009.JPG" alt="" />
</p>
<p>
At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):<br/>
- <a href="http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts" target="_blank">http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts</a>.<br/>
+ <a href="http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts">http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts</a>.<br/>
Correlating with the following information, I was able to wire up my pirate correctly:<br/>
- <a href="http://flashrom.org/Bus_Pirate#Connections" target="_blank">http://flashrom.org/Bus_Pirate#Connections</a><br/>
+ <a href="http://flashrom.org/Bus_Pirate#Connections">http://flashrom.org/Bus_Pirate#Connections</a><br/>
And by following that advice:<br/>
- <a href="http://www.coreboot.org/Board:lenovo/x60/Installation#Howto" target="_blank">http://www.coreboot.org/Board:lenovo/x60/Installation#Howto</a>.<br/>
+ <a href="http://www.coreboot.org/Board:lenovo/x60/Installation#Howto">http://www.coreboot.org/Board:lenovo/x60/Installation#Howto</a>.<br/>
Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.<br/>
Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the
AC adapter (without powering on the board).<br/>
Note: I ignored that advice, and wired up all 8 pins. And it worked.<br/>
Here is the pinout (correlate it with your programmer's documentation):<br/>
- <img src="x60t_unbrick/0011.JPG" alt="" /><br/>
+ <img src="../images/x60t_unbrick/0011.JPG" alt="" /><br/>
(SPI chip here is on the bottom of the board)
</p>
<p>
Bus pirate:<br/>
- <img src="x60_unbrick/0019.jpg" alt="" />
+ <img src="../images/x60_unbrick/0019.jpg" alt="" />
</p>
<p>
Pomona 5250:<br/>
- <img src="x60_unbrick/0020.jpg" alt="" />
+ <img src="../images/x60_unbrick/0020.jpg" alt="" />
</p>
<p>
Connect pomona:<br/>
- <img src="x60_unbrick/0022.jpg" alt="" />
+ <img src="../images/x60_unbrick/0022.jpg" alt="" />
</p>
<p>
Connect pirate to USB on 2nd computer:<br/>
- <img src="x60_unbrick/0024.jpg" alt="" />
+ <img src="../images/x60_unbrick/0024.jpg" alt="" />
</p>
<p>
- Pirate is active:<br/>
- <img src="x60_unbrick/0023.jpg" alt="" />
- </p>
-
- <p>
- <img src="x60_unbrick/0025.jpg" alt="" />
+ <img src="../images/x60_unbrick/0025.jpg" alt="" />
</p>
<p>
diff --git a/docs/misc/index.html b/docs/misc/index.html
new file mode 100644
index 00000000..8fb52ff7
--- /dev/null
+++ b/docs/misc/index.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>Miscellaneous</title>
+</head>
+
+<body>
+
+ <h1 id="pagetop">Miscellaneous</h1>
+ <p>
+ Or <a href="../index.html">Back to main index</a>.
+ </p>
+ <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="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">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="../gnulinux/grub_cbfs.html">../gnulinux/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/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/patch.html b/docs/misc/patch.html
index 2131951e..3d926ac3 100644
--- a/docs/patch.html
+++ b/docs/misc/patch.html
@@ -6,12 +6,7 @@
<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;
- }
+ @import url('css/main.css');
</style>
<title>
@@ -119,7 +114,7 @@
<p>
Just make whatever changes you want to a git clone and then:<br/>
- <b>$ git diff > patch.git</b>
+ <b>$ git diff &gt; patch.git</b>
</p>
<p>
@@ -155,13 +150,13 @@
<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>.
+ 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/release.html b/docs/release.html
index 9547eda0..3f66e5ef 100644
--- a/docs/release.html
+++ b/docs/release.html
@@ -5,21 +5,7 @@
<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 { /* for people who are colour-blind */
- color: #000;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('css/main.css');
</style>
<title>Libreboot release information</title>
@@ -73,8 +59,8 @@
</ul>
<p>
- Installation instructions can be found at <a href="index.html#flashrom">index.html#flashrom</a>.
- Building instructions (for source code) can be found at <a href="index.html#build">index.html#build</a>.
+ Installation instructions can be found at <a href="install/index.html#flashrom">install/index.html#flashrom</a>.
+ Building instructions (for source code) can be found at <a href="git/index.html#build">git/index.html#build</a>.
</p>
<h2>Machines supported in this release:</h2>
@@ -91,29 +77,29 @@
<li>
<b>Lenovo ThinkPad X60 Tablet</b> (1024x768 and 1400x1050) with digitizer support
<ul>
- <li>See <a href="index.html#supported_x60t_list">index.html#supported_x60t_list</a> for list of supported LCD panels</li>
+ <li>See <a href="hcl/index.html#supported_x60t_list">hcl/index.html#supported_x60t_list</a> for list of supported LCD panels</li>
<li>It is unknown whether an X61 Tablet can have it's mainboard replaced with an X60 Tablet motherboard.</li>
</ul>
</li>
<li>
- <b>Lenovo ThinkPad T60</b> (Intel GPU) (there are issues; see below)</b>
+ <b>Lenovo ThinkPad T60</b> (Intel GPU) (there are issues; see below):
<ul>
- <li>See notes below for exceptions, and <a href="index.html#supported_t60_list">index.html#supported_t60_list</a> for known working LCD panels.</li>
+ <li>See notes below for exceptions, and <a href="hcl/index.html#supported_t60_list">hcl/index.html#supported_t60_list</a> for known working LCD panels.</li>
<li>It is unknown whether a T61 can have it's mainboard replaced with a T60 motherboard.</li>
<li>See <a href="future/index.html#t60_cpu_microcode">future/index.html#t60_cpu_microcode</a>.</li>
- <li>T60p (and T60's with ATI GPU) will likely never be supported: <a href="index.html#t60_ati_intel">index.html#t60_ati_intel</a></li>
+ <li>T60p (and T60's with ATI GPU) will likely never be supported: <a href="hcl/index.html#t60_ati_intel">hcl/index.html#t60_ati_intel</a></li>
</ul>
</li>
<li>
<b>Apple MacBook1,1</b> (MA255LL/A, MA254LL/A, MA472LL/A)
<ul>
- <li>See <a href="index.html#macbook11">index.html#macbook11</a>.</li>
+ <li>See <a href="hcl/index.html#macbook11">hcl/index.html#macbook11</a>.</li>
</ul>
</li>
<li>
<b>Apple MacBook2,1</b> (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A)
<ul>
- <li>See <a href="index.html#macbook21">index.html#macbook21</a>.</li>
+ <li>See <a href="hcl/index.html#macbook21">hcl/index.html#macbook21</a>.</li>
</ul>
</li>
</ul>
@@ -139,7 +125,7 @@
</li>
<li>builddeps-coreboot: use 'make crossgcc-i386' instead of 'make crossgcc'. Libreboot only targets x86 at the time of writing.</li>
<li>ROM images no longer include SeaBIOS. Instead, the user adds it afterwards. Documentation and scripts updated.</li>
- <li>docs/howtos/encrypted_parabola.html: Notes about linux-libre-grsec</li>
+ <li>docs/images/encrypted_parabola.html: Notes about linux-libre-grsec</li>
<li>Documentation: encrypted_parabola.html: add tutorial for encrypted Parabola GNU/Linux installation.</li>
<li>Documentation: added more info about wifi chipsets</li>
</ul>
diff --git a/docs/howtos/dock.html b/docs/security/dock.html
index ef62e83d..2b7fe75f 100644
--- a/docs/howtos/dock.html
+++ b/docs/security/dock.html
@@ -5,15 +5,7 @@
<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;
- }
- div.important {
- background-color:#ccc;
- }
+ @import url('css/main.css');
</style>
<title>Notes about DMA and the docking station (X60/T60)</title>
@@ -22,7 +14,6 @@
<body>
<header>
<h1>Notes about DMA and the docking station (X60/T60)</h1>
- <aside>Or <a href="../index.html">back to main index</a></aside>
</header>
<pre>
@@ -67,7 +58,7 @@ other one is in the laptop, so we have:
________________
_________________ | |
| | | Dock connector:|
-|Dock: NSC pc87982|<--LPC--->D_LPC_DREQ0 |
+|Dock: NSC pc87982|&lt;--LPC---&gt;D_LPC_DREQ0 |
|_________________| |_______^________|
|
|
@@ -112,7 +103,7 @@ outside:
&gt; int timeout = 1000;
&gt; + int val;
&gt; +
-&gt; + if (get_option(&val, "dock") != CB_SUCCESS)
+&gt; + if (get_option(&amp;val, &quot;dock&quot;) != CB_SUCCESS)
&gt; + val = 1;
&gt; + if (val == 0)
&gt; + return 0;
@@ -156,7 +147,7 @@ added too?
<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&gt; for more information.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/security/index.html b/docs/security/index.html
new file mode 100644
index 00000000..64008b8c
--- /dev/null
+++ b/docs/security/index.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ @import url('../css/main.css');
+ </style>
+
+ <title>Security topics</title>
+</head>
+
+<body>
+
+ <h1 id="pagetop">Security topics</h1>
+ <p>
+ Or <a href="../index.html">Back to main index</a>.
+ </p>
+ <ul>
+ <li><a href="x60_security.html">ThinkPad X60/X60S: hardware security</a></li>
+ <li><a href="t60_security.html">ThinkPad T60: hardware security</a></li>
+ </ul>
+
+<hr/>
+
+ <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>
+ 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>
+
+</body>
+</html>
diff --git a/docs/howtos/t60_security.html b/docs/security/t60_security.html
index f39c739b..eb3db039 100644
--- a/docs/howtos/t60_security.html
+++ b/docs/security/t60_security.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Security on the ThinkPad T60</title>
@@ -23,7 +18,7 @@
<aside>Hardware modifications to enhance security on the ThinkPad T60. This tutorial is <b>incomplete</b> at the time of writing.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h2>Table of Contents</h2>
<ul>
@@ -78,32 +73,32 @@
<p>
Remove those screws and remove the HDD:<br/>
- <img src="t60_dev/0001.JPG" alt="" /> <img src="t60_dev/0002.JPG" alt="" />
+ <img src="../images/t60_dev/0001.JPG" alt="" /> <img src="../images/t60_dev/0002.JPG" alt="" />
</p>
<p>
Lift off the palm rest:<br/>
- <img src="t60_dev/0003.JPG" alt="" />
+ <img src="../images/t60_dev/0003.JPG" alt="" />
</p>
<p>
Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:<br/>
- <img src="t60_dev/0004.JPG" alt="" /> <img src="t60_dev/0005.JPG" alt="" /> <img src="t60_dev/0006.JPG" alt="" />
+ <img src="../images/t60_dev/0004.JPG" alt="" /> <img src="../images/t60_dev/0005.JPG" alt="" /> <img src="../images/t60_dev/0006.JPG" alt="" />
</p>
<p>
Gently wedge both sides loose:<br/>
- <img src="t60_dev/0007.JPG" alt="" /> <img src="t60_dev/0008.JPG" alt="" />
+ <img src="../images/t60_dev/0007.JPG" alt="" /> <img src="../images/t60_dev/0008.JPG" alt="" />
</p>
<p>
Remove that cable from the position:<br/>
- <img src="t60_dev/0009.JPG" alt="" /> <img src="t60_dev/0010.JPG" alt="" />
+ <img src="../images/t60_dev/0009.JPG" alt="" /> <img src="../images/t60_dev/0010.JPG" alt="" />
</p>
<p>
Now remove that bezel. Remove wifi, nvram battery and speaker connector (also remove 56k modem, on the left of wifi):<br/>
- <img src="t60_dev/0011.JPG" alt="" /><br/>
+ <img src="../images/t60_dev/0011.JPG" alt="" /><br/>
Reason: has direct (and very fast) memory access, and could (theoretically) leak data over a side-channel.<br/>
<b>Wifi:</b> The ath5k/ath9k cards might not have firmware at all. They might safe but could have
access to the computer's RAM trough DMA. If people have an intel
@@ -114,75 +109,75 @@
<p>
Remove those screws:<br/>
- <img src="t60_dev/0012.JPG" alt="" />
+ <img src="../images/t60_dev/0012.JPG" alt="" />
</p>
<p>
Disconnect the power jack:<br/>
- <img src="t60_dev/0013.JPG" alt="" />
+ <img src="../images/t60_dev/0013.JPG" alt="" />
</p>
<p>
Remove nvram battery (we will put it back later):<br/>
- <img src="t60_dev/0014.JPG" alt="" />
+ <img src="../images/t60_dev/0014.JPG" alt="" />
</p>
<p>
Disconnect cable (for 56k modem) and disconnect the other cable:<br/>
- <img src="t60_dev/0015.JPG" alt="" /> <img src="t60_dev/0016.JPG" alt="" />
+ <img src="../images/t60_dev/0015.JPG" alt="" /> <img src="../images/t60_dev/0016.JPG" alt="" />
</p>
<p>
Disconnect speaker cable:<br/>
- <img src="t60_dev/0017.JPG" alt="" />
+ <img src="../images/t60_dev/0017.JPG" alt="" />
</p>
<p>
Disconnect the other end of the 56k modem cable:<br/>
- <img src="t60_dev/0018.JPG" alt="" />
+ <img src="../images/t60_dev/0018.JPG" alt="" />
</p>
<p>
Make sure you removed it:<br/>
- <img src="t60_dev/0019.JPG" alt="" />
+ <img src="../images/t60_dev/0019.JPG" alt="" />
</p>
<p>
Unscrew those:<br/>
- <img src="t60_dev/0020.JPG" alt="" />
+ <img src="../images/t60_dev/0020.JPG" alt="" />
</p>
<p>
Make sure you removed those:<br/>
- <img src="t60_dev/0021.JPG" alt="" />
+ <img src="../images/t60_dev/0021.JPG" alt="" />
</p>
<p>
Disconnect LCD cable from board:<br/>
- <img src="t60_dev/0022.JPG" alt="" />
+ <img src="../images/t60_dev/0022.JPG" alt="" />
</p>
<p>
Remove those screws then remove the LCD assembly:<br/>
- <img src="t60_dev/0023.JPG" alt="" /> <img src="t60_dev/0024.JPG" alt="" /> <img src="t60_dev/0025.JPG" alt="" />
+ <img src="../images/t60_dev/0023.JPG" alt="" /> <img src="../images/t60_dev/0024.JPG" alt="" /> <img src="../images/t60_dev/0025.JPG" alt="" />
</p>
<p>
Once again, make sure you removed those:<br/>
- <img src="t60_dev/0026.JPG" alt="" />
+ <img src="../images/t60_dev/0026.JPG" alt="" />
</p>
<p>
Remove the shielding containing the motherboard, then flip it over. Remove these screws, placing them on a steady
surface in the same layout as they were in before you removed them. Also, you should mark each screw hole after removing the
screw (a permanent marker pen will do), this is so that you have a point of reference when re-assembling the machine:<br/>
- <img src="t60_dev/0027.JPG" alt="" /> <img src="t60_dev/0028.JPG" alt="" /> <img src="t60_dev/0029.JPG" alt="" />
- <img src="t60_dev/0031.JPG" alt="" /> <img src="t60_dev/0032.JPG" alt="" /> <img src="t60_dev/0033.JPG" alt="" />
+ <img src="../images/t60_dev/0027.JPG" alt="" /> <img src="../images/t60_dev/0028.JPG" alt="" /> <img src="../images/t60_dev/0029.JPG" alt="" />
+ <img src="../images/t60_dev/0031.JPG" alt="" /> <img src="../images/t60_dev/0032.JPG" alt="" /> <img src="../images/t60_dev/0033.JPG" alt="" />
</p>
<p>
Remove microphone (soldering iron not needed. Just wedge it out gently):<br/>
- <img src="t60_dev/0039.JPG" alt="" /><br/>
+ <img src="../images/t60_dev/0039.JPG" alt="" /><br/>
<b>Rationale:</b><br/>
Another reason to remove the microphone: If your computer gets<a href="#ref1">[1]</a> compromised, it can
record what you say, and use it to receive data from nearby devices if
@@ -193,12 +188,12 @@
<p>
Remove infrared:<br/>
- <img src="t60_dev/0040.JPG" alt="" /> <img src="t60_dev/0042.JPG" alt="" />
+ <img src="../images/t60_dev/0040.JPG" alt="" /> <img src="../images/t60_dev/0042.JPG" alt="" />
</p>
<p>
Remove cardbus (it's in a socket, no need to disable. Just remove the port itself):<br/>
- <img src="t60_dev/0041.JPG" alt="" /><br/>
+ <img src="../images/t60_dev/0041.JPG" alt="" /><br/>
<b>Rationale:</b><br/>
It has direct memory access and can be used to extract sensitive details (such as LUKS keys). See
'GoodBIOS' video linked at the end (speaker is Peter Stuge, a coreboot hacker). The video covers X60
@@ -207,7 +202,7 @@
<p>
Before re-installing the upper chassis, remove the speaker:<br/>
- <img src="t60_dev/0043.JPG" alt="" /> <img src="t60_dev/0044.JPG" alt="" /><br/>
+ <img src="../images/t60_dev/0043.JPG" alt="" /> <img src="../images/t60_dev/0044.JPG" alt="" /><br/>
Reason: combined with the microphone issue, this could be used to leak data.<br/>
If your computer gets<a href="#ref1">[1]</a> compromised, it can be used to
transmit data to nearby compromised devices. It's unknown if it can be
@@ -217,7 +212,7 @@
<p>
Remove the wwan:<br/>
- <img src="t60_dev/0045.JPG" alt="" /><br/>
+ <img src="../images/t60_dev/0045.JPG" alt="" /><br/>
<b>Wwan (3d modem):</b> They run proprietary software and have access to the
computer's RAM! So it's like AMT but over the GSM network which is
probably even worse.<br/>
@@ -227,64 +222,64 @@
<p>
This is where the simcard connector is soldered. See notes above about wwan. Remove simcard by removing battery
and then it's accessible (so, remember to do this when you re-assemble. or you could do it now?)<br/>
- <img src="t60_dev/0046.JPG" alt="" />
+ <img src="../images/t60_dev/0046.JPG" alt="" />
</p>
<p>
Put those screws back:<br/>
- <img src="t60_dev/0047.JPG" alt="" />
+ <img src="../images/t60_dev/0047.JPG" alt="" />
</p>
<p>
Put it back into lower chassis:<br/>
- <img src="t60_dev/0048.JPG" alt="" />
+ <img src="../images/t60_dev/0048.JPG" alt="" />
</p>
<p>
Attach LCD and insert screws (also, attach the lcd cable to the board):<br/>
- <img src="t60_dev/0049.JPG" alt="" />
+ <img src="../images/t60_dev/0049.JPG" alt="" />
</p>
<p>
Insert those screws:<br/>
- <img src="t60_dev/0050.JPG" alt="" />
+ <img src="../images/t60_dev/0050.JPG" alt="" />
</p>
<p>
On the CPU (and there is another chip south-east to it, sorry forgot to take pic)
clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too)
you should also clean the heatsink the same way<br/>
- <img src="t60_dev/0051.JPG" alt="" />
+ <img src="../images/t60_dev/0051.JPG" alt="" />
</p>
<p>
Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):<br/>
- <img src="t60_dev/0052.JPG" alt="" />
+ <img src="../images/t60_dev/0052.JPG" alt="" />
</p>
<p>
Reinstall that upper bezel:<br/>
- <img src="t60_dev/0053.JPG" alt="" />
+ <img src="../images/t60_dev/0053.JPG" alt="" />
</p>
<p>
Do that:<br/>
- <img src="t60_dev/0054.JPG" alt="" /> <img src="t60_dev/0055.JPG" alt="" />
+ <img src="../images/t60_dev/0054.JPG" alt="" /> <img src="../images/t60_dev/0055.JPG" alt="" />
</p>
<p>
Attach keyboard and install nvram battery:<br/>
- <img src="t60_dev/0056.JPG" alt="" /> <img src="t60_dev/0057.JPG" alt="" />
+ <img src="../images/t60_dev/0056.JPG" alt="" /> <img src="../images/t60_dev/0057.JPG" alt="" />
</p>
<p>
Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:<br/>
- <img src="t60_dev/0058.JPG" alt="" />
+ <img src="../images/t60_dev/0058.JPG" alt="" />
</p>
<p>
Remove those covers and unscrew:<br/>
- <img src="t60_dev/0059.JPG" alt="" /> <img src="t60_dev/0060.JPG" alt="" /> <img src="t60_dev/0061.JPG" alt="" />
+ <img src="../images/t60_dev/0059.JPG" alt="" /> <img src="../images/t60_dev/0060.JPG" alt="" /> <img src="../images/t60_dev/0061.JPG" alt="" />
</p>
<p>
@@ -293,7 +288,7 @@
<p>
Remove bluetooth module:<br/>
- <img src="t60_dev/0062.JPG" alt="" /> <img src="t60_dev/0063.JPG" alt="" />
+ <img src="../images/t60_dev/0062.JPG" alt="" /> <img src="../images/t60_dev/0063.JPG" alt="" />
</p>
<p>
@@ -302,12 +297,12 @@
<p>
It lives!<br/>
- <img src="t60_dev/0071.JPG" alt="" /> <img src="t60_dev/0072.JPG" alt="" /> <img src="t60_dev/0073.JPG" alt="" />
+ <img src="../images/t60_dev/0071.JPG" alt="" /> <img src="../images/t60_dev/0072.JPG" alt="" /> <img src="../images/t60_dev/0073.JPG" alt="" />
</p>
<p>
Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:<br/>
- <img src="t60_dev/0074.JPG" alt="" />
+ <img src="../images/t60_dev/0074.JPG" alt="" />
</p>
<h2>
@@ -391,8 +386,8 @@
Further reading material (software security)
</h1>
<ul>
- <li><a href="encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
- <li><a href="encrypted_parabola.html">Installing Parabola GNU/Linux with full disk encryption (including /boot)</a></li>
+ <li><a href="../gnulinux/encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
+ <li><a href="../gnulinux/encrypted_parabola.html">Installing Parabola GNU/Linux with full disk encryption (including /boot)</a></li>
<li><a href="dock.html">Notes about DMA access and the docking station</a></li>
</ul>
diff --git a/docs/howtos/x60_security.html b/docs/security/x60_security.html
index e24ae125..33ccb6d6 100644
--- a/docs/howtos/x60_security.html
+++ b/docs/security/x60_security.html
@@ -5,12 +5,7 @@
<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;
- }
+ @import url('../css/main.css');
</style>
<title>Libreboot documentation: Security on the ThinkPad X60</title>
@@ -23,7 +18,7 @@
<aside>Hardware modifications to enhance security on the ThinkPad X60. This tutorial is <b>incomplete</b> at the time of writing.</aside>
</header>
- <p>Or go <a href="../index.html">back to main index</a></p>
+ <p>Or go <a href="index.html">back to main index</a></p>
<h2>Table of Contents</h2>
<ul>
@@ -79,17 +74,17 @@
<p>
Firstly remove the bluetooth (if your X60 has this):<br/>
The marked screws are underneath those stickers (marked in those 3 locations at the bottom of the LCD assembly):<br/>
- <img src="x60_security/0000_bluetooth0.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0000_bluetooth0.jpg" alt="" /><br/>
Now gently pry off the bottom part of the front bezel, and the bluetooth module is on the left (easily removable):<br/>
- <img src="x60_security/0000_bluetooth.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0000_bluetooth.jpg" alt="" /><br/>
</p>
<p>
If your model was WWAN, remove the simcard (check anyway):<br/>
Uncover those 2 screws at the bottom:<br/>
- <img src="x60_security/0000_simcard0.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0000_simcard0.jpg" alt="" /><br/>
SIM card (not present in the picture) is in the marked location:<br/>
- <img src="x60_security/0000_simcard1.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0000_simcard1.jpg" alt="" /><br/>
Replacement: USB dongle.
</p>
@@ -99,28 +94,28 @@
<p>
Remove those screws:<br/>
- <img src="x60_security/0000.jpg" alt="" />
+ <img src="../images/x60_security/0000.jpg" alt="" />
</p>
<p>
Push the keyboard forward (carefully):<br/>
- <img src="x60_security/0001.jpg" alt="" />
+ <img src="../images/x60_security/0001.jpg" alt="" />
</p>
<p>
Lift the keyboard up and disconnect it from the board:<br/>
- <img src="x60_security/0002.jpg" alt="" />
+ <img src="../images/x60_security/0002.jpg" alt="" />
</p>
<p>
Grab the right-hand side of the chassis and force it off (gently) and pry up the rest of the chassis:<br/>
- <img src="x60_security/0003.jpg" alt="" />
+ <img src="../images/x60_security/0003.jpg" alt="" />
</p>
<p>
You should now have this:<br/>
- <img src="x60_security/0004.jpg" alt="" />
+ <img src="../images/x60_security/0004.jpg" alt="" />
</p>
<p>
The following is a summary of what you will remove (already done to this machine):<br/>
- <img src="x60_security/0001_overview.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0001_overview.jpg" alt="" /><br/>
Note: the blue lines represent antenna cables and modem cables. You don't need to remove these, but you can if you want
(to make it tidier after removing other parts). I removed the antenna wires, the modem jack, the modem cable and
also (on another model) a device inside the part where the wwan antenna goes (wasn't sure what it was, but I knew it wasn't needed). <b>This is optional</b>
@@ -128,7 +123,7 @@
<p>
Remove the microphone (can desolder it, but you can also easily pull it off with you hands). Already removed here:<br/>
- <img src="x60_security/0001_microphone.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0001_microphone.jpg" alt="" /><br/>
<b>Rationale:</b><br/>
Another reason to remove the microphone: If your computer gets<a href="#ref1">[1]</a> compromised, it can
record what you say, and use it to receive data from nearby devices if
@@ -139,13 +134,13 @@
<p>
Remove the modem:<br/>
- <img src="x60_security/0001_modem.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0001_modem.jpg" alt="" /><br/>
(useless, obsolete device)
</p>
<p>
Remove the speaker:<br/>
- <img src="x60_security/0001_speaker.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0001_speaker.jpg" alt="" /><br/>
Reason: combined with the microphone issue, this could be used to leak data.<br/>
If your computer gets<a href="#ref1">[1]</a> compromised, it can be used to
transmit data to nearby compromised devices. It's unknown if it can be
@@ -155,7 +150,7 @@
<p>
Remove the wlan (also remove wwan if you have it):<br/>
- <img src="x60_security/0001_wlan_wwan.jpg" alt="" /><br/>
+ <img src="../images/x60_security/0001_wlan_wwan.jpg" alt="" /><br/>
Reason: has direct (and very fast) memory access, and could (theoretically) leak data over a side-channel.<br/>
<b>Wifi:</b> The ath5k/ath9k cards might not have firmware at all. They might safe but could have
access to the computer's RAM trough DMA. If people have an intel
@@ -252,8 +247,8 @@
Further reading material (software security)
</h1>
<ul>
- <li><a href="encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
- <li><a href="encrypted_parabola.html">Installing Parabola GNU/Linux with full disk encryption (including /boot)</a></li>
+ <li><a href="../gnulinux/encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
+ <li><a href="../gnulinux/encrypted_parabola.html">Installing Parabola GNU/Linux with full disk encryption (including /boot)</a></li>
<li><a href="dock.html">Notes about DMA access and the docking station</a></li>
</ul>