libreboot

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit dbc480fb28a694ad5a587be025eabfded7c7784b
parent 85ec6862e8af0747420ca15fef7100edb5885302
Author: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Date:   Fri, 17 Mar 2017 22:24:25 -0700

Convert documentation to markdown

Diffstat:
docs/archive_old.html | 1509-------------------------------------------------------------------------------
docs/archive_old.md | 1402+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/bsd/freebsd.html | 290-------------------------------------------------------------------------------
docs/bsd/freebsd.md | 227+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/bsd/index.html | 86-------------------------------------------------------------------------------
docs/bsd/index.md | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/bsd/netbsd.html | 301-------------------------------------------------------------------------------
docs/bsd/netbsd.md | 244+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/bsd/openbsd.html | 325-------------------------------------------------------------------------------
docs/bsd/openbsd.md | 265+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/depthcharge/index.html | 362-------------------------------------------------------------------------------
docs/depthcharge/index.md | 279+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/distros/index.html | 181-------------------------------------------------------------------------------
docs/distros/index.md | 143+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/fsf-distros/index.html | 146-------------------------------------------------------------------------------
docs/fsf-distros/index.md | 118+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/future/index.html | 598-------------------------------------------------------------------------------
docs/future/index.md | 465+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/future/old.html | 319-------------------------------------------------------------------------------
docs/future/old.md | 279+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/git/index.html | 490-------------------------------------------------------------------------------
docs/git/index.md | 390+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/gnulinux/configuring_parabola.html | 884-------------------------------------------------------------------------------
docs/gnulinux/configuring_parabola.md | 827+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/gnulinux/encrypted_debian.html | 495-------------------------------------------------------------------------------
docs/gnulinux/encrypted_debian.md | 392+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/gnulinux/encrypted_parabola.html | 830-------------------------------------------------------------------------------
docs/gnulinux/encrypted_parabola.md | 834+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/gnulinux/grub_boot_installer.html | 355-------------------------------------------------------------------------------
docs/gnulinux/grub_boot_installer.md | 287+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/gnulinux/grub_cbfs.html | 366-------------------------------------------------------------------------------
docs/gnulinux/grub_cbfs.md | 305++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/gnulinux/grub_hardening.html | 281-------------------------------------------------------------------------------
docs/gnulinux/grub_hardening.md | 234+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/gnulinux/index.html | 93-------------------------------------------------------------------------------
docs/gnulinux/index.md | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/grub/index.html | 190-------------------------------------------------------------------------------
docs/grub/index.md | 164+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/dock.html | 190-------------------------------------------------------------------------------
docs/hardware/dock.md | 165+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/index.html | 84-------------------------------------------------------------------------------
docs/hardware/index.md | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/t60_heatsink.html | 171-------------------------------------------------------------------------------
docs/hardware/t60_heatsink.md | 131+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/t60_lcd_15.html | 128-------------------------------------------------------------------------------
docs/hardware/t60_lcd_15.md | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/t60_security.html | 484-------------------------------------------------------------------------------
docs/hardware/t60_security.md | 416+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/x60_heatsink.html | 187-------------------------------------------------------------------------------
docs/hardware/x60_heatsink.md | 158+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/x60_keyboard.html | 91-------------------------------------------------------------------------------
docs/hardware/x60_keyboard.md | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/x60_lcd_change.html | 83-------------------------------------------------------------------------------
docs/hardware/x60_lcd_change.md | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hardware/x60_security.html | 344-------------------------------------------------------------------------------
docs/hardware/x60_security.md | 319+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/c201.html | 262-------------------------------------------------------------------------------
docs/hcl/c201.md | 267+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/d510mo.html | 82-------------------------------------------------------------------------------
docs/hcl/d510mo.md | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/d945gclf.html | 151------------------------------------------------------------------------------
docs/hcl/d945gclf.md | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/ga-g41m-es2l.html | 86-------------------------------------------------------------------------------
docs/hcl/ga-g41m-es2l.md | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/gm45_remove_me.html | 693-------------------------------------------------------------------------------
docs/hcl/gm45_remove_me.md | 604++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/imac52.html | 76----------------------------------------------------------------------------
docs/hcl/imac52.md | 46++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/index.html | 736-------------------------------------------------------------------------------
docs/hcl/index.md | 666+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/kcma-d8.html | 186-------------------------------------------------------------------------------
docs/hcl/kcma-d8.md | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/kfsn4-dre.html | 164-------------------------------------------------------------------------------
docs/hcl/kfsn4-dre.md | 139+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/kgpe-d16.html | 310-------------------------------------------------------------------------------
docs/hcl/kgpe-d16.md | 284+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/r400.html | 158-------------------------------------------------------------------------------
docs/hcl/r400.md | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/t400.html | 179-------------------------------------------------------------------------------
docs/hcl/t400.md | 136+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/t500.html | 209-------------------------------------------------------------------------------
docs/hcl/t500.md | 160+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/hcl/x200.html | 423-------------------------------------------------------------------------------
docs/hcl/x200.md | 363+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/index.html | 309-------------------------------------------------------------------------------
docs/index.md | 260+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/bbb_setup.html | 478-------------------------------------------------------------------------------
docs/install/bbb_setup.md | 414+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/c201.html | 336-------------------------------------------------------------------------------
docs/install/c201.md | 290+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/d510mo.html | 107-------------------------------------------------------------------------------
docs/install/d510mo.md | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/d945gclf.html | 88-------------------------------------------------------------------------------
docs/install/d945gclf.md | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/ga-g41m-es2l.html | 139-------------------------------------------------------------------------------
docs/install/ga-g41m-es2l.md | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/index.html | 566-------------------------------------------------------------------------------
docs/install/index.md | 484+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/kcma-d8.html | 109-------------------------------------------------------------------------------
docs/install/kcma-d8.md | 80+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/kgpe-d16.html | 124-------------------------------------------------------------------------------
docs/install/kgpe-d16.md | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/r400_external.html | 587-------------------------------------------------------------------------------
docs/install/r400_external.md | 445+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/rpi_setup.html | 702-------------------------------------------------------------------------------
docs/install/rpi_setup.md | 472+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/t400_external.html | 580-------------------------------------------------------------------------------
docs/install/t400_external.md | 451+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/t500_external.html | 580-------------------------------------------------------------------------------
docs/install/t500_external.md | 456+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/t60_unbrick.html | 322-------------------------------------------------------------------------------
docs/install/t60_unbrick.md | 259+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/x200_external.html | 477-------------------------------------------------------------------------------
docs/install/x200_external.md | 403+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/x60_unbrick.html | 314-------------------------------------------------------------------------------
docs/install/x60_unbrick.md | 271+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/install/x60tablet_unbrick.html | 215-------------------------------------------------------------------------------
docs/install/x60tablet_unbrick.md | 178+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/misc/bbb_ehci.html | 523-------------------------------------------------------------------------------
docs/misc/bbb_ehci.md | 398+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/misc/index.html | 366-------------------------------------------------------------------------------
docs/misc/index.md | 358+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/misc/patch.html | 218-------------------------------------------------------------------------------
docs/misc/patch.md | 151++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/release.html | 330-------------------------------------------------------------------------------
docs/release.md | 254+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
126 files changed, 17587 insertions(+), 21048 deletions(-)

diff --git a/docs/archive_old.html b/docs/archive_old.html @@ -1,1509 +0,0 @@ -<!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>Libreboot release information (old)</title> -</head> -<body> - - <div class="section"> - - <h1 id="pagetop">Libreboot release information (old)</h1> - <p> - Information for this release can be found at <a href="release.html">release.html</a>. - Updated versions of libreboot can be found at <a href="http://libreboot.org/">libreboot.org</a>. - </p> - - <div class="important"> - <p> - <b>This page is *obsolete*, provided for historical purposes.</b> - </p> - </div> - - </div> - - <div class="section"> - - <h2>Releases</h2> - <ul> - <li><a href="#release20150518">r20150518 (18th May 2015)</a></li> - <li><a href="#release20150124">r20150124 (24th January 2015), r20150126 (26th January 2015), r20150208 (8th February 2015)</a></li> - <li><a href="#release20141015">r20141015 (15th October 2014)</a></li> - <li><a href="#release20140911">r20140911 (6th release)</a> (11th September 2014 <b>pre-release, 7th beta</b>)</li> - <li><a href="#release20140622">r20140622 (5th release)</a> (7th March 2014, revised 22nd June 2014)</li> - <li><a href="#release20140221">r20140221 (4th release)</a> (21st February 2014)</li> - <li><a href="#release20131214">r20131214 (3rd release)</a> (14th December 2013)</li> - <li><a href="#release20131213">r20131213 (2nd release)</a> (13th December 2013)</li> - <li><a href="#release20131212">r20131212 (1st release)</a> (12th December 2013)</li> - </ul> - - </div> - - <div class="section"> - - <h1 id="release20150518">Release 20150518</h1> - - <p> - Release date: 18th May 2015. - </p> - - <p> - Installation instructions can be found at <b><i>docs/install/</i></b>. - Building instructions (for source code) can be found at <b><i>docs/git/#build</i></b>. - </p> - - <h2>Machines supported in this release:</h2> - <ul> - <li> - <b>ThinkPad X60/X60s</b> - <ul> - <li> - You can also remove the motherboard from an X61/X61s and replace it with an X60/X60s motherboard. - An X60 Tablet motherboard will also fit inside an X60/X60s. - </li> - </ul> - </li> - <li> - <b>ThinkPad X60 Tablet</b> (1024x768 and 1400x1050) with digitizer support - <ul> - <li>See <b><i>docs/hcl/#supported_x60t_list</i></b> 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>ThinkPad T60</b> (Intel GPU) (there are issues; see below): - <ul> - <li>See notes below for exceptions, and <b><i>docs/hcl/#supported_t60_list</i></b> 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 <b><i>docs/future/#t60_cpu_microcode</i></b>.</li> - <li>T60P (and T60 laptops with ATI GPU) will likely never be supported: <b><i>docs/hcl/#t60_ati_intel</i></b></li> - </ul> - </li> - <li> - <b>ThinkPad X200</b> - <ul> - <li>X200S and X200 Tablet are also supported, conditionally; see <b><i>docs/hcl/x200.html#x200s</i></b></li> - <li><b>ME/AMT</b>: libreboot removes this, permanently. <b><i>docs/hcl/gm45_remove_me.html</i></b></li> - </ul> - </li> - <li> - <b>ThinkPad R400</b> - <ul> - <li>See <b><i>docs/hcl/r400.html</i></b></li> - <li><b>ME/AMT</b>: libreboot removes this, permanently. <b><i>docs/hcl/gm45_remove_me.html</i></b></li> - </ul> - </li> - <li> - <b>ThinkPad T400</b> - <ul> - <li>See <b><i>docs/hcl/t400.html</i></b></li> - <li><b>ME/AMT</b>: libreboot removes this, permanently. <b><i>docs/hcl/gm45_remove_me.html</i></b></li> - </ul> - </li> - <li> - <b>ThinkPad T500</b> - <ul> - <li>See <b><i>docs/hcl/t500.html</i></b></li> - <li><b>ME/AMT</b>: libreboot removes this, permanently. <b><i>docs/hcl/gm45_remove_me.html</i></b></li> - </ul> - </li> - <li> - <b>Apple MacBook1,1</b> (MA255LL/A, MA254LL/A, MA472LL/A) - <ul> - <li>See <b><i>docs/hcl/#macbook11</i></b>.</li> - </ul> - </li> - <li> - <b>Apple MacBook2,1</b> (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A) - <ul> - <li>See <b><i>docs/hcl/#macbook21</i></b>.</li> - </ul> - </li> - </ul> - - <h2> - Changes for this release, relative to r20150208 (earliest changes last, recent changes first) - </h2> - <ul> - <li>Add a whitelist entry to board_enable.c in flashrom, for the ThinkPad R400, T400 and T500</li> - <li> - Updated flashrom (to SVN revision 1889) - <ul> - <li>X200 whitelist patch removed (merged upstream)</li> - <li>X200 whitelist modified to include X200S and X200 Tablet</li> - </ul> - </li> - <li>libreboot_util: don't include cmos layout files (not needed anymore)</li> - <li><b>coreboot-libre: backport patches for X200 Tablet digitizer support</b></li> - <li>build/release/archives: create SHA512 sum manifest file of the release archives</li> - <li>build/release/archives: separate crossgcc into a new archive</li> - <li>disabled generation of txtmode ROM images for now (they will be back again in the next release)</li> - <li>coreboot-libre: delete unused code (reduce size of src archive)</li> - <li>Flashing guides: make them more friendly to colourblind people</li> - <li> - docs/gnulinux/encrypted_*.html: Remove mention of password length - - it was arbitrary and pointless. - </li> - <li>docs/maintain/: Finish the guide</li> - <li> - scripts/download/coreboot: use diffs included in libreboot, not external gerrit cherry-picks - - review.coreboot.org (gerrit) being down no longer kills - libreboot (backup mirrors of the master repository exist) - </li> - <li>docs/install/bbb_setup.html: Add info about wp/hold and pinouts</li> - <li>docs/: improve the description of libreboot</li> - <li>docs/hcl/gm45_remove_me.html: notes about the demefactory utility</li> - <li>docs/install/bbb_setup.html: EHCI debug: recommend linux-libre</li> - <li>docs/install/bbb_setup.html: EHCI Debug logging setup guide</li> - <li>docs/hcl/t500.html: Add screen compatibility report (TODO: fix incompatible screens)</li> - <li> - Update coreboot(again) + merge GM45 hybrid GPU patches - - means that T400/T500 with the ATI+Intel hybrid GPU setup - will work (ATI disabled, Intel permanently enabled). - power_on_after_fail nvram option added to all GM45 boards, - defaulting to No, so that plugging it AC doesn't boot up - the system against the users will. Net20DC is now the default - debug dongle on all boards (compatible with BBB). - </li> - <li>demefactory (new utility): create GM45 factory.rom without the ME</li> - <li>ich9deblob: re-factor descriptor.c functions</li> - <li>docs/hcl/t500.html: add hardware logs</li> - <li>docs/gnulinux/encrypted_*.html: No password for default entry</li> - <li>docs/git/: Add more details about BUC.TS</li> - <li>grub.cfg: Also scan for grub2/grub.cfg, not just grub/grub.cfg</li> - <li>docs/maintain/ (new section. WIP!): Maintaining libreboot</li> - <li>docs/gnulinux/grub_boot_installer.html: Fix hazardous instruction</li> - <li>docs/tasks.html: Better categorization between intel/amd/arm</li> - <li>docs/install/bbb_setup.html: notes about SPI flashing stability</li> - <li>docs/install/bbb_setup.html: more names for the 0.1&quot; cables</li> - <li>docs/install/*_external.html: add disclaimer about thermal paste</li> - <li>docs/install/bbb_setup.html: Fix broken links</li> - <li>docs/install/bbb_setup.html: preliminary notes about EHCI debug</li> - <li>docs/hcl/gm45_remove_me.html: Link to websites talking about the ME</li> - <li>docs/install/{t400,t500,r400}_external.html: Notes about CPU compatibility</li> - <li>Delete the ich9macchange script. It's useless, and confuses people</li> - <li>docs/hcl/gm45_remove_me.html: prioritize ich9gen executable path</li> - <li>docs/hcl/gm45_remove_me.html: prioritize changing mac address</li> - <li>docs/hcl/gm45_remove_me.html: less confusing notes about ich9gen</li> - <li>build/dependencies/parabola: Add dependencies for x86_64</li> - <li>scripts/dependencies/paraboladependencies: build dependencies (32-bit Parabola)</li> - <li><b>New board</b>: ThinkPad T500</li> - <li>Add diffs for descriptor/gbe differences between T500 and X200</li> - <li>coreboot-libre: provide better blob categorization</li> - <li>docs/hcl/gm45_remove_me.html: add notes about flash write protect</li> - <li><b>New board</b>: ThinkPad T400</li> - <li>GRUB: add partial vesamenu.c32 support (fixes tails ISOLINUX menu)</li> - <li>Update GRUB (to revision fa07d919d1ff868b18d8a42276d094b63a58e299)</li> - <li> - Update coreboot (to revision 83b05eb0a85d7b7ac0837cece67afabbdb46ea65) - <ul> - <li> - Intel CPU microcode (most of it) no longer deleted, - because it was deleted upstream (moved to a 3rd - party repository). - </li> - <li>MacBook2,1 cstate patch is no longer cherry picked (merged upstream)</li> - <li>Patch to disable use of timestamps in coreboot no longer included (merged upstream)</li> - </ul> - </li> - <li>coreboot-libre: don't list vortex86ex kbd firmware as microcode (list it separately)</li> - <li>coreboot-libre: don't rm */early_setup_ss.h (these are not blobs)</li> - <li>coreboot-libre: add GPLv3 license to the findblobs script</li> - <li>coreboot-libreboot: don't rm raminit_tables (nahelem/sandybridge) (they are not blobs)</li> - <li>coreboot-libre: don't delete the .spd.hex files (they are not blobs)</li> - <li>build/release/archives: don't put rmodtool in libreboot_util</li> - <li>docs/install/x200_external.html: recommend installing GNU+Linux at the end</li> - <li>docs/install/x200_external.html: add more photos, improve instructions</li> - <li>build/clean/grub: use distclean instead of clean</li> - <li>grub-assemble: Add the <i>bsd</i> and <i>part_bsd</i> modules</li> - <li>build/roms/withgrub: Only run ich9gen if gm45/gs45 images exist</li> - <li>docs/git/: Add notes about building for specific boards</li> - <li>build/roms/withgrub: Allow building for a custom range of boards</li> - <li>grub-assemble: Disable verbose output</li> - <li>Add documentation on how to unlock root encrypted fs with key in initramfs in Parabola Linux</li> - <li>docs/gnulinux/grub_cbfs.html: Improve structure (easier to use)</li> - <li>grub.cfg: Disable the beep on startup</li> - <li>docs/install/bbb_setup.html: Make the guide easier to use</li> - <li>docs/gnulinux/grub_cbfs.html: Remove redundant instructions</li> - <li>docs/install/x200_external.html: Mark pins in the images</li> - <li>docs/install/bbb_setup.html: Replace 3.3V PSU photo with ATX PSU</li> - <li>docs/hcl/x200.html: Add dumps from 4-MiB X200 with Lenovo BIOS 3.22</li> - <li>docs/hcl/x200.html: Add dumps from 4-MiB X200 with Lenovo BIOS 3.18</li> - <li>grub.cfg: add syslinux_configfile menuentry for ahci0</li> - <li>grub.cfg: Add more paths for syslinux_configfile</li> - <li>docs/future.html: T60: Add EDID dump from LG-Philips LP150E05-A2K1</li> - <li>docs/install/bbb_setup.html: Further clarify which clip is needed</li> - <li>bash scripts: Make script output more user-friendly in general</li> - <li>bash scripts: Only enable verbose output if DEBUG= is used</li> - <li> - build: Support multiple extra options - - now possible to build multiple images for arbitrary - boards (configs), but without building the entire - collection. - </li> - <li> - Deleted the signing archive key - - the finger print and ID is given instead, so that - the user can download it from a key server - </li> - <li> - scripts/helpers/build/release: Move docs to separate archive - - reduces the size of the other archives considerably - </li> - <li>Move DEBLOB to resources/utilities/coreboot-libre/deblob</li> - <li> - scripts/helpers/build/release: Delete DEBLOB from libreboot_src/ - - not needed in libreboot_src (release archive) because it - contains a coreboot revision that has already been deblobbed. - </li> - <li>flash (script): Use <i>build</i> instead of <i>DEBLOB</i> to know if in src</li> - <li>docs/install/r400_external.html: Show images, don't link.</li> - <li>docs/install/x200_external.html: Show images, don't link.</li> - <li>docs/install/bbb_setup.html: Show images, instead of linking</li> - <li>Documentation: optimize all images (reduce file sizes)</li> - <li> - Remove download links from the release page (and the archive page) - - release archives are hosted differently following this release, - which means that the old methods are no longer viable. - </li> - <li>Moved ich9macchange to resources/scripts/misc/ich9macchange</li> - <li> - ich9macchange: assume that the script is being run from _util - (act only on one ROM image, defined by a user-provided path) - </li> - <li>Move grub-background to resources/scripts/misc/grub-background</li> - <li>grub-background: assume that it is being run from libreboot_util</li> - <li>grub-background: change only one ROM image, specified by path</li> - <li>build (release archives): Add the commitid file to release/</li> - <li>build-release: Move the release archives to release/</li> - <li> - Merge all build scripts into a single generic script, - with helpers in resources/scripts/helpers/build/ - </li> - <li> - Replace <i>getall</i> with <i>download</i>, which takes as input an argument - specifying which program the user wants to download. - </li> - <li>Moved the get scripts to resources/scripts/helpers/download/</li> - <li>build-release: Remove the powertop entries</li> - <li>Documentation: general improvements to the flashing instructions</li> - <li>Merged all flashing scripts into a single script</li> - <li>Updated GRUB</li> - <li>bucts: Make it build without git</li> - <li>Moved dejavu-fonts-ttf-2.34/AUTHORS to resources/grub/font/</li> - <li>Deleted GRUB Invaders from libreboot</li> - <li>Deleted SeaBIOS from libreboot</li> - <li>build-release: optimize use of tar (reduced file sizes)</li> - <li>grub.cfg: add another SYSLINUX config location (/syslinux/syslinux.cfg)</li> - <li>build-release: remove the bin/ directory from libreboot_util</li> - <li>cleandeps: delete the bin/ directory</li> - <li>buildrom-withgrub: create the bin directory if it does not exist</li> - <li>coreboot-libre: don't use git for version timestamp</li> - <li>i945-pwm: add clean command to Makefile</li> - <li>i945-pwm: add -lz to Makefile</li> - <li>docs/install/x200_external: Mention GPIO33 non-descriptor mode</li> - <li>docs/hcl/: Remove redundant links</li> - <li>ich9macchange: Add R400</li> - <li>build-release: Separate ROM images into individual archives</li> - <li>build-release: rename libreboot_bin to libreboot_util</li> - <li><b>New board:</b> ThinkPad R400 support added to libreboot.</li> - <li>bbb_setup.html: tell user to use libreboot's own flashrom</li> - </ul> - - </div> - - <div class="section"> - - <h1 id="release20150124">Release 20150124, 20150126 and 20150208</h1> - - <p> - Release date: 24th January 2015. - </p> - - <h2>Machines supported in this release:</h2> - <ul> - <li> - <b>Lenovo ThinkPad X60/X60s</b> - <ul> - <li> - You can also remove the motherboard from an X61/X61s and replace it with an X60/X60s motherboard. - An X60 Tablet motherboard will also fit inside an X60/X60s. - </li> - </ul> - </li> - <li> - <b>Lenovo ThinkPad X60 Tablet</b> (1024x768 and 1400x1050) with digitizer support - <ul> - <li>See <b>hcl/#supported_x60t_list</b> 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 issuesinstall/x200_external.html; see below): - <ul> - <li>See notes below for exceptions, and <b>hcl/#supported_t60_list</b> 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 <b>future/#t60_cpu_microcode</b>.</li> - <li>T60P (and T60 laptops with ATI GPU) will likely never be supported: <b>hcl/#t60_ati_intel</b></li> - </ul> - </li> - <li> - <b>Lenovo ThinkPad X200</b> - <ul> - <li>X200S and X200 Tablet are also supported, conditionally; see <b>hcl/x200.html#x200s</b></li> - <li><b>ME/AMT</b>: libreboot removes this, permanently. <b>hcl/gm45_remove_me.html</b></li> - </ul> - </li> - <li> - <b>Lenovo ThinkPad R400</b> (r20150208 and later, only) - <ul> - <li><b>ME/AMT</b>: libreboot removes this, permanently. <b>hcl/gm45_remove_me.html</b></li> - </ul> - </li> - <li> - <b>Apple MacBook1,1</b> (MA255LL/A, MA254LL/A, MA472LL/A) - <ul> - <li>See <b>hcl/#macbook11</b>.</li> - </ul> - </li> - <li> - <b>Apple MacBook2,1</b> (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A) - <ul> - <li>See <b>hcl/#macbook21</b>.</li> - </ul> - </li> - </ul> - - <h2> - Revisions for r20150208 (relative to r20150126) - </h2> - <p> - This is a maintenance release (polishing) based on r20150126. Users who installed r20150126 - don't really need to update to this release. - </p> - <ul> - <li>buildrom-withgrub: use gnulove.jpg background on 16:10 laptops (MacBook2,1 and X200)</li> - <li>build-release: include grub-background script in libreboot_bin</li> - <li>grub-background (new): lets user change GRUB background image</li> - <li>grub-assemble: Add link to original utility.</li> - <li>buildrom-withgrub: Put background.jpg in CBFS, not GRUB memdisk</li> - <li>grub-assemble: merge scripts into a single script gen.sh</li> - <li>Documentation: implement theme, drastically improve readability</li> - <li>docs/hcl/: update list of compatible T60 LCD panels</li> - <li>docs/: more clarification of libreboot's stated purpose.</li> - <li>build-release: include the commitid file in the release archives</li> - <li>docs/: Further emphasize the GNU+Linux requirement.</li> - <li>lenovobios_firstflash: fix BASH errors</li> - <li>lenovobios_secondflash: fix BASH errors</li> - <li>docs/install/x200_external.html: Tell user to switch MAC address.</li> - <li>docs/git/: Add to the list of x86_64 compatible hosts.</li> - <li>docs/install/: Remove old (obsolete) information.</li> - <li>docs/git/: Say that the build dependencies are for src (and not nedeed for libreboot_bin)</li> - <li>build: re-factor the descriptor/gbe generating loop for GM45/ICH9M</li> - <li>X60, X60S and X60 Tablet now the same ROM images.</li> - <li>Add QEMU (q35/ich9) support to libreboot.</li> - <li>Add QEMU (i440fx/piix4) support to libreboot</li> - <li>docs/: Re-write the description of what libreboot is.</li> - <li>docs/release.html: Add notes about how to use GPG.</li> - <li>build-release: delete the commitid file from release archives</li> - <li>build-release: create file named commitid after build-release</li> - </ul> - <h2> - Revisions for r20150126 (relative to r20150124) - </h2> - <p> - This is a bug fix release based on r20150124. It contains a few small changes: - </p> - <ul> - <li>grub.cfg: hardcode the list of partitions to search (speeds up booting considerably. GRUB regexp isn't very well optimized)</li> - <li>Docs (x200.html hcl): Remove incorrect information</li> - <li>Documentation (bbb_setup.html): Fix typos</li> - <li> - build-release: delete ich9fdgbe_{4m,8m}.bin files from ich9gen - <ul> - <li> - These were accidentically included in the r20150124 release. They - are generated from ich9gen so it's ok, but they don't need to be - in the archive. - </li> - </ul> - </li> - <li>Documentation (grub_cbfs.html): Looping in libreboot_grub.cfg (Add notes about it if the user copied from grub.cfg in CBFS.)</li> - </ul> - <h2> - Changes for this release (latest changes first, earliest changes last) - </h2> - <ul> - <li>grub.cfg: Added (ahci1) to list of devices for ISOLINUX parser (CD/DVD) (this is needed for the X200 docking station).</li> - <li>grub.cfg: ISOLINUX parsing is now done on all USB partitions.</li> - <li>grub.cfg: Automatically switched to /boot/grub/libreboot_grub.cfg on a partition, if it exists.</li> - <li>libreboot_bin: added static ARM binaries for flashrom, cbfstool, ich9gen and - ich9deblob (tested on beaglebone black).</li> - <li>Flashrom: removed redundant Macronix flashchip definitions (for X200 owners).</li> - <li>Flashrom: added whitelist for ThinkPad X200.</li> - <li>X200: fixed uneven backlight (at low levels)</li> - <li>ich9macchange (new script, uses ich9gen): for changing the default MAC address on X200 ROM images.</li> - <li>ich9gen: added capability to change the default MAC address (and update the checksum)</li> - <li>ich9deblob: added new utility ich9gen: this can generate a descriptor+gbe image without a factory.rom dump present.</li> - <li>Modified ich9deblob to use a struct for Gbe, documenting everything.</li> - <li>Massively updated the ich9deblob utility: re-factored everything completely.</li> - <li>Enabled cstates 1 and 2 on macbook21. This reduces idle heat / power consumption.</li> - <li>buildrom-withgrub: disabled creation of *txtmode*.rom for X200 (only framebuffer graphics work)</li> - <li>Updated SeaBIOS (again)</li> - <li>docs/install/#flashrom_x200: improve instructions</li> - <li>Updated flashrom (again) - patches updated</li> - <li>Updated GRUB (again)</li> - <li>Updated coreboot (again)</li> - <li>build-release: not all files were copied to libreboot_src. fix that.</li> - <li>build-release: include cbmem (statically compiled) in libreboot_bin</li> - <li>Documentation (X200): added software-based flashing instructions</li> - <li>Documentation: remove all references to the bus pirate (replaced with BBB flashing tutorials)</li> - <li><b>New board:</b> ThinkPad X200S and X200 Tablet support added to libreboot</li> - <li>build: automatically find board names (configs) to build for</li> - <li><b>New board:</b> ThinkPad X200 support added to libreboot</li> - <li>coreboot-libre config (all boards): enable USB dongle log output (for BeagleBone Black)</li> - <li>cleandeps: actually clean grubinvaders</li> - <li>.gitignore: add powertop directory</li> - <li>cleandeps: clean i945-pwm utility</li> - <li>scripts (all): fix typos</li> - <li>Documentation: general cleanup.</li> - <li>builddeps-flashrom: reduce build commands to a single for loop</li> - <li>scripts (all): replace unnecessary rm -Rf with rm -f</li> - <li>docs/release.html: add lenovo g505s to the list of candidates</li> - <li>.gitignore: add libreboot_bin.tar.xz and libreboot_src.tar.xz</li> - <li> - libreboot_bin.tar.xz: Include utils as statically linked binaries - <ul> - <li>This means that the user does not have to install build dependency - or build from source anymore.</li> - </ul> - </li> - <li>deps-parabola (removed) Remove Parabola dependencies script. Will re-add later (properly tested)</li> - <li>grub.cfg: Add more path checks to isolinux parser (more ISOs should work now)</li> - <li>Update SeaBIOS</li> - <li>x60flashfrom5 (new), for X60 users upgrading from 5th/early release</li> - <li>Update flashrom</li> - <li>Update GRUB</li> - <li> - Updated coreboot-libre - <ul> - <li>i945: permanently set tft_brightness to 0xff (fixes bug on X60 where - turning up brightness at max would make it loop back to low brightness)</li> - </ul> - </li> - <li> - getcb: Revert X60/T60 to legacy backlight controls - <ul> - <li>The ACPI brightness patches were abandoned and obsolete.</li> - </ul> - </li> - <li>grub.cfg: Only load initrd.img if it exists. Add rw to linux line (for ProteanOS)</li> - <li>build: Only generate the GRUB configurations once (re-use on all images)</li> - <li>Only build 2 GRUB payload executables, re-use on all boards.</li> - <li> - resources/utilities/grub-assemble/gen.txtmode.sh: Use GNU BASH<br/> - resources/utilities/grub-assemble/gen.vesafb.sh: Use GNU BASH - </li> - <li>scripts (error handling): Replace exit with exit 1 (make debugging easier)</li> - <li> - Move most files in CBFS to GRUB memdisk, except grub.cfg and grubtest.cfg - <ul> - This reduces the space used in CBFS because coreboot compresses - its payloads with LZMA by default. grub.cfg is all that most users - will want to modify, which remains in CBFS. - </ul> - </li> - <li>docs/release.html Add DMP vortex86ex to list of candidates.</li> - <li>docs/release.html Add ThinkPad X201 to list of candidates.</li> - <li>New links added to docs/security/x60_security and docs/security/t60_security</li> - <li>lenovobios_secondflash: Warn if BUCTS is not present. (not a dealbreaker. Can just pull out nvram battery/coin).</li> - <li>lenovobios_firstflash: Fail if BUCTS fails. (anti-bricking precaution)</li> - <li>Removed obnoxious warnings from flashing scripts, improved documentation instead.</li> - <li>scripts (all): add proper error checking (fail fast, fail early. Do not continue if there are errors)</li> - <li>buildrom-withgrub: rename image to boardname_layout_romtype.rom</li> - <li>buildrom-withgrub: don't move cbfstool, execute directly</li> - <li>resources/utilities/grub-assemble: add French Dvorak (BEPO) keyboard layout.</li> - <li>Documentation: add docs/hardware/x60_keyboard.html (show how to replace keyboard on X60/X60T)</li> - <li>Documentation: major cleanup (better structure, easier to find things)</li> - <li> - docs/release.html: Remove Acer CB5 from list of future candidates. - <ul> - <li> - Too many issues. Chromebooks are crippled (soldered RAM/storage/wifi) - and have too many usability issues for the libreboot project. - </li> - </ul> - </li> - <li>docs/gnulinux/grub_cbfs.html Major cleanup. Usability improvements.</li> - <li> - flash (flashrom script): remove boardmismatch=force - <ul> - <li> - This was put there before for users upgrading from libreboot r5 - to r6, but also allows the user to flash the wrong image. For - example, the user could flash a T60 image on an X60, thus - bricking the system. It's almost certain that most people - have upgraded by now, so remove this potentially dangerous - option. - </li> - </ul> - </li> - <li>Documentation: update compatibility list for X60T LCD panels.</li> - <li>docs/release.html: add note about X60 Tablet board in X60/X60s</li> - <li>docs/howtos/grub_boot_installer.html: small corrections</li> - <li>docs/howtos/grub_boot_installer.html: improved readability, fixed html errors</li> - <li>Documentation (macbook21 related): clean up</li> - </ul> - - </div> - - <div class="section"> - - <h1 id="release20141015">Release 20141015</h1> - - <h2>Machines supported in this release:</h2> - <ul> - <li> - <b>Lenovo ThinkPad X60/X60s</b> - <ul> - <li> - You can also remove the motherboard from an X61/X61s and replace it with an X60/X60s motherboard. - An X60 Tablet motherboard will also fit inside an X60/X60s. - </li> - </ul> - </li> - <li> - <b>Lenovo ThinkPad X60 Tablet</b> (1024x768 and 1400x1050) with digitizer support - <ul> - <li>See <b>hcl/#supported_x60t_list</b> for list of supported LCD panels</li> - <li>It is unknown whether an X61 Tablet can have its mainboard replaced with an X60 Tablet motherboard.</li> - </ul> - </li> - <li> - <b>Lenovo ThinkPad T60</b> (Intel GPU) (there are issues; see below): - <ul> - <li>See notes below for exceptions, and <b>hcl/#supported_t60_list</b> for known working LCD panels.</li> - <li>It is unknown whether a T61 can have its mainboard replaced with a T60 motherboard.</li> - <li>See <b>future/#t60_cpu_microcode</b>.</li> - <li>T60P (and T60s with ATI GPU) will likely never be supported: <b>hcl/#t60_ati_intel</b></li> - </ul> - </li> - <li> - <b>Apple MacBook1,1</b> (MA255LL/A, MA254LL/A, MA472LL/A) - <ul> - <li>See <b>hcl/#macbook11</b>.</li> - </ul> - </li> - <li> - <b>Apple MacBook2,1</b> (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A) - <ul> - <li>See <b>hcl/#macbook21</b>.</li> - </ul> - </li> - </ul> - - <h2> - Changes for this release (latest changes first, earliest changes last) - </h2> - <ul> - <li>Updated coreboot (git commit 8ffc085e1affaabbe3dca8ac6a89346b71dfc02e), the latest at the time of writing.</li> - <li>Updated SeaBIOS (git commit 67d1fbef0f630e1e823f137d1bae7fa5790bcf4e), the latest at the time of writing.</li> - <li>Updated Flashrom (svn revision 1850), the latest at the time of writing.</li> - <li>Updated GRUB (git commit 9a67e1ac8e92cd0b7521c75a734fcaf2e58523ad), the latest at the time of writing.</li> - <li>Cleaned up the documentation, removed unneeded files.</li> - <li>ec/lenovo/h8 (x60/x60s/x60t/t60): Enable wifi/bluetooth/wwan/touchpad/trackpoint by default.</li> - <li>Documentation: Updated list of T60 LCDs (Samsung LTN150XG 15&quot; XGA listed as non-working).</li> - <li>builddeps-coreboot: Don't build libpayload (not needed. This was leftover by mistake, when trying out the TINT payload).</li> - <li>Replaced most diff files (patches) for coreboot with gerrit checkouts (cherry-pick).</li> - <li>Documentation: x60_security.html and t60_security.html: added links to info about the ethernet controller (Intel 82573).</li> - <li>Documentation: x60_security.html and t60_security.html: added notes about DMA and the docking station.</li> - <li> - Documentation: configuring_parabola.html: basic post-install steps for Parabola GNU+Linux - (helpful, since libreboot development is being moved to Parabola at the time of writing). - </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/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> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="release20140911">6th release (pre-release, 7th beta)</h1> - - <ul> - <li>Released 11th July 2014 (pre-release) 1st beta</li> - <li>Revised (pre-release, 2nd beta) 16th July 2014</li> - <li>Revised (pre-release, 3rd beta) 20th July 2014</li> - <li>Revised (pre-release, 4th beta) 29th July 2014</li> - <li>Revised (pre-release, 5th beta) 11th August 2014 (corrected 11th August 2014)</li> - <li>Revised (pre-release, 6th beta) 3rd September 2014</li> - <li>Revised (pre-release, 7th beta) 11th September 2014</li> - </ul> - - <h2>Machines still supported (compared to previous release):</h2> - <ul> - <li> - <b>Lenovo ThinkPad X60/X60s</b> - <ul> - <li> - You can also remove the motherboard from an X61/X61s and replace it with an X60/X60s motherboard. - </li> - </ul> - </li> - </ul> - <h2>New systems supported in this release:</h2> - <ul> - <li> - <b>Lenovo ThinkPad X60 Tablet</b> (1024x768 and 1400x1050) with digitizer support - <ul> - <li>See <b>hcl/#supported_x60t_list</b> for list of supported LCD panels</li> - <li>It is unknown whether an X61 Tablet can have its mainboard replaced with an X60 Tablet motherboard.</li> - </ul> - </li> - <li> - <b>Lenovo ThinkPad T60</b> (Intel GPU) (there are issues; see below) - <ul> - <li>See notes below for exceptions, and <b>hcl/#supported_t60_list</b> for known working LCD panels.</li> - <li>It is unknown whether a T61 can have its mainboard replaced with a T60 motherboard.</li> - <li>T60P (and T60s with ATI GPU) will likely never be supported: <b>hcl/#t60_ati_intel</b></li> - </ul> - </li> - <li> - <b>Apple MacBook1,1</b> (MA255LL/A, MA254LL/A, MA472LL/A) - <ul> - <li>See <b>hcl/#macbook11</b>.</li> - </ul> - </li> - <li> - <b>Apple MacBook2,1</b> (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A) - <ul> - <li>See <b>hcl/#macbook21</b>.</li> - </ul> - </li> - </ul> - <h2>Machines no longer supported (compared to previous release):</h2> - <ul> - <li><b>All previous systems still supported!</b></li> - </ul> - - <h2> - Revisions for r20140911 (7th beta) (11th September 2014) - </h2> - <ul> - <li>The changes below were made in a git repository, unlike in previous releases. Descriptions below are copied from 'git log'.</li> - <li>Update .gitignore for new dependencies.</li> - <li>Use a submodule for i945-pwm.</li> - <li>Don't clean packages that fail or don't need cleaning.</li> - <li>Don't clean i945-pwm, it's not needed.</li> - <li>Regression fix: Parabola live ISO boot issues</li> - <li>Re-enable background images in ISOLINUX/SYSLINUX GRUB parser menus</li> - <li>Regression fix: Re-add CD-ROM (ata0) in GRUB</li> - <li>Documentation: add notes about performance penalty when using ecryptfs.</li> - <li>Documentation: Fixed spelling and grammatical errors.</li> - <li>Documentation: macbook21: add new system as tested</li> - <li>Documentation: macbook21: add info about improving touchpad sensitivity</li> - <li>Documentation: X60 Tablet: add more information about finger input</li> - <li>Documentation: release.html: Add information about recently merged commit in coreboot</li> - </ul> - - <h2> - Revisions for r20140903 (6th beta) (3rd September 2014) - </h2> - <ul> - <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 <b>hcl/#macbook11</b></li> - <li>Documentation: fixed typo in #get_edid_panelname (get-edit changed to get-edid)</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/> - Merged commits (relates to boards that were already supported in libreboot):</b> - <ul> - <li><a href="http://review.coreboot.org/#/c/6697/">http://review.coreboot.org/#/c/6697/</a></li> - <li><a href="http://review.coreboot.org/#/c/6698/">http://review.coreboot.org/#/c/6698/</a> (merged already)</li> - <li><a href="http://review.coreboot.org/#/c/6699/">http://review.coreboot.org/#/c/6699/</a> (merged already)</li> - <li><a href="http://review.coreboot.org/#/c/6696/">http://review.coreboot.org/#/c/6696/</a> (merged already)</li> - <li><a href="http://review.coreboot.org/#/c/6695/">http://review.coreboot.org/#/c/6695/</a> (merged already)</li> - <li><b><a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a> (merged already)</b></li> - <li><a href="http://review.coreboot.org/#/c/6717/">http://review.coreboot.org/#/c/6717/</a> (merged already)</li> - <li><a href="http://review.coreboot.org/#/c/6718/">http://review.coreboot.org/#/c/6718/</a> (merged already)</li> - <li> - <a href="http://review.coreboot.org/#/c/6723/">http://review.coreboot.org/#/c/6723/</a> (merged already) - (text-mode patch, might enable memtest. macbook21) - </li> - <li> - <a href="http://review.coreboot.org/#/c/6732/">http://review.coreboot.org/#/c/6732/</a> (MERGED) - (remove useless ps/2 keyboard delay from macbook21. already merged) - </li> - </ul> - </li> - <li> - These were also merged in coreboot (relates to boards that libreboot already supported): - <ul> - <li><a href="http://review.coreboot.org/#/c/5320/">http://review.coreboot.org/#/c/5320/</a> (merged)</li> - <li><a href="http://review.coreboot.org/#/c/5321/">http://review.coreboot.org/#/c/5321/</a> (merged)</li> - <li><a href="http://review.coreboot.org/#/c/5323/">http://review.coreboot.org/#/c/5323/</a> (merged)</li> - <li><a href="http://review.coreboot.org/#/c/6693/">http://review.coreboot.org/#/c/6693/</a> (merged)</li> - <li><a href="http://review.coreboot.org/#/c/6694/">http://review.coreboot.org/#/c/6694/</a> (merged)</li> - <li><a href="http://review.coreboot.org/#/c/5324/">http://review.coreboot.org/#/c/5324/</a> (merged)</li> - </ul> - </li> - <li>Documentation: removed the section about tft_brightness on X60 (new code makes it obsolete)</li> - <li>Removed all patches from resources/libreboot/patch/ and added new patch: 0000_t60_textmode.git.diff</li> - <li>Updated getcb script and DEBLOB script.</li> - <li>Updated configuration files under resources/libreboot/config/ to accomodate new coreboot version.</li> - <li> - Removed grub_serial*.cfg and libreboot_serial*.rom, all configs/rom files are now unified (containing same configuration as serial rom files from before). - <ul> - <li>Documentation: updated #rom to reflect the above.</li> - </ul> - </li> - <li>Updated GRUB to new version from August 14th, 2014.</li> - <li>Unified all grub configurations for all systems to a single grub.cfg under resources/grub/config/</li> - <li>Updated flashrom to new version from August 20th, 2014</li> - <li> - Added getseabios and builddeps-seabios (builddeps and getall were also updated) - <ul> - <li> - Added instructions to 'buildrom-withgrub' to include bios.bin.elf and vgaroms/vgabios.bin from SeaBIOS inside the ROM. - </li> - </ul> - </li> - <li>Added seabios (and sgavgabios) to grub as payload option in menu</li> - <li> - Disabled serial output in Memtest86+ (no longer needed) to speed up tests. - <ul> - <li>MemTest86+ now works properly, it can output on the laptop screen (no serial port needed anymore).</li> - </ul> - </li> - <li> - Added getgrubinvaders, builddeps-grubinvaders scripts. Added these to getall and builddeps. - <ul> - <li> - Added <a href="http://www.coreboot.org/GRUB_invaders">GRUB Invaders</a> menu entry in resources/grub/config/grub.cfg - </li> - </ul> - </li> - <li>Added rules to builddeps-coreboot to build libpayload with TinyCurses. (added appropriate instructions to cleandeps script).</li> - <li>Commented out lines in resources/grub/config/grub.cfg for loading font/background (not useful anymore, now that GRUB is in text-mode).</li> - <li>Commented out lines in buildrom-withgrub that included backgrounds/fonts (not useful anymore, now that GRUB is in text-mode).</li> - <li> - Added resources/utilities/i945-pwm/ (from git://git.mtjm.eu/i945-pwm), for debugging acpi brightness on i945 systems. - <ul> - <li>Added instructions for it in builddeps, builddeps-i945pwm, builddeb and cleandeps</li> - </ul> - </li> - <li>'build' script: removed the parts that generated sha512sum manifests (not needed, since release tarballs are GPG-signed)</li> - <li> - 'build' script: removed the parts that generated libreboot_meta directory (not needed anymore, since _meta will be hosted in git) - <ul> - <li>Updated #build_meta (and other parts of documentation) to accomodate this change.</li> - </ul> - </li> - <li>Documentation: simplified (refactored) the notes in #rom</li> - <li> - 'build' script: removed the parts that generated libreboot_bin and added them to a new script: 'build-release' - <ul> - <li>Documentation: #build updated to reflect the above.</li> - </ul> - </li> - <li><s>Added all gcry_* modules to grub (luks/cryptomount): gcry_arcfour gcry_camellia gcry_crc gcry_dsa gcry_md4 gcry_rfc2268 gcry_rmd160 gcry_seed gcry_sha1 gcry_sha512 gcry_twofish gcry_blowfish gcry_cast5 gcry_des gcry_idea gcry_md5 gcry_rijndael gcry_rsa gcry_serpent gcry_sha256 gcry_tiger gcry_whirlpool</s></li> - <li>Added GNUtoo's list of GRUB modules (includes all of the gcry_* modules above), cryptomount should be working now.</li> - <li>Removed builddeb-bucts and builddeb-flashrom, merged them with builddeb ( updated accordingly)</li> - <li>Removed buildpac-bucts and buildpac-flashrom, merged them with buildpac ( updated accordingly)</li> - <li>Renamed buildpac to deps-parabola ( updated accordingly)</li> - <li>Documentation: removed all parts talking about build dependencies, replaced them with links to #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>'build' script: replaced grub.elf assembly instructons, it is 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> - <li>Removed all unused fonts from dejavu-fonts-ttf-2.34/ directory</li> - <li>'buildrom-withgrub' script: updated it to create 2 sets of ROMs for each system: one with text-mode, one with coreboot framebuffer.</li> - <li>Documentation: updated #rom to reflect the above</li> - <li>Deleted unused README and COPYING file from main directory</li> - <li>Removed some rm -Rf .git* instructions from the get* scripts and moved them to build-release script</li> - <li> - Split up default grub.cfg into 6 parts: extra/{common.cfg,txtmode.cfg,vesafb.cfg} and menuentries/{common.cfg,txtmode.cfg,vesafb.cfg} - <ul> - <li>buildrom-withgrub script uses these to generate the correct grub.cfg for each type of configuration.</li> - </ul> - </li> - <li>grub_memdisk.cfg (used inside grub.elf) now only loads grub.cfg from cbfs. It no longer enables serial output or sets prefix. (menuentries/common.cfg does instead)</li> - <li> - resources/grub/config/extra/common.cfg, added: - <ul> - <li>insmod instructions to load those modules: nativedisk, ehci, ohci, uhci, usb, usbserial_pl2303, usbserial_ftdi, usbserial_usbdebug</li> - <li>set prefix=(memdisk)/boot/grub</li> - <li> - For native graphics (recommended by coreboot wiki):<br/> - gfxpayload=keep<br/> - terminal_output --append gfxterm - </li> - <li> - Play a beep on startup:<br/> - play 480 440 1 - </li> - </ul> - </li> - <li> - Documentation: updated gnulinux/grub_cbfs.html to make it safer (and easier) to follow. - </li> - </ul> - - <h2> - Corrections to r20140811 (5th beta) (11th August 2014) - </h2> - <ul> - <li>Fixed typo where revision list for 5th beta was listed as March 11th 2014, when in fact it was August 11th 2014</li> - <li>Fixed incorrect grub.cfg that was actually placed in resources/grub/config/x60/grub_usqwerty.cfg which broke the default GRUB menu entry on X60</li> - </ul> - - <h2> - Revisions for r20140811 (5th beta) (11th August 2014) - </h2> - <ul> - <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 <b>install/x60tablet_unbrick.html</b></li> - <li>Documentation: added <b>install/t60_unbrick.html</b></li> - <li>Documentation: added <b>install/t60_lcd_15.html</b></li> - <li>Documentation: added <b>install/t60_security.html</b></li> - <li>Documentation: added <b>install/t60_heatsink.html</b></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> - <li>Documentation: added preliminary information about preventing/mitigating cold-boot attack in x60_security.html and t60_security.html</li> - <li>Documentation: added info to #macbook21 warning about issues with macbook21</li> - <li> - Documentation: X60/T60: added information about checking custom ROMs using dd to see whether or not the top 64K - region is duplicated below top or not. Advise caution about this in the tutorial that deals with flashing on top - of Lenovo BIOS, citing the correct dd commands necessary if it is confirmed that the ROM has not been applied with - dd yet. (in the case that the user compiled their own ROMs from libreboot, without using the build scripts, or if they forgot to use dd, etc). - </li> - <li> - Split resources/libreboot/patch/gitdiff into separate patch files (getcb script updated to accomodate this change). - </li> - <li>Re-added .git files to bucts</li> - <li>Fixed the oversight where macbook21_firstflash wasn't included in binary archives</li> - <li>Release archives are now compressed using .tar.xz for better compression</li> - </ul> - - <h2> - Revisions for r20140729 (4th beta) (29th July 2014) - </h2> - <ul> - <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> - <li> - Reduced size of libreboot_src.tar.gz: - <ul> - <li> - Removed .git and .gitignore from grub directory (libreboot_src); not needed. - Removing them reduces the size of the archive (by a lot). GRUB development should be upstream. - </li> - <li> - Removed .git and .gitignore from bucts directory (libreboot_src); not needed. - Removing them reduces the size of the archive. bucts development should be upstream. - </li> - <li> - Removed .svn from flashrom directory (libreboot_src); not needed. - Removing it reduces the size of the archive. flashrom development should be upstream. - </li> - </ul> - </li> - <li> - Added ROMs with Qwerty (Italian) layout in GRUB (libreboot*itqwerty.rom) - </li> - <li> - Added resources/utilities/i945gpu/intel-regs.py for debugging issues related to LCD panel compatibility on X60 Tablet and T60. (courtesy of <a href="http://mtjm.eu">Michał Masłowski</a>) - </li> - </ul> - - <h2> - Revisions for r20140720 (3rd beta) (20th July 2014) - </h2> - <ul> - <li> - Fixed typo that existed in 2nd beta where the release date of the 2nd beta was listed as being in year 2016, when in actual fact it was 2014. - </li> - <li> - Documentation: added (preliminary) details about (rare) buggy CPUs on the ThinkPad T60 that were found to fail (instability, kernel panics, etc) - without the microcode updates. - </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: - <ul> - <li><s>Re-factored those scripts (made easier to read/maintain): build-x60, build-x60t, build-t60, build-macbook21</s></li> - <li><s>Reduced the number of grub configs to 2 (or 1, for macbook21), the build scripts now generate the other configs at build time.</s></li> - <li>Deleted build-x60, build-x60t, build-t60, build-macbook21 and replaced with intelligent (generic) buildrom-withgrub script</li> - <li>Updated build to use buildrom-withgrub script for building the ROM images.</li> - <li>coreboot.rom and coreboot_serial.rom renamed to coreboot_usqwerty.rom and coreboot_serial_usqwerty.rom</li> - <li>coreboot_dvorak and coreboot_serial_dvorak.rom renamed to coreboot_usdvorak.rom and coreboot_serial_usdvorak.rom</li> - <li>Renamed coreboot*rom to libreboot*rom</li> - <li>Made flash, lenovobios_firstflash and lenovobios_secondflash scripts fail if the specified file does not exist.</li> - <li>Updated all relevant parts of the documentation to reflect the above.</li> - </ul> - </li> - <li>Replaced background.png with background.jpg. added gnulove.jpg. (resources/grub/background/)</li> - <li>Updated buildrom-withgrub to use background.jpg instead of background.png</li> - <li>Updated buildrom-withgrub to use gnulove.jpg aswell</li> - <li>Updated resources/grub/config/macbook21/grub*cfg to use gnulove.jpg background.</li> - <li>Updated resources/grub/config/{x60,t60,x60t}/grub*cfg to use background.jpg background.</li> - <li>Documentation: updated docs/#grub_custom_keyboard to be more generally useful.</li> - <li> - nvramtool: - <ul> - <li>Updated builddeps-coreboot script to build it</li> - <li>Updated build script to include it in libreboot_bin</li> - </ul> - </li> - <li> - Documentation: added docs/security/x60_security.html (security hardening for X60) - </li> - </ul> - - <h2> - Revisions for r20140716 (2nd beta) (16th July 2014) - </h2> - <ul> - <li> - Deleted all git-related files from the coreboot directory. This was necessary because - with those it is possible to run 'git diff' which shows the changes made in the form - of a patch (diff format); this includes the blobs that were deleted during deblobbing. - </li> - </ul> - - <h2> - Revisions for r20140711 (1st beta) (11th July 2014) - </h2> - <ul> - <li>Initial release (new coreboot base, dated 1st June 2014. See 'getcb' script for reference)</li> - <li>DEBLOBBED coreboot</li> - <li>Removed the part from memtest86+ 'make' where it tried to connect to some scp server while compiling. (commented out line 24 in the Makefile)</li> - <li>X60 now uses a single .config (for coreboot)</li> - <li>X60 now uses a single grub.cfg (for grub memdisk)</li> - <li>X60 now uses a single grub.elf (payload)</li> - <li>Added new native graphics code for X60 (replaces the old 'replay' code) from Vladimir Serbinenko: 5320/9 from review.coreboot.org</li> - <li>T60 is now supported, with native graphics. (5345/4 from review.coreboot.org, cherry-picked on top of 5320/9 checkout)</li> - <li> - Added macbook2,1 support (from Mono Moosbart and Vladimir Serbinenko) from review.coreboot.org (see 'getcb' script to know how that was done) - <ul> - <li>Documentation: added information linking to correct page and talking about which models are supported.</li> - <li>Added resources/libreboot/config/macbook21config</li> - <li>macbook21: Added 'build-macbook21' script and linked to it in 'build' (ROMs included under bin/macbook21/)</li> - <li>macbook21: Removed dd instructions from build-macbook21 script (macbook21 does not need bucts when flashing libreboot while Apple EFI firmware is running)</li> - <li>Documentation: Added macbook21 ROMs to the list of ROMs in docs/#rom</li> - <li>Documentation: Write documentation linking to Mono Moosbart's macbook21 and parabola page (and include a copy)</li> - </ul> - </li> - <li>Documentation: added a copy of Mono's Parabola install guide (for macbook21 with Apple EFI firmware) and linked in in main index.</li> - <li>Documentation: added a copy of Mono's Coreboot page (for macbook21) and linked it in main index.</li> - <li>T60: Copy CD option from the grub.cfg files for T60 *serial*.rom images into the grub configs for non-serial images. (T60s have CD/DVD drive on main laptop)</li> - <li>macbook21: remove options in build-macbook21 for *serial*.rom (there is no dock or serial port available for macbook21)</li> - <li> - Added patches for backlight controls on X60 and T60 with help from Denis Carikli (see ./resources/libreboot/patch/gitdiff and ./getcb and docs/i945_backlight.html) - <ul> - <li>Documentation: added docs/i945_backlight.html showing how backlight controls were made to work on X60/T60</li> - </ul> - </li> - <li> - Documentation: Added info about getting LCD panel name based on EDID data. - <ul> - <li>Documentation: Added a link to this from the list of supported T60s and LCD panels for T60 (so that the user can check what LCD panel they have).</li> - </ul> - </li> - <li> - X60/T60: Merged patches for 3D fix (from Paul Menzel) when using kernel 3.12 or higher (see ./resources/libreboot/patch/gitdiff and ./getcb) - <ul> - <li>based on 5927/11 and 5932/5 from review.coreboot.org</li> - </ul> - </li> - <li> - Improved thinkpad_acpi support (from coreboot ): xsensors shows more information. - <ul> - <li>From 4650/29 in review.coreboot.org (merged in coreboot 'master' on June 1st 2014)</li> - </ul> - </li> - <li> - Merged changes for digitizer (X60 Tablet) and IR (X60 and T60) based on 5243/17, 5242/17 and 5239/19 from review.coreboot.org - <ul> - <li>(see ./resources/libreboot/patch/gitdiff and ./getcb)</li> - </ul> - </li> - <li>Documentation: added information about building flashrom using 'builddeps-flashrom' script.</li> - <li>Re-created resources/libreboot/config/x60config</li> - <li>Re-created resources/libreboot/config/t60config</li> - <li> - Added 'x60tconfig' in resources/libreboot/config (because X60 Tablet has different information about serial/model/version in 'dmidecode') - <ul> - <li>Added 'build-x60t' script</li> - <li>Updated 'build' script to use 'build-x60t'</li> - <li>Documentation: added to #config section the section #config_x60t (libreboot configuration and dmidecode info)</li> - <li>Documentation: added x60t ROMs to the list of ROMs</li> - </ul> - </li> - <li>Tidied up the 'builddeps' script (easier to read)</li> - <li>Tidied up the 'cleandeps' script (easier to read)</li> - <li>Annotated the 'buildall' script</li> - <li>Added 'getcb' script for getting coreboot revision used from git, and patching it.</li> - <li>Added 'getgrub' script for getting the GRUB revision used from git, and patching it.</li> - <li>Added 'getmt86' script for getting the memtest86+ version used, and patching it.</li> - <li>Added 'getbucts' script for getting the bucts version used.</li> - <li>Added 'getflashrom' script for getting the flashrom version used, and patching it</li> - <li>Added 'getall' script which runs all of the other 'get' scripts.</li> - <li> - Add instructions to the 'build' script to prepare libreboot_meta.tar.gz - <ul> - <li>New archive: libreboot_meta.tar.gz - minimal archive, using the 'get' scripts to download all the dependencies (coreboot, memtest, grub and so on).</li> - </ul> - </li> - <li>Documentation: added information about where 'build' script prepares the libreboot_meta.tar.gz archive.</li> - <li> - Documentation: added information about how to use the 'get' scripts in libreboot_meta.tar.gz (to generate libreboot_src.tar.gz) - <ul> - <li>Documentation: mention that meta doesn't create libreboot_src/ directory, but that libreboot_meta itself becomes the same.</li> - <li>Documentation: advise to rename libreboot_meta to libreboot_src after running 'getall'.</li> - </ul> - </li> - <li>Annotated the 'builddeb' script, to say what each set of dependencies are for.</li> - <li>Separated bucts/flashrom builddeb sections into separate scripts: builddeb-flashrom, builddeb-bucts.</li> - <li>Documentation: Updated relevant parts based on the above.</li> - <li>Added instructions to 'build' script for including builddeb-bucts and builddeb-flashrom in libreboot_bin</li> - <li> - Updated flashrom checkout (r1822 2014-06-16) from SVN (http://flashrom.org/Downloads). - <ul> - <li>Updated flashing instructions in docs/ for new commands needed (Macronix chip on X60/T60)</li> - <li>For X60/T60 (flashrom): Patched flashchips.c_lenovobios_macronix and flashchips.c_lenovobios_sst executables for SST/macronix (included in resources/flashrom/patch)</li> - <li>Updated builddeps to build flashrom_lenovobios_sst and flashrom_lenovobios_macronix, for X60/T60 users with Lenovo BIOS</li> - <li>moved the flashrom build instructions from 'builddeps' and put them in 'builddeps-flashrom', excecuting that from 'builddeps'.</li> - <li>Added builddeps-flashrom to libreboot_bin.tar.gz</li> - </ul> - </li> - <li> - flashrom: added patched flashchips.c to resources/flashrom/patch (automatically use correct macronix chip on libreboot, without using '-c' switch) - <ul> - <li>removed 'MX25L1605' and 'MX25L1605A/MX25L1606E' entries in flashchips.c for the patched version of flashchips.c</li> - <li>added instructions to 'builddeps-flashrom' to automatically use this modified flashchips.c in the default build</li> - </ul> - </li> - <li>Added builddeb to libreboot_bin.tar.gz</li> - <li> - Moved 'bucts' build instructions from builddeps to builddeps-bucts - <ul> - <li>builddeps now runs 'builddeps-bucts' instead</li> - <li>Added 'builddeps-bucts' to libreboot_bin.tar.gz</li> - <li>Documentation: Added information about using 'builddep-bucts' to build the BUC.TS utility.</li> - </ul> - </li> - <li> - Added 'lenovobios_firstflash' and 'lenovobios_secondflash' scripts - <ul> - <li>Added instructions to 'build' script for including those files in libreboot_bin</li> - <li>Documentation: Add tutorial for flashing while Lenovo BIOS is running (on X60/T60)</li> - </ul> - </li> - <li> - Added 'flash' script (make sure to run builddeps-flashrom first) which (while libreboot is already running) can use flashrom to flash a ROM - <ul> - <li>eg: &quot;sudo ./flash bin/x60/coreboot_serial_ukdvorak.rom&quot; equivalent to &quot;sudo ./flashrom/flashrom -p internal -w bin/x60/coreboot_uk_dvorak.rom&quot;</li> - <li>updated 'build' script to include the 'flash' script in libreboot_bin.tar.gz</li> - </ul> - </li> - <li>Documentation: replaced default flashrom tutorial to recommend the 'flash' script instead.</li> - <li> - Re-add cbfstool source code back into libreboot_bin.tar.gz, as cbfstool_standalone - <ul> - <li>Patched that version to work (able to be built and used) without requiring the entire coreboot source code.</li> - <li> - Created patched version of the relevant source files and added it into resources/cbfstool/patch - <ul> - <li>see coreboot/util/cbfstool/rmodule.c and then the patched version in resources/cbfstool/patch/rmodule.c</li> - <li>see coreboot/src/include/rmodule-defs.h and the rule in 'build' for including this in ../libreboot_bin/cbfstool_standalone</li> - </ul> - </li> - <li>Added instructions to 'build' script for applying this patch to the cbfstool_standalone source in libreboot_bin</li> - <li>Added instructions to 'build' script for then re-compiling cbfstool_standalone in libreboot_bin after applying the patch</li> - <li>Added a 'builddeps-cbfstool' script (in src, but only used in bin and put in bin by 'build') that compiles cbfstool_standalone in libreboot_bin (make), moves the cbfstool and rmodtool binaries into libreboot_bin/ and then does 'make clean' in libreboot_bin/cbfstool_standalone</li> - <li>Updated the 'build' script to put 'builddeps-cbfstool' in libreboot_bin</li> - <li>Updated the 'build' script in the cbfstool (standalone) part to accomodate the above.</li> - <li>Documentation: added notes about cbfstool (standalone) in libreboot_bin</li> - </ul> - </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 - <ul> - <li>Documentation: In fact, document how the 'config' files in resources/libreboot/config/ were created</li> - </ul> - </li> - <li>Documentation: Added information about which ThinkPad T60s are supported, and which are not.</li> - <li> - Documentation: added information about LCD inverters (for upgrading the LCD panel on a T60 14.1' XGA or 15.1' XGA) - <ul> - <li>it's FRU P/N 41W1478 (on T60 14.1&quot;) so this was added to the docs.</li> - <li>it's P/N 42T0078 FRU 42T0079 or P/N 41W1338 (on T60 15.1&quot;) so this was added to the docs.</li> - </ul> - </li> - <li>Documentation: added information about names of LCD panels for T60 to the relevant parts of the documentation.</li> - <li>Documentation: added information (with pictures) about the differences between T60 with Intel GPU and T60 with ATI GPU.</li> - <li>Documentation: added pictures of keyboard layouts (US/UK Qwerty/Dvorak) to the ROM list, to let the user compare with their own keyboard.</li> - <li> - Move the coreboot build instructions in 'builddeps' into 'builddeps-coreboot' and link it in 'builddeps' - <ul> - <li>Link to 'builddeps-coreboot' in final stage of 'getcb'</li> - </ul> - </li> - <li> - Move GRUB build instructions from 'builddeps' into 'builddeps-grub', link from 'builddeps' - <ul> - <li>Link to 'builddeps-grub' in final stage of 'getgrub'</li> - </ul> - </li> - <li> - Move MemTest86+ build instructions from 'builddeps' into 'builddeps-memtest86', link from 'builddeps' - <ul> - <li>Link to 'builddeps-memtest86' in final stage of 'getmt86'</li> - </ul> - </li> - <li>made 'build' script put resources/ directory in libreboot_bin, to make builddeps-flashrom work in libreboot_bin</li> - <li>Removed instructions for building source code in the 'get' script (they don't really belong there)</li> - <li>Added libfuse-dev and liblzma-dev to the list of GRUB dependencies in 'builddeb' script.</li> - <li>Converted the 'RELEASE' file to 'docs/RELEASE.html'</li> - <li>Added those dependencies to builddeb script (for GRUB part): gawk libdevmapper-dev libtool libfreetype6-dev</li> - <li>Added to build script the instruction at the end to create a sha512sum.txt with a file manifest plus checksums.</li> - <li>Deleted the RELEASE and BACKPORT files (no longer needed)</li> - <li> - Documentation: added information about X60/T60 dock (ultrabase x6 and advanced mini dock) to relevant sections. - <ul> - <li>Added to docs/#serial</li> - </ul> - </li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="release20140622">Release 20140622 (5th release)</h1> - - <ul> - <li>7th March 2014</li> - <li>revised 22nd June 2014</li> - </ul> - - <h2>Officially supported</h2> - <ul> - <li>ThinkPad X60</li> - <li>ThinkPad X60s</li> - </ul> - - <h2>Revision (22nd June 2014 - extra)</h2> - <ul> - <li>Documentation: added X60 Unbricking tutorial</li> - <li>Documentation: added info about enabling or disabling wifi</li> - <li>Documentation: added info about enabling or disabling trackpoint</li> - </ul> - - <h2>Revision (22nd June 2014 - extra)</h2> - <ul> - <li>Documentation: Improved the instructions for using flashrom</li> - <li>Documentation: Improved the instructions for using cbfstool (to change the default GRUB menu)</li> - <li>Documentation: Numerous small fixes.</li> - </ul> - - <h2>Revision notes (22nd June 2014)</h2> - <ul> - <li>updated GRUB (git 4b8b9135f1676924a8458da528d264bbc7bbb301, 20th April 2014)</li> - <li>Made &quot;DeJavu Sans Mono&quot; the default font in GRUB (fixes border corruption).</li> - <li>re-added background image in GRUB (meditating GNU)</li> - <li> - added 6 more images: - <ul> - <li>coreboot_ukqwerty.rom (UK Qwerty keyboard layout in GRUB)</li> - <li>coreboot_serial_ukqwerty.rom (UK Qwerty keyboard layout in GRUB)</li> - <li>coreboot_dvorak.rom (US Dvorak keyboard layout in GRUB)</li> - <li>coreboot_serial_dvorak.rom (US Dvorak keyboard layout in GRUB)</li> - <li>coreboot_ukdvorak.rom (UK Dvorak keyboard layout in GRUB)</li> - <li>coreboot_serial_ukdvorak.rom (UK Dvorak keyboard layout in GRUB)</li> - <li>(coreboot.rom and coreboot_serial.rom have US Qwerty keyboard layout in GRUB, as usual)</li> - </ul> - </li> - <li> - improved the documentation: - <ul> - <li>removed FLASH_INSTRUCTION and README.powertop and merged them with README</li> - <li>removed obsolete info from README and tidied it up</li> - <li>deleted README (replaced with docs/)</li> - </ul> - </li> - <li>tidied up the menu entries in GRUB</li> - <li>tidied up the root directory of X60_source/, sorted more files into subdirectories</li> - <li>improved the commenting inside the 'build' script (should make modifying it easier)</li> - <li>Renamed X60_binary.tar.gz and X60_source.tar.gz to libreboot_bin.tar.gz and libreboot_src.tar.gz, respectively.</li> - <li>Replaced &quot;GNU GRUB version&quot; with &quot;FREE AS IN FREEDOM&quot; on GNU GRUB start screen.</li> - <li>Added sha512.txt files in libreboot_src and libreboot_bin. (inside the archives)</li> - <li>Added libreboot_bin.tar.gz.sha512.txt and libreboot_src.tar.gz.sha512.txt files (outside of the archives)</li> - </ul> - - <h2>Revision notes (11th June 2014):</h2> - <ul> - <li>removed 'CD' boot option from coreboot.rom (not needed)</li> - <li>removed 'processor.max_cstate=2' and 'idle=halt' options (see README.powertop file)</li> - </ul> - - <h2>Revision notes (5th June 2014):</h2> - <ul> - <li>added backlight support (Fn+Home and Fn+End) on X60</li> - <li>fixed broken/unstable 3D when using kernel 3.12 or higher</li> - <li>(see 'BACKPORT' file)</li> - </ul> - - <h2>Revision notes (9th March 2015):</h2> - <ul> - <li>recreated coreboot config from scratch</li> - <li>GRUB loads even faster now (less than 2 seconds).</li> - <li>Total boot time reduced by further ~5 seconds.</li> - <li>Added crypto and cryptodisk modules to GRUB</li> - <li>cbfstool now included in the binary archives</li> - </ul> - - <h2>Development notes</h2> - <ul> - <li> - Binary archive now have 2 images: - <ul> - <li>With serial output enabled and memtest86+ included (debug level 8 in coreboot)</li> - <li>With serial output disabled and memtest86+ excluded (faster boot speeds) (debugging disabled)</li> - </ul> - </li> - <li> - Reduced impact on battery life: - <ul> - <li>'processor.max_cstate=2' instead of 'idle=halt' for booting default kernel</li> - </ul> - </li> - <li> - coreboot.rom (faster boot speeds, debugging disabled): - <ul> - <li>Disabled coreboot serial output (Console-> in &quot;make menuconfig&quot;)</li> - <li>Set coreboot debug level to 0 instead of 8 (Console-> in &quot;make menuconfig&quot;)</li> - <li>Changed GRUB timeout to 1 second instead of 2 (in grub.cfg</li> - <li>Removed background image in GRUB.</li> - <li>Removed memtest86+ payload (since it relies on serial output) - </ul> - </li> - <li> - coreboot_serial.rom (slower boot speeds, debugging enabled): - <ul> - <li>Boot time still reduced, but only by ~2 seconds</li> - <li>has the memtest86+ payload included in the ROM</li> - <li>has serial port enabled. How this is achieved (from X60_source): Turn on debugging level to 8, and enable serial output</li> - </ul> - </li> - <li>(in Console-> in coreboot &quot;make menuconfig&quot;)</li> - <li>(and build with grub_serial.cfg and grub_memdisk_serial.cfg)</li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="release20140221">Release 20140221 (4th release)</h1> - - <ul> - <li>21st February 2014</li> - </ul> - - <h2>Officially supported</h2> - <ul> - <li>ThinkPad X60</li> - <li>ThinkPad X60s</li> - </ul> - - <h2>Development notes</h2> - <ul> - <li>Removed SeaBIOS (redundant)</li> - <li> - New GRUB version (2.02~beta2) - <ul> - <li>Fixes some USB issues</li> - <li>Includes ISOLINUX/SYSLINUX parser</li> - </ul> - </li> - <li>New grub.cfg</li> - <li> - Removed useless options: - <ul> - <li>options for booting sda 2/3/4</li> - <li>seabios boot option</li> - </ul> - </li> - <li> - Added new menu entries: - <ul> - <li>Parse ISOLINUX config (USB)</li> - <li>Parse ISOLINUX config (CD)</li> - <li>Added 'cat' module for use on GRUB command line.</li> - </ul> - </li> - <li>&quot;set pager=1&quot; is set in grub.cfg, for less-like functionality</li> - </ul> - <p> - The "Parse" options read ./isolinux/isolinux.cfg on a CD or USB, - and automatically converts it to a grub config and switches to the boot menu of that distro. - This makes booting ISOs *much* easier than before. - </p> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="release20131214">r20131214 (3rd release)</h1> - - <ul> - <li>14th December 2013</li> - </ul> - - <h2>Supported:</h2> - <ul> - <li>ThinkPad X60</li> - <li>ThinkPad X60s</li> - </ul> - - <h2>Development notes</h2> - <ul> - <li>Added SeaBIOS payload to GRUB2 (for booting USB drives)</li> - <li>new grub.cfg</li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="release20131213">r20131213 (2nd release)</h1> - - <ul> - <li>13th December 2013</li> - </ul> - - <h2>Supported:</h2> - <ul> - <li>ThinkPad X60</li> - <li>ThinkPad X60s</li> - </ul> - - <h2>Development notes</h2> - <ul> - <li>added background image to GRUB2</li> - <li>added memtest86+ payload to grub2</li> - <li>improvements to the documentation</li> - <li>new grub.cfg</li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="release20131212">r20131212 (1st release)</h1> - - <ul> - <li>12th December 2013</li> - </ul> - - <h2>Supported:</h2> - <ul> - <li>ThinkPad X60</li> - <li>ThinkPad X60s</li> - </ul> - - <h2>Development notes</h2> - <ul> - <li>initial release</li> - <li>source code deblobbed</li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="cc-by-sa-4.0.txt">cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/archive_old.md b/docs/archive_old.md @@ -0,0 +1,1402 @@ +<div class="section"> + +Libreboot release information (old) {#pagetop} +=================================== + +Information for this release can be found at +[release.html](release.html). Updated versions of libreboot can be found +at [libreboot.org](http://libreboot.org/). + +<div class="important"> + +**This page is \*obsolete\*, provided for historical purposes.** + +</div> + +</div> + +<div class="section"> + +Releases +-------- + +- [r20150518 (18th May 2015)](#release20150518) +- [r20150124 (24th January 2015), r20150126 (26th January 2015), + r20150208 (8th February 2015)](#release20150124) +- [r20141015 (15th October 2014)](#release20141015) +- [r20140911 (6th release)](#release20140911) (11th September 2014 + **pre-release, 7th beta**) +- [r20140622 (5th release)](#release20140622) (7th March 2014, revised + 22nd June 2014) +- [r20140221 (4th release)](#release20140221) (21st February 2014) +- [r20131214 (3rd release)](#release20131214) (14th December 2013) +- [r20131213 (2nd release)](#release20131213) (13th December 2013) +- [r20131212 (1st release)](#release20131212) (12th December 2013) + +</div> + +<div class="section"> + +Release 20150518 {#release20150518} +================ + +Release date: 18th May 2015. + +Installation instructions can be found at ***docs/install/***. Building +instructions (for source code) can be found at ***docs/git/\#build***. + +Machines supported in this release: +----------------------------------- + +- **ThinkPad X60/X60s** + - You can also remove the motherboard from an X61/X61s and replace + it with an X60/X60s motherboard. An X60 Tablet motherboard will + also fit inside an X60/X60s. +- **ThinkPad X60 Tablet** (1024x768 and 1400x1050) with digitizer + support + - See ***docs/hcl/\#supported\_x60t\_list*** for list of supported + LCD panels + - It is unknown whether an X61 Tablet can have it\'s mainboard + replaced with an X60 Tablet motherboard. +- **ThinkPad T60** (Intel GPU) (there are issues; see below): + - See notes below for exceptions, and + ***docs/hcl/\#supported\_t60\_list*** for known working LCD + panels. + - It is unknown whether a T61 can have it\'s mainboard replaced + with a T60 motherboard. + - See ***docs/future/\#t60\_cpu\_microcode***. + - T60P (and T60 laptops with ATI GPU) will likely never be + supported: ***docs/hcl/\#t60\_ati\_intel*** +- **ThinkPad X200** + - X200S and X200 Tablet are also supported, conditionally; see + ***docs/hcl/x200.html\#x200s*** + - **ME/AMT**: libreboot removes this, permanently. + ***docs/hcl/gm45\_remove\_me.html*** +- **ThinkPad R400** + - See ***docs/hcl/r400.html*** + - **ME/AMT**: libreboot removes this, permanently. + ***docs/hcl/gm45\_remove\_me.html*** +- **ThinkPad T400** + - See ***docs/hcl/t400.html*** + - **ME/AMT**: libreboot removes this, permanently. + ***docs/hcl/gm45\_remove\_me.html*** +- **ThinkPad T500** + - See ***docs/hcl/t500.html*** + - **ME/AMT**: libreboot removes this, permanently. + ***docs/hcl/gm45\_remove\_me.html*** +- **Apple MacBook1,1** (MA255LL/A, MA254LL/A, MA472LL/A) + - See ***docs/hcl/\#macbook11***. +- **Apple MacBook2,1** (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, + MB063LL/A, MB062LL/A) + - See ***docs/hcl/\#macbook21***. + +Changes for this release, relative to r20150208 (earliest changes last, recent changes first) +--------------------------------------------------------------------------------------------- + +- Add a whitelist entry to board\_enable.c in flashrom, for the + ThinkPad R400, T400 and T500 +- Updated flashrom (to SVN revision 1889) + - X200 whitelist patch removed (merged upstream) + - X200 whitelist modified to include X200S and X200 Tablet +- libreboot\_util: don\'t include cmos layout files (not needed + anymore) +- **coreboot-libre: backport patches for X200 Tablet digitizer + support** +- build/release/archives: create SHA512 sum manifest file of the + release archives +- build/release/archives: separate crossgcc into a new archive +- disabled generation of txtmode ROM images for now (they will be back + again in the next release) +- coreboot-libre: delete unused code (reduce size of src archive) +- Flashing guides: make them more friendly to colourblind people +- docs/gnulinux/encrypted\_\*.html: Remove mention of password + length - it was arbitrary and pointless. +- docs/maintain/: Finish the guide +- scripts/download/coreboot: use diffs included in libreboot, not + external gerrit cherry-picks - review.coreboot.org (gerrit) being + down no longer kills libreboot (backup mirrors of the master + repository exist) +- docs/install/bbb\_setup.html: Add info about wp/hold and pinouts +- docs/: improve the description of libreboot +- docs/hcl/gm45\_remove\_me.html: notes about the demefactory utility +- docs/install/bbb\_setup.html: EHCI debug: recommend linux-libre +- docs/install/bbb\_setup.html: EHCI Debug logging setup guide +- docs/hcl/t500.html: Add screen compatibility report (TODO: fix + incompatible screens) +- Update coreboot(again) + merge GM45 hybrid GPU patches - means that + T400/T500 with the ATI+Intel hybrid GPU setup will work (ATI + disabled, Intel permanently enabled). power\_on\_after\_fail nvram + option added to all GM45 boards, defaulting to No, so that plugging + it AC doesn\'t boot up the system against the users will. Net20DC is + now the default debug dongle on all boards (compatible with BBB). +- demefactory (new utility): create GM45 factory.rom without the ME +- ich9deblob: re-factor descriptor.c functions +- docs/hcl/t500.html: add hardware logs +- docs/gnulinux/encrypted\_\*.html: No password for default entry +- docs/git/: Add more details about BUC.TS +- grub.cfg: Also scan for grub2/grub.cfg, not just grub/grub.cfg +- docs/maintain/ (new section. WIP!): Maintaining libreboot +- docs/gnulinux/grub\_boot\_installer.html: Fix hazardous instruction +- docs/tasks.html: Better categorization between intel/amd/arm +- docs/install/bbb\_setup.html: notes about SPI flashing stability +- docs/install/bbb\_setup.html: more names for the 0.1\" cables +- docs/install/\*\_external.html: add disclaimer about thermal paste +- docs/install/bbb\_setup.html: Fix broken links +- docs/install/bbb\_setup.html: preliminary notes about EHCI debug +- docs/hcl/gm45\_remove\_me.html: Link to websites talking about the + ME +- docs/install/{t400,t500,r400}\_external.html: Notes about CPU + compatibility +- Delete the ich9macchange script. It\'s useless, and confuses people +- docs/hcl/gm45\_remove\_me.html: prioritize ich9gen executable path +- docs/hcl/gm45\_remove\_me.html: prioritize changing mac address +- docs/hcl/gm45\_remove\_me.html: less confusing notes about ich9gen +- build/dependencies/parabola: Add dependencies for x86\_64 +- scripts/dependencies/paraboladependencies: build dependencies + (32-bit Parabola) +- **New board**: ThinkPad T500 +- Add diffs for descriptor/gbe differences between T500 and X200 +- coreboot-libre: provide better blob categorization +- docs/hcl/gm45\_remove\_me.html: add notes about flash write protect +- **New board**: ThinkPad T400 +- GRUB: add partial vesamenu.c32 support (fixes tails ISOLINUX menu) +- Update GRUB (to revision fa07d919d1ff868b18d8a42276d094b63a58e299) +- Update coreboot (to revision + 83b05eb0a85d7b7ac0837cece67afabbdb46ea65) + - Intel CPU microcode (most of it) no longer deleted, because it + was deleted upstream (moved to a 3rd party repository). + - MacBook2,1 cstate patch is no longer cherry picked (merged + upstream) + - Patch to disable use of timestamps in coreboot no longer + included (merged upstream) +- coreboot-libre: don\'t list vortex86ex kbd firmware as microcode + (list it separately) +- coreboot-libre: don\'t rm \*/early\_setup\_ss.h (these are not + blobs) +- coreboot-libre: add GPLv3 license to the findblobs script +- coreboot-libreboot: don\'t rm raminit\_tables (nahelem/sandybridge) + (they are not blobs) +- coreboot-libre: don\'t delete the .spd.hex files (they are not + blobs) +- build/release/archives: don\'t put rmodtool in libreboot\_util +- docs/install/x200\_external.html: recommend installing GNU+Linux at + the end +- docs/install/x200\_external.html: add more photos, improve + instructions +- build/clean/grub: use distclean instead of clean +- grub-assemble: Add the *bsd* and *part\_bsd* modules +- build/roms/withgrub: Only run ich9gen if gm45/gs45 images exist +- docs/git/: Add notes about building for specific boards +- build/roms/withgrub: Allow building for a custom range of boards +- grub-assemble: Disable verbose output +- Add documentation on how to unlock root encrypted fs with key in + initramfs in Parabola Linux +- docs/gnulinux/grub\_cbfs.html: Improve structure (easier to use) +- grub.cfg: Disable the beep on startup +- docs/install/bbb\_setup.html: Make the guide easier to use +- docs/gnulinux/grub\_cbfs.html: Remove redundant instructions +- docs/install/x200\_external.html: Mark pins in the images +- docs/install/bbb\_setup.html: Replace 3.3V PSU photo with ATX PSU +- docs/hcl/x200.html: Add dumps from 4-MiB X200 with Lenovo BIOS 3.22 +- docs/hcl/x200.html: Add dumps from 4-MiB X200 with Lenovo BIOS 3.18 +- grub.cfg: add syslinux\_configfile menuentry for ahci0 +- grub.cfg: Add more paths for syslinux\_configfile +- docs/future.html: T60: Add EDID dump from LG-Philips LP150E05-A2K1 +- docs/install/bbb\_setup.html: Further clarify which clip is needed +- bash scripts: Make script output more user-friendly in general +- bash scripts: Only enable verbose output if DEBUG= is used +- build: Support multiple extra options - now possible to build + multiple images for arbitrary boards (configs), but without building + the entire collection. +- Deleted the signing archive key - the finger print and ID is given + instead, so that the user can download it from a key server +- scripts/helpers/build/release: Move docs to separate archive - + reduces the size of the other archives considerably +- Move DEBLOB to resources/utilities/coreboot-libre/deblob +- scripts/helpers/build/release: Delete DEBLOB from libreboot\_src/ - + not needed in libreboot\_src (release archive) because it contains a + coreboot revision that has already been deblobbed. +- flash (script): Use *build* instead of *DEBLOB* to know if in src +- docs/install/r400\_external.html: Show images, don\'t link. +- docs/install/x200\_external.html: Show images, don\'t link. +- docs/install/bbb\_setup.html: Show images, instead of linking +- Documentation: optimize all images (reduce file sizes) +- Remove download links from the release page (and the archive page) - + release archives are hosted differently following this release, + which means that the old methods are no longer viable. +- Moved ich9macchange to resources/scripts/misc/ich9macchange +- ich9macchange: assume that the script is being run from \_util (act + only on one ROM image, defined by a user-provided path) +- Move grub-background to resources/scripts/misc/grub-background +- grub-background: assume that it is being run from libreboot\_util +- grub-background: change only one ROM image, specified by path +- build (release archives): Add the commitid file to release/ +- build-release: Move the release archives to release/ +- Merge all build scripts into a single generic script, with helpers + in resources/scripts/helpers/build/ +- Replace *getall* with *download*, which takes as input an argument + specifying which program the user wants to download. +- Moved the get scripts to resources/scripts/helpers/download/ +- build-release: Remove the powertop entries +- Documentation: general improvements to the flashing instructions +- Merged all flashing scripts into a single script +- Updated GRUB +- bucts: Make it build without git +- Moved dejavu-fonts-ttf-2.34/AUTHORS to resources/grub/font/ +- Deleted GRUB Invaders from libreboot +- Deleted SeaBIOS from libreboot +- build-release: optimize use of tar (reduced file sizes) +- grub.cfg: add another SYSLINUX config location + (/syslinux/syslinux.cfg) +- build-release: remove the bin/ directory from libreboot\_util +- cleandeps: delete the bin/ directory +- buildrom-withgrub: create the bin directory if it does not exist +- coreboot-libre: don\'t use git for version timestamp +- i945-pwm: add clean command to Makefile +- i945-pwm: add -lz to Makefile +- docs/install/x200\_external: Mention GPIO33 non-descriptor mode +- docs/hcl/: Remove redundant links +- ich9macchange: Add R400 +- build-release: Separate ROM images into individual archives +- build-release: rename libreboot\_bin to libreboot\_util +- **New board:** ThinkPad R400 support added to libreboot. +- bbb\_setup.html: tell user to use libreboot\'s own flashrom + +</div> + +<div class="section"> + +Release 20150124, 20150126 and 20150208 {#release20150124} +======================================= + +Release date: 24th January 2015. + +Machines supported in this release: +----------------------------------- + +- **Lenovo ThinkPad X60/X60s** + - You can also remove the motherboard from an X61/X61s and replace + it with an X60/X60s motherboard. An X60 Tablet motherboard will + also fit inside an X60/X60s. +- **Lenovo ThinkPad X60 Tablet** (1024x768 and 1400x1050) with + digitizer support + - See **hcl/\#supported\_x60t\_list** for list of supported LCD + panels + - It is unknown whether an X61 Tablet can have it\'s mainboard + replaced with an X60 Tablet motherboard. +- **Lenovo ThinkPad T60** (Intel GPU) (there are + issuesinstall/x200\_external.html; see below): + - See notes below for exceptions, and + **hcl/\#supported\_t60\_list** for known working LCD panels. + - It is unknown whether a T61 can have it\'s mainboard replaced + with a T60 motherboard. + - See **future/\#t60\_cpu\_microcode**. + - T60P (and T60 laptops with ATI GPU) will likely never be + supported: **hcl/\#t60\_ati\_intel** +- **Lenovo ThinkPad X200** + - X200S and X200 Tablet are also supported, conditionally; see + **hcl/x200.html\#x200s** + - **ME/AMT**: libreboot removes this, permanently. + **hcl/gm45\_remove\_me.html** +- **Lenovo ThinkPad R400** (r20150208 and later, only) + - **ME/AMT**: libreboot removes this, permanently. + **hcl/gm45\_remove\_me.html** +- **Apple MacBook1,1** (MA255LL/A, MA254LL/A, MA472LL/A) + - See **hcl/\#macbook11**. +- **Apple MacBook2,1** (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, + MB063LL/A, MB062LL/A) + - See **hcl/\#macbook21**. + +Revisions for r20150208 (relative to r20150126) +----------------------------------------------- + +This is a maintenance release (polishing) based on r20150126. Users who +installed r20150126 don\'t really need to update to this release. + +- buildrom-withgrub: use gnulove.jpg background on 16:10 laptops + (MacBook2,1 and X200) +- build-release: include grub-background script in libreboot\_bin +- grub-background (new): lets user change GRUB background image +- grub-assemble: Add link to original utility. +- buildrom-withgrub: Put background.jpg in CBFS, not GRUB memdisk +- grub-assemble: merge scripts into a single script gen.sh +- Documentation: implement theme, drastically improve readability +- docs/hcl/: update list of compatible T60 LCD panels +- docs/: more clarification of libreboot\'s stated purpose. +- build-release: include the commitid file in the release archives +- docs/: Further emphasize the GNU+Linux requirement. +- lenovobios\_firstflash: fix BASH errors +- lenovobios\_secondflash: fix BASH errors +- docs/install/x200\_external.html: Tell user to switch MAC address. +- docs/git/: Add to the list of x86\_64 compatible hosts. +- docs/install/: Remove old (obsolete) information. +- docs/git/: Say that the build dependencies are for src (and not + nedeed for libreboot\_bin) +- build: re-factor the descriptor/gbe generating loop for GM45/ICH9M +- X60, X60S and X60 Tablet now the same ROM images. +- Add QEMU (q35/ich9) support to libreboot. +- Add QEMU (i440fx/piix4) support to libreboot +- docs/: Re-write the description of what libreboot is. +- docs/release.html: Add notes about how to use GPG. +- build-release: delete the commitid file from release archives +- build-release: create file named commitid after build-release + +Revisions for r20150126 (relative to r20150124) +----------------------------------------------- + +This is a bug fix release based on r20150124. It contains a few small +changes: + +- grub.cfg: hardcode the list of partitions to search (speeds up + booting considerably. GRUB regexp isn\'t very well optimized) +- Docs (x200.html hcl): Remove incorrect information +- Documentation (bbb\_setup.html): Fix typos +- build-release: delete ich9fdgbe\_{4m,8m}.bin files from ich9gen + - These were accidentically included in the r20150124 release. + They are generated from ich9gen so it\'s ok, but they don\'t + need to be in the archive. +- Documentation (grub\_cbfs.html): Looping in libreboot\_grub.cfg (Add + notes about it if the user copied from grub.cfg in CBFS.) + +Changes for this release (latest changes first, earliest changes last) +---------------------------------------------------------------------- + +- grub.cfg: Added (ahci1) to list of devices for ISOLINUX parser + (CD/DVD) (this is needed for the X200 docking station). +- grub.cfg: ISOLINUX parsing is now done on all USB partitions. +- grub.cfg: Automatically switched to /boot/grub/libreboot\_grub.cfg + on a partition, if it exists. +- libreboot\_bin: added static ARM binaries for flashrom, cbfstool, + ich9gen and ich9deblob (tested on beaglebone black). +- Flashrom: removed redundant Macronix flashchip definitions (for X200 + owners). +- Flashrom: added whitelist for ThinkPad X200. +- X200: fixed uneven backlight (at low levels) +- ich9macchange (new script, uses ich9gen): for changing the default + MAC address on X200 ROM images. +- ich9gen: added capability to change the default MAC address (and + update the checksum) +- ich9deblob: added new utility ich9gen: this can generate a + descriptor+gbe image without a factory.rom dump present. +- Modified ich9deblob to use a struct for Gbe, documenting everything. +- Massively updated the ich9deblob utility: re-factored everything + completely. +- Enabled cstates 1 and 2 on macbook21. This reduces idle heat / power + consumption. +- buildrom-withgrub: disabled creation of \*txtmode\*.rom for X200 + (only framebuffer graphics work) +- Updated SeaBIOS (again) +- docs/install/\#flashrom\_x200: improve instructions +- Updated flashrom (again) - patches updated +- Updated GRUB (again) +- Updated coreboot (again) +- build-release: not all files were copied to libreboot\_src. fix + that. +- build-release: include cbmem (statically compiled) in libreboot\_bin +- Documentation (X200): added software-based flashing instructions +- Documentation: remove all references to the bus pirate (replaced + with BBB flashing tutorials) +- **New board:** ThinkPad X200S and X200 Tablet support added to + libreboot +- build: automatically find board names (configs) to build for +- **New board:** ThinkPad X200 support added to libreboot +- coreboot-libre config (all boards): enable USB dongle log output + (for BeagleBone Black) +- cleandeps: actually clean grubinvaders +- .gitignore: add powertop directory +- cleandeps: clean i945-pwm utility +- scripts (all): fix typos +- Documentation: general cleanup. +- builddeps-flashrom: reduce build commands to a single for loop +- scripts (all): replace unnecessary rm -Rf with rm -f +- docs/release.html: add lenovo g505s to the list of candidates +- .gitignore: add libreboot\_bin.tar.xz and libreboot\_src.tar.xz +- libreboot\_bin.tar.xz: Include utils as statically linked binaries + - This means that the user does not have to install build + dependency or build from source anymore. +- deps-parabola (removed) Remove Parabola dependencies script. Will + re-add later (properly tested) +- grub.cfg: Add more path checks to isolinux parser (more ISOs should + work now) +- Update SeaBIOS +- x60flashfrom5 (new), for X60 users upgrading from 5th/early release +- Update flashrom +- Update GRUB +- Updated coreboot-libre + - i945: permanently set tft\_brightness to 0xff (fixes bug on X60 + where turning up brightness at max would make it loop back to + low brightness) +- getcb: Revert X60/T60 to legacy backlight controls + - The ACPI brightness patches were abandoned and obsolete. +- grub.cfg: Only load initrd.img if it exists. Add rw to linux line + (for ProteanOS) +- build: Only generate the GRUB configurations once (re-use on all + images) +- Only build 2 GRUB payload executables, re-use on all boards. +- resources/utilities/grub-assemble/gen.txtmode.sh: Use GNU BASH\ + resources/utilities/grub-assemble/gen.vesafb.sh: Use GNU BASH +- scripts (error handling): Replace exit with exit 1 (make debugging + easier) +- Move most files in CBFS to GRUB memdisk, except grub.cfg and + grubtest.cfg +- docs/release.html Add DMP vortex86ex to list of candidates. +- docs/release.html Add ThinkPad X201 to list of candidates. +- New links added to docs/security/x60\_security and + docs/security/t60\_security +- lenovobios\_secondflash: Warn if BUCTS is not present. (not a + dealbreaker. Can just pull out nvram battery/coin). +- lenovobios\_firstflash: Fail if BUCTS fails. (anti-bricking + precaution) +- Removed obnoxious warnings from flashing scripts, improved + documentation instead. +- scripts (all): add proper error checking (fail fast, fail early. Do + not continue if there are errors) +- buildrom-withgrub: rename image to boardname\_layout\_romtype.rom +- buildrom-withgrub: don\'t move cbfstool, execute directly +- resources/utilities/grub-assemble: add French Dvorak (BEPO) keyboard + layout. +- Documentation: add docs/hardware/x60\_keyboard.html (show how to + replace keyboard on X60/X60T) +- Documentation: major cleanup (better structure, easier to find + things) +- docs/release.html: Remove Acer CB5 from list of future candidates. + - Too many issues. Chromebooks are crippled (soldered + RAM/storage/wifi) and have too many usability issues for the + libreboot project. +- docs/gnulinux/grub\_cbfs.html Major cleanup. Usability improvements. +- flash (flashrom script): remove boardmismatch=force + - This was put there before for users upgrading from libreboot r5 + to r6, but also allows the user to flash the wrong image. For + example, the user could flash a T60 image on an X60, thus + bricking the system. It\'s almost certain that most people have + upgraded by now, so remove this potentially dangerous option. +- Documentation: update compatibility list for X60T LCD panels. +- docs/release.html: add note about X60 Tablet board in X60/X60s +- docs/howtos/grub\_boot\_installer.html: small corrections +- docs/howtos/grub\_boot\_installer.html: improved readability, fixed + html errors +- Documentation (macbook21 related): clean up + +</div> + +<div class="section"> + +Release 20141015 {#release20141015} +================ + +Machines supported in this release: +----------------------------------- + +- **Lenovo ThinkPad X60/X60s** + - You can also remove the motherboard from an X61/X61s and replace + it with an X60/X60s motherboard. An X60 Tablet motherboard will + also fit inside an X60/X60s. +- **Lenovo ThinkPad X60 Tablet** (1024x768 and 1400x1050) with + digitizer support + - See **hcl/\#supported\_x60t\_list** for list of supported LCD + panels + - It is unknown whether an X61 Tablet can have its mainboard + replaced with an X60 Tablet motherboard. +- **Lenovo ThinkPad T60** (Intel GPU) (there are issues; see below): + - See notes below for exceptions, and + **hcl/\#supported\_t60\_list** for known working LCD panels. + - It is unknown whether a T61 can have its mainboard replaced with + a T60 motherboard. + - See **future/\#t60\_cpu\_microcode**. + - T60P (and T60s with ATI GPU) will likely never be supported: + **hcl/\#t60\_ati\_intel** +- **Apple MacBook1,1** (MA255LL/A, MA254LL/A, MA472LL/A) + - See **hcl/\#macbook11**. +- **Apple MacBook2,1** (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, + MB063LL/A, MB062LL/A) + - See **hcl/\#macbook21**. + +Changes for this release (latest changes first, earliest changes last) +---------------------------------------------------------------------- + +- Updated coreboot (git commit + 8ffc085e1affaabbe3dca8ac6a89346b71dfc02e), the latest at the time of + writing. +- Updated SeaBIOS (git commit + 67d1fbef0f630e1e823f137d1bae7fa5790bcf4e), the latest at the time of + writing. +- Updated Flashrom (svn revision 1850), the latest at the time of + writing. +- Updated GRUB (git commit 9a67e1ac8e92cd0b7521c75a734fcaf2e58523ad), + the latest at the time of writing. +- Cleaned up the documentation, removed unneeded files. +- ec/lenovo/h8 (x60/x60s/x60t/t60): Enable + wifi/bluetooth/wwan/touchpad/trackpoint by default. +- Documentation: Updated list of T60 LCDs (Samsung LTN150XG 15\" XGA + listed as non-working). +- builddeps-coreboot: Don\'t build libpayload (not needed. This was + leftover by mistake, when trying out the TINT payload). +- Replaced most diff files (patches) for coreboot with gerrit + checkouts (cherry-pick). +- Documentation: x60\_security.html and t60\_security.html: added + links to info about the ethernet controller (Intel 82573). +- Documentation: x60\_security.html and t60\_security.html: added + notes about DMA and the docking station. +- Documentation: configuring\_parabola.html: basic post-install steps + for Parabola GNU+Linux (helpful, since libreboot development is + being moved to Parabola at the time of writing). +- builddeps-coreboot: use \'make crossgcc-i386\' instead of \'make + crossgcc\'. Libreboot only targets x86 at the time of writing. +- ROM images no longer include SeaBIOS. Instead, the user adds it + afterwards. Documentation and scripts updated. +- docs/images/encrypted\_parabola.html: Notes about linux-libre-grsec +- Documentation: encrypted\_parabola.html: add tutorial for encrypted + Parabola GNU+Linux installation. +- Documentation: added more info about wifi chipsets + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +6th release (pre-release, 7th beta) {#release20140911} +=================================== + +- Released 11th July 2014 (pre-release) 1st beta +- Revised (pre-release, 2nd beta) 16th July 2014 +- Revised (pre-release, 3rd beta) 20th July 2014 +- Revised (pre-release, 4th beta) 29th July 2014 +- Revised (pre-release, 5th beta) 11th August 2014 (corrected 11th + August 2014) +- Revised (pre-release, 6th beta) 3rd September 2014 +- Revised (pre-release, 7th beta) 11th September 2014 + +Machines still supported (compared to previous release): +-------------------------------------------------------- + +- **Lenovo ThinkPad X60/X60s** + - You can also remove the motherboard from an X61/X61s and replace + it with an X60/X60s motherboard. + +New systems supported in this release: +-------------------------------------- + +- **Lenovo ThinkPad X60 Tablet** (1024x768 and 1400x1050) with + digitizer support + - See **hcl/\#supported\_x60t\_list** for list of supported LCD + panels + - It is unknown whether an X61 Tablet can have its mainboard + replaced with an X60 Tablet motherboard. +- **Lenovo ThinkPad T60** (Intel GPU) (there are issues; see below) + - See notes below for exceptions, and + **hcl/\#supported\_t60\_list** for known working LCD panels. + - It is unknown whether a T61 can have its mainboard replaced with + a T60 motherboard. + - T60P (and T60s with ATI GPU) will likely never be supported: + **hcl/\#t60\_ati\_intel** +- **Apple MacBook1,1** (MA255LL/A, MA254LL/A, MA472LL/A) + - See **hcl/\#macbook11**. +- **Apple MacBook2,1** (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, + MB063LL/A, MB062LL/A) + - See **hcl/\#macbook21**. + +Machines no longer supported (compared to previous release): +------------------------------------------------------------ + +- **All previous systems still supported!** + +Revisions for r20140911 (7th beta) (11th September 2014) +-------------------------------------------------------- + +- The changes below were made in a git repository, unlike in previous + releases. Descriptions below are copied from \'git log\'. +- Update .gitignore for new dependencies. +- Use a submodule for i945-pwm. +- Don\'t clean packages that fail or don\'t need cleaning. +- Don\'t clean i945-pwm, it\'s not needed. +- Regression fix: Parabola live ISO boot issues +- Re-enable background images in ISOLINUX/SYSLINUX GRUB parser menus +- Regression fix: Re-add CD-ROM (ata0) in GRUB +- Documentation: add notes about performance penalty when using + ecryptfs. +- Documentation: Fixed spelling and grammatical errors. +- Documentation: macbook21: add new system as tested +- Documentation: macbook21: add info about improving touchpad + sensitivity +- Documentation: X60 Tablet: add more information about finger input +- Documentation: release.html: Add information about recently merged + commit in coreboot + +Revisions for r20140903 (6th beta) (3rd September 2014) +------------------------------------------------------- + +- Added modified builddeb\* scripts for Parabola GNU+Linux-libre: + buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah + Vesely) +- Documentation: updated all relevant areas to mention use of + buildpac\* scripts for Parabola users. +- Documentation: added information showing how to enable or disable + bluetooth on the X60 +- MacBook1,1 tested! See **hcl/\#macbook11** +- Documentation: fixed typo in \#get\_edid\_panelname (get-edit + changed to get-edid) +- Documentation: added images/x60\_lcd\_change/ (pics only for now) +- Added gcry\_serpent and gcry\_whirlpool to the GRUB module list in + the \'build\' script (for luks users) +- **Libreboot is now based on a new coreboot version from August 23rd, + 2014:\ + Merged commits (relates to boards that were already supported in + libreboot):** + - <http://review.coreboot.org/#/c/6697/> + - <http://review.coreboot.org/#/c/6698/> (merged already) + - <http://review.coreboot.org/#/c/6699/> (merged already) + - <http://review.coreboot.org/#/c/6696/> (merged already) + - <http://review.coreboot.org/#/c/6695/> (merged already) + - **<http://review.coreboot.org/#/c/5927/> (merged already)** + - <http://review.coreboot.org/#/c/6717/> (merged already) + - <http://review.coreboot.org/#/c/6718/> (merged already) + - <http://review.coreboot.org/#/c/6723/> (merged already) + (text-mode patch, might enable memtest. macbook21) + - <http://review.coreboot.org/#/c/6732/> (MERGED) (remove useless + ps/2 keyboard delay from macbook21. already merged) +- These were also merged in coreboot (relates to boards that libreboot + already supported): + - <http://review.coreboot.org/#/c/5320/> (merged) + - <http://review.coreboot.org/#/c/5321/> (merged) + - <http://review.coreboot.org/#/c/5323/> (merged) + - <http://review.coreboot.org/#/c/6693/> (merged) + - <http://review.coreboot.org/#/c/6694/> (merged) + - <http://review.coreboot.org/#/c/5324/> (merged) +- Documentation: removed the section about tft\_brightness on X60 (new + code makes it obsolete) +- Removed all patches from resources/libreboot/patch/ and added new + patch: 0000\_t60\_textmode.git.diff +- Updated getcb script and DEBLOB script. +- Updated configuration files under resources/libreboot/config/ to + accomodate new coreboot version. +- Removed grub\_serial\*.cfg and libreboot\_serial\*.rom, all + configs/rom files are now unified (containing same configuration as + serial rom files from before). + - Documentation: updated \#rom to reflect the above. +- Updated GRUB to new version from August 14th, 2014. +- Unified all grub configurations for all systems to a single grub.cfg + under resources/grub/config/ +- Updated flashrom to new version from August 20th, 2014 +- Added getseabios and builddeps-seabios (builddeps and getall were + also updated) + - Added instructions to \'buildrom-withgrub\' to include + bios.bin.elf and vgaroms/vgabios.bin from SeaBIOS inside the + ROM. +- Added seabios (and sgavgabios) to grub as payload option in menu +- Disabled serial output in Memtest86+ (no longer needed) to speed up + tests. + - MemTest86+ now works properly, it can output on the laptop + screen (no serial port needed anymore). +- Added getgrubinvaders, builddeps-grubinvaders scripts. Added these + to getall and builddeps. + - Added [GRUB Invaders](http://www.coreboot.org/GRUB_invaders) + menu entry in resources/grub/config/grub.cfg +- Added rules to builddeps-coreboot to build libpayload with + TinyCurses. (added appropriate instructions to cleandeps script). +- Commented out lines in resources/grub/config/grub.cfg for loading + font/background (not useful anymore, now that GRUB is in text-mode). +- Commented out lines in buildrom-withgrub that included + backgrounds/fonts (not useful anymore, now that GRUB is in + text-mode). +- Added resources/utilities/i945-pwm/ (from + git://git.mtjm.eu/i945-pwm), for debugging acpi brightness on i945 + systems. + - Added instructions for it in builddeps, builddeps-i945pwm, + builddeb and cleandeps +- \'build\' script: removed the parts that generated sha512sum + manifests (not needed, since release tarballs are GPG-signed) +- \'build\' script: removed the parts that generated libreboot\_meta + directory (not needed anymore, since \_meta will be hosted in git) + - Updated \#build\_meta (and other parts of documentation) to + accomodate this change. +- Documentation: simplified (refactored) the notes in \#rom +- \'build\' script: removed the parts that generated libreboot\_bin + and added them to a new script: \'build-release\' + - Documentation: \#build updated to reflect the above. +- ~~Added all gcry\_\* modules to grub (luks/cryptomount): + gcry\_arcfour gcry\_camellia gcry\_crc gcry\_dsa gcry\_md4 + gcry\_rfc2268 gcry\_rmd160 gcry\_seed gcry\_sha1 gcry\_sha512 + gcry\_twofish gcry\_blowfish gcry\_cast5 gcry\_des gcry\_idea + gcry\_md5 gcry\_rijndael gcry\_rsa gcry\_serpent gcry\_sha256 + gcry\_tiger gcry\_whirlpool~~ +- Added GNUtoo\'s list of GRUB modules (includes all of the gcry\_\* + modules above), cryptomount should be working now. +- Removed builddeb-bucts and builddeb-flashrom, merged them with + builddeb ( updated accordingly) +- Removed buildpac-bucts and buildpac-flashrom, merged them with + buildpac ( updated accordingly) +- Renamed buildpac to deps-parabola ( updated accordingly) +- Documentation: removed all parts talking about build dependencies, + replaced them with links to \#build\_dependencies +- Documentation: emphasized more strongly on the documentation, the + need to re-build bucts and/or flashrom before flashing a ROM image. +- 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). +- \'build\' script: replaced grub.elf assembly instructons, it is now + handled by a utility added under resources/utilities/grub-assemble +- Moved resources/grub/keymap to + resources/utilities/grub-assemble/keymap, and updated that utility + to use it +- Documentation: removed useless links to pictures of keyboard layouts + and unmodified layouts. +- Removed all unused fonts from dejavu-fonts-ttf-2.34/ directory +- \'buildrom-withgrub\' script: updated it to create 2 sets of ROMs + for each system: one with text-mode, one with coreboot framebuffer. +- Documentation: updated \#rom to reflect the above +- Deleted unused README and COPYING file from main directory +- Removed some rm -Rf .git\* instructions from the get\* scripts and + moved them to build-release script +- Split up default grub.cfg into 6 parts: + extra/{common.cfg,txtmode.cfg,vesafb.cfg} and + menuentries/{common.cfg,txtmode.cfg,vesafb.cfg} + - buildrom-withgrub script uses these to generate the correct + grub.cfg for each type of configuration. +- grub\_memdisk.cfg (used inside grub.elf) now only loads grub.cfg + from cbfs. It no longer enables serial output or sets prefix. + (menuentries/common.cfg does instead) +- resources/grub/config/extra/common.cfg, added: + - insmod instructions to load those modules: nativedisk, ehci, + ohci, uhci, usb, usbserial\_pl2303, usbserial\_ftdi, + usbserial\_usbdebug + - set prefix=(memdisk)/boot/grub + - For native graphics (recommended by coreboot wiki):\ + gfxpayload=keep\ + terminal\_output \--append gfxterm + - Play a beep on startup:\ + play 480 440 1 +- Documentation: updated gnulinux/grub\_cbfs.html to make it safer + (and easier) to follow. + +Corrections to r20140811 (5th beta) (11th August 2014) +------------------------------------------------------ + +- Fixed typo where revision list for 5th beta was listed as March 11th + 2014, when in fact it was August 11th 2014 +- Fixed incorrect grub.cfg that was actually placed in + resources/grub/config/x60/grub\_usqwerty.cfg which broke the default + GRUB menu entry on X60 + +Revisions for r20140811 (5th beta) (11th August 2014) +----------------------------------------------------- + +- build: added \'luks\', \'lvm\', \'cmosdump\' and \'cmostest\' to the + list of modules for grub.elf +- Documentation: added pics showing T60 unbricking (still need to + write a tutorial) +- build: include cmos.layout + (coreboot/src/mainboard/manufacturer/model/cmos.layout) files in + libreboot\_bin +- Documentation: added **install/x60tablet\_unbrick.html** +- Documentation: added **install/t60\_unbrick.html** +- Documentation: added **install/t60\_lcd\_15.html** +- Documentation: added **install/t60\_security.html** +- Documentation: added **install/t60\_heatsink.html** +- Documentation: Renamed RELEASE.html to release.html +- Documentation: removed pcmcia reference in x60\_security.html (it\'s + cardbus) +- Documentation: added preliminary information about randomized seal + (for physical intrusion detection) in x60\_security.html and + t60\_security.html +- Documentation: added preliminary information about + preventing/mitigating cold-boot attack in x60\_security.html and + t60\_security.html +- Documentation: added info to \#macbook21 warning about issues with + macbook21 +- Documentation: X60/T60: added information about checking custom ROMs + using dd to see whether or not the top 64K region is duplicated + below top or not. Advise caution about this in the tutorial that + deals with flashing on top of Lenovo BIOS, citing the correct dd + commands necessary if it is confirmed that the ROM has not been + applied with dd yet. (in the case that the user compiled their own + ROMs from libreboot, without using the build scripts, or if they + forgot to use dd, etc). +- Split resources/libreboot/patch/gitdiff into separate patch files + (getcb script updated to accomodate this change). +- Re-added .git files to bucts +- Fixed the oversight where macbook21\_firstflash wasn\'t included in + binary archives +- Release archives are now compressed using .tar.xz for better + compression + +Revisions for r20140729 (4th beta) (29th July 2014) +--------------------------------------------------- + +- Documentation: improved (more explanations, background info) in + docs/security/x60\_security.html (courtesy of Denis Carikli) +- MacBook2,1 tested (confirmed) +- macbook21: Added script \'macbook21\_firstflash\' for flashing + libreboot while Apple EFI firmware is running. +- Documentation: macbook21: added software-based flashing instructions + for flashing libreboot while Apple EFI firmware is running. +- Reduced size of libreboot\_src.tar.gz: + - Removed .git and .gitignore from grub directory + (libreboot\_src); not needed. Removing them reduces the size of + the archive (by a lot). GRUB development should be upstream. + - Removed .git and .gitignore from bucts directory + (libreboot\_src); not needed. Removing them reduces the size of + the archive. bucts development should be upstream. + - Removed .svn from flashrom directory (libreboot\_src); not + needed. Removing it reduces the size of the archive. flashrom + development should be upstream. +- Added ROMs with Qwerty (Italian) layout in GRUB + (libreboot\*itqwerty.rom) +- Added resources/utilities/i945gpu/intel-regs.py for debugging issues + related to LCD panel compatibility on X60 Tablet and T60. (courtesy + of [Michał Masłowski](http://mtjm.eu)) + +Revisions for r20140720 (3rd beta) (20th July 2014) +--------------------------------------------------- + +- Fixed typo that existed in 2nd beta where the release date of the + 2nd beta was listed as being in year 2016, when in actual fact it + was 2014. +- Documentation: added (preliminary) details about (rare) buggy CPUs + on the ThinkPad T60 that were found to fail (instability, kernel + panics, etc) without the microcode updates. +- Documentation: added docs/hardware/x60\_heatsink.html for showing + how to change the heatsink on the Thinkpad X60 +- Added ROM images for Azerty (French) keyboard layout in GRUB + (courtesy of Olivier Mondoloni) +- Tidied up some scripts: + - ~~Re-factored those scripts (made easier to read/maintain): + build-x60, build-x60t, build-t60, build-macbook21~~ + - ~~Reduced the number of grub configs to 2 (or 1, for macbook21), + the build scripts now generate the other configs at build + time.~~ + - Deleted build-x60, build-x60t, build-t60, build-macbook21 and + replaced with intelligent (generic) buildrom-withgrub script + - Updated build to use buildrom-withgrub script for building the + ROM images. + - coreboot.rom and coreboot\_serial.rom renamed to + coreboot\_usqwerty.rom and coreboot\_serial\_usqwerty.rom + - coreboot\_dvorak and coreboot\_serial\_dvorak.rom renamed to + coreboot\_usdvorak.rom and coreboot\_serial\_usdvorak.rom + - Renamed coreboot\*rom to libreboot\*rom + - Made flash, lenovobios\_firstflash and lenovobios\_secondflash + scripts fail if the specified file does not exist. + - Updated all relevant parts of the documentation to reflect the + above. +- Replaced background.png with background.jpg. added gnulove.jpg. + (resources/grub/background/) +- Updated buildrom-withgrub to use background.jpg instead of + background.png +- Updated buildrom-withgrub to use gnulove.jpg aswell +- Updated resources/grub/config/macbook21/grub\*cfg to use gnulove.jpg + background. +- Updated resources/grub/config/{x60,t60,x60t}/grub\*cfg to use + background.jpg background. +- Documentation: updated docs/\#grub\_custom\_keyboard to be more + generally useful. +- nvramtool: + - Updated builddeps-coreboot script to build it + - Updated build script to include it in libreboot\_bin +- Documentation: added docs/security/x60\_security.html (security + hardening for X60) + +Revisions for r20140716 (2nd beta) (16th July 2014) +--------------------------------------------------- + +- Deleted all git-related files from the coreboot directory. This was + necessary because with those it is possible to run \'git diff\' + which shows the changes made in the form of a patch (diff format); + this includes the blobs that were deleted during deblobbing. + +Revisions for r20140711 (1st beta) (11th July 2014) +--------------------------------------------------- + +- Initial release (new coreboot base, dated 1st June 2014. See + \'getcb\' script for reference) +- DEBLOBBED coreboot +- Removed the part from memtest86+ \'make\' where it tried to connect + to some scp server while compiling. (commented out line 24 in the + Makefile) +- X60 now uses a single .config (for coreboot) +- X60 now uses a single grub.cfg (for grub memdisk) +- X60 now uses a single grub.elf (payload) +- Added new native graphics code for X60 (replaces the old \'replay\' + code) from Vladimir Serbinenko: 5320/9 from review.coreboot.org +- T60 is now supported, with native graphics. (5345/4 from + review.coreboot.org, cherry-picked on top of 5320/9 checkout) +- Added macbook2,1 support (from Mono Moosbart and Vladimir + Serbinenko) from review.coreboot.org (see \'getcb\' script to know + how that was done) + - Documentation: added information linking to correct page and + talking about which models are supported. + - Added resources/libreboot/config/macbook21config + - macbook21: Added \'build-macbook21\' script and linked to it in + \'build\' (ROMs included under bin/macbook21/) + - macbook21: Removed dd instructions from build-macbook21 script + (macbook21 does not need bucts when flashing libreboot while + Apple EFI firmware is running) + - Documentation: Added macbook21 ROMs to the list of ROMs in + docs/\#rom + - Documentation: Write documentation linking to Mono Moosbart\'s + macbook21 and parabola page (and include a copy) +- Documentation: added a copy of Mono\'s Parabola install guide (for + macbook21 with Apple EFI firmware) and linked in in main index. +- Documentation: added a copy of Mono\'s Coreboot page (for macbook21) + and linked it in main index. +- T60: Copy CD option from the grub.cfg files for T60 \*serial\*.rom + images into the grub configs for non-serial images. (T60s have + CD/DVD drive on main laptop) +- macbook21: remove options in build-macbook21 for \*serial\*.rom + (there is no dock or serial port available for macbook21) +- Added patches for backlight controls on X60 and T60 with help from + Denis Carikli (see ./resources/libreboot/patch/gitdiff and ./getcb + and docs/i945\_backlight.html) + - Documentation: added docs/i945\_backlight.html showing how + backlight controls were made to work on X60/T60 +- Documentation: Added info about getting LCD panel name based on EDID + data. + - Documentation: Added a link to this from the list of supported + T60s and LCD panels for T60 (so that the user can check what LCD + panel they have). +- X60/T60: Merged patches for 3D fix (from Paul Menzel) when using + kernel 3.12 or higher (see ./resources/libreboot/patch/gitdiff and + ./getcb) + - based on 5927/11 and 5932/5 from review.coreboot.org +- Improved thinkpad\_acpi support (from coreboot ): xsensors shows + more information. + - From 4650/29 in review.coreboot.org (merged in coreboot + \'master\' on June 1st 2014) +- Merged changes for digitizer (X60 Tablet) and IR (X60 and T60) based + on 5243/17, 5242/17 and 5239/19 from review.coreboot.org + - (see ./resources/libreboot/patch/gitdiff and ./getcb) +- Documentation: added information about building flashrom using + \'builddeps-flashrom\' script. +- Re-created resources/libreboot/config/x60config +- Re-created resources/libreboot/config/t60config +- Added \'x60tconfig\' in resources/libreboot/config (because X60 + Tablet has different information about serial/model/version in + \'dmidecode\') + - Added \'build-x60t\' script + - Updated \'build\' script to use \'build-x60t\' + - Documentation: added to \#config section the section + \#config\_x60t (libreboot configuration and dmidecode info) + - Documentation: added x60t ROMs to the list of ROMs +- Tidied up the \'builddeps\' script (easier to read) +- Tidied up the \'cleandeps\' script (easier to read) +- Annotated the \'buildall\' script +- Added \'getcb\' script for getting coreboot revision used from git, + and patching it. +- Added \'getgrub\' script for getting the GRUB revision used from + git, and patching it. +- Added \'getmt86\' script for getting the memtest86+ version used, + and patching it. +- Added \'getbucts\' script for getting the bucts version used. +- Added \'getflashrom\' script for getting the flashrom version used, + and patching it +- Added \'getall\' script which runs all of the other \'get\' scripts. +- Add instructions to the \'build\' script to prepare + libreboot\_meta.tar.gz + - New archive: libreboot\_meta.tar.gz - minimal archive, using the + \'get\' scripts to download all the dependencies (coreboot, + memtest, grub and so on). +- Documentation: added information about where \'build\' script + prepares the libreboot\_meta.tar.gz archive. +- Documentation: added information about how to use the \'get\' + scripts in libreboot\_meta.tar.gz (to generate + libreboot\_src.tar.gz) + - Documentation: mention that meta doesn\'t create libreboot\_src/ + directory, but that libreboot\_meta itself becomes the same. + - Documentation: advise to rename libreboot\_meta to + libreboot\_src after running \'getall\'. +- Annotated the \'builddeb\' script, to say what each set of + dependencies are for. +- Separated bucts/flashrom builddeb sections into separate scripts: + builddeb-flashrom, builddeb-bucts. +- Documentation: Updated relevant parts based on the above. +- Added instructions to \'build\' script for including builddeb-bucts + and builddeb-flashrom in libreboot\_bin +- Updated flashrom checkout (r1822 2014-06-16) from SVN + (http://flashrom.org/Downloads). + - Updated flashing instructions in docs/ for new commands needed + (Macronix chip on X60/T60) + - For X60/T60 (flashrom): Patched + flashchips.c\_lenovobios\_macronix and + flashchips.c\_lenovobios\_sst executables for SST/macronix + (included in resources/flashrom/patch) + - Updated builddeps to build flashrom\_lenovobios\_sst and + flashrom\_lenovobios\_macronix, for X60/T60 users with Lenovo + BIOS + - moved the flashrom build instructions from \'builddeps\' and put + them in \'builddeps-flashrom\', excecuting that from + \'builddeps\'. + - Added builddeps-flashrom to libreboot\_bin.tar.gz +- flashrom: added patched flashchips.c to resources/flashrom/patch + (automatically use correct macronix chip on libreboot, without using + \'-c\' switch) + - removed \'MX25L1605\' and \'MX25L1605A/MX25L1606E\' entries in + flashchips.c for the patched version of flashchips.c + - added instructions to \'builddeps-flashrom\' to automatically + use this modified flashchips.c in the default build +- Added builddeb to libreboot\_bin.tar.gz +- Moved \'bucts\' build instructions from builddeps to builddeps-bucts + - builddeps now runs \'builddeps-bucts\' instead + - Added \'builddeps-bucts\' to libreboot\_bin.tar.gz + - Documentation: Added information about using \'builddep-bucts\' + to build the BUC.TS utility. +- Added \'lenovobios\_firstflash\' and \'lenovobios\_secondflash\' + scripts + - Added instructions to \'build\' script for including those files + in libreboot\_bin + - Documentation: Add tutorial for flashing while Lenovo BIOS is + running (on X60/T60) +- Added \'flash\' script (make sure to run builddeps-flashrom first) + which (while libreboot is already running) can use flashrom to flash + a ROM + - eg: \"sudo ./flash bin/x60/coreboot\_serial\_ukdvorak.rom\" + equivalent to \"sudo ./flashrom/flashrom -p internal -w + bin/x60/coreboot\_uk\_dvorak.rom\" + - updated \'build\' script to include the \'flash\' script in + libreboot\_bin.tar.gz +- Documentation: replaced default flashrom tutorial to recommend the + \'flash\' script instead. +- Re-add cbfstool source code back into libreboot\_bin.tar.gz, as + cbfstool\_standalone + - Patched that version to work (able to be built and used) without + requiring the entire coreboot source code. + - Created patched version of the relevant source files and added + it into resources/cbfstool/patch + - see coreboot/util/cbfstool/rmodule.c and then the patched + version in resources/cbfstool/patch/rmodule.c + - see coreboot/src/include/rmodule-defs.h and the rule in + \'build\' for including this in + ../libreboot\_bin/cbfstool\_standalone + - Added instructions to \'build\' script for applying this patch + to the cbfstool\_standalone source in libreboot\_bin + - Added instructions to \'build\' script for then re-compiling + cbfstool\_standalone in libreboot\_bin after applying the patch + - Added a \'builddeps-cbfstool\' script (in src, but only used in + bin and put in bin by \'build\') that compiles + cbfstool\_standalone in libreboot\_bin (make), moves the + cbfstool and rmodtool binaries into libreboot\_bin/ and then + does \'make clean\' in libreboot\_bin/cbfstool\_standalone + - Updated the \'build\' script to put \'builddeps-cbfstool\' in + libreboot\_bin + - Updated the \'build\' script in the cbfstool (standalone) part + to accomodate the above. + - Documentation: added notes about cbfstool (standalone) in + libreboot\_bin +- Documentation: made docs/gnulinux/grub\_cbfs.html slightly easier to + follow. +- Annotate the \'build\*\' scripts with \'echo\' commands, to help the + user understand what it actually happening during the build process. +- Documentation: added information about how \'dmidecode\' data was + put in the coreboot configs + - Documentation: In fact, document how the \'config\' files in + resources/libreboot/config/ were created +- Documentation: Added information about which ThinkPad T60s are + supported, and which are not. +- Documentation: added information about LCD inverters (for upgrading + the LCD panel on a T60 14.1\' XGA or 15.1\' XGA) + - it\'s FRU P/N 41W1478 (on T60 14.1\") so this was added to the + docs. + - it\'s P/N 42T0078 FRU 42T0079 or P/N 41W1338 (on T60 15.1\") so + this was added to the docs. +- Documentation: added information about names of LCD panels for T60 + to the relevant parts of the documentation. +- Documentation: added information (with pictures) about the + differences between T60 with Intel GPU and T60 with ATI GPU. +- Documentation: added pictures of keyboard layouts (US/UK + Qwerty/Dvorak) to the ROM list, to let the user compare with their + own keyboard. +- Move the coreboot build instructions in \'builddeps\' into + \'builddeps-coreboot\' and link it in \'builddeps\' + - Link to \'builddeps-coreboot\' in final stage of \'getcb\' +- Move GRUB build instructions from \'builddeps\' into + \'builddeps-grub\', link from \'builddeps\' + - Link to \'builddeps-grub\' in final stage of \'getgrub\' +- Move MemTest86+ build instructions from \'builddeps\' into + \'builddeps-memtest86\', link from \'builddeps\' + - Link to \'builddeps-memtest86\' in final stage of \'getmt86\' +- made \'build\' script put resources/ directory in libreboot\_bin, to + make builddeps-flashrom work in libreboot\_bin +- Removed instructions for building source code in the \'get\' script + (they don\'t really belong there) +- Added libfuse-dev and liblzma-dev to the list of GRUB dependencies + in \'builddeb\' script. +- Converted the \'RELEASE\' file to \'docs/RELEASE.html\' +- Added those dependencies to builddeb script (for GRUB part): gawk + libdevmapper-dev libtool libfreetype6-dev +- Added to build script the instruction at the end to create a + sha512sum.txt with a file manifest plus checksums. +- Deleted the RELEASE and BACKPORT files (no longer needed) +- Documentation: added information about X60/T60 dock (ultrabase x6 + and advanced mini dock) to relevant sections. + - Added to docs/\#serial + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Release 20140622 (5th release) {#release20140622} +============================== + +- 7th March 2014 +- revised 22nd June 2014 + +Officially supported +-------------------- + +- ThinkPad X60 +- ThinkPad X60s + +Revision (22nd June 2014 - extra) +--------------------------------- + +- Documentation: added X60 Unbricking tutorial +- Documentation: added info about enabling or disabling wifi +- Documentation: added info about enabling or disabling trackpoint + +Revision (22nd June 2014 - extra) +--------------------------------- + +- Documentation: Improved the instructions for using flashrom +- Documentation: Improved the instructions for using cbfstool (to + change the default GRUB menu) +- Documentation: Numerous small fixes. + +Revision notes (22nd June 2014) +------------------------------- + +- updated GRUB (git 4b8b9135f1676924a8458da528d264bbc7bbb301, 20th + April 2014) +- Made \"DeJavu Sans Mono\" the default font in GRUB (fixes border + corruption). +- re-added background image in GRUB (meditating GNU) +- added 6 more images: + - coreboot\_ukqwerty.rom (UK Qwerty keyboard layout in GRUB) + - coreboot\_serial\_ukqwerty.rom (UK Qwerty keyboard layout in + GRUB) + - coreboot\_dvorak.rom (US Dvorak keyboard layout in GRUB) + - coreboot\_serial\_dvorak.rom (US Dvorak keyboard layout in GRUB) + - coreboot\_ukdvorak.rom (UK Dvorak keyboard layout in GRUB) + - coreboot\_serial\_ukdvorak.rom (UK Dvorak keyboard layout in + GRUB) + - (coreboot.rom and coreboot\_serial.rom have US Qwerty keyboard + layout in GRUB, as usual) +- improved the documentation: + - removed FLASH\_INSTRUCTION and README.powertop and merged them + with README + - removed obsolete info from README and tidied it up + - deleted README (replaced with docs/) +- tidied up the menu entries in GRUB +- tidied up the root directory of X60\_source/, sorted more files into + subdirectories +- improved the commenting inside the \'build\' script (should make + modifying it easier) +- Renamed X60\_binary.tar.gz and X60\_source.tar.gz to + libreboot\_bin.tar.gz and libreboot\_src.tar.gz, respectively. +- Replaced \"GNU GRUB version\" with \"FREE AS IN FREEDOM\" on GNU + GRUB start screen. +- Added sha512.txt files in libreboot\_src and libreboot\_bin. (inside + the archives) +- Added libreboot\_bin.tar.gz.sha512.txt and + libreboot\_src.tar.gz.sha512.txt files (outside of the archives) + +Revision notes (11th June 2014): +-------------------------------- + +- removed \'CD\' boot option from coreboot.rom (not needed) +- removed \'processor.max\_cstate=2\' and \'idle=halt\' options (see + README.powertop file) + +Revision notes (5th June 2014): +------------------------------- + +- added backlight support (Fn+Home and Fn+End) on X60 +- fixed broken/unstable 3D when using kernel 3.12 or higher +- (see \'BACKPORT\' file) + +Revision notes (9th March 2015): +-------------------------------- + +- recreated coreboot config from scratch +- GRUB loads even faster now (less than 2 seconds). +- Total boot time reduced by further \~5 seconds. +- Added crypto and cryptodisk modules to GRUB +- cbfstool now included in the binary archives + +Development notes +----------------- + +- Binary archive now have 2 images: + - With serial output enabled and memtest86+ included (debug level + 8 in coreboot) + - With serial output disabled and memtest86+ excluded (faster boot + speeds) (debugging disabled) +- Reduced impact on battery life: + - \'processor.max\_cstate=2\' instead of \'idle=halt\' for booting + default kernel +- coreboot.rom (faster boot speeds, debugging disabled): + - Disabled coreboot serial output (Console-&gt; in \"make + menuconfig\") + - Set coreboot debug level to 0 instead of 8 (Console-&gt; in + \"make menuconfig\") + - Changed GRUB timeout to 1 second instead of 2 (in grub.cfg + - Removed background image in GRUB. + - Removed memtest86+ payload (since it relies on serial output) +- coreboot\_serial.rom (slower boot speeds, debugging enabled): + - Boot time still reduced, but only by \~2 seconds + - has the memtest86+ payload included in the ROM + - has serial port enabled. How this is achieved (from + X60\_source): Turn on debugging level to 8, and enable serial + output +- (in Console-&gt; in coreboot \"make menuconfig\") +- (and build with grub\_serial.cfg and grub\_memdisk\_serial.cfg) + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Release 20140221 (4th release) {#release20140221} +============================== + +- 21st February 2014 + +Officially supported +-------------------- + +- ThinkPad X60 +- ThinkPad X60s + +Development notes +----------------- + +- Removed SeaBIOS (redundant) +- New GRUB version (2.02\~beta2) + - Fixes some USB issues + - Includes ISOLINUX/SYSLINUX parser +- New grub.cfg +- Removed useless options: + - options for booting sda 2/3/4 + - seabios boot option +- Added new menu entries: + - Parse ISOLINUX config (USB) + - Parse ISOLINUX config (CD) + - Added \'cat\' module for use on GRUB command line. +- \"set pager=1\" is set in grub.cfg, for less-like functionality + +The \"Parse\" options read ./isolinux/isolinux.cfg on a CD or USB, and +automatically converts it to a grub config and switches to the boot menu +of that distro. This makes booting ISOs \*much\* easier than before. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +r20131214 (3rd release) {#release20131214} +======================= + +- 14th December 2013 + +Supported: +---------- + +- ThinkPad X60 +- ThinkPad X60s + +Development notes +----------------- + +- Added SeaBIOS payload to GRUB2 (for booting USB drives) +- new grub.cfg + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +r20131213 (2nd release) {#release20131213} +======================= + +- 13th December 2013 + +Supported: +---------- + +- ThinkPad X60 +- ThinkPad X60s + +Development notes +----------------- + +- added background image to GRUB2 +- added memtest86+ payload to grub2 +- improvements to the documentation +- new grub.cfg + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +r20131212 (1st release) {#release20131212} +======================= + +- 12th December 2013 + +Supported: +---------- + +- ThinkPad X60 +- ThinkPad X60s + +Development notes +----------------- + +- initial release +- source code deblobbed + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Copyright © 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[cc-by-sa-4.0.txt](cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/bsd/freebsd.html b/docs/bsd/freebsd.html @@ -1,290 +0,0 @@ -<!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>How to install FreeBSD on a libreboot system</title> -</head> - -<body> - <div id="pagetop" class="section"> - <h1>How to install FreeBSD on a libreboot system</h1> - <p> - This section relates to preparing, booting and installing - FreeBSD on your libreboot system, using nothing more than a USB flash drive (and <i>dd</i>). They've only been tested on a Lenovo ThinkPad x200. - </p> - <p> - It is expected that you use text mode in libreboot (txtmode images), - for the early boot process in FreeBSD. - <strong>Booting the installer results in a red flickering text display, - and doesn't boot.</strong> - </p> - <p> - Thanks go to ioxcide in <a href="https://www.reddit.com/r/BSD/comments/53jt70/libreboot_and_bsds/">this Reddit post</a> - for the initial instructions. - </p> - <p> - TODO: test FreeBSD more extensively, and make sure it works (and fix it if it does not). - Instructions are provided here, to boot and install FreeBSD but we're - not sure whether it is currently fully compatible with libreboot. - </p> - <ul> - <li><a href="#prepare">Prepare the USB drive (in FreeBSD)</a></li> - <li><a href="#noencryption">Installing FreeBSD without full disk encryption</a></li> - <li><a href="#encryption">Installing FreeBSD with full disk encryption</a></li> - <li><a href="#booting">Booting</a></li> - <li><a href="#configuring_grub">Configuring Grub</a></li> - <li><a href="#troubleshooting">Troubleshooting</a></li> - </ul> - <p> - <a href="./">Back to previous index</a> - </p> - </div> - - <div class="section"> - <p> - <b>This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions - have yet to be written in the libreboot documentation.</b> - </p> - </div> - - <div id="prepare" class="section"> - - <p> - freebsd.img is the installation image for FreeBSD. Adapt - the filename accordingly, for whatever FreeBSD version you use. - </p> - - <h2>Prepare the USB drive (in FreeBSD)</h2> - <p> - <a href="https://www.freebsd.org/doc/handbook/bsdinstall-pre.html">This page</a> - on the FreeBSD website shows how to create a bootable USB drive - for installing FreeBSD. Use the <em>dd</em> on that page. - </p> - - <h2>Prepare the USB drive (in NetBSD)</h2> - <p> - <a href="https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/">This page</a> - on the NetBSD website shows how to create a NetBSD bootable USB drive - from within NetBSD itself. You should use the <em>dd</em> method - documented there; you can use this with any ISO, including - FreeBSD. - </p> - - <h2>Prepare the USB drive (in LibertyBSD or OpenBSD)</h2> - - <p> - If you downloaded your ISO on a LibertyBSD or OpenBSD system, - here is how to create the bootable FreeBSD USB drive: - </p> - - <p> - Connect the USB drive. Check dmesg:<br/> - <b>$ dmesg | tail</b><br/> - - Check to confirm which drive it is, for example, if you think its sd3:<br/> - <b>$ disklabel sd3</b> - </p> - - <p> - Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/> - <b>$ doas umount /dev/sd3i</b><br/> - </p> - - <p> - dmesg told you what device it is. Overwrite the drive, writing the FreeBSD installer to it with dd. For example:<br/> - <b>$ doas dd if=freebsd.img of=/dev/rsdXc bs=1M; sync</b><br/> - </p> - - <p> - You should now be able to boot the installer from your USB drive. Continue reading, for - information about how to do that. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - <h2>Prepare the USB drive (in GNU+Linux)</h2> - - <p> - If you downloaded your ISO on a GNU+Linux system, - here is how to create the bootable FreeBSD USB drive: - </p> - - <p> - Connect the USB drive. Check dmesg:<br/> - <b>$ dmesg</b><br/> - - Check lsblk to confirm which drive it is:<br/> - <b>$ lsblk</b> - </p> - - <p> - Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/> - <b>$ sudo umount /dev/sdX*</b><br/> - <b># umount /dev/sdX*</b> - </p> - - <p> - dmesg told you what device it is. Overwrite the drive, writing your distro ISO to it with dd. For example:<br/> - <b>$ sudo dd if=freebsd.img of=/dev/sdX bs=8M; sync</b><br/> - <b># dd if=freebsd.img of=/dev/sdX bs=8M; sync</b> - </p> - - <p> - You should now be able to boot the installer from your USB drive. Continue reading, for - information about how to do that. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - - <div id="noencryption" class="section"> - - <h2>Installing FreeBSD without full disk encryption</h2> - - <p> - Press C in GRUB to access the command line: - </p> - <p> - grub&gt; <b>kfreebsd (usb0,gpt3)/boot/kernel/kernel</b><br/> - grub&gt; <b>set FreeBSD.vfs.mountfrom=ufs:/dev/da1p3</b><br/> - grub&gt; <b>boot</b> - </p> - <p> - It will start booting into the FreeBSD installer. Follow the normal process for installing FreeBSD. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="encryption" class="section"> - - <h2>Installing FreeBSD with full disk encryption</h2> - - <p> - TODO - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="booting" class="section"> - - <h2 id="booting">Booting</h2> - - <p> - TODO - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="configuring_grub" class="section"> - - <h2>Configuring Grub</h2> - - <p> - TODO - </p> - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="troubleshooting" class="section"> - - <h1>Troubleshooting</h1> - - <p> - Most of these issues occur when using libreboot with coreboot's 'text mode' instead of the coreboot framebuffer. - This mode is useful for booting payloads like memtest86+ which expect text-mode, but for FreeBSD - it can be problematic when they are trying to switch to a framebuffer because it doesn't exist. - </p> - - <p> - In most cases, you should use the vesafb ROM images. Example filename: libreboot_ukdvorak_vesafb.rom. - </p> - - <h2>won't boot...something about file not found</h2> - <p> - Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and numbers may differ. Use TAB completion. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2016 Leah Rowe &lt;info@minifree.org&gt;<br/> - Copyright &copy; 2016 Scott Bonds &lt;scott@ggr.com&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/bsd/freebsd.md b/docs/bsd/freebsd.md @@ -0,0 +1,227 @@ +<div id="pagetop" class="section"> + +How to install FreeBSD on a libreboot system +============================================ + +This section relates to preparing, booting and installing FreeBSD on +your libreboot system, using nothing more than a USB flash drive (and +*dd*). They\'ve only been tested on a Lenovo ThinkPad x200. + +It is expected that you use text mode in libreboot (txtmode images), for +the early boot process in FreeBSD. **Booting the installer results in a +red flickering text display, and doesn\'t boot.** + +Thanks go to ioxcide in [this Reddit +post](https://www.reddit.com/r/BSD/comments/53jt70/libreboot_and_bsds/) +for the initial instructions. + +TODO: test FreeBSD more extensively, and make sure it works (and fix it +if it does not). Instructions are provided here, to boot and install +FreeBSD but we\'re not sure whether it is currently fully compatible +with libreboot. + +- [Prepare the USB drive (in FreeBSD)](#prepare) +- [Installing FreeBSD without full disk encryption](#noencryption) +- [Installing FreeBSD with full disk encryption](#encryption) +- [Booting](#booting) +- [Configuring Grub](#configuring_grub) +- [Troubleshooting](#troubleshooting) + +[Back to previous index](./) + +</div> + +<div class="section"> + +**This section is only for the GRUB payload. For depthcharge (used on +CrOS devices in libreboot), instructions have yet to be written in the +libreboot documentation.** + +</div> + +<div id="prepare" class="section"> + +freebsd.img is the installation image for FreeBSD. Adapt the filename +accordingly, for whatever FreeBSD version you use. + +Prepare the USB drive (in FreeBSD) +---------------------------------- + +[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on +the FreeBSD website shows how to create a bootable USB drive for +installing FreeBSD. Use the *dd* on that page. + +Prepare the USB drive (in NetBSD) +--------------------------------- + +[This +page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) +on the NetBSD website shows how to create a NetBSD bootable USB drive +from within NetBSD itself. You should use the *dd* method documented +there; you can use this with any ISO, including FreeBSD. + +Prepare the USB drive (in LibertyBSD or OpenBSD) +------------------------------------------------ + +If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is +how to create the bootable FreeBSD USB drive: + +Connect the USB drive. Check dmesg:\ +**\$ dmesg | tail**\ +Check to confirm which drive it is, for example, if you think its sd3:\ +**\$ disklabel sd3** + +Check that it wasn\'t automatically mounted. If it was, unmount it. For +example:\ +**\$ doas umount /dev/sd3i**\ + +dmesg told you what device it is. Overwrite the drive, writing the +FreeBSD installer to it with dd. For example:\ +**\$ doas dd if=freebsd.img of=/dev/rsdXc bs=1M; sync**\ + +You should now be able to boot the installer from your USB drive. +Continue reading, for information about how to do that. + +[Back to top of page](#pagetop). + +Prepare the USB drive (in GNU+Linux) +------------------------------------ + +If you downloaded your ISO on a GNU+Linux system, here is how to create +the bootable FreeBSD USB drive: + +Connect the USB drive. Check dmesg:\ +**\$ dmesg**\ +Check lsblk to confirm which drive it is:\ +**\$ lsblk** + +Check that it wasn\'t automatically mounted. If it was, unmount it. For +example:\ +**\$ sudo umount /dev/sdX\***\ +**\# umount /dev/sdX\*** + +dmesg told you what device it is. Overwrite the drive, writing your +distro ISO to it with dd. For example:\ +**\$ sudo dd if=freebsd.img of=/dev/sdX bs=8M; sync**\ +**\# dd if=freebsd.img of=/dev/sdX bs=8M; sync** + +You should now be able to boot the installer from your USB drive. +Continue reading, for information about how to do that. + +[Back to top of page](#pagetop). + +</div> + +<div id="noencryption" class="section"> + +Installing FreeBSD without full disk encryption +----------------------------------------------- + +Press C in GRUB to access the command line: + +grub&gt; **kfreebsd (usb0,gpt3)/boot/kernel/kernel**\ +grub&gt; **set FreeBSD.vfs.mountfrom=ufs:/dev/da1p3**\ +grub&gt; **boot** + +It will start booting into the FreeBSD installer. Follow the normal +process for installing FreeBSD. + +[Back to top of page](#pagetop). + +</div> + +<div id="encryption" class="section"> + +Installing FreeBSD with full disk encryption +-------------------------------------------- + +TODO + +[Back to top of page](#pagetop). + +</div> + +<div id="booting" class="section"> + +Booting +------- + +TODO + +[Back to top of page](#pagetop). + +</div> + +<div id="configuring_grub" class="section"> + +Configuring Grub +---------------- + +TODO + +[Back to top of page](#pagetop). + +</div> + +<div id="troubleshooting" class="section"> + +Troubleshooting +=============== + +Most of these issues occur when using libreboot with coreboot\'s \'text +mode\' instead of the coreboot framebuffer. This mode is useful for +booting payloads like memtest86+ which expect text-mode, but for FreeBSD +it can be problematic when they are trying to switch to a framebuffer +because it doesn\'t exist. + +In most cases, you should use the vesafb ROM images. Example filename: +libreboot\_ukdvorak\_vesafb.rom. + +won\'t boot\...something about file not found +--------------------------------------------- + +Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and +numbers may differ. Use TAB completion. + +[Back to top of page](#pagetop). + +</div> + +<div class="section"> + +Copyright © 2016 Leah Rowe &lt;info@minifree.org&gt;\ +Copyright © 2016 Scott Bonds &lt;scott@ggr.com&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/bsd/index.html b/docs/bsd/index.html @@ -1,86 +0,0 @@ -<!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>BSD projects</title> -</head> - -<body> - - <div class="section"> - - <h1 id="pagetop">BSD projects</h1> - <p> - This section relates to dealing with BSD projects: preparing bootable USB drives, - changing the default GRUB menu and so on. - </p> - <p> - <b>This section is only for the *GRUB* payload. For depthcharge, instructions have yet to be written.</b> - </p> - <p> - <a href="../">Back to previous index</a>. - </p> - <ul> - <li><a href="netbsd.html">How to install NetBSD on a libreboot system</a></li> - <li><a href="openbsd.html">How to install LibertyBSD or OpenBSD on a libreboot system</a></li> - <li><a href="freebsd.html">How to install FreeBSD on a libreboot system</a></li> - </ul> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2016 Scott Bonds &lt;scott@ggr.com&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/bsd/index.md b/docs/bsd/index.md @@ -0,0 +1,57 @@ +<div class="section"> + +BSD projects {#pagetop} +============ + +This section relates to dealing with BSD projects: preparing bootable +USB drives, changing the default GRUB menu and so on. + +**This section is only for the \*GRUB\* payload. For depthcharge, +instructions have yet to be written.** + +[Back to previous index](../). + +- [How to install NetBSD on a libreboot system](netbsd.html) +- [How to install LibertyBSD or OpenBSD on a libreboot + system](openbsd.html) +- [How to install FreeBSD on a libreboot system](freebsd.html) + +</div> + +<div class="section"> + +Copyright © 2016 Scott Bonds &lt;scott@ggr.com&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/bsd/netbsd.html b/docs/bsd/netbsd.html @@ -1,301 +0,0 @@ -<!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>How to install NetBSD on a libreboot system</title> -</head> - -<body> - <div id="pagetop" class="section"> - <h1>How to install NetBSD on a libreboot system</h1> - <p> - This section relates to preparing, booting and installing - NetBSD on your libreboot system, using nothing more than a USB flash drive (and <i>dd</i>). They've only been tested on a librebooted ThinkPad X60. - </p> - <p> - It is expected that you use text mode in libreboot (txtmode images), - for the early boot process in NetBSD. - <strong>Suspend/hibernate is broken, according to at least 1 user.</strong> - </p> - <p> - Thanks go to ioxcide in <a href="https://www.reddit.com/r/BSD/comments/53jt70/libreboot_and_bsds/">this Reddit post</a> - for the initial instructions. - </p> - <ul> - <li><a href="#prepare">Prepare the USB drive (in NetBSD)</a></li> - <li><a href="#noencryption">Installing NetBSD without full disk encryption</a></li> - <li><a href="#encryption">Installing NetBSD with full disk encryption</a></li> - <li><a href="#booting">Booting</a></li> - <li><a href="#configuring_grub">Configuring Grub</a></li> - <li><a href="#troubleshooting">Troubleshooting</a></li> - </ul> - <p> - <a href="./">Back to previous index</a> - </p> - </div> - - <div class="section"> - <p> - <b>This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions - have yet to be written in the libreboot documentation.</b> - </p> - </div> - - <div id="prepare" class="section"> - - <p> - netbsd.iso is the installation image for NetBSD. Adapt - the filename accordingly, for your version of NetBSD. - </p> - - <h2>Prepare the USB drive (in NetBSD)</h2> - <p> - <a href="https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/">This page</a> - on the NetBSD website shows how to create a NetBSD bootable USB drive - from within NetBSD itself. You should use the <em>dd</em> method - documented there. - </p> - - <h2>Prepare the USB drive (in FreeBSD)</h2> - <p> - <a href="https://www.freebsd.org/doc/handbook/bsdinstall-pre.html">This page</a> - on the FreeBSD website shows how to create a bootable USB drive - for installing FreeBSD. Use the <em>dd</em> on that page. You can - also use the same instructions with a NetBSD ISO image. - </p> - - <h2>Prepare the USB drive (in LibertyBSD or NetBSD)</h2> - - <p> - If you downloaded your ISO on a LibertyBSD or NetBSD system, - here is how to create the bootable NetBSD USB drive: - </p> - - <p> - Connect the USB drive. Check dmesg:<br/> - <b>$ dmesg | tail</b><br/> - - Check to confirm which drive it is, for example, if you think its sd3:<br/> - <b>$ disklabel sd3</b> - </p> - - <p> - Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/> - <b>$ doas umount /dev/sd3i</b><br/> - </p> - - <p> - dmesg told you what device it is. Overwrite the drive, writing the NetBSD installer to it with dd. For example:<br/> - <b>$ doas netbsd.iso of=/dev/rsdXc bs=1M; sync</b><br/> - </p> - - <p> - You should now be able to boot the installer from your USB drive. Continue reading, for - information about how to do that. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - <h2>Prepare the USB drive (in GNU+Linux)</h2> - - <p> - If you downloaded your ISO on a GNU+Linux system, - here is how to create the bootable NetBSD USB drive: - </p> - - <p> - Connect the USB drive. Check dmesg:<br/> - <b>$ dmesg</b><br/> - - Check lsblk to confirm which drive it is:<br/> - <b>$ lsblk</b> - </p> - - <p> - Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/> - <b>$ sudo umount /dev/sdX*</b><br/> - <b># umount /dev/sdX*</b> - </p> - - <p> - dmesg told you what device it is. Overwrite the drive, writing your distro ISO to it with dd. For example:<br/> - <b>$ sudo dd if=install60.fs of=/dev/sdX bs=8M; sync</b><br/> - <b># dd if=netbsd.iso of=/dev/sdX bs=8M; sync</b> - </p> - - <p> - You should now be able to boot the installer from your USB drive. Continue reading, for - information about how to do that. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - - <div id="noencryption" class="section"> - - <h2>Installing NetBSD without full disk encryption</h2> - - <p> - You might have to use an external USB keyboard during the installation. - Press C to access the GRUB terminal. - </p> - <p> - grub&gt; <b>knetbsd -r sd0a (usb0,netbsd1)/netbsd</b><br/> - grub&gt; <b>boot</b> - </p> - <p> - It will start booting into the NetBSD installer. Follow the normal process for installing NetBSD. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="encryption" class="section"> - - <h2>Installing NetBSD with full disk encryption</h2> - - <p> - TODO - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="booting" class="section"> - - <h2 id="booting">Booting</h2> - - <p> - Press C in GRUB to access the command line: - </p> - <p> - grub&gt; <b>knetbsd -r wd0a (ahci0,netbsd1)/netbsd</b><br/> - grub&gt; <b>boot</b> - </p> - <p> - NetBSD will start booting. Yay! - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="configuring_grub" class="section"> - - <h2>Configuring Grub</h2> - - <p> - If you don't want to drop to the GRUB command line and type in a command to boot NetBSD every time, you can create a GRUB configuration that's aware of your NetBSD installation and that will automatically be used by libreboot. - </p> - <p> - On your NetBSD root partition, create the <b>/grub</b> directory and add the file <b>libreboot_grub.cfg</b> to it. Inside the <b>libreboot_grub.cfg</b> add these lines: - <p><b> - default=0 - timeout=3 - menuentry "NetBSD" {<br> - &nbsp;&nbsp;&nbsp;&nbsp;knetbsd -r wd0a (ahci0,netbsd1)/netbsd<br> - }<br> - </b></p> - <p>The next time you boot, you'll see the old Grub menu for a few seconds, then you'll see the a new menu with only NetBSD on the list. After 3 seconds NetBSD will boot, or you can hit enter to boot. - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="troubleshooting" class="section"> - - <h1>Troubleshooting</h1> - - <p> - Most of these issues occur when using libreboot with coreboot's 'text mode' instead of the coreboot framebuffer. - This mode is useful for booting payloads like memtest86+ which expect text-mode, but for NetBSD - it can be problematic when they are trying to switch to a framebuffer because it doesn't exist. - </p> - - <p> - In most cases, you should use the vesafb ROM images. Example filename: libreboot_ukdvorak_vesafb.rom. - </p> - - <h2>won't boot...something about file not found</h2> - <p> - Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and numbers may differ. Use TAB completion. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2016 Leah Rowe &lt;info@minifree.org&gt;<br/> - Copyright &copy; 2016 Scott Bonds &lt;scott@ggr.com&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/bsd/netbsd.md b/docs/bsd/netbsd.md @@ -0,0 +1,244 @@ +<div id="pagetop" class="section"> + +How to install NetBSD on a libreboot system +=========================================== + +This section relates to preparing, booting and installing NetBSD on your +libreboot system, using nothing more than a USB flash drive (and *dd*). +They\'ve only been tested on a librebooted ThinkPad X60. + +It is expected that you use text mode in libreboot (txtmode images), for +the early boot process in NetBSD. **Suspend/hibernate is broken, +according to at least 1 user.** + +Thanks go to ioxcide in [this Reddit +post](https://www.reddit.com/r/BSD/comments/53jt70/libreboot_and_bsds/) +for the initial instructions. + +- [Prepare the USB drive (in NetBSD)](#prepare) +- [Installing NetBSD without full disk encryption](#noencryption) +- [Installing NetBSD with full disk encryption](#encryption) +- [Booting](#booting) +- [Configuring Grub](#configuring_grub) +- [Troubleshooting](#troubleshooting) + +[Back to previous index](./) + +</div> + +<div class="section"> + +**This section is only for the GRUB payload. For depthcharge (used on +CrOS devices in libreboot), instructions have yet to be written in the +libreboot documentation.** + +</div> + +<div id="prepare" class="section"> + +netbsd.iso is the installation image for NetBSD. Adapt the filename +accordingly, for your version of NetBSD. + +Prepare the USB drive (in NetBSD) +--------------------------------- + +[This +page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) +on the NetBSD website shows how to create a NetBSD bootable USB drive +from within NetBSD itself. You should use the *dd* method documented +there. + +Prepare the USB drive (in FreeBSD) +---------------------------------- + +[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on +the FreeBSD website shows how to create a bootable USB drive for +installing FreeBSD. Use the *dd* on that page. You can also use the same +instructions with a NetBSD ISO image. + +Prepare the USB drive (in LibertyBSD or NetBSD) +----------------------------------------------- + +If you downloaded your ISO on a LibertyBSD or NetBSD system, here is how +to create the bootable NetBSD USB drive: + +Connect the USB drive. Check dmesg:\ +**\$ dmesg | tail**\ +Check to confirm which drive it is, for example, if you think its sd3:\ +**\$ disklabel sd3** + +Check that it wasn\'t automatically mounted. If it was, unmount it. For +example:\ +**\$ doas umount /dev/sd3i**\ + +dmesg told you what device it is. Overwrite the drive, writing the +NetBSD installer to it with dd. For example:\ +**\$ doas netbsd.iso of=/dev/rsdXc bs=1M; sync**\ + +You should now be able to boot the installer from your USB drive. +Continue reading, for information about how to do that. + +[Back to top of page](#pagetop). + +Prepare the USB drive (in GNU+Linux) +------------------------------------ + +If you downloaded your ISO on a GNU+Linux system, here is how to create +the bootable NetBSD USB drive: + +Connect the USB drive. Check dmesg:\ +**\$ dmesg**\ +Check lsblk to confirm which drive it is:\ +**\$ lsblk** + +Check that it wasn\'t automatically mounted. If it was, unmount it. For +example:\ +**\$ sudo umount /dev/sdX\***\ +**\# umount /dev/sdX\*** + +dmesg told you what device it is. Overwrite the drive, writing your +distro ISO to it with dd. For example:\ +**\$ sudo dd if=install60.fs of=/dev/sdX bs=8M; sync**\ +**\# dd if=netbsd.iso of=/dev/sdX bs=8M; sync** + +You should now be able to boot the installer from your USB drive. +Continue reading, for information about how to do that. + +[Back to top of page](#pagetop). + +</div> + +<div id="noencryption" class="section"> + +Installing NetBSD without full disk encryption +---------------------------------------------- + +You might have to use an external USB keyboard during the installation. +Press C to access the GRUB terminal. + +grub&gt; **knetbsd -r sd0a (usb0,netbsd1)/netbsd**\ +grub&gt; **boot** + +It will start booting into the NetBSD installer. Follow the normal +process for installing NetBSD. + +[Back to top of page](#pagetop). + +</div> + +<div id="encryption" class="section"> + +Installing NetBSD with full disk encryption +------------------------------------------- + +TODO + +[Back to top of page](#pagetop). + +</div> + +<div id="booting" class="section"> + +Booting +------- + +Press C in GRUB to access the command line: + +grub&gt; **knetbsd -r wd0a (ahci0,netbsd1)/netbsd**\ +grub&gt; **boot** + +NetBSD will start booting. Yay! + +[Back to top of page](#pagetop). + +</div> + +<div id="configuring_grub" class="section"> + +Configuring Grub +---------------- + +If you don\'t want to drop to the GRUB command line and type in a +command to boot NetBSD every time, you can create a GRUB configuration +that\'s aware of your NetBSD installation and that will automatically be +used by libreboot. + +On your NetBSD root partition, create the **/grub** directory and add +the file **libreboot\_grub.cfg** to it. Inside the +**libreboot\_grub.cfg** add these lines: + +**default=0 timeout=3 menuentry \"NetBSD\" {\ +    knetbsd -r wd0a (ahci0,netbsd1)/netbsd\ +}\ +** + +The next time you boot, you\'ll see the old Grub menu for a few seconds, +then you\'ll see the a new menu with only NetBSD on the list. After 3 +seconds NetBSD will boot, or you can hit enter to boot. + +[Back to top of page](#pagetop). + +</div> + +<div id="troubleshooting" class="section"> + +Troubleshooting +=============== + +Most of these issues occur when using libreboot with coreboot\'s \'text +mode\' instead of the coreboot framebuffer. This mode is useful for +booting payloads like memtest86+ which expect text-mode, but for NetBSD +it can be problematic when they are trying to switch to a framebuffer +because it doesn\'t exist. + +In most cases, you should use the vesafb ROM images. Example filename: +libreboot\_ukdvorak\_vesafb.rom. + +won\'t boot\...something about file not found +--------------------------------------------- + +Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and +numbers may differ. Use TAB completion. + +[Back to top of page](#pagetop). + +</div> + +<div class="section"> + +Copyright © 2016 Leah Rowe &lt;info@minifree.org&gt;\ +Copyright © 2016 Scott Bonds &lt;scott@ggr.com&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/bsd/openbsd.html b/docs/bsd/openbsd.html @@ -1,325 +0,0 @@ -<!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>How to install LibertyBSD or OpenBSD on a libreboot system</title> -</head> - -<body> - <div id="pagetop" class="section"> - <h1>How to install LibertyBSD or OpenBSD on a libreboot system</h1> - <p> - NOTE: This guide was written for OpenBSD by the person who contributed - it, but the libreboot project recommends LibertyBSD. - LibertyBSD is a version of OpenBSD without proprietary software - in the repositories (OpenBSD distributes firmware blobs for - devices inside its kernel). - Go to the <a href="http://libertybsd.net/">LibertyBSD website</a> - -- TODO: test on LibertyBSD and prioritise that in this guide. - </p> - <p> - This section relates to preparing, booting and installing - OpenBSD on your libreboot system, using nothing more than a USB flash drive (and <i>dd</i>). They've only been tested on a Lenovo ThinkPad x200. - </p> - <ul> - <li><a href="#prepare">Prepare the USB drive (in OpenBSD)</a></li> - <li><a href="#noencryption">Installing OpenBSD without full disk encryption</a></li> - <li><a href="#encryption">Installing OpenBSD with full disk encryption</a></li> - <li><a href="#booting">Booting</a></li> - <li><a href="#configuring_grub">Configuring Grub</a></li> - <li><a href="#troubleshooting">Troubleshooting</a></li> - </ul> - <p> - <a href="./">Back to previous index</a> - </p> - </div> - - <div class="section"> - <p> - <b>This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions - have yet to be written in the libreboot documentation.</b> - </p> - </div> - - <div id="prepare" class="section"> - - <p> - install60.fs is the installation image for OpenBSD 6.0. Adapt - the filename accordingly, for a different OpenBSD version or - LibertyBSD. - </p> - - <h2>Prepare the USB drive (in LibertyBSD or OpenBSD)</h2> - - <p> - If you downloaded your ISO on a LibertyBSD or OpenBSD system, - here is how to create the bootable LibertyBSD/OpenBSD USB drive: - </p> - - <p> - Connect the USB drive. Check dmesg:<br/> - <b>$ dmesg | tail</b><br/> - - Check to confirm which drive it is, for example, if you think its sd3:<br/> - <b>$ disklabel sd3</b> - </p> - - <p> - Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/> - <b>$ doas umount /dev/sd3i</b><br/> - </p> - - <p> - dmesg told you what device it is. Overwrite the drive, writing the OpenBSD installer to it with dd. For example:<br/> - <b>$ doas dd if=install60.fs of=/dev/rsdXc bs=1M; sync</b><br/> - </p> - - <p> - You should now be able to boot the installer from your USB drive. Continue reading, for - information about how to do that. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - <h2>Prepare the USB drive (in NetBSD)</h2> - <p> - <a href="https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/">This page</a> - on the NetBSD website shows how to create a NetBSD bootable USB drive - from within NetBSD itself. You should use the <em>dd</em> method - documented there. This will also work with the OpenBSD image. - </p> - - <h2>Prepare the USB drive (in FreeBSD)</h2> - <p> - <a href="https://www.freebsd.org/doc/handbook/bsdinstall-pre.html">This page</a> - on the FreeBSD website shows how to create a bootable USB drive - for installing FreeBSD. Use the <em>dd</em> on that page. You can - also use the same instructions with a OpenBSD ISO image. - </p> - - <h2>Prepare the USB drive (in GNU+Linux)</h2> - - <p> - If you downloaded your ISO on a GNU+Linux system, - here is how to create the bootable OpenBSD USB drive: - </p> - - <p> - Connect the USB drive. Check dmesg:<br/> - <b>$ dmesg</b><br/> - - Check lsblk to confirm which drive it is:<br/> - <b>$ lsblk</b> - </p> - - <p> - Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/> - <b>$ sudo umount /dev/sdX*</b><br/> - <b># umount /dev/sdX*</b> - </p> - - <p> - dmesg told you what device it is. Overwrite the drive, writing your distro ISO to it with dd. For example:<br/> - <b>$ sudo dd if=install60.fs of=/dev/sdX bs=8M; sync</b><br/> - <b># dd if=install60.fs of=/dev/sdX bs=8M; sync</b> - </p> - - <p> - You should now be able to boot the installer from your USB drive. Continue reading, for - information about how to do that. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - - <div id="noencryption" class="section"> - - <h2>Installing OpenBSD without full disk encryption</h2> - - <p> - Press C in GRUB to access the command line: - </p> - <p> - grub&gt; <b>kopenbsd (usb0,openbsd1)/6.0/amd64/bsd.rd</b><br/> - grub&gt; <b>boot</b> - </p> - <p> - It will start booting into the OpenBSD installer. Follow the normal process for installing OpenBSD. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="encryption" class="section"> - - <h2>Installing OpenBSD with full disk encryption</h2> - - <p> - Not working. You can modify the above procedure (installation w/o encryption) to install OpenBSD using full disk encryption, and it appears to work, except that its not yet clear how to actually <i>boot</i> an OpenBSD+FDE installation using libreboot+Grub2. If you get it working, please let us know. - </p> - - <p> - If booting in text mode (framebuffer mode might also work), it - might be possible to chainload the OpenBSD or LibertyBSD bootloader - from the MBR section on the internal storage device. This way, - it would be possible to boot with an encrypted OpenBSD or - LibertyBSD installation. Please let us know (contact details - are on the libreboot homepage) if you get it working this way. - </p> - <p> - Alternatively, it would be good to port OpenBSD either natively - as a coreboot payload, or port it to libpayload (payload library - in coreboot; it has a basic C library and a few functions for - certain operations e.g. text/bitmap). <strong>This would be ideal, - because then it would be possible to boot a truly fully encrypted - OpenBSD or LibertyBSD installation, by putting everything in - the flash chip.</strong> - </p> - <p> - Alternatively, modifying GRUB to support booting fully encrypted - OpenBSD installations would be possible, but probably not feasible; - it's an alien codebase to the OpenBSD project, not tightly integrated - and the OpenBSD bootloader already works. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="booting" class="section"> - - <h2 id="booting">Booting</h2> - - <p> - Press C in GRUB to access the command line: - </p> - <p> - grub&gt; <b>kopenbsd -r sd0a (ahci0,openbsd1)/bsd</b><br/> - grub&gt; <b>boot</b> - </p> - <p> - OpenBSD will start booting. Yay! - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="configuring_grub" class="section"> - - <h2>Configuring Grub</h2> - - <p> - If you don't want to drop to the GRUB command line and type in a command to boot OpenBSD every time, you can create a GRUB configuration that's aware of your OpenBSD installation and that will automatically be used by libreboot. - </p> - <p> - On your OpenBSD root partition, create the <b>/grub</b> directory and add the file <b>libreboot_grub.cfg</b> to it. Inside the <b>libreboot_grub.cfg</b> add these lines: - <p><b> - default=0 - timeout=3 - menuentry "OpenBSD" {<br> - &nbsp;&nbsp;&nbsp;&nbsp;kopenbsd -r sd0a (ahci0,openbsd1)/bsd<br> - }<br> - </b></p> - <p>The next time you boot, you'll see the old Grub menu for a few seconds, then you'll see the a new menu with only OpenBSD on the list. After 3 seconds OpenBSD will boot, or you can hit enter to boot. - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div id="troubleshooting" class="section"> - - <h1>Troubleshooting</h1> - - <p> - Most of these issues occur when using libreboot with coreboot's 'text mode' instead of the coreboot framebuffer. - This mode is useful for booting payloads like memtest86+ which expect text-mode, but for OpenBSD - it can be problematic when they are trying to switch to a framebuffer because it doesn't exist. - </p> - - <p> - In most cases, you should use the vesafb ROM images. Example filename: libreboot_ukdvorak_vesafb.rom. - </p> - - <h2>won't boot...something about file not found</h2> - <p> - Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and numbers may differ. Use TAB completion. - </p> - - <p> - <a href="#pagetop">Back to top of page</a>. - </p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2016 Scott Bonds &lt;scott@ggr.com&gt;<br/> - Copyright &copy; 2016 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/bsd/openbsd.md b/docs/bsd/openbsd.md @@ -0,0 +1,265 @@ +<div id="pagetop" class="section"> + +How to install LibertyBSD or OpenBSD on a libreboot system +========================================================== + +NOTE: This guide was written for OpenBSD by the person who contributed +it, but the libreboot project recommends LibertyBSD. LibertyBSD is a +version of OpenBSD without proprietary software in the repositories +(OpenBSD distributes firmware blobs for devices inside its kernel). Go +to the [LibertyBSD website](http://libertybsd.net/) \-- TODO: test on +LibertyBSD and prioritise that in this guide. + +This section relates to preparing, booting and installing OpenBSD on +your libreboot system, using nothing more than a USB flash drive (and +*dd*). They\'ve only been tested on a Lenovo ThinkPad x200. + +- [Prepare the USB drive (in OpenBSD)](#prepare) +- [Installing OpenBSD without full disk encryption](#noencryption) +- [Installing OpenBSD with full disk encryption](#encryption) +- [Booting](#booting) +- [Configuring Grub](#configuring_grub) +- [Troubleshooting](#troubleshooting) + +[Back to previous index](./) + +</div> + +<div class="section"> + +**This section is only for the GRUB payload. For depthcharge (used on +CrOS devices in libreboot), instructions have yet to be written in the +libreboot documentation.** + +</div> + +<div id="prepare" class="section"> + +install60.fs is the installation image for OpenBSD 6.0. Adapt the +filename accordingly, for a different OpenBSD version or LibertyBSD. + +Prepare the USB drive (in LibertyBSD or OpenBSD) +------------------------------------------------ + +If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is +how to create the bootable LibertyBSD/OpenBSD USB drive: + +Connect the USB drive. Check dmesg:\ +**\$ dmesg | tail**\ +Check to confirm which drive it is, for example, if you think its sd3:\ +**\$ disklabel sd3** + +Check that it wasn\'t automatically mounted. If it was, unmount it. For +example:\ +**\$ doas umount /dev/sd3i**\ + +dmesg told you what device it is. Overwrite the drive, writing the +OpenBSD installer to it with dd. For example:\ +**\$ doas dd if=install60.fs of=/dev/rsdXc bs=1M; sync**\ + +You should now be able to boot the installer from your USB drive. +Continue reading, for information about how to do that. + +[Back to top of page](#pagetop). + +Prepare the USB drive (in NetBSD) +--------------------------------- + +[This +page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) +on the NetBSD website shows how to create a NetBSD bootable USB drive +from within NetBSD itself. You should use the *dd* method documented +there. This will also work with the OpenBSD image. + +Prepare the USB drive (in FreeBSD) +---------------------------------- + +[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on +the FreeBSD website shows how to create a bootable USB drive for +installing FreeBSD. Use the *dd* on that page. You can also use the same +instructions with a OpenBSD ISO image. + +Prepare the USB drive (in GNU+Linux) +------------------------------------ + +If you downloaded your ISO on a GNU+Linux system, here is how to create +the bootable OpenBSD USB drive: + +Connect the USB drive. Check dmesg:\ +**\$ dmesg**\ +Check lsblk to confirm which drive it is:\ +**\$ lsblk** + +Check that it wasn\'t automatically mounted. If it was, unmount it. For +example:\ +**\$ sudo umount /dev/sdX\***\ +**\# umount /dev/sdX\*** + +dmesg told you what device it is. Overwrite the drive, writing your +distro ISO to it with dd. For example:\ +**\$ sudo dd if=install60.fs of=/dev/sdX bs=8M; sync**\ +**\# dd if=install60.fs of=/dev/sdX bs=8M; sync** + +You should now be able to boot the installer from your USB drive. +Continue reading, for information about how to do that. + +[Back to top of page](#pagetop). + +</div> + +<div id="noencryption" class="section"> + +Installing OpenBSD without full disk encryption +----------------------------------------------- + +Press C in GRUB to access the command line: + +grub&gt; **kopenbsd (usb0,openbsd1)/6.0/amd64/bsd.rd**\ +grub&gt; **boot** + +It will start booting into the OpenBSD installer. Follow the normal +process for installing OpenBSD. + +[Back to top of page](#pagetop). + +</div> + +<div id="encryption" class="section"> + +Installing OpenBSD with full disk encryption +-------------------------------------------- + +Not working. You can modify the above procedure (installation w/o +encryption) to install OpenBSD using full disk encryption, and it +appears to work, except that its not yet clear how to actually *boot* an +OpenBSD+FDE installation using libreboot+Grub2. If you get it working, +please let us know. + +If booting in text mode (framebuffer mode might also work), it might be +possible to chainload the OpenBSD or LibertyBSD bootloader from the MBR +section on the internal storage device. This way, it would be possible +to boot with an encrypted OpenBSD or LibertyBSD installation. Please let +us know (contact details are on the libreboot homepage) if you get it +working this way. + +Alternatively, it would be good to port OpenBSD either natively as a +coreboot payload, or port it to libpayload (payload library in coreboot; +it has a basic C library and a few functions for certain operations e.g. +text/bitmap). **This would be ideal, because then it would be possible +to boot a truly fully encrypted OpenBSD or LibertyBSD installation, by +putting everything in the flash chip.** + +Alternatively, modifying GRUB to support booting fully encrypted OpenBSD +installations would be possible, but probably not feasible; it\'s an +alien codebase to the OpenBSD project, not tightly integrated and the +OpenBSD bootloader already works. + +[Back to top of page](#pagetop). + +</div> + +<div id="booting" class="section"> + +Booting +------- + +Press C in GRUB to access the command line: + +grub&gt; **kopenbsd -r sd0a (ahci0,openbsd1)/bsd**\ +grub&gt; **boot** + +OpenBSD will start booting. Yay! + +[Back to top of page](#pagetop). + +</div> + +<div id="configuring_grub" class="section"> + +Configuring Grub +---------------- + +If you don\'t want to drop to the GRUB command line and type in a +command to boot OpenBSD every time, you can create a GRUB configuration +that\'s aware of your OpenBSD installation and that will automatically +be used by libreboot. + +On your OpenBSD root partition, create the **/grub** directory and add +the file **libreboot\_grub.cfg** to it. Inside the +**libreboot\_grub.cfg** add these lines: + +**default=0 timeout=3 menuentry \"OpenBSD\" {\ +    kopenbsd -r sd0a (ahci0,openbsd1)/bsd\ +}\ +** + +The next time you boot, you\'ll see the old Grub menu for a few seconds, +then you\'ll see the a new menu with only OpenBSD on the list. After 3 +seconds OpenBSD will boot, or you can hit enter to boot. + +[Back to top of page](#pagetop). + +</div> + +<div id="troubleshooting" class="section"> + +Troubleshooting +=============== + +Most of these issues occur when using libreboot with coreboot\'s \'text +mode\' instead of the coreboot framebuffer. This mode is useful for +booting payloads like memtest86+ which expect text-mode, but for OpenBSD +it can be problematic when they are trying to switch to a framebuffer +because it doesn\'t exist. + +In most cases, you should use the vesafb ROM images. Example filename: +libreboot\_ukdvorak\_vesafb.rom. + +won\'t boot\...something about file not found +--------------------------------------------- + +Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and +numbers may differ. Use TAB completion. + +[Back to top of page](#pagetop). + +</div> + +<div class="section"> + +Copyright © 2016 Scott Bonds &lt;scott@ggr.com&gt;\ +Copyright © 2016 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/depthcharge/index.html b/docs/depthcharge/index.html @@ -1,362 +0,0 @@ -<!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>Depthcharge payload</title> -</head> - -<body> - - <div class="section"> - - <h1 id="pagetop">Depthcharge payload</h1> - - <p> - This section relates to the depthcharge payload used in libreboot. - </p> - - <p> - Or <a href="../">Back to main index</a>. - </p> - - <ul> - <li><a href="#cros_security_model">CrOS security model</a></li> - <li><a href="#developer_mode_screen">Developer mode screen</a> - <ul> - <li><a href="#holding_developer_mode_screen">Holding the developer mode screen</li> - <li><a href="#booting_normally">Booting normally</li> - <li><a href="#booting_different_mediums">Booting from different mediums</li> - <li><a href="#showing_device_information">Showing device information</li> - <li><a href="#warnings">Warnings</li> - </ul> - </li> - <li><a href="#recovery_mode_screen">Recovery mode screen</a> - <ul> - <li><a href="#recovering_bad_state">Recovering from a bad state</a></li> - <li><a href="#enabling_developer_mode">Enabling developer mode</a></li> - </ul> - </li> - <li><a href="#configuring_verified_boot_parameters">Configuring verified boot parameters</a></li> - </ul> - - </div> - - <div class="section"> - - <h1 id="cros_security_model">CrOS security model</h1> - - <p> - CrOS (Chromium OS/Chrome OS) devices such as Chromebooks implement a strict security model to ensure that these devices do not become compromised, - that is implemented as the verified boot (vboot) reference, most of which is executed within depthcharge. - A detailed overview of the CrOS security model is available on the dedicated page. - </p> - - <div class="subsection"> - - <p> - In spite of the CrOS security model, depthcharge won't allow booting kernels without verifying their signature and booting from external media or legacy payload unless explicitly allowed: see <a href="#configuring_verified_boot_parameters">configuring verified boot parameters</a>. - </p> - - </div> - - </div> - - <div class="section"> - - <h1 id="developer_mode_screen">Developer mode screen</h1> - - <p> - The developer mode screen can be accessed in depthcharge when developer mode is enabled.<br /> - Developer mode can be enabled from the <a href="#recovery_mode_screen">recovery mode screen</a>. - </p> - - <p> - It allows booting normally, booting from internal storage, booting from external media (when enabled), booting from legacy payload (when enabled), showing information about the device and disabling developer mode. - </p> - - <div class="subsection"> - - <h2 id="holding_developer_mode_screen">Holding the developer mode screen</h2> - - <p> - As instructed on the developer mode screen, the screen can be held by pressing <b>Ctrl + H</b> in the first 3 seconds after the screen is shown. - After that delay, depthcharge will resume booting normally. - </p> - - </div> - - <div class="subsection"> - - <h2 id="booting_normally">Booting normally</h2> - - <p> - As instructed on the developer mode screen, a regular boot will happen after <b>3 seconds</b> (if developer mode screen is not held).<br /> - The default boot medium (internal storage, external media, legacy payload) is shown on screen. - </p> - - </div> - - <div class="subsection"> - - <h2 id="booting_different_mediums">Booting from different mediums</h2> - - <p> - Depthcharge allows booting from different mediums, when they are allowed (see <a href="#configuring_verified_boot_parameters">configuring verified boot parameters</a> to enable or disable boot mediums).<br /> - As instructed on the developer mode screen, booting from various mediums can be triggered by pressing various key combinations: - </p> - - <ul> - <li>Internal storage: <b>Ctrl + D</b></li> - <li>External media: <b>Ctrl + U</b> (when enabled)</li> - <li>Legacy payload: <b>Ctrl + L</b> (when enabled)</li> - </ul> - - </div> - - <div class="subsection"> - - <h2 id="showing_device_information">Showing device information</h2> - - <p> - As instructed on the developer mode screen, showing device information can be triggered by pressing <b>Ctrl + I</b> or <b>Tab</b>.<br /> - Various information is shown, including vboot non-volatile data, TPM status, GBB flags and key hashes.<br /> - </p> - - </div> - - <div class="subsection"> - - <h2 id="warnings">Warnings</h2> - - <p> - The developer mode screen will show warnings when: - - <ul> - <li>Booting kernels without verifying their signature is enabled</li> - <li>Booting from external media is enabled</li> - <li>Booting legacy payloads is enabled</li> - </ul> - - </p> - - </div> - - </div> - - <div class="section"> - - <h1 id="recovery_mode_screen">Recovery mode screen</h1> - - <p> - The recovery mode screen can be accessed in depthcharge, by pressing <b>Escape + Refresh + Power</b> when the device is off. - </p> - - <p> - It allows recovering the device from a bad state by booting from a trusted recovery media. - When accessed with the device in a good state, it also allows enabling developer mode. - </p> - - <div class="subsection"> - - <h2 id="recovering_bad_state">Recovering from a bad state</h2> - - <p> - When the device fails to verify the signature of a piece of the boot software or when an error occurs, - it is considered to be in a bad state and will instruct the user to reboot to recovery mode.<br /> - Recovery mode boots using only software located in write-protected memory, that is considered to be trusted and safe. - </p> - - <p> - Recovery mode then allows recovering the device by booting from a trusted recovery media, that is automatically detected when recovery mode starts. - When no external media is found or when the recovery media is invalid, instructions are shown on screen. <br /> - Trusted recovery media are external media (USB drives, SD cards, etc) that hold a kernel signed with the recovery key. - </p> - - <p> - Google provides images of such recovery media for Chrome OS (which are not advised to users as they contain proprietary software). <br /> - They are signed with Google's recovery keys, that are pre-installed on the device when it ships. - </p> - - <p> - When replacing the full flash of the device, the pre-installed keys are replaced. - When the recovery private key is available (e.g. when using self-generated keys), it can be used to sign a kernel for recovery purposes. - </p> - - </div> - - <div class="subsection"> - - <h2 id="enabling_developer_mode">Enabling developer mode</h2> - - <p> - As instructed on the recovery mode screen, developer mode can be enabled by pressing <b>Ctrl + D</b>.<br /> - Instructions to confirm enabling developer mode are then shown on screen. - </p> - - </div> - - </div> - - <div class="section"> - - <h1 id="configuring_verified_boot_parameters">Configuring verified boot parameters</h1> - - <p> - Depthcharge's behavior relies on the verified boot (vboot) reference implementation, - that can be configured with parameters stored in the verified boot non-volatile storage.<br /> - These parameters can be modified with the <b>crossystem</b> tool, that requires sufficient privileges to access the verified boot non-volatile storage. - </p> - - <p> - <b>crossystem</b> relies on <b>mosys</b>, that is used to access the verified boot non-volatile storage on some devices. - <b>crossystem</b> and <b>mosys</b> are both free software and their source code is made available by Google: <a href="https://chromium.googlesource.com/chromiumos/platform/vboot_reference/">crossystem</a>. <a href="https://chromium.googlesource.com/chromiumos/platform/mosys/">mosys</a>.<br /> - These tools are not distributed along with Libreboot yet. However, they are preinstalled on the device, with ChromeOS. - </p> - - <p> - Some of these parameters have the potential of <b>weakening the security of the device</b>. - In particular, disabling kernels signature verification, external media boot and legacy payload boot can weaken the security of the device. - </p> - - <div class="subsection"> - - <p> - The following parameters can be configured: - </p> - - <ul> - - <li> - Kernels signature verification: - <ul> - - <li> - Enabled with:<br /> - # <b>crossystem dev_boot_signed_only=1</b> - </li> - - <li> - Disabled with:<br /> - # <b>crossystem dev_boot_signed_only=0</b> - </li> - - </ul> - </li> - - <li> - External media boot: - <ul> - - <li> - Enabled with:<br /> - # <b>crossystem dev_boot_usb=1</b> - </li> - - <li> - Disabled with:<br /> - # <b>crossystem dev_boot_usb=0</b> - </li> - - </ul> - </li> - - <li> - Legacy payload boot: - <ul> - - <li> - Enabled with:<br /> - # <b>crossystem dev_boot_legacy=1</b> - </li> - - <li> - Disabled with:<br /> - # <b>crossystem dev_boot_legacy=0</b> - </li> - - </ul> - </li> - - <li> - Default boot medium: - <ul> - - <li> - Internal storage:<br /> - # <b>crossystem dev_default_boot=disk</b> - </li> - - <li> - External media:<br /> - # <b>crossystem dev_default_boot=usb</b> - </li> - - <li> - Legacy payload:<br /> - # <b>crossystem dev_default_boot=legacy</b> - </li> - - </ul> - - </ul> - - </div> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2015 Paul Kocialkowski &lt;contact@paulk.fr&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/depthcharge/index.md b/docs/depthcharge/index.md @@ -0,0 +1,279 @@ +<div class="section"> + +Depthcharge payload {#pagetop} +=================== + +This section relates to the depthcharge payload used in libreboot. + +Or [Back to main index](../). + +- [CrOS security model](#cros_security_model) +- [Developer mode screen](#developer_mode_screen) + - Holding the developer mode screen + - Booting normally + - Booting from different mediums + - Showing device information + - Warnings +- [Recovery mode screen](#recovery_mode_screen) + - [Recovering from a bad state](#recovering_bad_state) + - [Enabling developer mode](#enabling_developer_mode) +- [Configuring verified boot + parameters](#configuring_verified_boot_parameters) + +</div> + +<div class="section"> + +CrOS security model {#cros_security_model} +=================== + +CrOS (Chromium OS/Chrome OS) devices such as Chromebooks implement a +strict security model to ensure that these devices do not become +compromised, that is implemented as the verified boot (vboot) reference, +most of which is executed within depthcharge. A detailed overview of the +CrOS security model is available on the dedicated page. + +<div class="subsection"> + +In spite of the CrOS security model, depthcharge won\'t allow booting +kernels without verifying their signature and booting from external +media or legacy payload unless explicitly allowed: see [configuring +verified boot parameters](#configuring_verified_boot_parameters). + +</div> + +</div> + +<div class="section"> + +Developer mode screen {#developer_mode_screen} +===================== + +The developer mode screen can be accessed in depthcharge when developer +mode is enabled.\ +Developer mode can be enabled from the [recovery mode +screen](#recovery_mode_screen). + +It allows booting normally, booting from internal storage, booting from +external media (when enabled), booting from legacy payload (when +enabled), showing information about the device and disabling developer +mode. + +<div class="subsection"> + +Holding the developer mode screen {#holding_developer_mode_screen} +--------------------------------- + +As instructed on the developer mode screen, the screen can be held by +pressing **Ctrl + H** in the first 3 seconds after the screen is shown. +After that delay, depthcharge will resume booting normally. + +</div> + +<div class="subsection"> + +Booting normally {#booting_normally} +---------------- + +As instructed on the developer mode screen, a regular boot will happen +after **3 seconds** (if developer mode screen is not held).\ +The default boot medium (internal storage, external media, legacy +payload) is shown on screen. + +</div> + +<div class="subsection"> + +Booting from different mediums {#booting_different_mediums} +------------------------------ + +Depthcharge allows booting from different mediums, when they are allowed +(see [configuring verified boot +parameters](#configuring_verified_boot_parameters) to enable or disable +boot mediums).\ +As instructed on the developer mode screen, booting from various mediums +can be triggered by pressing various key combinations: + +- Internal storage: **Ctrl + D** +- External media: **Ctrl + U** (when enabled) +- Legacy payload: **Ctrl + L** (when enabled) + +</div> + +<div class="subsection"> + +Showing device information {#showing_device_information} +-------------------------- + +As instructed on the developer mode screen, showing device information +can be triggered by pressing **Ctrl + I** or **Tab**.\ +Various information is shown, including vboot non-volatile data, TPM +status, GBB flags and key hashes.\ + +</div> + +<div class="subsection"> + +Warnings +-------- + +The developer mode screen will show warnings when: + +- Booting kernels without verifying their signature is enabled +- Booting from external media is enabled +- Booting legacy payloads is enabled + +</div> + +</div> + +<div class="section"> + +Recovery mode screen {#recovery_mode_screen} +==================== + +The recovery mode screen can be accessed in depthcharge, by pressing +**Escape + Refresh + Power** when the device is off. + +It allows recovering the device from a bad state by booting from a +trusted recovery media. When accessed with the device in a good state, +it also allows enabling developer mode. + +<div class="subsection"> + +Recovering from a bad state {#recovering_bad_state} +--------------------------- + +When the device fails to verify the signature of a piece of the boot +software or when an error occurs, it is considered to be in a bad state +and will instruct the user to reboot to recovery mode.\ +Recovery mode boots using only software located in write-protected +memory, that is considered to be trusted and safe. + +Recovery mode then allows recovering the device by booting from a +trusted recovery media, that is automatically detected when recovery +mode starts. When no external media is found or when the recovery media +is invalid, instructions are shown on screen.\ +Trusted recovery media are external media (USB drives, SD cards, etc) +that hold a kernel signed with the recovery key. + +Google provides images of such recovery media for Chrome OS (which are +not advised to users as they contain proprietary software).\ +They are signed with Google\'s recovery keys, that are pre-installed on +the device when it ships. + +When replacing the full flash of the device, the pre-installed keys are +replaced. When the recovery private key is available (e.g. when using +self-generated keys), it can be used to sign a kernel for recovery +purposes. + +</div> + +<div class="subsection"> + +Enabling developer mode {#enabling_developer_mode} +----------------------- + +As instructed on the recovery mode screen, developer mode can be enabled +by pressing **Ctrl + D**.\ +Instructions to confirm enabling developer mode are then shown on +screen. + +</div> + +</div> + +<div class="section"> + +Configuring verified boot parameters {#configuring_verified_boot_parameters} +==================================== + +Depthcharge\'s behavior relies on the verified boot (vboot) reference +implementation, that can be configured with parameters stored in the +verified boot non-volatile storage.\ +These parameters can be modified with the **crossystem** tool, that +requires sufficient privileges to access the verified boot non-volatile +storage. + +**crossystem** relies on **mosys**, that is used to access the verified +boot non-volatile storage on some devices. **crossystem** and **mosys** +are both free software and their source code is made available by +Google: +[crossystem](https://chromium.googlesource.com/chromiumos/platform/vboot_reference/). +[mosys](https://chromium.googlesource.com/chromiumos/platform/mosys/).\ +These tools are not distributed along with Libreboot yet. However, they +are preinstalled on the device, with ChromeOS. + +Some of these parameters have the potential of **weakening the security +of the device**. In particular, disabling kernels signature +verification, external media boot and legacy payload boot can weaken the +security of the device. + +<div class="subsection"> + +The following parameters can be configured: + +- Kernels signature verification: + - Enabled with:\ + \# **crossystem dev\_boot\_signed\_only=1** + - Disabled with:\ + \# **crossystem dev\_boot\_signed\_only=0** +- External media boot: + - Enabled with:\ + \# **crossystem dev\_boot\_usb=1** + - Disabled with:\ + \# **crossystem dev\_boot\_usb=0** +- Legacy payload boot: + - Enabled with:\ + \# **crossystem dev\_boot\_legacy=1** + - Disabled with:\ + \# **crossystem dev\_boot\_legacy=0** +- Default boot medium: + - Internal storage:\ + \# **crossystem dev\_default\_boot=disk** + - External media:\ + \# **crossystem dev\_default\_boot=usb** + - Legacy payload:\ + \# **crossystem dev\_default\_boot=legacy** + +</div> + +</div> + +<div class="section"> + +Copyright © 2015 Paul Kocialkowski &lt;contact@paulk.fr&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/distros/index.html b/docs/distros/index.html @@ -1,181 +0,0 @@ -<!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>List of recommended GNU+Linux distributions for libreboot</title> -</head> - -<body> - - <div class="section"> - <h1 id="pagetop">List of recommended GNU+Linux distributions for libreboot</h1> - <p> - Any distribution should work, so long as it uses kernel mode setting for graphics. - We recommend using distributions that are entirely free software; most distros - out there have proprietary software in them, but the ones that we recommend - do not have proprietary software by default. - </p> - <p> - Note: we are not the Free Software Foundation. The recommendations here - consist of both FSF-endorsed and non-FSF-endorsed distros. Some of these - distributions wrongly call the whole system <em>Linux</em>. Despite libreboot's - <a href="../../gnu/">stance against the GNU project</a>, we still agree - with the free software philosophy and we still want you to call the - whole system <em>GNU+Linux</em>, since this is the technically correct - name for the system. - </p> - <h2>FSF-endorsed distros</h2> - <p> - Many FSF-endorsed GNU+Linux distributions are considered unfit - for general use by the libreboot project. - You can read about their problems here:<br/> - <a href="../fsf-distros/">Why we can't endorse many FSF-endorsed distributions</a>. - </p> - <p> - <a href="../gnulinux/grub_boot_installer.html">How to install GNU+Linux on a libreboot system</a> - </p> - <p> - <a href="../">Back to main index</a> - </p> - </div> - - <div class="section"> - - <h2>Debian</h2> - <p> - Most of the developers use it (Leah Rowe always uses testing - releases of Debian). We recommend Debian stable releases for - most users. If you want to do development, e.g. libreboot - development, then you should use the testing release of Debian. - </p> - <p> - Debian by default comes without non-free software in the default - installation or repos. There is a non-free repo that's not added - by default. Just avoid adding this, and you should have a fully - free system. - </p> - <p> - <a href="https://www.debian.org/">Visit the Debian website</a> - </p> - <p> - We recommend using the <em>MATE</em> desktop. - </p> - <h2>Devuan</h2> - <p> - Devuan is a fork of Debian that does not use the controversial - <em>systemd</em> init system. - </p> - <p> - See: <a href="https://www.devuan.org/os/init-freedom/">https://www.devuan.org/os/init-freedom/</a>. - </p> - <p> - <a href="https://www.devuan.org/">Visit the Devuan website</a> - </p> - <p> - We recommend using the <em>MATE</em> desktop. - </p> - <h2>Qubes</h2> - <p> - Security-focussed distribution. It makes heavy use of IOMMU and - hardware virtualization to separate running - applications, along with other security features. Provides - a full hypervisor for running applications. - </p> - <p> - Also heavily in favour of adoption of both Libreboot and Coreboot. - </p> - <p> - <strong> - Of all available Libreboot systems, Qubes is currently only known - to be compatible with the ASUS KGPE-D16 and KCMA-D8, due to the - hardware virtualization requirement (and even on those boards, - only certain CPUs have fully functional virtualization in - Libreboot). - </strong> - </p> - <p> - <a href="https://www.qubes-os.org/">Visit the Qubes website</a> - </p> - <h2>Dragora</h2> - <p> - Fully free distribution, with a focus on simple package management - and configuration. Experienced users might like this distro. It also - has native support for multiple languages. - </p> - <p> - <a href="https://dragora.org/">Visit the Dragora website</a> - </p> - <h2>Parabola</h2> - <p> - Fully free bleeding edge distribution, based on the <em>Arch</em> distribution. - Good for saavy users and developers in general (some libreboot developers - use this). - </p> - <p> - Arch users, refer to the <a href="https://wiki.parabola.nu/Migration_from_the_GNU+Linux_distribution_of_Arch">Parabola migration guide</a>. - </p> - <p> - <a href="https://www.parabola.nu/">Visit the Parabola website</a> - </p> - <p> - We recommend using the <em>MATE</em> desktop. - </p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2016 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/distros/index.md b/docs/distros/index.md @@ -0,0 +1,143 @@ +<div class="section"> + +List of recommended GNU+Linux distributions for libreboot {#pagetop} +========================================================= + +Any distribution should work, so long as it uses kernel mode setting for +graphics. We recommend using distributions that are entirely free +software; most distros out there have proprietary software in them, but +the ones that we recommend do not have proprietary software by default. + +Note: we are not the Free Software Foundation. The recommendations here +consist of both FSF-endorsed and non-FSF-endorsed distros. Some of these +distributions wrongly call the whole system *Linux*. Despite +libreboot\'s [stance against the GNU project](../../gnu/), we still +agree with the free software philosophy and we still want you to call +the whole system *GNU+Linux*, since this is the technically correct name +for the system. + +FSF-endorsed distros +-------------------- + +Many FSF-endorsed GNU+Linux distributions are considered unfit for +general use by the libreboot project. You can read about their problems +here:\ +[Why we can\'t endorse many FSF-endorsed +distributions](../fsf-distros/). + +[How to install GNU+Linux on a libreboot +system](../gnulinux/grub_boot_installer.html) + +[Back to main index](../) + +</div> + +<div class="section"> + +Debian +------ + +Most of the developers use it (Leah Rowe always uses testing releases of +Debian). We recommend Debian stable releases for most users. If you want +to do development, e.g. libreboot development, then you should use the +testing release of Debian. + +Debian by default comes without non-free software in the default +installation or repos. There is a non-free repo that\'s not added by +default. Just avoid adding this, and you should have a fully free +system. + +[Visit the Debian website](https://www.debian.org/) + +We recommend using the *MATE* desktop. + +Devuan +------ + +Devuan is a fork of Debian that does not use the controversial *systemd* +init system. + +See: <https://www.devuan.org/os/init-freedom/>. + +[Visit the Devuan website](https://www.devuan.org/) + +We recommend using the *MATE* desktop. + +Qubes +----- + +Security-focussed distribution. It makes heavy use of IOMMU and hardware +virtualization to separate running applications, along with other +security features. Provides a full hypervisor for running applications. + +Also heavily in favour of adoption of both Libreboot and Coreboot. + +**Of all available Libreboot systems, Qubes is currently only known to +be compatible with the ASUS KGPE-D16 and KCMA-D8, due to the hardware +virtualization requirement (and even on those boards, only certain CPUs +have fully functional virtualization in Libreboot).** + +[Visit the Qubes website](https://www.qubes-os.org/) + +Dragora +------- + +Fully free distribution, with a focus on simple package management and +configuration. Experienced users might like this distro. It also has +native support for multiple languages. + +[Visit the Dragora website](https://dragora.org/) + +Parabola +-------- + +Fully free bleeding edge distribution, based on the *Arch* distribution. +Good for saavy users and developers in general (some libreboot +developers use this). + +Arch users, refer to the [Parabola migration +guide](https://wiki.parabola.nu/Migration_from_the_GNU+Linux_distribution_of_Arch). + +[Visit the Parabola website](https://www.parabola.nu/) + +We recommend using the *MATE* desktop. + +</div> + +<div class="section"> + +Copyright © 2016 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/fsf-distros/index.html b/docs/fsf-distros/index.html @@ -1,146 +0,0 @@ -<!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>Explaining Why We Don't Endorse FSF-endorsed Systems</title> -</head> - -<body> - - <div class="section"> - <h1 id="pagetop">Explaining Why We Don't Endorse FSF-endorsed Systems</h1> - <p> - We are asked why we don't endorse most FSF-endorsed distributions, - usually well-known within the FSF community. - </p> - <p> - To learn more about the GNU+Linux systems that we do endorse, - check out our list of - <a href="../distros/">free GNU+Linux distributions</a>. The <em>only</em> - FSF-endorsed distribution that we endorse there is <em>Parabola</em>. - </p> - <p> - <a href="../">Back to main index</a> - </p> - </div> - - <div class="section"> - - <h2>Blag</h2> - <p> - It's a dead project. - </p> - <h2>Dynebolic</h2> - <p> - It's a dead project. - </p> - <h2>gNewSense</h2> - <p> - It's a dead project. - </p> - <h2>GuixSD</h2> - <p> - It's the GNU project's official distribution. - <a href="../../gnu/">Libreboot is opposed to the GNU project</a>. - It's actively developed, but it's not yet ready for use by - most end users. - </p> - <h2>Musix</h2> - <p> - It's a dead project. - </p> - <h2>Trisquel</h2> - <p> - The lead developer (Ruben Rodriguez) of Trisquel is one of the accused FSF employees - in their <a href="../../gnu/">recent discriminatory firing of - a trans person from the FSF</a>, and Trisquel is one of the most - aggressively promoted distributions on the part of the Free Software - Foundation. We are opposed to the FSF, and Trisquel endorses them, - so endorsing Trisquel means endorsing the FSF. - </p> - <p> - The lead developer (Ruben Rodriguez) also works full-time as an FSF - sysadmin, and seems to barely have time to develop Trisquel these days. - As a result, with a lack of leadership (and Ruben presumably still - <em>holding on</em>), the project has stalled and will probably end - up becoming a dead distro. <em>Critical security updates are currently - delayed compared to Ubuntu, their upstream!</em> - </p> - <p> - Several people within the Trisquel project have even left the - project as a result of this. For instance, this post on the Trisquel - forums clearly shows such discontent: - <a href="https://trisquel.info/en/forum/im-leaving-trisquel">https://trisquel.info/en/forum/im-leaving-trisquel</a> - - </p> - <p> - We advise all users of Trisquel, whether they use libreboot or not, - to switch to the most similar free distribution, Debian, which is - listed on our <a href="../distros/">official list of GNU+Linux - distributions recommendations</a>. - </p> - <h2>Ututo</h2> - <p> - It's a dead project. - </p> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2016 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/fsf-distros/index.md b/docs/fsf-distros/index.md @@ -0,0 +1,118 @@ +<div class="section"> + +Explaining Why We Don\'t Endorse FSF-endorsed Systems {#pagetop} +===================================================== + +We are asked why we don\'t endorse most FSF-endorsed distributions, +usually well-known within the FSF community. + +To learn more about the GNU+Linux systems that we do endorse, check out +our list of [free GNU+Linux distributions](../distros/). The *only* +FSF-endorsed distribution that we endorse there is *Parabola*. + +[Back to main index](../) + +</div> + +<div class="section"> + +Blag +---- + +It\'s a dead project. + +Dynebolic +--------- + +It\'s a dead project. + +gNewSense +--------- + +It\'s a dead project. + +GuixSD +------ + +It\'s the GNU project\'s official distribution. [Libreboot is opposed to +the GNU project](../../gnu/). It\'s actively developed, but it\'s not +yet ready for use by most end users. + +Musix +----- + +It\'s a dead project. + +Trisquel +-------- + +The lead developer (Ruben Rodriguez) of Trisquel is one of the accused +FSF employees in their [recent discriminatory firing of a trans person +from the FSF](../../gnu/), and Trisquel is one of the most aggressively +promoted distributions on the part of the Free Software Foundation. We +are opposed to the FSF, and Trisquel endorses them, so endorsing +Trisquel means endorsing the FSF. + +The lead developer (Ruben Rodriguez) also works full-time as an FSF +sysadmin, and seems to barely have time to develop Trisquel these days. +As a result, with a lack of leadership (and Ruben presumably still +*holding on*), the project has stalled and will probably end up becoming +a dead distro. *Critical security updates are currently delayed compared +to Ubuntu, their upstream!* + +Several people within the Trisquel project have even left the project as +a result of this. For instance, this post on the Trisquel forums clearly +shows such discontent: +<https://trisquel.info/en/forum/im-leaving-trisquel> + +We advise all users of Trisquel, whether they use libreboot or not, to +switch to the most similar free distribution, Debian, which is listed on +our [official list of GNU+Linux distributions +recommendations](../distros/). + +Ututo +----- + +It\'s a dead project. + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +Copyright © 2016 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/future/index.html b/docs/future/index.html @@ -1,598 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <title>libreboot tutorials</title> - - <style type="text/css"> - @import url('../css/main.css'); - </style> - - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta name="author" content="glugman"> - <meta name="description" content="tutorials for libreboot, the reboot library."> - <meta name="robots" content="all"> -</head> - -<body> - - <div class="section"> - - <h1 id="pagetop">Development notes</h1> - <p> - These are development notes, for future use. For old (obselete) notes, see <a href="old.html">old.html</a>. - </p> - <p> - Or go <a href="../tasks.html">back to main task list</a>. - </p> - - </div> - - <div class="section"> - - <h1>Table of contents</h1> - <ul> - <li><a href="#standard_test">Standard test</a></li> - <li><a href="#t60_cpu_microcode">T60 cpu microcode</a></li> - <li><a href="#i945_vram_size">i945 VRAM size</a></li> - <li><a href="#lcd_i945_incompatibility">LCD panels on i945 - fix incompatible panels</a></li> - <li><a href="#i945_vbt">i945 X60/T60 VBT implementation (experimental: testing)</a></li> - <li><a href="#intelvbttool_results">IntelVbtTool results</a></li> - <li><a href="#fallback_patches">Fallback patches for i945</a></li> - </ul> - - </div> - - <div class="section"> - - <h1 id="standard_test">standard test</h1> - <p> - These logs are usually obtained when testing changes related to graphics on i945 (X60 and T60). - </p> - <ul> - <li> - Make a copy of these files: - <ul> - <li>/var/log/dmesg</li> - <li>/var/log/kern.log</li> - <li>/var/log/Xorg.0.log</li> - <li>/proc/ioports</li> - <li>/proc/iomem</li> - <li>/sys/class/drm/card0/error</li> - </ul> - </li> - <li> - Record these outputs: - <ul> - <li>sudo intel_reg_dumper</li> - <li>uname -r</li> - <li>lspci -vvvvnnnnxxxx</li> - <li>sudo modprobe msr</li> - <li>sudo inteltool -a</li> - <li>sudo cbmem -c</li> - </ul> - </li> - <li> - Try some 3D games with latest kernel. - </li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="t60_cpu_microcode">T60 cpu microcode</h1> - - <p> - TODO: T60: find (for rare buggy CPUs that are unstable without microcode updates) if there is a workaround (patched kernel, special parameter, etc) So far, only 1 processor has been found to have issues. See microcode errata sheets http://download.intel.com/design/mobile/SPECUPDT/31407918.pdf and http://download.intel.com/design/mobile/SPECUPDT/30922214.pdf and then look at the debugging results collected in <a href="../t7200q">t7200q</a> directory (q means quirk). - </p> - - <p> - Every other T7200 tested so far has worked without microcode updates. - </p> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="i945_vram_size">i945 VRAM size</h1> - - <p> - Apparently, only 8MB VRAM is available on i945 GPUs (though it could do 64MB):<br/> - phcoder: No. Hardware default is 8 MiB. When I wanted to make it configurable, I saw that docs mention only one other alternative: 1MiB. Later isn't event enough for 1024x768 at 24bpp without any acceleration or double buffering. It's possible that there are undocumented values. Which options do you have in vendor BIOS? - How to find out how much vram you have:<br/> - phcoder: TOM - BSM<br/> - phcoder: check what vendor BIOS offers as options<br/> - vimuser: I thought it could do 64MB usually<br/> - phcoder: not accorging to doc.<br/> - phcoder: see mobile-945-express-chipset-datasheet page 93<br/> - phcoder: see also src/northbridge/intel/i945/{early_init,northbridge,gma}.c<br/> - vimuser: "011 = DVMT (UMA) mode, 8 MB of memory pre-allocated for<br/> - vimuser: frame buffer."<br/> - vimuser: "Others - reserved"<br/> - phcoder: the easiest way is a loop at this position which tries different values and reads (and prints) BSM with them<br/> - stefanct: vimuser: they suggest that you change the value and look how BSM reacts to that<br/> - stefanct: as they pointed out earlier vram size = TOM - BSM<br/> - stefanct: different values of GMS<br/> - stefanct: phcoder: hm... this could be a hint. look at the text description of TOLUD at page 103<br/> - stefanct: it mentions 64 MB in the text about BSM as well<br/> - stefanct: table 18...<br/> - phcoder: stefanct: I have a guess which value make is 64 but I will not tell to avoid skewing test results<br/> - stefanct: phcoder: sure... i assumed you were not sure if it supports it at all. testing it properly is of course a good idea :)<br/> - stefanct: test the various possible (but reserved) values of GMS and see what the resulting VRAM size is<br/> - vimuser: so, TOM - BSM - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - </div> - - <div class="section"> - - <h1 id="lcd_i945_incompatibility">LCD panels on i945 - fix incompatible panels</h1> - - <p> - Fix T60 issues (see incompatible panels listed at <a href="../hcl/#supported_t60_list">../hcl/#supported_t60_list</a>). - </p> - - <p> - Run that tool (resources/utilities/i945gpu/intel-regs.py) as root on systems with the offending panels in: - </p> - <ul> - <li>Coreboot (or libreboot, whatever) with VBIOS (disable native graphics also)</li> - <li>(Factory BIOS also?)</li> - </ul> - - <p> - This shows values in devicetree.cb and src/northbridge/intel/i945/gma.c, the idea is that you run it on factory bios or vbios - and that it will (might) show different values: then you try those in the native graphics (in libreboot). - </p> - - <p> - Other values/registers might also need to be added to the script for these tests. - </p> - - <p> - check if intel_bios_reader from intel-gpu-tools reports the same value (BIOS has a hardcoded value) for PWM modulation frequency. - This file can read the VBIOS (64K dump). - </p> - - <p> - Check other tools in intel-gpu-tools aswell, compare outputs. Possibly add more information to intel-regs.py output (submit changes to mtjm). - Do oprom trace / replay (<a href="http://www.coreboot.org/User:GNUtoo#How_to_get_rid_of_the_vbios_of_the_x60_.5BNew_Version.5D">http://www.coreboot.org/User:GNUtoo#How_to_get_rid_of_the_vbios_of_the_x60_.5BNew_Version.5D</a>) - </p> - - <p> - Study how EDID works and how gma.c handles it. - </p> - - <p> - Original getregs.py script can be found at <a href="http://hg.mtjm.eu/scripts/file/tip/intel-regs.py">http://hg.mtjm.eu/scripts/file/tip/intel-regs.py</a> - written by Michał Masłowski. - </p> - - <p> - About fixing remaining LCD panels on 5345:<br/> - 'polarity' is mentioned in coreboot log (cbmem -c). compare output (with working and non-working panel). (and see the other notes in docs/future/) - </p> - <p> - There was a theory that working panels are - 6bpc (bits per colour) and nonworking are - 8bpc, but all EDIDs that we have here are - for 6bpc panels. - </p> - <p>We should compare coreboot logs - (from <code>cbmem -c</code> from systems with - working and nonworking panels.</p> - <p>How to dump EDID:</p> - <p> - # <b>apt-get install i2c-tools</b><br/> - # <b>modprobe i2c-dev</b><br/> - Find out the correct ID to use:<br/> - # <b>i2cdetect -l</b><br/> - Example:<br/> - # <b>i2cdump -y 2 0x50</b> - </p> - - <p> - Working panel: EDID dump from LG-Philips LP150E05-A2K1: - </p> -<pre> -No size specified (using byte-data access) - 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef -00: XX ff ff ff ff ff ff 00 30 ae 43 40 00 00 00 00 X.......0?C@.... -10: 00 0f 01 03 80 1e 17 78 ea af 00 99 58 53 8c 2a .??????x??.?XS?* -20: 25 50 54 21 08 00 81 80 01 01 01 01 01 01 01 01 %PT!?.?????????? -30: 01 01 01 01 01 01 30 2a 78 20 51 1a 10 40 30 70 ??????0*x Q??@0p -40: 13 00 31 e4 10 00 00 18 28 23 78 20 51 1a 10 40 ?.1??..?(#x Q??@ -50: 30 70 13 00 31 e4 10 00 00 18 00 00 00 0f 00 90 0p?.1??..?...?.? -60: 43 32 90 43 28 14 06 00 32 0c 00 00 00 00 00 fe C2?C(??.2?.....? -70: 00 4c 50 31 35 30 45 30 35 2d 41 32 0a 20 00 9b .LP150E05-A2? .? -80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -</pre> - - <p> - Working panel: EDID dump from Boe-Hydis HT14P12-100 FRU: 13N7061 (Inverter FRU: 41W1010) - </p> - -<pre> - 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef -00: 00 ff ff ff ff ff ff 00 30 ae 22 40 00 00 00 00 ........0?"@.... -10: 00 0f 01 03 80 1c 15 78 ea af 40 95 56 4a 8f 25 .??????x??@?VJ?% -20: 20 50 54 21 08 00 81 80 01 01 01 01 01 01 01 01 PT!?.?????????? -30: 01 01 01 01 01 01 30 2a 78 20 51 1a 10 40 30 70 ??????0*x Q??@0p -40: 13 00 1d d6 10 00 00 19 25 23 78 20 51 1a 10 40 ?.???..?%#x Q??@ -50: 30 70 13 00 1d d6 10 00 00 19 00 00 00 0f 00 90 0p?.???..?...?.? -60: 43 32 90 43 28 0f 01 00 09 e5 00 00 00 00 00 fe C2?C(??.??.....? -70: 00 48 54 31 34 50 31 32 2d 31 30 30 0a 20 00 3f .HT14P12-100? .? -80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -</pre> - -<p>LTN141XA-L01: revert to libreboot git commit c943281 to see this</p> - - <p> - <b>Non-</b>working panel: EDID dump from Samsung LTN150XG-L08: - </p> -<pre> - 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef -00: 00 ff ff ff ff ff ff 00 30 ae 40 40 00 00 00 00 ........0?@@.... -10: 00 0f 01 03 80 1f 17 78 ea 2d 05 97 57 51 8a 27 .??????x?-??WQ?' -20: 23 50 54 21 08 00 01 01 01 01 01 01 01 01 01 01 #PT!?.?????????? -30: 01 01 01 01 01 01 64 19 00 40 41 00 26 30 18 88 ??????d?.@A.&amp;0?? -40: 36 00 30 e4 10 00 00 19 28 15 00 40 41 00 26 30 6.0??..?(?.@A.&amp;0 -50: 18 88 36 00 30 e4 10 00 00 19 00 00 00 0f 00 61 ??6.0??..?...?.a -60: 43 32 61 43 28 14 01 00 4c a3 58 47 00 00 00 fe C2aC(??.L?XG...? -70: 00 4c 54 4e 31 35 30 58 47 2d 4c 30 38 0a 00 6d .LTN150XG-L08?.m -80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ -</pre> - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="i945_vbt">i945 gfx: X60/T60 VBT implementation (experimental: testing)</h1> - - <p> - intel_bios_dumper in intel-gpu-tools seems interesting. - </p> - <p> - <b>Use 'drm.debug=0x06' kernel parameter when booting in grub!</b> - </p> - <p> - Before each test run, boot a live USB and delete the old logs in /var/log (kernel log, xorg log, dmesg and so on). - </p> - <p> - Load (from the ROM) the runningvga.bin for each LCD panel on each system; do not execute it, only load it! (coreboot will have to be modified). - Rename the ROM appropriately, based on the system name and the panel name. coreboot_nativegfx_5868_plusrunningvga_t60_14_LTD141ECMB.rom, - for instance. Keep a copy for later use. - </p> - - <p>You are supposed to:</p> - <ul> - <li>enable native graphics in menuconfig</li> - <li>include the self-modified VGA ROM (load, but not execute) - for reverse engineering the correct VBT tables.</li> - </ul> - - <p> - With each boot, make notes about what you see and get logs using the <a href="#standard_test">standard test</a>. - You will need the files from <a href="#intelvbttool_results">#intelvbttool_results</a> for each system. - </p> - - Results (# means untested): - <ul> - <li> - <b>X60/X60s:</b> - <ul> - <li>TMD-Toshiba LTD121ECHB: #</li> - <li>CMO N121X5-L06: #</li> - <li>Samsung LTN121XJ-L07: #</li> - <li>BOE-Hydis HT121X01-101: #</li> - </ul> - </li> - <li> - <b>X60T XGA:</b> - <ul> - <li>BOE-Hydis HV121X03-100: #</li> - </ul> - </li> - <li> - <b>X60T SXGA+:</b> - <ul> - <li>BOE-Hydis HV121P01-100: #</li> - </ul> - </li> - <li> - <b>T60 14&quot; XGA:</b> - <ul> - <li>Samsung LTN141XA-L01: #</li> - <li>CMO N141XC: #</li> - <li>BOE-Hydis HT14X14: #</li> - <li>TMD-Toshiba LTD141ECMB: #</li> - </ul> - </li> - <li> - <b>T60 14&quot; SXGA+</b> - <ul> - <li>TMD-Toshiba LTD141EN9B: #</li> - <li>Samsung LTN141P4-L02: #</li> - <li>Boe-Hydis HT14P12: #</li> - </ul> - </li> - <li> - <b>T60 15&quot; XGA</b> - <ul> - <li>Samsung LTN150XG-L08: #</li> - <li>LG-Philips LP150X09: #</li> - <li>13N7068 (IDtech): #</li> - <li>13N7069 (CMO): #</li> - - </ul> - </li> - <li> - <b>T60 15&quot; SXGA+</b> - <ul> - <li>LG-Philips LP150E05-A2K1: #</li> - <li>BOE-Hydis HV150P01-100: #</li> - </ul> - </li> - <li> - <b>T60 15&quot; UXGA</b> - <ul> - <li>BOE-Hydis HV150UX1-100: #</li> - <li>IDTech N150U3-L01: #</li> - <li>BOE-Hydis HV150UX1-102: #</li> - </ul> - </li> - <li> - <b>T50 15&quot; QXGA</b> - <ul> - <li>IDtech IAQX10N: #</li> - <li>IDtech IAQX10S: #</li> - </ul> - </li> - </ul> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <h1 id="intelvbttool_results">intelvbttool test results (VGA ROM dumps)</h1> - <p> - The VBIOS on i945 (intel gpu) platforms is self-modifying; that is, - its contents change when you run it. intelvbttool takes a dump of - the currently running vbios, and parses it. - </p> - - <p> - The idea is that we can extract the VBT tables using this knowledge, on the X60, X60 Tablet and T60 (Intel GPU). - </p> - - <p> - Here is an example of how VBT was implemented on the ThinkPad X230: - <a href="http://review.coreboot.org/#/c/5396">http://review.coreboot.org/#/c/5396</a>. - </p> - - <p> - You'll need to build a T60 ROM with SeaBIOS and the VGA ROM (for Intel GPU). An X60 ROM is also needed (same configuration, using the VGA ROM for X60). - </p> - - <p> - T60 has DVI on its dock, make sure that the dock is attached when getting this output. - </p> - - <p> - Get intelvbttool here: <a href="http://review.coreboot.org/#/c/5842">http://review.coreboot.org/#/c/5842</a> (util/intelvbttool). - </p> - - <p> - 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 &gt; intelvbttool_out</b> - </p> - - <p> - Backup both files (runningvga.bin and intelvbttool_out), renaming them to match the system and LCD panel used. - <a href="../misc/#get_edid_panelname">../misc/#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> - - <ul> - <li> - <b>X60/X60s:</b> - <ul> - <li>TMD-Toshiba LTD121ECHB: #</li> - <li>CMO N121X5-L06: #</li> - <li>Samsung LTN121XJ-L07: #</li> - <li>BOE-Hydis HT121X01-101: #</li> - </ul> - </li> - <li> - <b>X60T XGA (1024x768):</b> - <ul> - <li>BOE-Hydis HV121X03-100: #</li> - </ul> - </li> - <li> - <b>X60T SXGA+ (1400x1050):</b> - <ul> - <li>BOE-Hydis HV121P01-100: #</li> - </ul> - </li> - <li> - <b>T60 14&quot; XGA (1024x768):</b> - <ul> - <li>Samsung LTN141XA-L01: #</li> - <li>CMO N141XC: #</li> - <li>BOE-Hydis HT14X14: #</li> - <li>TMD-Toshiba LTD141ECMB: #</li> - </ul> - </li> - <li> - <b>T60 14&quot; SXGA+ (1400x1050):</b> - <ul> - <li>TMD-Toshiba LTD141EN9B: #</li> - <li>Samsung LTN141P4-L02: #</li> - <li>Boe-Hydis HT14P12: #</li> - </ul> - </li> - <li> - <b>T60 15&quot; XGA (1024x768):</b> - <ul> - <li>Samsung LTN150XG-L08: #</li> - <li>LG-Philips LP150X09: #</li> - <li>13N7068 (IDtech): #</li> - <li>13N7069 (CMO): #</li> - </ul> - </li> - <li> - <b>T60 15&quot; SXGA+ (1400x1050):</b> - <ul> - <li>LG-Philips LP150E05-A2K1: #</li> - <li>BOE-Hydis HV150P01-100: #</li> - </ul> - </li> - <li> - <b>T60 15&quot; UXGA (1600x1200):</b> - <ul> - <li>BOE-Hydis HV150UX1-100: #</li> - <li>IDTech N150U3-L01: #</li> - <li>BOE-Hydis HV150UX1-102: #</li> - </ul> - </li> - <li> - <b>T60 15&quot; QXGA (2048x1536):</b> - <ul> - <li>IDtech IAQX10N: #</li> - <li>IDtech IAQX10S: #</li> - </ul> - </li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="fallback_patches">Fallback patches</h1> - - <ul> - <li> - Todo: test gnutoo's fallback patches: <a href="http://www.coreboot.org/Fallback_mechanism">http://www.coreboot.org/Fallback_mechanism</a> - see <a href="gnutoo_fallback_patch">this IRC log</a> (warning, not cleaned up) - </li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h1 id="other">Other - unlisted (low priority)</h1> - - <ul> - <li> - PTE errors still exist on i945 with 6718 (which is merged). <a href="http://review.coreboot.org/#/c/6718/">http://review.coreboot.org/#/c/6718/</a> - <ul> - <li><a href="future/dumps/pte_x60_6718/dmesg">dmesg</a></li> - <li><a href="future/dumps/pte_x60_6718/kern.log">kern.log</a></li> - <li>This doesn't seem to cause any issues for general use.</li> - </ul> - </li> - <li> - Implement INT 10H support in i945 native graphics. (this will be a lot of work. SeaBIOS has code for some geode boards, to get a general idea). - </li> - <li> - T60 15&quot; QXGA (2048x1536): fixed issue where GRUB wouldn't show any graphics. (Not many people have this panel) - <ul> - <li>It might be the same issue I ran into with Paul on the X60 (not enough memory being allocated) since the same code works on T60 SXGA+ and UXGA, where GRUB actually display graphics.</li> - </ul> - </li> - </ul> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/future/index.md b/docs/future/index.md @@ -0,0 +1,465 @@ +<div class="section"> + +Development notes {#pagetop} +================= + +These are development notes, for future use. For old (obselete) notes, +see [old.html](old.html). + +Or go [back to main task list](../tasks.html). + +</div> + +<div class="section"> + +Table of contents +================= + +- [Standard test](#standard_test) +- [T60 cpu microcode](#t60_cpu_microcode) +- [i945 VRAM size](#i945_vram_size) +- [LCD panels on i945 - fix incompatible + panels](#lcd_i945_incompatibility) +- [i945 X60/T60 VBT implementation (experimental: testing)](#i945_vbt) +- [IntelVbtTool results](#intelvbttool_results) +- [Fallback patches for i945](#fallback_patches) + +</div> + +<div class="section"> + +standard test {#standard_test} +============= + +These logs are usually obtained when testing changes related to graphics +on i945 (X60 and T60). + +- Make a copy of these files: + - /var/log/dmesg + - /var/log/kern.log + - /var/log/Xorg.0.log + - /proc/ioports + - /proc/iomem + - /sys/class/drm/card0/error +- Record these outputs: + - sudo intel\_reg\_dumper + - uname -r + - lspci -vvvvnnnnxxxx + - sudo modprobe msr + - sudo inteltool -a + - sudo cbmem -c +- Try some 3D games with latest kernel. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +T60 cpu microcode {#t60_cpu_microcode} +================= + +TODO: T60: find (for rare buggy CPUs that are unstable without microcode +updates) if there is a workaround (patched kernel, special parameter, +etc) So far, only 1 processor has been found to have issues. See +microcode errata sheets +http://download.intel.com/design/mobile/SPECUPDT/31407918.pdf and +http://download.intel.com/design/mobile/SPECUPDT/30922214.pdf and then +look at the debugging results collected in [t7200q](../t7200q) directory +(q means quirk). + +Every other T7200 tested so far has worked without microcode updates. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +i945 VRAM size {#i945_vram_size} +============== + +Apparently, only 8MB VRAM is available on i945 GPUs (though it could do +64MB):\ +phcoder: No. Hardware default is 8 MiB. When I wanted to make it +configurable, I saw that docs mention only one other alternative: 1MiB. +Later isn\'t event enough for 1024x768 at 24bpp without any acceleration +or double buffering. It\'s possible that there are undocumented values. +Which options do you have in vendor BIOS? How to find out how much vram +you have:\ +phcoder: TOM - BSM\ +phcoder: check what vendor BIOS offers as options\ +vimuser: I thought it could do 64MB usually\ +phcoder: not accorging to doc.\ +phcoder: see mobile-945-express-chipset-datasheet page 93\ +phcoder: see also +src/northbridge/intel/i945/{early\_init,northbridge,gma}.c\ +vimuser: \"011 = DVMT (UMA) mode, 8 MB of memory pre-allocated for\ +vimuser: frame buffer.\"\ +vimuser: \"Others - reserved\"\ +phcoder: the easiest way is a loop at this position which tries +different values and reads (and prints) BSM with them\ +stefanct: vimuser: they suggest that you change the value and look how +BSM reacts to that\ +stefanct: as they pointed out earlier vram size = TOM - BSM\ +stefanct: different values of GMS\ +stefanct: phcoder: hm\... this could be a hint. look at the text +description of TOLUD at page 103\ +stefanct: it mentions 64 MB in the text about BSM as well\ +stefanct: table 18\...\ +phcoder: stefanct: I have a guess which value make is 64 but I will not +tell to avoid skewing test results\ +stefanct: phcoder: sure\... i assumed you were not sure if it supports +it at all. testing it properly is of course a good idea :)\ +stefanct: test the various possible (but reserved) values of GMS and see +what the resulting VRAM size is\ +vimuser: so, TOM - BSM + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +LCD panels on i945 - fix incompatible panels {#lcd_i945_incompatibility} +============================================ + +Fix T60 issues (see incompatible panels listed at +[../hcl/\#supported\_t60\_list](../hcl/#supported_t60_list)). + +Run that tool (resources/utilities/i945gpu/intel-regs.py) as root on +systems with the offending panels in: + +- Coreboot (or libreboot, whatever) with VBIOS (disable native + graphics also) +- (Factory BIOS also?) + +This shows values in devicetree.cb and src/northbridge/intel/i945/gma.c, +the idea is that you run it on factory bios or vbios and that it will +(might) show different values: then you try those in the native graphics +(in libreboot). + +Other values/registers might also need to be added to the script for +these tests. + +check if intel\_bios\_reader from intel-gpu-tools reports the same value +(BIOS has a hardcoded value) for PWM modulation frequency. This file can +read the VBIOS (64K dump). + +Check other tools in intel-gpu-tools aswell, compare outputs. Possibly +add more information to intel-regs.py output (submit changes to mtjm). +Do oprom trace / replay +(<http://www.coreboot.org/User:GNUtoo#How_to_get_rid_of_the_vbios_of_the_x60_.5BNew_Version.5D>) + +Study how EDID works and how gma.c handles it. + +Original getregs.py script can be found at +<http://hg.mtjm.eu/scripts/file/tip/intel-regs.py> written by Michał +Masłowski. + +About fixing remaining LCD panels on 5345:\ +\'polarity\' is mentioned in coreboot log (cbmem -c). compare output +(with working and non-working panel). (and see the other notes in +docs/future/) + +There was a theory that working panels are 6bpc (bits per colour) and +nonworking are 8bpc, but all EDIDs that we have here are for 6bpc +panels. + +We should compare coreboot logs (from `cbmem -c` from systems with +working and nonworking panels. + +How to dump EDID: + +\# **apt-get install i2c-tools**\ +\# **modprobe i2c-dev**\ +Find out the correct ID to use:\ +\# **i2cdetect -l**\ +Example:\ +\# **i2cdump -y 2 0x50** + +Working panel: EDID dump from LG-Philips LP150E05-A2K1: + + No size specified (using byte-data access) + 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef + 00: XX ff ff ff ff ff ff 00 30 ae 43 40 00 00 00 00 X.......0?C@.... + 10: 00 0f 01 03 80 1e 17 78 ea af 00 99 58 53 8c 2a .??????x??.?XS?* + 20: 25 50 54 21 08 00 81 80 01 01 01 01 01 01 01 01 %PT!?.?????????? + 30: 01 01 01 01 01 01 30 2a 78 20 51 1a 10 40 30 70 ??????0*x Q??@0p + 40: 13 00 31 e4 10 00 00 18 28 23 78 20 51 1a 10 40 ?.1??..?(#x Q??@ + 50: 30 70 13 00 31 e4 10 00 00 18 00 00 00 0f 00 90 0p?.1??..?...?.? + 60: 43 32 90 43 28 14 06 00 32 0c 00 00 00 00 00 fe C2?C(??.2?.....? + 70: 00 4c 50 31 35 30 45 30 35 2d 41 32 0a 20 00 9b .LP150E05-A2? .? + 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + +Working panel: EDID dump from Boe-Hydis HT14P12-100 FRU: 13N7061 +(Inverter FRU: 41W1010) + + 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef + 00: 00 ff ff ff ff ff ff 00 30 ae 22 40 00 00 00 00 ........0?"@.... + 10: 00 0f 01 03 80 1c 15 78 ea af 40 95 56 4a 8f 25 .??????x??@?VJ?% + 20: 20 50 54 21 08 00 81 80 01 01 01 01 01 01 01 01 PT!?.?????????? + 30: 01 01 01 01 01 01 30 2a 78 20 51 1a 10 40 30 70 ??????0*x Q??@0p + 40: 13 00 1d d6 10 00 00 19 25 23 78 20 51 1a 10 40 ?.???..?%#x Q??@ + 50: 30 70 13 00 1d d6 10 00 00 19 00 00 00 0f 00 90 0p?.???..?...?.? + 60: 43 32 90 43 28 0f 01 00 09 e5 00 00 00 00 00 fe C2?C(??.??.....? + 70: 00 48 54 31 34 50 31 32 2d 31 30 30 0a 20 00 3f .HT14P12-100? .? + 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + +LTN141XA-L01: revert to libreboot git commit c943281 to see this + +**Non-**working panel: EDID dump from Samsung LTN150XG-L08: + + 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef + 00: 00 ff ff ff ff ff ff 00 30 ae 40 40 00 00 00 00 ........0?@@.... + 10: 00 0f 01 03 80 1f 17 78 ea 2d 05 97 57 51 8a 27 .??????x?-??WQ?' + 20: 23 50 54 21 08 00 01 01 01 01 01 01 01 01 01 01 #PT!?.?????????? + 30: 01 01 01 01 01 01 64 19 00 40 41 00 26 30 18 88 ??????d?.@A.&0?? + 40: 36 00 30 e4 10 00 00 19 28 15 00 40 41 00 26 30 6.0??..?(?.@A.&0 + 50: 18 88 36 00 30 e4 10 00 00 19 00 00 00 0f 00 61 ??6.0??..?...?.a + 60: 43 32 61 43 28 14 01 00 4c a3 58 47 00 00 00 fe C2aC(??.L?XG...? + 70: 00 4c 54 4e 31 35 30 58 47 2d 4c 30 38 0a 00 6d .LTN150XG-L08?.m + 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +i945 gfx: X60/T60 VBT implementation (experimental: testing) {#i945_vbt} +============================================================ + +intel\_bios\_dumper in intel-gpu-tools seems interesting. + +**Use \'drm.debug=0x06\' kernel parameter when booting in grub!** + +Before each test run, boot a live USB and delete the old logs in +/var/log (kernel log, xorg log, dmesg and so on). + +Load (from the ROM) the runningvga.bin for each LCD panel on each +system; do not execute it, only load it! (coreboot will have to be +modified). Rename the ROM appropriately, based on the system name and +the panel name. +coreboot\_nativegfx\_5868\_plusrunningvga\_t60\_14\_LTD141ECMB.rom, for +instance. Keep a copy for later use. + +You are supposed to: + +- enable native graphics in menuconfig +- include the self-modified VGA ROM (load, but not execute) - for + reverse engineering the correct VBT tables. + +With each boot, make notes about what you see and get logs using the +[standard test](#standard_test). You will need the files from +[\#intelvbttool\_results](#intelvbttool_results) for each system. + +Results (\# means untested): +- **X60/X60s:** + - TMD-Toshiba LTD121ECHB: \# + - CMO N121X5-L06: \# + - Samsung LTN121XJ-L07: \# + - BOE-Hydis HT121X01-101: \# +- **X60T XGA:** + - BOE-Hydis HV121X03-100: \# +- **X60T SXGA+:** + - BOE-Hydis HV121P01-100: \# +- **T60 14\" XGA:** + - Samsung LTN141XA-L01: \# + - CMO N141XC: \# + - BOE-Hydis HT14X14: \# + - TMD-Toshiba LTD141ECMB: \# +- **T60 14\" SXGA+** + - TMD-Toshiba LTD141EN9B: \# + - Samsung LTN141P4-L02: \# + - Boe-Hydis HT14P12: \# +- **T60 15\" XGA** + - Samsung LTN150XG-L08: \# + - LG-Philips LP150X09: \# + - 13N7068 (IDtech): \# + - 13N7069 (CMO): \# +- **T60 15\" SXGA+** + - LG-Philips LP150E05-A2K1: \# + - BOE-Hydis HV150P01-100: \# +- **T60 15\" UXGA** + - BOE-Hydis HV150UX1-100: \# + - IDTech N150U3-L01: \# + - BOE-Hydis HV150UX1-102: \# +- **T50 15\" QXGA** + - IDtech IAQX10N: \# + - IDtech IAQX10S: \# + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +intelvbttool test results (VGA ROM dumps) {#intelvbttool_results} +========================================= + +The VBIOS on i945 (intel gpu) platforms is self-modifying; that is, its +contents change when you run it. intelvbttool takes a dump of the +currently running vbios, and parses it. + +The idea is that we can extract the VBT tables using this knowledge, on +the X60, X60 Tablet and T60 (Intel GPU). + +Here is an example of how VBT was implemented on the ThinkPad X230: +<http://review.coreboot.org/#/c/5396>. + +You\'ll need to build a T60 ROM with SeaBIOS and the VGA ROM (for Intel +GPU). An X60 ROM is also needed (same configuration, using the VGA ROM +for X60). + +T60 has DVI on its dock, make sure that the dock is attached when +getting this output. + +Get intelvbttool here: <http://review.coreboot.org/#/c/5842> +(util/intelvbttool). + +Now dump a copy of the running VGA BIOS: **\$ sudo dd if=/dev/mem bs=64k +of=runningvga.bin skip=12 count=1**\ +Then do (and record the output):\ +**\$ ./intelvbttool runningvga.bin &gt; intelvbttool\_out** + +Backup both files (runningvga.bin and intelvbttool\_out), renaming them +to match the system and LCD panel used. +[../misc/\#get\_edid\_panelname](../misc/#get_edid_panelname) will show +you how to get the name (model) of the LCD panel used. + +Test results (\# means untested and all had docks, unless noted). +----------------------------------------------------------------- + +- **X60/X60s:** + - TMD-Toshiba LTD121ECHB: \# + - CMO N121X5-L06: \# + - Samsung LTN121XJ-L07: \# + - BOE-Hydis HT121X01-101: \# +- **X60T XGA (1024x768):** + - BOE-Hydis HV121X03-100: \# +- **X60T SXGA+ (1400x1050):** + - BOE-Hydis HV121P01-100: \# +- **T60 14\" XGA (1024x768):** + - Samsung LTN141XA-L01: \# + - CMO N141XC: \# + - BOE-Hydis HT14X14: \# + - TMD-Toshiba LTD141ECMB: \# +- **T60 14\" SXGA+ (1400x1050):** + - TMD-Toshiba LTD141EN9B: \# + - Samsung LTN141P4-L02: \# + - Boe-Hydis HT14P12: \# +- **T60 15\" XGA (1024x768):** + - Samsung LTN150XG-L08: \# + - LG-Philips LP150X09: \# + - 13N7068 (IDtech): \# + - 13N7069 (CMO): \# +- **T60 15\" SXGA+ (1400x1050):** + - LG-Philips LP150E05-A2K1: \# + - BOE-Hydis HV150P01-100: \# +- **T60 15\" UXGA (1600x1200):** + - BOE-Hydis HV150UX1-100: \# + - IDTech N150U3-L01: \# + - BOE-Hydis HV150UX1-102: \# +- **T60 15\" QXGA (2048x1536):** + - IDtech IAQX10N: \# + - IDtech IAQX10S: \# + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Fallback patches {#fallback_patches} +================ + +- Todo: test gnutoo\'s fallback patches: + <http://www.coreboot.org/Fallback_mechanism> see [this IRC + log](gnutoo_fallback_patch) (warning, not cleaned up) + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Other - unlisted (low priority) {#other} +=============================== + +- PTE errors still exist on i945 with 6718 (which is merged). + <http://review.coreboot.org/#/c/6718/> + - [dmesg](future/dumps/pte_x60_6718/dmesg) + - [kern.log](future/dumps/pte_x60_6718/kern.log) + - This doesn\'t seem to cause any issues for general use. +- Implement INT 10H support in i945 native graphics. (this will be a + lot of work. SeaBIOS has code for some geode boards, to get a + general idea). +- T60 15\" QXGA (2048x1536): fixed issue where GRUB wouldn\'t show any + graphics. (Not many people have this panel) + - It might be the same issue I ran into with Paul on the X60 (not + enough memory being allocated) since the same code works on T60 + SXGA+ and UXGA, where GRUB actually display graphics. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Copyright © 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/future/old.html b/docs/future/old.html @@ -1,319 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <title>libreboot tutorials</title> - - <style type="text/css"> - @import url('../css/main.css'); - </style> - - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta name="author" content="glugman"> - <meta name="description" content="tutorials for libreboot, the reboot library."> - <meta name="robots" content="all"> -</head> - -<body> - - <div class="section"> - - <h1 id="pagetop">Development notes (old/obsolete notes)</h1> - <p> - For current notes, see <a href="./"></a>. - </p> - - <p> - These are old (obsolete) notes that mare kept because they might become useful again in the future. - </p> - - </div> - - <div class="section"> - - <h1>Table of contents</h1> - <ul> - <li><a href="#x60_native_notes">X60 native graphics initialization (backlight controls)</a></li> - <li><a href="#t60_native_notes">T60 native graphics initialization (backlight controls)</a></li> - <li><a href="#5320_kernel312fix">i945: 3D fix (based on 5927) for kernel 3.12+ on 5320</a></li> - <li><a href="#x60_cb5927_testing">i945/x60: coreboot 5927 testing (3D fix for kernel 3.12+ on replay code)</a></li> - </ul> - - </div> - - <div class="section"> - - <h1 id="x60_native_notes">X60 native graphics initialization (with backlight controls)</h1> - - <p> - <b> - This is now obsolete. A better way was found (included in libreboot): <a href="http://review.coreboot.org/#/c/6731/">http://review.coreboot.org/#/c/6731/</a> - </b> - </p> - - <p> - <b><i>Also check <a href="#5320_kernel312fix">#5320_kernel312fix</a> (to fix 3D on kernel 3.12/higher)</i></b> - </p> - <p> - <b>The fix below was done on 5320/6 (from review.coreboot.org) but should work just fine on later versions of 5320.</b> - </p> - <p> - Native gpu init + backlight controls! (Fn keys). Also confirmed on X60 Tablet (1024x768) and X60 Tablet (1400x1050) - </p> - <p> - <b>Add backlight controls:</b> in <i>src/mainboard/lenovo/x60/devicetree.cb</i>, change <b>gpu_backlight</b> to <b>0x879F879E</b> - </p> - <p> - That's all! <b>This has also been backported into libreboot 5th release (line 1233 in src/mainboard/lenovo/x60/i915io.c)</b>. GNUtoo (Denis Carikli) - told me about the register <b>BLC_PWM_CTL</b> and that you could set it to control backlight. I read that address using devmem2 while running the VBIOS:<br/> - <b># devmem2 0xe4361254 w</b> - </p> - <p> - The change is also included in libreboot 6. - </p> - <p> - When doing this, it gave back that value. The same trick was used to get backlight controls for T60 (see <a href="#t60_native_notes">#t60_native_notes</a>). - </p> - - <h2>Further notes</h2> - <p> - Reading <b>0xe4361254</b> (address) in Lenovo BIOS always yields FFFFFFFF, even when writing to it (and writing to it doesn't affect brightness controls). - 'mtjm' on IRC found that the buttons (Fn keys) control /sys/class/backlight/acpi_video0 which has no affect on 61254 (BLC_PWM_CTL). This person says - intel_backlight has different values and uses the register. devmem2 works, needs checking <b>lspci -vv</b> for where the memory is mapped, - which is different than on coreboot; mtjm found that it was 0xec061254 on his system (X60 Tablet), and the register value is different too. - <b>This is relevant, because we still don't know how backlight controls are actually handled. We got it working by accident. We need to know more.</b>. - </p> - <p> - Intel-gpu-tools may prove useful for further debugging: <a href="http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/">http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/</a> - </p> - <p> - mtjm says 0xe4300000 is an MMIO region of the gpu (lspci -vv shows it), 0x61254 (BLC_PWM_CTL) is a documented register. Searching the kernel driver for backlight - shows that in intel_panel.c this register is used (there is an XXX comment about finding the right value, where recent kernels get it from. - </p> - <p> - What we want to do is calculate a good value, instead of setting it in devicetree.cb. mtjm says about backlight physics: - it has a light source , uses pulse width modulation (PWM) to turn it on/off, dimming is done by spending less time on. - <b>Note: this may not be correct; this person says that their understanding is based on how the Lenote yeeloong works</b>. - </p> - <p> - mtjm goes on to say, that the register specifies the frequency used for PWM in its depending on the GPU core frequency, so it - might be possible to calculate it without hardcoded laptop-specific values. Therefore, I am supposed to find out the 'display core frequency' - (mtjm says there might be a register for it; also, it might be in 5320 or the replay code) and the PWM modulation frequency. - https://en.wikipedia.org/wiki/Backlight#Flicker_due_to_backlight_dimming - </p> - <p> - phcoder (Vladimir Serbinenko) who is author of 5320 (review.coreboot.org) talks about 'duty cycle limit' and 'flickering frequency'. - </p> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <h1 id="t60_native_notes">T60 native graphics initialization (with backlight controls)</h1> - - <p> - <b> - This is now obsolete. A better way was found (included in libreboot): <a href="http://review.coreboot.org/#/c/6731/">http://review.coreboot.org/#/c/6731/</a> - </b> - </p> - <p> - <b><i>Also check <a href="#5320_kernel312fix">#5320_kernel312fix</a> (to fix 3D on kernel 3.12/higher)</i></b> - </p> - <p> - <b>The fix below was done on an earlier version of 5345 changeset (review.coreboot.org), but should work on the current version. it is included in libreboot 6</b> - </p> - <p> - <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="../misc/#get_edid_panelname">../misc/#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="../hcl/#supported_t60_list">../hcl/#supported_t60_list</a>. - </p> - - <p> - See <a href="./#lcd_i945_incompatibility">#lcd_i945_incompatibility</a>. - </p> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <h1 id="5320_kernel312fix">i945: 3D fix (based on 5927) for kernel 3.12+ on 5320</h1> - - <p> - <b> - This is now obsolete. Merged in coreboot: <a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a> - </b> - </p> - - <p><b>This needs to be rewritten (or better organized, or deleted?)</b>. This is also now included in libreboot 6 (using the proper way, not the 7c0000 method which was a hack)</p> - - <p> - <b>This was done on 5320/6 so far. The fix below is for 5320/6 which is now obsolete. This needs to be re-done for the latest version - of 5320. The fix below is (in practise) only for reference, therefore.</b> - </p> - - <p> - See <a href="#x60_cb5927_testing">#x60_cb5927_testing</a> for the original (and current) fix, for the replay code. Now we want - to implement that on top of <a href="http://review.coreboot.org/#/c/5320">http://review.coreboot.org/#/c/5320</a> - which is the current code for native graphics initialization on i945. - </p> - - <p> - src/northbridge/intel/i945/gma.c (using the 7c0000 hack) on 5320: <a href="dumps/5320_7c0000_gma.c">5320_7c0000_gma.c</a> (rename it to gma.c, - replacing the current one). - </p> - - <p> - The above is a hack (as is the original). A better (more correct) method is implemented in later versions of 5927, so - that should also be adapted for 5320. For now, you can use the above fix. - </p> - - <p> - The correct way to do it is to set gtt address to (end of stolen memory - gtt size), which is what later versions of 5927 do (successfully). - </p> - - <p> - Here is some debugging output using intel_gpu_tools v1.2-1 (from apt-get repositories) using tool "intel_gtt": - </p> - - <ul> - <li> - kernel 3.14.4: - <ul> - <li>with libreboot 5th release (using the 7c0000 gtt hack from 5927/3): <a href="http://paste.debian.net/104306">http://paste.debian.net/104306</a></li> - <li>with coreboot+vgarom: <a href="http://paste.debian.net/104309">http://paste.debian.net/104309</a></li> - </ul> - </li> - <li> - kernel 3.2.0-60 (from apt-get repositories): - <ul> - <li>with coreboot (no vbios or native init): <a href="http://paste.debian.net/104341">http://paste.debian.net/104341</a></li> - </ul> - </li> - </ul> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <h1 id="x60_cb5927_testing">i945/X60: Coreboot 5927 testing (3D fix for kernel 3.12+ on replay code)</h1> - - <p> - <b> - This is now obsolete. Merged in coreboot: <a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a> - </b> - </p> - - <p><b>The latest version as-is (5927/11) has not been tested by me yet. Always boot with 'drm.debug=0x06' kernel parameter when testing this.</b></p> - - <p> - This is the fix for 3D on kernel 3.12 and higher on i945 (ThinkPad X60 in this case). This is for the replay code. - Libreboot 5th release has a version of this backported already (based on 5927/3 using the '7c0000' hack). - </p> - - <p> - <b> - The replay code is obsolete (see 5320 changeset on review.coreboot.org for better version - which supports more systems/screens, and then 5345 for T60). Information here for reference since that is where the fix was first applied. - </b> - </p> - - <p> - Read the information on <a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a>. - </p> - - <p> - For historical purposes, here is a collection of IRC logs that once existed on this page, related to the issue: - <a href="dumps/kernel312_irc">kernel312_irc</a>. - </p> - - <p> - PGETBL_CTL differs between VBIOS (-) and native graphics init (+).<br/> - - - PGETBL_CTL: 0x3ffc0001<br/> - + PGETBL_CTL: 0x3f800001 - </p> - - <p>GTT (graphics translation table) size is PGETBL_save, max 256 KiB. BSM (Base of Stolen Memory) is given by the bios.</p> - - <ul> - <li>5927/7: <a href="dumps/5927_7.tar.gz">5927_7.tar.gz</a> (GRUB graphics are correct now, and 3D still works)</li> - <li>5927/6: <a href="dumps/5927_6.tar.gz">5927_6.tar.gz</a> (GRUB graphics still corrupt, 3D/everything still works after GRUB)</li> - <li>5927/5: <a href="dumps/5927_5.tar.gz">5927_5.tar.gz</a> (GRUB graphics corrupt, 3D/everything still works after GRUB)</li> - <li>5927/3: <a href="dumps/5927_3.tar.gz">5927_3.tar.gz</a> (3D still works! kernel 3.14.4) - the '7c0000' hack</li> - <li>5927/2: <a href="dumps/5927_2.tar.gz">5927_2.tar.gz</a> (3D works! kernel 3.14.4) - the '7c0000' hack</li> - <li> - 5927/1 (didn't fix the 3D issue): - <ul> - <li><a href="dumps/5927_cbmemc">cbmem -c</a></li> - <li><a href="dumps/5927_crashdump">/sys/class/drm/card0/error</a></li> - <li><a href="dumps/5927_config">.config</a></li> - </ul> - </li> - </ul> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/future/old.md b/docs/future/old.md @@ -0,0 +1,279 @@ +<div class="section"> + +Development notes (old/obsolete notes) {#pagetop} +====================================== + +For current notes, see [](./). + +These are old (obsolete) notes that mare kept because they might become +useful again in the future. + +</div> + +<div class="section"> + +Table of contents +================= + +- [X60 native graphics initialization (backlight + controls)](#x60_native_notes) +- [T60 native graphics initialization (backlight + controls)](#t60_native_notes) +- [i945: 3D fix (based on 5927) for kernel 3.12+ on + 5320](#5320_kernel312fix) +- [i945/x60: coreboot 5927 testing (3D fix for kernel 3.12+ on replay + code)](#x60_cb5927_testing) + +</div> + +<div class="section"> + +X60 native graphics initialization (with backlight controls) {#x60_native_notes} +============================================================ + +**This is now obsolete. A better way was found (included in libreboot): +<http://review.coreboot.org/#/c/6731/>** + +***Also check [\#5320\_kernel312fix](#5320_kernel312fix) (to fix 3D on +kernel 3.12/higher)*** + +**The fix below was done on 5320/6 (from review.coreboot.org) but should +work just fine on later versions of 5320.** + +Native gpu init + backlight controls! (Fn keys). Also confirmed on X60 +Tablet (1024x768) and X60 Tablet (1400x1050) + +**Add backlight controls:** in *src/mainboard/lenovo/x60/devicetree.cb*, +change **gpu\_backlight** to **0x879F879E** + +That\'s all! **This has also been backported into libreboot 5th release +(line 1233 in src/mainboard/lenovo/x60/i915io.c)**. GNUtoo (Denis +Carikli) told me about the register **BLC\_PWM\_CTL** and that you could +set it to control backlight. I read that address using devmem2 while +running the VBIOS:\ +**\# devmem2 0xe4361254 w** + +The change is also included in libreboot 6. + +When doing this, it gave back that value. The same trick was used to get +backlight controls for T60 (see +[\#t60\_native\_notes](#t60_native_notes)). + +Further notes +------------- + +Reading **0xe4361254** (address) in Lenovo BIOS always yields FFFFFFFF, +even when writing to it (and writing to it doesn\'t affect brightness +controls). \'mtjm\' on IRC found that the buttons (Fn keys) control +/sys/class/backlight/acpi\_video0 which has no affect on 61254 +(BLC\_PWM\_CTL). This person says intel\_backlight has different values +and uses the register. devmem2 works, needs checking **lspci -vv** for +where the memory is mapped, which is different than on coreboot; mtjm +found that it was 0xec061254 on his system (X60 Tablet), and the +register value is different too. **This is relevant, because we still +don\'t know how backlight controls are actually handled. We got it +working by accident. We need to know more.**. + +Intel-gpu-tools may prove useful for further debugging: +<http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/> + +mtjm says 0xe4300000 is an MMIO region of the gpu (lspci -vv shows it), +0x61254 (BLC\_PWM\_CTL) is a documented register. Searching the kernel +driver for backlight shows that in intel\_panel.c this register is used +(there is an XXX comment about finding the right value, where recent +kernels get it from. + +What we want to do is calculate a good value, instead of setting it in +devicetree.cb. mtjm says about backlight physics: it has a light source +, uses pulse width modulation (PWM) to turn it on/off, dimming is done +by spending less time on. **Note: this may not be correct; this person +says that their understanding is based on how the Lenote yeeloong +works**. + +mtjm goes on to say, that the register specifies the frequency used for +PWM in its depending on the GPU core frequency, so it might be possible +to calculate it without hardcoded laptop-specific values. Therefore, I +am supposed to find out the \'display core frequency\' (mtjm says there +might be a register for it; also, it might be in 5320 or the replay +code) and the PWM modulation frequency. +https://en.wikipedia.org/wiki/Backlight\#Flicker\_due\_to\_backlight\_dimming + +phcoder (Vladimir Serbinenko) who is author of 5320 +(review.coreboot.org) talks about \'duty cycle limit\' and \'flickering +frequency\'. + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +T60 native graphics initialization (with backlight controls) {#t60_native_notes} +============================================================ + +**This is now obsolete. A better way was found (included in libreboot): +<http://review.coreboot.org/#/c/6731/>** + +***Also check [\#5320\_kernel312fix](#5320_kernel312fix) (to fix 3D on +kernel 3.12/higher)*** + +**The fix below was done on an earlier version of 5345 changeset +(review.coreboot.org), but should work on the current version. it is +included in libreboot 6** + +**Add backlight controls:** in *src/mainboard/lenovo/t60/devicetree.cb*, +change **gpu\_backlight** to **0x58BF58BE** + +Hold on! Check +[../misc/\#get\_edid\_panelname](../misc/#get_edid_panelname) to know +what LCD panel you have. This is important for the next step! + +Supported panels +---------------- + +[../hcl/\#supported\_t60\_list](../hcl/#supported_t60_list). + +See [\#lcd\_i945\_incompatibility](./#lcd_i945_incompatibility). + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +i945: 3D fix (based on 5927) for kernel 3.12+ on 5320 {#5320_kernel312fix} +===================================================== + +**This is now obsolete. Merged in coreboot: +<http://review.coreboot.org/#/c/5927/>** + +**This needs to be rewritten (or better organized, or deleted?)**. This +is also now included in libreboot 6 (using the proper way, not the +7c0000 method which was a hack) + +**This was done on 5320/6 so far. The fix below is for 5320/6 which is +now obsolete. This needs to be re-done for the latest version of 5320. +The fix below is (in practise) only for reference, therefore.** + +See [\#x60\_cb5927\_testing](#x60_cb5927_testing) for the original (and +current) fix, for the replay code. Now we want to implement that on top +of <http://review.coreboot.org/#/c/5320> which is the current code for +native graphics initialization on i945. + +src/northbridge/intel/i945/gma.c (using the 7c0000 hack) on 5320: +[5320\_7c0000\_gma.c](dumps/5320_7c0000_gma.c) (rename it to gma.c, +replacing the current one). + +The above is a hack (as is the original). A better (more correct) method +is implemented in later versions of 5927, so that should also be adapted +for 5320. For now, you can use the above fix. + +The correct way to do it is to set gtt address to (end of stolen memory +- gtt size), which is what later versions of 5927 do (successfully). + +Here is some debugging output using intel\_gpu\_tools v1.2-1 (from +apt-get repositories) using tool \"intel\_gtt\": + +- kernel 3.14.4: + - with libreboot 5th release (using the 7c0000 gtt hack from + 5927/3): <http://paste.debian.net/104306> + - with coreboot+vgarom: <http://paste.debian.net/104309> +- kernel 3.2.0-60 (from apt-get repositories): + - with coreboot (no vbios or native init): + <http://paste.debian.net/104341> + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +i945/X60: Coreboot 5927 testing (3D fix for kernel 3.12+ on replay code) {#x60_cb5927_testing} +======================================================================== + +**This is now obsolete. Merged in coreboot: +<http://review.coreboot.org/#/c/5927/>** + +**The latest version as-is (5927/11) has not been tested by me yet. +Always boot with \'drm.debug=0x06\' kernel parameter when testing +this.** + +This is the fix for 3D on kernel 3.12 and higher on i945 (ThinkPad X60 +in this case). This is for the replay code. Libreboot 5th release has a +version of this backported already (based on 5927/3 using the \'7c0000\' +hack). + +**The replay code is obsolete (see 5320 changeset on review.coreboot.org +for better version which supports more systems/screens, and then 5345 +for T60). Information here for reference since that is where the fix was +first applied.** + +Read the information on <http://review.coreboot.org/#/c/5927/>. + +For historical purposes, here is a collection of IRC logs that once +existed on this page, related to the issue: +[kernel312\_irc](dumps/kernel312_irc). + +PGETBL\_CTL differs between VBIOS (-) and native graphics init (+).\ +- PGETBL\_CTL: 0x3ffc0001\ ++ PGETBL\_CTL: 0x3f800001 + +GTT (graphics translation table) size is PGETBL\_save, max 256 KiB. BSM +(Base of Stolen Memory) is given by the bios. + +- 5927/7: [5927\_7.tar.gz](dumps/5927_7.tar.gz) (GRUB graphics are + correct now, and 3D still works) +- 5927/6: [5927\_6.tar.gz](dumps/5927_6.tar.gz) (GRUB graphics still + corrupt, 3D/everything still works after GRUB) +- 5927/5: [5927\_5.tar.gz](dumps/5927_5.tar.gz) (GRUB graphics + corrupt, 3D/everything still works after GRUB) +- 5927/3: [5927\_3.tar.gz](dumps/5927_3.tar.gz) (3D still works! + kernel 3.14.4) - the \'7c0000\' hack +- 5927/2: [5927\_2.tar.gz](dumps/5927_2.tar.gz) (3D works! kernel + 3.14.4) - the \'7c0000\' hack +- 5927/1 (didn\'t fix the 3D issue): + - [cbmem -c](dumps/5927_cbmemc) + - [/sys/class/drm/card0/error](dumps/5927_crashdump) + - [.config](dumps/5927_config) + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +Copyright © 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/git/index.html b/docs/git/index.html @@ -1,490 +0,0 @@ -<!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>Building libreboot from source</title> -</head> - -<body> - -<div class="section"> -<p> -Depthcharge is currently not documented, since it is in the new build system. -Instructions for how to build boards that have depthcharge are included in -the BUILD_HOWTO file in libreboot.git or _src. -</p> -</div> - - <div class="section"> - <h1 id="pagetop">Building libreboot from source</h1> - <p> - This section relates to building libreboot from source, and - working with the git repository. - </p> - <p> - Or <a href="../">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="#build">How to build the ROM images</a></li> - </ul> - </div> - - <div class="section"> - - <h1 id="build_dependencies">Install build dependencies</h1> - - <p> - Before doing anything, you need the dependencies first. This is true if - you want to build libreboot from source, with either libreboot_src.tar.xz or git. - <b>If you are using libreboot_util.tar.xz (binary archive) then you can ignore this, because - ROM images and statically compiled executables for the utilities are included.</b> - </p> - - <div class="important"> - <p> - For Debian Stretch (may also work on Debian Jessie), you can run the following command:<br/> - $ <b>sudo ./oldbuild dependencies debian</b> - <br/>(this will also work in Devuan) - </p> - <p> - For Parabola, you can run the following command:<br/> - $ <b>sudo ./oldbuild dependencies parabola</b><br/> - or:<br/> - # <b>./oldbuild dependencies parabola</b> - </p> - </div> - - <p> - For other GNU+Linux distributions, you can adapt the existing scripts. - </p> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <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> - Since libreboot makes extensive use of git, you need to configure git properly. If you have not yet configured - git, then the minimum requirement is:<br/> - $ <b>git config --global user.name "Your Name"</b><br/> - $ <b>git config --global user.email your@emailaddress.com</b><br/> - This is what will also appear in git logs if you ever commit your own changes to a given repository. For - more information, see <a href="http://git-scm.com/doc">http://git-scm.com/doc</a>. - </p> - - <p> - Another nice config for you (optional, but recommended):<br/> - $ <b>git config --global core.editor nano</b><br/> - $ <b>git config --global color.status auto</b><br/> - $ <b>git config --global color.branch auto</b><br/> - $ <b>git config --global color.interactive auto</b><br/> - $ <b>git config --global color.diff auto</b> - </p> - - <p> - After that, run the script:<br/> - $ <b>./download all</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 images, see <a href="#build">#build</a>. - </p> - - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <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> - BUC.TS isn't really specific to these laptops, but is a bit inside the a register in the chipset on some Intel systems. - </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 system 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 of libreboot, - 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 system boot from the normal (highest) block again. - </p> - - <p> - *Libreboot ROM images have identical data in those two 64KiB regions because dd is used to do that, by the build system. - If you're building from upstream (coreboot), you have to do it manually. - </p> - - <p> - BUC.TS is backed up (powered) by the NVRAM battery (or CMOS battery, as some people call it). On thinkpads, - this is typically in a yellow plastic package with the battery inside, connected via power lines to the - mainboard. Removing that battery removes power to BUC.TS, resetting the bit back to 0 (if you previously set - it to 1). - </p> - - <p> - BUC.TS utility is included in libreboot_src.tar.xz and libreboot_util.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> - If you have the binary release archive, you'll find executables under ./bucts/. Otherwise if you need to build from source, continue reading. - </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>./oldbuild module bucts</b> - </p> - - <p> - To statically compile it, do this:<br/> - $ <b>./oldbuild module bucts static</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> - - </div> - - <div class="section"> - - <h1 id="build_flashrom">How to build &quot;flashrom&quot;</h1> - - <p> - Flashrom is the utility for flashing/dumping ROM images. This is what you will use to install libreboot. - </p> - - <p> - Flashrom source code is included in libreboot_src.tar.xz and libreboot_util.tar.xz.<br/> - <b>If you downloaded from git, follow <a href="#build_meta">#build_meta</a> before you proceed.</b> - </p> - - <p> - If you are using the binary release archive, then there are already binaries included - under ./flashrom/. The flashing scripts will try to choose the correct one for you. Otherwise - if you wish to re-build flashrom from source, continue reading. - </p> - - <p> - First, <a href="#build_dependencies">install the build dependencies</a>. - </p> - - <p> - To build it, do the following in the main directory:<br/> - $ <b>./oldbuild module flashrom</b> - </p> - - <p> - To statically compile it, do the following in the main directory:<br/> - $ <b>./oldbuild module flashrom static</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> - - </div> - - <div class="section"> - - <h1 id="build">How to build the ROM images</h1> - - <p>You don't need to do much, as there are scripts already written for you that can build everything automatically.</p> - - <p> - You can build libreboot from source on a 32-bit (i686) or 64-bit (x86_64) system. Recommended (if possible): x86_64. - ASUS KFSN4-DRE has 64-bit CPUs. - On a ThinkPad T60, you can replace the CPU (Core 2 Duo T5600, T7200 or T7600. T5600 recommended) for 64-bit support. - On an X60s, you can replace the board with one that has a Core 2 Duo L7400 (you could also use an X60 Tablet board with the same CPU). - On an X60, you can replace the board with one that has a Core 2 Duo T5600 or T7200 (T5600 is recommended). All MacBook2,1 laptops - are 64-bit, as are all ThinkPad X200, X200S, X200 Tablet, R400, T400 and T500 laptops. Warning: MacBook1,1 laptops are all 32-bit only. - </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> - Build all of the components used in libreboot:<br/> - $ <b>./oldbuild module all</b> - </p> - - <p> - You can also build each modules separately, using <i>./oldbuild module modulename</i>. - To see the possible values for <i>modulename</i>, use:<br/> - $ <b>./oldbuild module list</b> - </p> - - <p> - After that, build the ROM images (for all boards):<br/> - $ <b>./oldbuild roms withgrub</b><br/> - Alternatively, you can build for a specific board or set of boards. - For example:<br/> - $ <b>./oldbuild roms withgrub x60</b><br/> - $ <b>./oldbuild roms withgrub x200_8mb</b><br/> - $ <b>./oldbuild roms withgrub x60 x200_8mb</b><br/> - The list of board options can be found by looking at the directory - names in <b>resources/libreboot/config/grub/</b>. - </p> - - <p> - To clean (reverse) everything, do the following:<br/> - $ <b>./oldbuild clean all</b> - </p> - - <p> - The ROM images will be stored under <b>bin/<i>payload</i>/</b>, - where <i>payload</i> could be <i>grub</i>, <i>seabios</i>, or - whatever other payload those images were built for. - </p> - - <div class="subsection"> - - <h2>Preparing release archives (optional)</h2> - - <p> - <b>This is only confirmed to work (tested) in Debian Stretch. Parabola *fails* at this stage - (for now). For all other distros, YMMV. This will also work in Devuan.</b> - </p> - - <p> - This is mainly intended for use with the git repository. - These commands will work in the release archive (_src), unless otherwise noted below. - </p> - - <p> - The archives will appear under <i>release/oldbuildsystem/${version}/</i>; - ${version} will either be set using <i>git describe</i> or, - if a <i>version</i> file already exists (_src release archive), - then it will simply re-use that. - </p> - - <p> - Tag the current commit, and that version will appear in both the ${version} - string on the directory under <i>release/oldbuildsystem/</i>, and in the file names of the - archives. Otherwise, whatever git uses for <i>git describe --tags HEAD</i> - will be used. - </p> - - <p> - Utilities (static executables):<br/> - $ <b>./oldbuild release util</b> - </p> - <p> - Archive containing flashrom and bucts source code:<br/> - $ <b>./oldbuild release tobuild</b> - </p> - <p> - Documentation archive (<b>does not work on _src release archive, only git</b>):<br/> - $ <b>./oldbuild release docs</b> - </p> - <p> - ROM image archives:<br/> - $ <b>./oldbuild release roms</b> - </p> - <p> - Source code archive:<br/> - $ <b>./oldbuild release src</b> - </p> - <p> - SHA512 sums of all other release archives that have been generated:<br/> - $ <b>./oldbuild release sha512sums</b> - </p> - - <p> - If you are building on an i686 host, this will build statically linked 32-bit binaries in - the binary release archive that you created, - for: <b>nvramtool, cbfstool, ich9deblob, cbmem</b>. - </p> - - <p> - If you are building on an x86_64 host, this will build statically linked 32- *and* 64-bit binaries for - <b>cbmem</b>, <b>ich9deblob</b>, <b>cbfstool</b> and <b>nvramtool</b>. - </p> - <p> - <b>To include statically linked i686 and x86_64 binaries for bucts and flashrom, - you will need to build them on a chroot, a virtual system or a real - system where the host uses each given architecture. These packages are difficult - to cross-compile, and the libreboot project is still figuring out how to deal - with them.</b> - </p> - <p> - The same applies if you want to include statically linked flashrom binaries for ARM. - </p> - - <p> - armv7l binaries (tested on a BeagleBone Black) are also included in libreboot_util, for: - </p> - <ul> - <li>cbfstool</li> - <li>ich9gen</li> - <li>ich9deblob</li> - <li>flashrom</li> - </ul> - - <p> - If you are building binaries on a live system or chroot (for flashrom/bucts), you can use the following to statically link them:<br/> - $ <b>./oldbuild module flashrom static</b><br/> - $ <b>./oldbuild module bucts static</b> - </p> - - <p> - The same conditions as above apply for ARM (except, building bucts on ARM is pointless, and for flashrom - you only need the normal executable since the lenovobios_sst and _macronix executables are meant - to run on an X60/T60 while lenovo bios is present, working around the security restrictions). - </p> - - <p> - The command that you used for generating the release archives will also run the following command:<br/> - $ <b>./oldbuild release tobuild</b><br/> - The archive <b>tobuild.tar.xz</b> will have been created under <b>release/oldbuildsystem/</b>, containing bucts, flashrom and all other required - resources for building them. - </p> - - <p> - You'll find that the files libreboot_util.tar.xz and libreboot_src.tar.xz have been created, under <b>release/oldbuildsystem/</b>. - </p> - - <p> - The ROM images will be stored in separate archives for each system, under <b>release/oldbuildsystem/rom/</b>. - </p> - - </div> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2014, 2015, 2016 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/git/index.md b/docs/git/index.md @@ -0,0 +1,390 @@ +<div class="section"> + +Depthcharge is currently not documented, since it is in the new build +system. Instructions for how to build boards that have depthcharge are +included in the BUILD\_HOWTO file in libreboot.git or \_src. + +</div> + +<div class="section"> + +Building libreboot from source {#pagetop} +============================== + +This section relates to building libreboot from source, and working with +the git repository. + +Or [Back to main index](../). + +- [Install build dependencies](#build_dependencies) +- [Get the full source code from metadata (git clone)](#build_meta) +- [How to build \"bucts\" (for LenovoBIOS + X60/X60S/X60T/T60)](#build_bucts) +- [How to build \"flashrom\"](#build_flashrom) +- [How to build the ROM images](#build) + +</div> + +<div class="section"> + +Install build dependencies {#build_dependencies} +========================== + +Before doing anything, you need the dependencies first. This is true if +you want to build libreboot from source, with either +libreboot\_src.tar.xz or git. **If you are using libreboot\_util.tar.xz +(binary archive) then you can ignore this, because ROM images and +statically compiled executables for the utilities are included.** + +<div class="important"> + +For Debian Stretch (may also work on Debian Jessie), you can run the +following command:\ +\$ **sudo ./oldbuild dependencies debian**\ +(this will also work in Devuan) + +For Parabola, you can run the following command:\ +\$ **sudo ./oldbuild dependencies parabola**\ +or:\ +\# **./oldbuild dependencies parabola** + +</div> + +For other GNU+Linux distributions, you can adapt the existing scripts. + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +Get the full source code from metadata (git clone) {#build_meta} +================================================== + +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). + +You can use the scripts included to download everything. + +First, [install the build dependencies](#build_dependencies). + +Since libreboot makes extensive use of git, you need to configure git +properly. If you have not yet configured git, then the minimum +requirement is:\ +\$ **git config \--global user.name \"Your Name\"**\ +\$ **git config \--global user.email your@emailaddress.com**\ +This is what will also appear in git logs if you ever commit your own +changes to a given repository. For more information, see +<http://git-scm.com/doc>. + +Another nice config for you (optional, but recommended):\ +\$ **git config \--global core.editor nano**\ +\$ **git config \--global color.status auto**\ +\$ **git config \--global color.branch auto**\ +\$ **git config \--global color.interactive auto**\ +\$ **git config \--global color.diff auto** + +After that, run the script:\ +\$ **./download all** + +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. + +To build the ROM images, see [\#build](#build). + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +How to build \"bucts\" (for LenovoBIOS X60/X60S/X60T/T60) {#build_bucts} +========================================================= + +**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.** + +BUC.TS isn\'t really specific to these laptops, but is a bit inside the +a register in the chipset on some Intel systems. + +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 +\"**bucts 1**\" will set the system to boot from the other block instead +(which is writeable along with everything beneath it when using a +patched flashrom. see [\#build\_flashrom](#build_flashrom)). After +shutting down and booting up after the first flash of libreboot, the +final 64K block is writeable so you flash the ROM again with an +unpatched flashrom and run \"**bucts 0**\" to make the system boot from +the normal (highest) block again. + +\*Libreboot ROM images have identical data in those two 64KiB regions +because dd is used to do that, by the build system. If you\'re building +from upstream (coreboot), you have to do it manually. + +BUC.TS is backed up (powered) by the NVRAM battery (or CMOS battery, as +some people call it). On thinkpads, this is typically in a yellow +plastic package with the battery inside, connected via power lines to +the mainboard. Removing that battery removes power to BUC.TS, resetting +the bit back to 0 (if you previously set it to 1). + +BUC.TS utility is included in libreboot\_src.tar.xz and +libreboot\_util.tar.xz.\ +**If you downloaded from git, follow [\#build\_meta](#build_meta) before +you proceed.** + +\"BUC\" means \"**B**ack**u**p **C**ontrol\" (it\'s a register) and +\"TS\" means \"**T**op **S**wap\" (it\'s a status bit). Hence \"bucts\" +(BUC.TS). TS 1 and TS 0 corresponds to bucts 1 and bucts 0. + +If you have the binary release archive, you\'ll find executables under +./bucts/. Otherwise if you need to build from source, continue reading. + +First, [install the build dependencies](#build_dependencies). + +To build bucts, do this in the main directory:\ +\$ **./oldbuild module bucts** + +To statically compile it, do this:\ +\$ **./oldbuild module bucts static** + +The \"builddeps\" script in libreboot\_src also makes use of +builddeps-bucts. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +How to build \"flashrom\" {#build_flashrom} +========================= + +Flashrom is the utility for flashing/dumping ROM images. This is what +you will use to install libreboot. + +Flashrom source code is included in libreboot\_src.tar.xz and +libreboot\_util.tar.xz.\ +**If you downloaded from git, follow [\#build\_meta](#build_meta) before +you proceed.** + +If you are using the binary release archive, then there are already +binaries included under ./flashrom/. The flashing scripts will try to +choose the correct one for you. Otherwise if you wish to re-build +flashrom from source, continue reading. + +First, [install the build dependencies](#build_dependencies). + +To build it, do the following in the main directory:\ +\$ **./oldbuild module flashrom** + +To statically compile it, do the following in the main directory:\ +\$ **./oldbuild module flashrom static** + +After you\'ve done that, under ./flashrom/ you will find the following +executables: + +- **flashrom** + - For flashing while coreboot or libreboot is running. +- **flashrom\_lenovobios\_sst** + - This is patched for flashing while Lenovo BIOS is running on an + X60 or T60 with the SST25VF016B (SST) flash chip. +- **flashrom\_lenovobios\_macronix** + - This is patched for flashing while Lenovo BIOS is running on an + X60 or T60 with the MX25L1605D (Macronix) flash chip. + +The \"builddeps\" script in libreboot\_src also makes use of +builddeps-flashrom. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +How to build the ROM images {#build} +=========================== + +You don\'t need to do much, as there are scripts already written for you +that can build everything automatically. + +You can build libreboot from source on a 32-bit (i686) or 64-bit +(x86\_64) system. Recommended (if possible): x86\_64. ASUS KFSN4-DRE has +64-bit CPUs. On a ThinkPad T60, you can replace the CPU (Core 2 Duo +T5600, T7200 or T7600. T5600 recommended) for 64-bit support. On an +X60s, you can replace the board with one that has a Core 2 Duo L7400 +(you could also use an X60 Tablet board with the same CPU). On an X60, +you can replace the board with one that has a Core 2 Duo T5600 or T7200 +(T5600 is recommended). All MacBook2,1 laptops are 64-bit, as are all +ThinkPad X200, X200S, X200 Tablet, R400, T400 and T500 laptops. Warning: +MacBook1,1 laptops are all 32-bit only. + +First, [install the build dependencies](#build_dependencies). + +If you downloaded libreboot from git, refer to +[\#build\_meta](#build_meta). + +Build all of the components used in libreboot:\ +\$ **./oldbuild module all** + +You can also build each modules separately, using *./oldbuild module +modulename*. To see the possible values for *modulename*, use:\ +\$ **./oldbuild module list** + +After that, build the ROM images (for all boards):\ +\$ **./oldbuild roms withgrub**\ +Alternatively, you can build for a specific board or set of boards. For +example:\ +\$ **./oldbuild roms withgrub x60**\ +\$ **./oldbuild roms withgrub x200\_8mb**\ +\$ **./oldbuild roms withgrub x60 x200\_8mb**\ +The list of board options can be found by looking at the directory names +in **resources/libreboot/config/grub/**. + +To clean (reverse) everything, do the following:\ +\$ **./oldbuild clean all** + +The ROM images will be stored under **bin/*payload*/**, where *payload* +could be *grub*, *seabios*, or whatever other payload those images were +built for. + +<div class="subsection"> + +Preparing release archives (optional) +------------------------------------- + +**This is only confirmed to work (tested) in Debian Stretch. Parabola +\*fails\* at this stage (for now). For all other distros, YMMV. This +will also work in Devuan.** + +This is mainly intended for use with the git repository. These commands +will work in the release archive (\_src), unless otherwise noted below. + +The archives will appear under *release/oldbuildsystem/\${version}/*; +\${version} will either be set using *git describe* or, if a *version* +file already exists (\_src release archive), then it will simply re-use +that. + +Tag the current commit, and that version will appear in both the +\${version} string on the directory under *release/oldbuildsystem/*, and +in the file names of the archives. Otherwise, whatever git uses for *git +describe \--tags HEAD* will be used. + +Utilities (static executables):\ +\$ **./oldbuild release util** + +Archive containing flashrom and bucts source code:\ +\$ **./oldbuild release tobuild** + +Documentation archive (**does not work on \_src release archive, only +git**):\ +\$ **./oldbuild release docs** + +ROM image archives:\ +\$ **./oldbuild release roms** + +Source code archive:\ +\$ **./oldbuild release src** + +SHA512 sums of all other release archives that have been generated:\ +\$ **./oldbuild release sha512sums** + +If you are building on an i686 host, this will build statically linked +32-bit binaries in the binary release archive that you created, for: +**nvramtool, cbfstool, ich9deblob, cbmem**. + +If you are building on an x86\_64 host, this will build statically +linked 32- \*and\* 64-bit binaries for **cbmem**, **ich9deblob**, +**cbfstool** and **nvramtool**. + +**To include statically linked i686 and x86\_64 binaries for bucts and +flashrom, you will need to build them on a chroot, a virtual system or a +real system where the host uses each given architecture. These packages +are difficult to cross-compile, and the libreboot project is still +figuring out how to deal with them.** + +The same applies if you want to include statically linked flashrom +binaries for ARM. + +armv7l binaries (tested on a BeagleBone Black) are also included in +libreboot\_util, for: + +- cbfstool +- ich9gen +- ich9deblob +- flashrom + +If you are building binaries on a live system or chroot (for +flashrom/bucts), you can use the following to statically link them:\ +\$ **./oldbuild module flashrom static**\ +\$ **./oldbuild module bucts static** + +The same conditions as above apply for ARM (except, building bucts on +ARM is pointless, and for flashrom you only need the normal executable +since the lenovobios\_sst and \_macronix executables are meant to run on +an X60/T60 while lenovo bios is present, working around the security +restrictions). + +The command that you used for generating the release archives will also +run the following command:\ +\$ **./oldbuild release tobuild**\ +The archive **tobuild.tar.xz** will have been created under +**release/oldbuildsystem/**, containing bucts, flashrom and all other +required resources for building them. + +You\'ll find that the files libreboot\_util.tar.xz and +libreboot\_src.tar.xz have been created, under +**release/oldbuildsystem/**. + +The ROM images will be stored in separate archives for each system, +under **release/oldbuildsystem/rom/**. + +</div> + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +Copyright © 2014, 2015, 2016 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/gnulinux/configuring_parabola.html b/docs/gnulinux/configuring_parabola.html @@ -1,884 +0,0 @@ -<!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>Configuring Parabola (post-install)</title> -</head> - -<body> - <div class="section"> - <h1 id="pagetop">Configuring Parabola (post-install)</h1> - <p> - Post-installation configuration steps for Parabola GNU+Linux-libre. Parabola is extremely flexible; this is just an example. - This example uses LXDE because it's lightweight, but we recommend the <em>MATE</em> - desktop (which is actually about as lightweight as LXDE). - </p> - <p> - <a href="./">Back to previous index</a> - </p> - </div> - - <div class="section"> - - <h1>Table of Contents</h1> - <ul> - <li> - <a href="#pacman_configure">Configuring pacman</a> - <ul> - <li><a href="#pacman_update">Updating Parabola</a></li> - <li> - <a href="#pacman_maintain">Maintaining Parabola during system updates</a> - <ul> - <li><a href="#pacman_cacheclean">Clearing package cache after updating</a></li> - <li><a href="#pacman_commandequiv">Pacman command equivalents (compared to other package managers)</a></li> - </ul> - </li> - <li><a href="#yourfreedom">your-freedom</a></li> - </ul> - </li> - <li><a href="#useradd">Add a user account</a></li> - <li><a href="#systemd">System D</a></li> - <li><a href="#interesting_repos">Interesting repositories</a></li> - <li> - <a href="#network">Setup a network connection in Parabola</a> - <ul> - <li><a href="#network_hostname">Setting hostname</a></li> - <li><a href="#network_status">Network status</a></li> - <li><a href="#network_devicenames">Network interface names</a></li> - <li><a href="#network_setup">Network setup</a></li> - </ul> - </li> - <li><a href="#system_maintain">System maintenance</a> - important!</li> - <li> - <a href="#desktop">Configuring the desktop</a> - <ul> - <li><a href="#desktop_xorg">Install Xorg</a></li> - <li><a href="#desktop_kblayout">Xorg keyboard layout</a></li> - <li><a href="#desktop_lxde">Install LXDE</a></li> - <li><a href="#lxde_clock">LXDE - clock</a></li> - <li><a href="#lxde_font">LXDE - font</a></li> - <li><a href="#lxde_screenlock">LXDE - screenlock</a></li> - <li><a href="#lxde_automount">LXDE - automounting</a></li> - <li><a href="#lxde_suspend">LXDE - disable suspend</a></li> - <li><a href="#lxde_battery">LXDE - battery monitor</a></li> - <li><a href="#lxde_network">LXDE - network manager</a></li> - </ul> - </li> - </ul> - - </div> - - <div class="section"> - - <p> - While not strictly related to the libreboot project, this guide - is intended to be useful for those interested in installing - Parabola on their libreboot system. - </p> - - <p> - It details configuration steps that I took after installing the base system, - as a follow up to <a href="encrypted_parabola.html">encrypted_parabola.html</a>. - This guide is likely to become obsolete at a later date (due to the volatile - 'rolling-release' model that Arch/Parabola both use), but attempts will be made to maintain it. - </p> - - <p> - <b> - This guide was valid on 2014-09-21. If you see any changes that should to be made at the present date, please get in touch - with the libreboot project! - </b> - </p> - - </div> - - <div class="section"> - - <p> - You do not necessarily have to follow this guide word-for-word; <i>parabola</i> is extremely flexible. - The aim here is to provide a common setup that most users will be happy with. While Parabola - can seem daunting at first glance (especially for new GNU+Linux users), with a simple guide it can provide - all the same usability as Debian or Devuan, without hiding any details from the user. - </p> - - <p> - Paradoxically, as you get more advanced Parabola can actually become <i>easier to use</i> - when you want to set up your system in a special way compared to what most distributions provide. - You will find over time that other distributions tend to <i>get in your way</i>. - </p> - - </div> - - <div class="section"> - - <p> - <b> - This guide assumes that you already have Parabola installed. If you have not yet installed Parabola, - then <a href="encrypted_parabola.html">this guide</a> is highly recommended! - </b> - </p> - - <p> - A lot of the steps in this guide will refer to the Arch wiki. Arch is the upstream distribution that Parabola uses. - Most of this guide will also tell you to read wiki articles, other pages, manuals, and so on. In general it tries - to cherry pick the most useful information but nonetheless you are encouraged to learn as much as possible. - <b>It might take you a few days to fully install your system how you like, depending on how much you need to read. Patience is key, - especially for new users</b>. - </p> - - <p> - The Arch wiki will sometimes use bad language, such as calling the whole system Linux, using the term open-source (or closed-source), - and it will sometimes recommend the use of proprietary software. You need to be careful about this when reading anything on the - Arch wiki. - </p> - - </div> - - <div class="section"> - - <p> - Some of these steps require internet access. I'll go into networking later but for now, I just connected - my system to a switch and did:<br/> - # <b>systemctl start dhcpcd.service</b><br/> - You can stop it later by running:<br/> - # <b>systemctl stop dhcpcd.service</b><br/> - For most people this should be enough, but if you don't have DHCP on your network then you should setup your network connection first:<br/> - <a href="#network">Setup network connection in Parabola</a> - </p> - - </div> - - <div class="section"> - - <h2 id="pacman_configure">Configure pacman</h2> - <p> - pacman (<b>pac</b>kage <b>man</b>ager) is the name of the package management system in Arch, which Parabola - (as a deblobbed parallel effort) also uses. Like with 'apt-get' on Debian or Devuan, - this can be used to add/remove and update the software on your computer. - </p> - <p> - Based on <a href="https://wiki.parabolagnulinux.org/Installation_Guide#Configure_pacman">https://wiki.parabolagnulinux.org/Installation_Guide#Configure_pacman</a> - and from reading <a href="https://wiki.archlinux.org/index.php/Pacman">https://wiki.archlinux.org/index.php/Pacman</a> (make sure to read and understand this, - it's very important) and - <a href="https://wiki.parabolagnulinux.org/Official_Repositories">https://wiki.parabolagnulinux.org/Official_Repositories</a> - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - </div> - - <div class="section"> - - <h2 id="pacman_update">Updating Parabola</h2> - <p> - In the end, I didn't change my configuration for pacman. When you are updating, resync with the latest package names/versions:<br/> - # <b>pacman -Syy</b><br/> - (according to the wiki, -Syy is better than Sy because it refreshes the package list even if it appears to be up to date, - which can be useful when switching to another mirror).<br/> - Then, update the system:<br/> - # <b>pacman -Syu</b> - </p> - <p> - <b> - Before installing packages with 'pacman -S', always update first, using the notes above. - </b> - </p> - <p> - Keep an eye out on the output, or read it in /var/log/pacman.log. Sometimes, pacman will show messages - about maintenance steps that you will need to perform with certain files (typically configurations) - after the update. Also, you should check both the Parabola and Arch home pages to see if they mention any issues. - If a new kernel is installed, you should also update to be able to use it (the currently running kernel will - also be fine). It's generally good enough to update Parabola once every week, or maybe twice. As a - rolling release distribution, it's a good idea never to leave your install too outdated; update regularly. This - is simply because of the way the project works; old packages are deleted from the repositories quickly, once they are updated. - A system that hasn't been updated for quite a while will mean potentially more reading of previous posts through the website, - and more maintenance work. - </p> - <p> - The Arch forum can also be useful, if others have the same issue as you (if you encounter issues, that is). The <i>Parabola</i> - IRC channel (#parabola on freenode) can also help you. - </p> - <p> - Due to this and the volatile nature of Parabola/Arch, you should only update when you have at least a couple hours of spare time - in case of issues that need to be resolved. You should never update, for example, if you need your system for an important event, - like a presentation or sending an email to an important person before an allocated deadline, and so on. - </p> - <p> - Relax - packages are well-tested regularly when new updates are made to the repositories. Separate 'testing' repositories - exist for this exact reason. Despite what many people will tell you, Parabola is fairly stable and trouble-free, - so long as you are aware of how to check for issues, and are willing to spend some time fixing issues in - the rare event that they do occur. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - </div> - - <div class="section"> - - <h2 id="pacman_maintain">Maintaining Parabola</h2> - <p> - Parabola is a very simple distro, in the sense that you are in full control - and everything is made transparent to you. One consequence is - that you also need to know what you are doing, and what you have done before. In general, keeping notes (such as what I have done - with this page) can be very useful as a reference in the future (if you wanted to re-install it or install the distro - on another computer, for example). - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - <h3 id="pacman_cacheclean">Cleaning the package cache</h3> - <p> - <b> - The following is very important as you continue to use, update and maintain your Parabola system:<br/> - <a href="https://wiki.archlinux.org/index.php/Pacman#Cleaning_the_package_cache">https://wiki.archlinux.org/index.php/Pacman#Cleaning_the_package_cache</a>. - Essentially, this guide talks about a directory that has to be cleaned once in a while, to prevent it from growing too big (it's a cache - of old package information, updated automatically when you do anything in pacman). - </b> - </p> - <p> - To clean out all old packages that are cached:<br/> - # <b>pacman -Sc</b> - </p> - <p> - The wiki cautions that this should be used with care. For example, since older packages are deleted from the repo, - if you encounter issues and want to revert back to an older package then it's useful to have the caches available. - Only do this if you are sure that you won't need it. - </p> - <p> - The wiki also mentions this method for removing everything from the cache, including currently installed packages that are cached:<br/> - # <b>pacman -Scc</b><br/> - This is inadvisable, since it means re-downloading the package again if you wanted to quickly re-install it. This should only be used - when disk space is at a premium. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - <h3 id="pacman_commandequiv">pacman command equivalents</h3> - <p> - The following table lists other distro package manager commands, and their equivalent in pacman:<br/> - <a href="https://wiki.archlinux.org/index.php/Pacman_Rosetta">https://wiki.archlinux.org/index.php/Pacman_Rosetta</a> - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - </div> - - <div class="section"> - - <h2 id="yourfreedom">your-freedom</h2> - <p> - your-freedom is a package specific to Parabola, and it is installed by default. What it does is conflict with packages - from Arch that are known to be non-free (proprietary) software. When migrating from Arch (there is a guide on the Parabola - wiki for migrating - converting - an existing Arch system to a Parabola system), installing - your-freedom will also fail if these packages are installed, citing them as conflicts; the recommended solution - is then to delete the offending packages, and continue installing <i>your-freedom</i>. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - </div> - - <div class="section"> - - <h2 id="useradd">Add a user</h2> - <p> - Based on <a href="https://wiki.archlinux.org/index.php/Users_and_Groups">https://wiki.archlinux.org/index.php/Users_and_Groups</a>. - </p> - <p> - It is important (for security reasons) to create and use a non-root (non-admin) user account for everyday use. The default 'root' account is intended - only for critical administrative work, since it has complete access to the entire operating system. - </p> - <p> - Read the entire document linked to above, and then continue. - </p> - <p> - Add your user:<br/> - # <b>useradd -m -G wheel -s /bin/bash <i>yourusername</i></b><br/> - Set a password:<br/> - # <b>passwd <i>yourusername</i></b> - </p> - - <p> - Use of the <i>diceware method</i> is recommended, for generating secure passphrases (instead of passwords). - </p> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <h2 id="systemd">systemd</h2> - <p> - This is the name of the system used for managing services in Parabola. It is a good idea to become familiar with it. - Read <a href="https://wiki.archlinux.org/index.php/systemd">https://wiki.archlinux.org/index.php/systemd</a> - and <a href="https://wiki.archlinux.org/index.php/systemd#Basic_systemctl_usage">https://wiki.archlinux.org/index.php/systemd#Basic_systemctl_usage</a> - to gain a full understanding. <b>This is very important! Make sure to read them.</b> - </p> - <p> - An example of a 'service' could be a webserver (such as lighttpd), or sshd (openssh), dhcp, etc. There are countless others. - </p> - <p> - <a href="https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530">https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530</a> explains - the background behind the decision by Arch (Parabola's upstream supplier) to use systemd. - </p> - - <p> - The manpage should also help:<br/> - # <b>man systemd</b><br/> - The section on 'unit types' is especially useful. - </p> - - <p> - According to the wiki, systemd 'journal' keeps logs of a size up to 10% of the total size your / partition takes up. - on a 60GB root this would mean 6GB. That's not exactly practical, and can have performance implications later when the - log gets too big. Based on instructions from the wiki, I will reduce the total size of the journal to 50MiB (the wiki - recommends 50MiB). - </p> - <p> - Open /etc/systemd/journald.conf and find the line that says:<br/> - <i>#SystemMaxUse=</i><br/> - Change it to say:<br/> - <i>SystemMaxUse=50M</i> - </p> - <p> - The wiki also recommended a method for forwarding journal output to TTY 12 (accessible by pressing ctrl+alt+f12, - and you use ctrl+alt+[F1-F12] to switch between terminals). I decided not to enable it. - </p> - <p> - Restart journald:<br/> - # <b>systemctl restart systemd-journald</b> - </p> - - <p> - The wiki recommends that if the journal gets too large, you can also simply delete (rm -Rf) everything inside /var/log/journald/* - but recommends backing it up. This shouldn't be necessary, since you already set the size limit above and systemd will automatically - start to delete older records when the journal size reaches it's limit (according to systemd developers). - </p> - - <p> - Finally, the wiki mentions 'temporary' files and the utility for managing them.<br/> - # <b>man systemd-tmpfiles</b><br/> - The command for 'clean' is:<br/> - # <b>systemd-tmpfiles --clean</b><br/> - According to the manpage, this <i>&quot;cleans all files and directories with an age parameter&quot;</i>. - According to the Arch wiki, this reads information in /etc/tmpfiles.d/ and /usr/lib/tmpfiles.d/ - to know what actions to perform. Therefore, it is a good idea to read what's stored in these locations - to get a better understanding. - </p> - <p> - I looked in /etc/tmpfiles.d/ and found that it was empty on my system. However, /usr/lib/tmpfiles.d/ contained some files. - The first one was etc.conf, containing information and a reference to this manpage:<br/> - # <b>man tmpfiles.d</b><br/> - Read that manpage, and then continue studying all the files. - </p> - <p> - The systemd developers tell me that it isn't usually necessary to touch the systemd-tmpfiles utility manually at all. - </p> - - <p><a href="#pagetop">Back to top of page</a></p> - - </div> - - <div class="section"> - - <h2 id="interesting_repos">Interesting repositories</h2> - <p> - Parabola wiki at <a href="https://wiki.parabolagnulinux.org/Repositories#kernels">https://wiki.parabolagnulinux.org/Repositories#kernels</a> - mentions about a repository called [kernels] for custom kernels that aren't in the default base. It might be worth looking into what is available - there, depending on your use case. - </p> - <p> - I enabled it on my system, to see what was in it. Edit /etc/pacman.conf and below the 'extra' section add:<br/> - <i> - [kernels]<br/> - Include = /etc/pacman.d/mirrorlist - </i> - </p> - <p> - Now sync with the repository:<br/> - # <b>pacman -Syy</b> - </p> - <p> - List all available packages in this repository:<br/> - # <b>pacman -Sl kernels</b> - </p> - <p> - In the end, I decided not to install anything from it but I kept the repository enabled regardless. - </p> - <p><a href="#pagetop">Back to top of page.</a></p> - - </div> - - <div class="section"> - - <h2 id="network">Setup a network connection in Parabola</h2> - <p> - Read <a href="https://wiki.archlinux.org/index.php/Configuring_Network">https://wiki.archlinux.org/index.php/Configuring_Network</a>. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - <h3 id="network_hostname">Set the hostname</h3> - <p> - This should be the same as the hostname that you set in /etc/hostname when installing Parabola. You can also do it with systemd (do so now, if you like):<br/> - # <b>hostnamectl set-hostname <i>yourhostname</i></b><br/> - This writes the specified hostname to /etc/hostname. More information can be found in these manpages:<br/> - # <b>man hostname</b><br/> - # <b>info hostname</b><br/> - # <b>man hostnamectl</b> - </p> - <p> - Add the same hostname to /etc/hosts, on each line. Example:<br/> - <i> - 127.0.0.1 localhost.localdomain localhost <u>myhostname</u><br/> - ::1 localhost.localdomain localhost <u>myhostname</u> - </i> - </p> - <p> - You'll note that I set both lines; the 2nd line is for IPv6. More and more ISPs are providing this now (mine does) - so it's good to be forward-thinking here. - </p> - <p> - The <i>hostname</i> utility is part of the <i>inetutils</i> package and is in core/, installed by default (as part of <i>base</i>). - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - <h3 id="network_status">Network Status</h3> - <p> - According to the Arch wiki, <a href="https://wiki.archlinux.org/index.php/Udev">udev</a> should already detect the ethernet chipset - and load the driver for it automatically at boot time. You can check this in the <i>&quot;Ethernet controller&quot;</i> section - when running this command:<br/> - # <b>lspci -v</b> - </p> - <p> - Look at the remaining sections <i>'Kernel driver in use'</i> and <i>'Kernel modules'</i>. In my case it was as follows:<br/> - <i> - Kernel driver in use: e1000e<br/> - Kernel modules: e1000e - </i> - </p> - <p> - Check that the driver was loaded by issuing <i>dmesg | grep module_name</i>. In my case, I did:<br/> - # <b>dmesg | grep e1000e</b> - </p> - <h3 id="network_devicenames">Network device names</h3> - <p> - According to <a href="https://wiki.archlinux.org/index.php/Configuring_Network#Device_names">https://wiki.archlinux.org/index.php/Configuring_Network#Device_names</a>, - it is important to note that the old interface names like eth0, wlan0, wwan0 and so on no longer apply. Instead, <i>systemd</i> - creates device names starting with en (for enternet), wl (for wifi) and ww (for wwan) with a fixed identifier that systemd automatically generates. - An example device name for your ethernet chipset would be <i>enp0s25</i>, where it is never supposed to change. - </p> - <p> - If you want to enable the old names (eth0, wlan0, wwan0, etc), the Arch wiki recommends - adding <i>net.ifnames=0</i> to your kernel parameters (in libreboot context, this would be accomplished by following the - instructions in <a href="grub_cbfs.html">grub_cbfs.html</a>). - </p> - <p> - For background information, - read <a href="http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/">Predictable Network Interface Names</a> - </p> - <p> - Show device names:<br/> - # <b>ls /sys/class/net</b> - </p> - <p> - Changing the device names is possible (I chose not to do it):<br/> - <a href="https://wiki.archlinux.org/index.php/Configuring_Network#Change_device_name">https://wiki.archlinux.org/index.php/Configuring_Network#Change_device_name</a> - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - <h3 id="network_setup">Network setup</h3> - <p> - I actually chose to ignore most of Networking section on the wiki. Instead, I plan to set up LXDE desktop with the graphical - network-manager client. Here is a list of network managers:<br/> - <a href="https://wiki.archlinux.org/index.php/List_of_applications/Internet#Network_managers">https://wiki.archlinux.org/index.php/List_of_applications/Internet#Network_managers</a>. - If you need to, set a static IP address (temporarily) using the networking guide and the Arch wiki, or start the dhcpcd service in systemd. - NetworkManager will be setup later, after installing LXDE. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - </div> - - <div class="section"> - - <h2 id="system_maintain">System Maintenance</h2> - <p> - Read <a href="https://wiki.archlinux.org/index.php/System_maintenance">https://wiki.archlinux.org/index.php/System_maintenance</a> before continuing. - Also read <a href="https://wiki.archlinux.org/index.php/Enhance_system_stability">https://wiki.archlinux.org/index.php/Enhance_system_stability</a>. - <b>This is important, so make sure to read them!</b> - </p> - <p> - Install smartmontools (it can be used to check smart data. HDDs use non-free firmware inside, but it's transparent to you - but the smart data comes from it. Therefore, don't rely on it too much):<br/> - # <b>pacman -S smartmontools</b><br/> - Read <a href="https://wiki.archlinux.org/index.php/S.M.A.R.T.">https://wiki.archlinux.org/index.php/S.M.A.R.T.</a> to learn how to use it. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - </div> - - <div class="section"> - - <h2 id="desktop">Configuring the desktop</h2> - <p> - Based on steps from - <a href="https://wiki.archlinux.org/index.php/General_recommendations#Graphical_user_interface">General Recommendations</a> on the Arch wiki. - The plan is to use LXDE and LXDM/LightDM, along with everything else that you would expect on other distributions that provide LXDE - by default. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - - <div class="subsection"> - <h3 id="desktop_xorg">Installing Xorg</h3> - <p> - Based on <a href="https://wiki.archlinux.org/index.php/Xorg">https://wiki.archlinux.org/index.php/Xorg</a>. - </p> - <p> - Firstly, install it!<br/> - # <b>pacman -S xorg-server</b><br/> - I also recommend installing this (contains lots of useful tools, including <i>xrandr</i>):<br/> - # <b>pacman -S xorg-server-utils</b> - </p> - <p> - Install the driver. For me this was <i>xf86-video-intel</i> on the ThinkPad X60. T60 and macbook11/21 should be the same.<br/> - # <b>pacman -S xf86-video-intel</b><br/> - For other systems you can try:<br/> - # <b>pacman -Ss xf86-video- | less</b><br/> - Combined with looking at your <i>lspci</i> output, you can determine which driver is needed. - By default, Xorg will revert to xf86-video-vesa which is a generic driver and doesn't provide true hardware acceleration. - </p> - <p> - Other drivers (not just video) can be found by looking at the <i>xorg-drivers</i> group:<br/> - # <b>pacman -Sg xorg-drivers</b><br/> - </p> - <p> - Mostly you will rely on a display manager, but in case you ever want to start X without one:<br/> - # <b>pacman -S xorg-xinit</b> - </p> - <p> - &lt;optional&gt;<br/> - &nbsp;&nbsp;&nbsp;Arch wiki recommends installing these, for testing that X works:<br/> - &nbsp;&nbsp;&nbsp;# <b>pacman -S xorg-twm xorg-xclock xterm</b><br/> - &nbsp;&nbsp;&nbsp;Refer to <a href="https://wiki.archlinux.org/index.php/Xinitrc">https://wiki.archlinux.org/index.php/Xinitrc</a>. - and test X:<br/> - &nbsp;&nbsp;&nbsp;# <b>startx</b><br/> - &nbsp;&nbsp;&nbsp;When you are satisfied, type <b><i>exit</i></b> in xterm, inside the X session.<br/> - &nbsp;&nbsp;&nbsp;Uninstall them (clutter. eww): # <b>pacman -S xorg-xinit xorg-twm xorg-xclock xterm</b><br/> - &lt;/optional&gt; - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="desktop_kblayout">Xorg keyboard layout</h3> - <p> - Refer to <a href="https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg">https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg</a>. - </p> - <p> - Xorg uses a different configuration method for keyboard layouts, so you will notice that the layout you - set in /etc/vconsole.conf earlier might not actually be the same in X. - </p> - <p> - To see what layout you currently use, try this on a terminal emulator in X:<br/> - # <b>setxkbmap -print -verbose 10</b> - </p> - <p> - In my case, I wanted to use the Dvorak (UK) keyboard which is quite different from Xorg's default Qwerty (US) layout. - </p> - <p> - I'll just say it now: <i>XkbModel</i> can be <i>pc105</i> in this case (ThinkPad X60, with a 105-key UK keyboard). - If you use an American keyboard (typically 104 keys) you will want to use <i>pc104</i>. - </p> - <p> - <i>XkbLayout</i> in my case would be <i>gb</i>, and <i>XkbVariant</i> would be <i>dvorak</i>. - </p> - <p> - The Arch wiki recommends two different methods for setting the keyboard layout:<br/> - <a href="https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_X_configuration_files">https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_X_configuration_files</a> and<br/> - <a href="https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_localectl">https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_localectl</a>. - </p> - <p> - In my case, I chose to use the <i>configuration file</i> method:<br/> - Create the file /etc/X11/xorg.conf.d/10-keyboard.conf and put this inside:<br/> - <i> - Section "InputClass"<br/> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Identifier "system-keyboard"<br/> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MatchIsKeyboard "on"<br/> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Option "XkbLayout" "gb"<br/> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Option "XkbModel" "pc105"<br/> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Option "XkbVariant" "dvorak"<br/> - EndSection - </i> - </p> - <p> - For you, the steps above may differ if you have a different layout. If you use a US Qwerty keyboard, then - you don't even need to do anything (though it might help, for the sake of being explicit). - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="desktop_lxde">Install LXDE</h3> - <p> - Desktop choice isn't that important to me, so for simplicity I decided to use LXDE. It's lightweight - and does everything that I need. - If you would like to try something different, refer to - <a href="https://wiki.archlinux.org/index.php/Desktop_environment">https://wiki.archlinux.org/index.php/Desktop_environment</a> - </p> - <p> - Refer to <a href="https://wiki.archlinux.org/index.php/LXDE">https://wiki.archlinux.org/index.php/LXDE</a>. - </p> - <p> - Install it, choosing 'all' when asked for the default package list:<br/> - # <b>pacman -S lxde obconf</b> - </p> - <p> - I didn't want the following, so I removed them:<br/> - # <b>pacman -R lxmusic lxtask</b> - </p> - <p> - I also lazily installed all fonts:<br/> - # <b>pacman -S $(pacman -Ssq ttf-)</b> - </p> - <p> - And a mail client:<br/> - # <b>pacman -S icedove</b> - </p> - <p> - In IceCat, go to <i>Preferences :: Advanced</i> and disable <i>GNU IceCat Health Report</i>. - </p> - <p> - I also like to install these:<br/> - # <b>pacman -S xsensors stress htop</b> - </p> - <p> - Enable LXDM (the default display manager, providing a graphical login):<br/> - # <b>systemctl enable lxdm.service</b><br/> - It will start when you boot up the system. To start it now, do:<br/> - # <b>systemctl start lxdm.service</b> - </p> - <p> - Log in with your standard (non-root) user that you created earlier. - It is advisable to also create an xinitrc rule in case you ever want to start lxde without lxdm. - Read <a href="https://wiki.archlinux.org/index.php/Xinitrc">https://wiki.archlinux.org/index.php/Xinitrc</a>. - </p> - <p> - Open LXterminal:<br/> - $ <b>cp /etc/skel/.xinitrc ~</b><br/> - Open .xinitrc and add the following plus a line break at the bottom of the file.<br/> - <i> - # Probably not needed. The same locale info that we set before<br/> - # Based on advice from the LXDE wiki - export LC_ALL=en_GB.UTF-8<br/> - export LANGUAGE=en_GB.UTF-8<br/> - export LANG=en_GB.UTF-8<br/> - <br/> - # Start lxde desktop<br/> - exec startlxde<br/> - </i> - Now make sure that it is executable:<br/> - $ <b>chmod +x .xinitrc</b> - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="lxde_clock">LXDE - clock</h3> - <p> - In <b>Digital Clock Settings</b> (right click the clock) I set the Clock Format to <i>%Y/%m/%d %H:%M:%S</i> - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="lxde_font">LXDE - font</h3> - <p> - NOTE TO SELF: come back to this later. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="lxde_screenlock">LXDE - screenlock</h3> - <p> - Arch wiki recommends to use <i>xscreensaver</i>:<br/> - # <b>pacman -S xscreensaver</b> - </p> - <p> - Under <i>Preferences :: Screensaver</i> in the LXDE menu, I chose <i>Mode: Blank Screen Only</i>, - setting <i>Blank After</i>, <i>Cycle After</i> and <i>Lock Screen After</i> (checked) to 10 minutes. - </p> - <p> - You can now lock the screen with <i>Logout :: Lock Screen</i> in the LXDE menu. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="lxde_automount">LXDE - automounting</h3> - <p> - Refer to <a href="https://wiki.archlinux.org/index.php/File_manager_functionality">https://wiki.archlinux.org/index.php/File_manager_functionality</a>. - </p> - <p> - I chose to ignore this for now. NOTE TO SELF: come back to this later. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="lxde_suspend">LXDE - disable suspend</h3> - <p> - When closing the laptop lid, the system suspends. This is annoying at least to me. - NOTE TO SELF: disable it, then document the steps here. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="lxde_battery">LXDE - battery monitor</h3> - <p> - Right click lxde panel and <i>Add/Remove Panel Items</i>. Click <i>Add</i> and select <i>Battery Monitor</i>, then click <i>Add</i>. - Close and then right-click the applet and go to <i>Battery Monitor Settings</i>, check the box that says <i>Show Extended Information</i>. - Now click <i>Close</i>. When you hover the cursor over it, it'll show information about the battery. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - <div class="subsection"> - <h3 id="lxde_network">LXDE - Network Manager</h3> - <p> - Refer to <a href="https://wiki.archlinux.org/index.php/LXDE#Network_Management">https://wiki.archlinux.org/index.php/LXDE#Network_Management</a>. - Then I read: <a href="https://wiki.archlinux.org/index.php/NetworkManager">https://wiki.archlinux.org/index.php/NetworkManager</a>. - </p> - <p> - Install Network Manager:<br/> - # <b>pacman -S networkmanager</b> - </p> - <p> - You will also want the graphical applet:<br/> - # <b>pacman -S network-manager-applet</b><br/> - Arch wiki says that an autostart rule will be written at <i>/etc/xdg/autostart/nm-applet.desktop</i> - </p> - <p> - I want to be able to use a VPN at some point, so the wiki tells me to do:<br/> - # <b>pacman -S networkmanager-openvpn</b> - </p> - <p> - LXDE uses openbox, so I refer to:<br/> - <a href="https://wiki.archlinux.org/index.php/NetworkManager#Openbox">https://wiki.archlinux.org/index.php/NetworkManager#Openbox</a>. - </p> - <p> - It tells me for the applet I need:<br/> - # <b>pacman -S xfce4-notifyd gnome-icon-theme</b><br/> - Also, for storing authentication details (wifi) I need:<br/> - # <b>pacman -S gnome-keyring</b> - </p> - <p> - I wanted to quickly enable networkmanager:<br/> - # <b>systemctl stop dhcpcd</b><br/> - # <b>systemctl start NetworkManager</b><br/> - Enable NetworkManager at boot time:<br/> - # <b>systemctl enable NetworkManager</b> - </p> - <p> - Restart LXDE (log out, and then log back in). - </p> - <p> - I added the volume control applet to the panel (right click panel, and add a new applet). - I also later changed the icons to use the gnome icon theme, in <i>lxappearance</i>. - </p> - <p> - <a href="#pagetop">Back to top of page.</a> - </p> - </div> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/gnulinux/configuring_parabola.md b/docs/gnulinux/configuring_parabola.md @@ -0,0 +1,827 @@ +<div class="section"> + +Configuring Parabola (post-install) {#pagetop} +=================================== + +Post-installation configuration steps for Parabola GNU+Linux-libre. +Parabola is extremely flexible; this is just an example. This example +uses LXDE because it\'s lightweight, but we recommend the *MATE* desktop +(which is actually about as lightweight as LXDE). + +[Back to previous index](./) + +</div> + +<div class="section"> + +Table of Contents +================= + +- [Configuring pacman](#pacman_configure) + - [Updating Parabola](#pacman_update) + - [Maintaining Parabola during system updates](#pacman_maintain) + - [Clearing package cache after updating](#pacman_cacheclean) + - [Pacman command equivalents (compared to other package + managers)](#pacman_commandequiv) + - [your-freedom](#yourfreedom) +- [Add a user account](#useradd) +- [System D](#systemd) +- [Interesting repositories](#interesting_repos) +- [Setup a network connection in Parabola](#network) + - [Setting hostname](#network_hostname) + - [Network status](#network_status) + - [Network interface names](#network_devicenames) + - [Network setup](#network_setup) +- [System maintenance](#system_maintain) - important! +- [Configuring the desktop](#desktop) + - [Install Xorg](#desktop_xorg) + - [Xorg keyboard layout](#desktop_kblayout) + - [Install LXDE](#desktop_lxde) + - [LXDE - clock](#lxde_clock) + - [LXDE - font](#lxde_font) + - [LXDE - screenlock](#lxde_screenlock) + - [LXDE - automounting](#lxde_automount) + - [LXDE - disable suspend](#lxde_suspend) + - [LXDE - battery monitor](#lxde_battery) + - [LXDE - network manager](#lxde_network) + +</div> + +<div class="section"> + +While not strictly related to the libreboot project, this guide is +intended to be useful for those interested in installing Parabola on +their libreboot system. + +It details configuration steps that I took after installing the base +system, as a follow up to +[encrypted\_parabola.html](encrypted_parabola.html). This guide is +likely to become obsolete at a later date (due to the volatile +\'rolling-release\' model that Arch/Parabola both use), but attempts +will be made to maintain it. + +**This guide was valid on 2014-09-21. If you see any changes that should +to be made at the present date, please get in touch with the libreboot +project!** + +</div> + +<div class="section"> + +You do not necessarily have to follow this guide word-for-word; +*parabola* is extremely flexible. The aim here is to provide a common +setup that most users will be happy with. While Parabola can seem +daunting at first glance (especially for new GNU+Linux users), with a +simple guide it can provide all the same usability as Debian or Devuan, +without hiding any details from the user. + +Paradoxically, as you get more advanced Parabola can actually become +*easier to use* when you want to set up your system in a special way +compared to what most distributions provide. You will find over time +that other distributions tend to *get in your way*. + +</div> + +<div class="section"> + +**This guide assumes that you already have Parabola installed. If you +have not yet installed Parabola, then [this +guide](encrypted_parabola.html) is highly recommended!** + +A lot of the steps in this guide will refer to the Arch wiki. Arch is +the upstream distribution that Parabola uses. Most of this guide will +also tell you to read wiki articles, other pages, manuals, and so on. In +general it tries to cherry pick the most useful information but +nonetheless you are encouraged to learn as much as possible. **It might +take you a few days to fully install your system how you like, depending +on how much you need to read. Patience is key, especially for new +users**. + +The Arch wiki will sometimes use bad language, such as calling the whole +system Linux, using the term open-source (or closed-source), and it will +sometimes recommend the use of proprietary software. You need to be +careful about this when reading anything on the Arch wiki. + +</div> + +<div class="section"> + +Some of these steps require internet access. I\'ll go into networking +later but for now, I just connected my system to a switch and did:\ +\# **systemctl start dhcpcd.service**\ +You can stop it later by running:\ +\# **systemctl stop dhcpcd.service**\ +For most people this should be enough, but if you don\'t have DHCP on +your network then you should setup your network connection first:\ +[Setup network connection in Parabola](#network) + +</div> + +<div class="section"> + +Configure pacman {#pacman_configure} +---------------- + +pacman (**pac**kage **man**ager) is the name of the package management +system in Arch, which Parabola (as a deblobbed parallel effort) also +uses. Like with \'apt-get\' on Debian or Devuan, this can be used to +add/remove and update the software on your computer. + +Based on +<https://wiki.parabolagnulinux.org/Installation_Guide#Configure_pacman> +and from reading <https://wiki.archlinux.org/index.php/Pacman> (make +sure to read and understand this, it\'s very important) and +<https://wiki.parabolagnulinux.org/Official_Repositories> + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Updating Parabola {#pacman_update} +----------------- + +In the end, I didn\'t change my configuration for pacman. When you are +updating, resync with the latest package names/versions:\ +\# **pacman -Syy**\ +(according to the wiki, -Syy is better than Sy because it refreshes the +package list even if it appears to be up to date, which can be useful +when switching to another mirror).\ +Then, update the system:\ +\# **pacman -Syu** + +**Before installing packages with \'pacman -S\', always update first, +using the notes above.** + +Keep an eye out on the output, or read it in /var/log/pacman.log. +Sometimes, pacman will show messages about maintenance steps that you +will need to perform with certain files (typically configurations) after +the update. Also, you should check both the Parabola and Arch home pages +to see if they mention any issues. If a new kernel is installed, you +should also update to be able to use it (the currently running kernel +will also be fine). It\'s generally good enough to update Parabola once +every week, or maybe twice. As a rolling release distribution, it\'s a +good idea never to leave your install too outdated; update regularly. +This is simply because of the way the project works; old packages are +deleted from the repositories quickly, once they are updated. A system +that hasn\'t been updated for quite a while will mean potentially more +reading of previous posts through the website, and more maintenance +work. + +The Arch forum can also be useful, if others have the same issue as you +(if you encounter issues, that is). The *Parabola* IRC channel +(\#parabola on freenode) can also help you. + +Due to this and the volatile nature of Parabola/Arch, you should only +update when you have at least a couple hours of spare time in case of +issues that need to be resolved. You should never update, for example, +if you need your system for an important event, like a presentation or +sending an email to an important person before an allocated deadline, +and so on. + +Relax - packages are well-tested regularly when new updates are made to +the repositories. Separate \'testing\' repositories exist for this exact +reason. Despite what many people will tell you, Parabola is fairly +stable and trouble-free, so long as you are aware of how to check for +issues, and are willing to spend some time fixing issues in the rare +event that they do occur. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Maintaining Parabola {#pacman_maintain} +-------------------- + +Parabola is a very simple distro, in the sense that you are in full +control and everything is made transparent to you. One consequence is +that you also need to know what you are doing, and what you have done +before. In general, keeping notes (such as what I have done with this +page) can be very useful as a reference in the future (if you wanted to +re-install it or install the distro on another computer, for example). + +[Back to top of page.](#pagetop) + +### Cleaning the package cache {#pacman_cacheclean} + +**The following is very important as you continue to use, update and +maintain your Parabola system:\ +<https://wiki.archlinux.org/index.php/Pacman#Cleaning_the_package_cache>. +Essentially, this guide talks about a directory that has to be cleaned +once in a while, to prevent it from growing too big (it\'s a cache of +old package information, updated automatically when you do anything in +pacman).** + +To clean out all old packages that are cached:\ +\# **pacman -Sc** + +The wiki cautions that this should be used with care. For example, since +older packages are deleted from the repo, if you encounter issues and +want to revert back to an older package then it\'s useful to have the +caches available. Only do this if you are sure that you won\'t need it. + +The wiki also mentions this method for removing everything from the +cache, including currently installed packages that are cached:\ +\# **pacman -Scc**\ +This is inadvisable, since it means re-downloading the package again if +you wanted to quickly re-install it. This should only be used when disk +space is at a premium. + +[Back to top of page.](#pagetop) + +### pacman command equivalents {#pacman_commandequiv} + +The following table lists other distro package manager commands, and +their equivalent in pacman:\ +<https://wiki.archlinux.org/index.php/Pacman_Rosetta> + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +your-freedom {#yourfreedom} +------------ + +your-freedom is a package specific to Parabola, and it is installed by +default. What it does is conflict with packages from Arch that are known +to be non-free (proprietary) software. When migrating from Arch (there +is a guide on the Parabola wiki for migrating - converting - an existing +Arch system to a Parabola system), installing your-freedom will also +fail if these packages are installed, citing them as conflicts; the +recommended solution is then to delete the offending packages, and +continue installing *your-freedom*. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Add a user {#useradd} +---------- + +Based on <https://wiki.archlinux.org/index.php/Users_and_Groups>. + +It is important (for security reasons) to create and use a non-root +(non-admin) user account for everyday use. The default \'root\' account +is intended only for critical administrative work, since it has complete +access to the entire operating system. + +Read the entire document linked to above, and then continue. + +Add your user:\ +\# **useradd -m -G wheel -s /bin/bash *yourusername***\ +Set a password:\ +\# **passwd *yourusername*** + +Use of the *diceware method* is recommended, for generating secure +passphrases (instead of passwords). + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +systemd +------- + +This is the name of the system used for managing services in Parabola. +It is a good idea to become familiar with it. Read +<https://wiki.archlinux.org/index.php/systemd> and +<https://wiki.archlinux.org/index.php/systemd#Basic_systemctl_usage> to +gain a full understanding. **This is very important! Make sure to read +them.** + +An example of a \'service\' could be a webserver (such as lighttpd), or +sshd (openssh), dhcp, etc. There are countless others. + +<https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530> explains +the background behind the decision by Arch (Parabola\'s upstream +supplier) to use systemd. + +The manpage should also help:\ +\# **man systemd**\ +The section on \'unit types\' is especially useful. + +According to the wiki, systemd \'journal\' keeps logs of a size up to +10% of the total size your / partition takes up. on a 60GB root this +would mean 6GB. That\'s not exactly practical, and can have performance +implications later when the log gets too big. Based on instructions from +the wiki, I will reduce the total size of the journal to 50MiB (the wiki +recommends 50MiB). + +Open /etc/systemd/journald.conf and find the line that says:\ +*\#SystemMaxUse=*\ +Change it to say:\ +*SystemMaxUse=50M* + +The wiki also recommended a method for forwarding journal output to TTY +12 (accessible by pressing ctrl+alt+f12, and you use ctrl+alt+\[F1-F12\] +to switch between terminals). I decided not to enable it. + +Restart journald:\ +\# **systemctl restart systemd-journald** + +The wiki recommends that if the journal gets too large, you can also +simply delete (rm -Rf) everything inside /var/log/journald/\* but +recommends backing it up. This shouldn\'t be necessary, since you +already set the size limit above and systemd will automatically start to +delete older records when the journal size reaches it\'s limit +(according to systemd developers). + +Finally, the wiki mentions \'temporary\' files and the utility for +managing them.\ +\# **man systemd-tmpfiles**\ +The command for \'clean\' is:\ +\# **systemd-tmpfiles \--clean**\ +According to the manpage, this *\"cleans all files and directories with +an age parameter\"*. According to the Arch wiki, this reads information +in /etc/tmpfiles.d/ and /usr/lib/tmpfiles.d/ to know what actions to +perform. Therefore, it is a good idea to read what\'s stored in these +locations to get a better understanding. + +I looked in /etc/tmpfiles.d/ and found that it was empty on my system. +However, /usr/lib/tmpfiles.d/ contained some files. The first one was +etc.conf, containing information and a reference to this manpage:\ +\# **man tmpfiles.d**\ +Read that manpage, and then continue studying all the files. + +The systemd developers tell me that it isn\'t usually necessary to touch +the systemd-tmpfiles utility manually at all. + +[Back to top of page](#pagetop) + +</div> + +<div class="section"> + +Interesting repositories {#interesting_repos} +------------------------ + +Parabola wiki at +<https://wiki.parabolagnulinux.org/Repositories#kernels> mentions about +a repository called \[kernels\] for custom kernels that aren\'t in the +default base. It might be worth looking into what is available there, +depending on your use case. + +I enabled it on my system, to see what was in it. Edit /etc/pacman.conf +and below the \'extra\' section add:\ +*\[kernels\]\ +Include = /etc/pacman.d/mirrorlist* + +Now sync with the repository:\ +\# **pacman -Syy** + +List all available packages in this repository:\ +\# **pacman -Sl kernels** + +In the end, I decided not to install anything from it but I kept the +repository enabled regardless. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Setup a network connection in Parabola {#network} +-------------------------------------- + +Read <https://wiki.archlinux.org/index.php/Configuring_Network>. + +[Back to top of page.](#pagetop) + +### Set the hostname {#network_hostname} + +This should be the same as the hostname that you set in /etc/hostname +when installing Parabola. You can also do it with systemd (do so now, if +you like):\ +\# **hostnamectl set-hostname *yourhostname***\ +This writes the specified hostname to /etc/hostname. More information +can be found in these manpages:\ +\# **man hostname**\ +\# **info hostname**\ +\# **man hostnamectl** + +Add the same hostname to /etc/hosts, on each line. Example:\ +*127.0.0.1 localhost.localdomain localhost myhostname\ +::1 localhost.localdomain localhost myhostname* + +You\'ll note that I set both lines; the 2nd line is for IPv6. More and +more ISPs are providing this now (mine does) so it\'s good to be +forward-thinking here. + +The *hostname* utility is part of the *inetutils* package and is in +core/, installed by default (as part of *base*). + +[Back to top of page.](#pagetop) + +### Network Status {#network_status} + +According to the Arch wiki, +[udev](https://wiki.archlinux.org/index.php/Udev) should already detect +the ethernet chipset and load the driver for it automatically at boot +time. You can check this in the *\"Ethernet controller\"* section when +running this command:\ +\# **lspci -v** + +Look at the remaining sections *\'Kernel driver in use\'* and *\'Kernel +modules\'*. In my case it was as follows:\ +*Kernel driver in use: e1000e\ +Kernel modules: e1000e* + +Check that the driver was loaded by issuing *dmesg | grep module\_name*. +In my case, I did:\ +\# **dmesg | grep e1000e** + +### Network device names {#network_devicenames} + +According to +<https://wiki.archlinux.org/index.php/Configuring_Network#Device_names>, +it is important to note that the old interface names like eth0, wlan0, +wwan0 and so on no longer apply. Instead, *systemd* creates device names +starting with en (for enternet), wl (for wifi) and ww (for wwan) with a +fixed identifier that systemd automatically generates. An example device +name for your ethernet chipset would be *enp0s25*, where it is never +supposed to change. + +If you want to enable the old names (eth0, wlan0, wwan0, etc), the Arch +wiki recommends adding *net.ifnames=0* to your kernel parameters (in +libreboot context, this would be accomplished by following the +instructions in [grub\_cbfs.html](grub_cbfs.html)). + +For background information, read [Predictable Network Interface +Names](http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/) + +Show device names:\ +\# **ls /sys/class/net** + +Changing the device names is possible (I chose not to do it):\ +<https://wiki.archlinux.org/index.php/Configuring_Network#Change_device_name> + +[Back to top of page.](#pagetop) + +### Network setup {#network_setup} + +I actually chose to ignore most of Networking section on the wiki. +Instead, I plan to set up LXDE desktop with the graphical +network-manager client. Here is a list of network managers:\ +<https://wiki.archlinux.org/index.php/List_of_applications/Internet#Network_managers>. +If you need to, set a static IP address (temporarily) using the +networking guide and the Arch wiki, or start the dhcpcd service in +systemd. NetworkManager will be setup later, after installing LXDE. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +System Maintenance {#system_maintain} +------------------ + +Read <https://wiki.archlinux.org/index.php/System_maintenance> before +continuing. Also read +<https://wiki.archlinux.org/index.php/Enhance_system_stability>. **This +is important, so make sure to read them!** + +Install smartmontools (it can be used to check smart data. HDDs use +non-free firmware inside, but it\'s transparent to you but the smart +data comes from it. Therefore, don\'t rely on it too much):\ +\# **pacman -S smartmontools**\ +Read <https://wiki.archlinux.org/index.php/S.M.A.R.T.> to learn how to +use it. + +[Back to top of page.](#pagetop) + +</div> + +<div class="section"> + +Configuring the desktop {#desktop} +----------------------- + +Based on steps from [General +Recommendations](https://wiki.archlinux.org/index.php/General_recommendations#Graphical_user_interface) +on the Arch wiki. The plan is to use LXDE and LXDM/LightDM, along with +everything else that you would expect on other distributions that +provide LXDE by default. + +[Back to top of page.](#pagetop) + +<div class="subsection"> + +### Installing Xorg {#desktop_xorg} + +Based on <https://wiki.archlinux.org/index.php/Xorg>. + +Firstly, install it!\ +\# **pacman -S xorg-server**\ +I also recommend installing this (contains lots of useful tools, +including *xrandr*):\ +\# **pacman -S xorg-server-utils** + +Install the driver. For me this was *xf86-video-intel* on the ThinkPad +X60. T60 and macbook11/21 should be the same.\ +\# **pacman -S xf86-video-intel**\ +For other systems you can try:\ +\# **pacman -Ss xf86-video- | less**\ +Combined with looking at your *lspci* output, you can determine which +driver is needed. By default, Xorg will revert to xf86-video-vesa which +is a generic driver and doesn\'t provide true hardware acceleration. + +Other drivers (not just video) can be found by looking at the +*xorg-drivers* group:\ +\# **pacman -Sg xorg-drivers**\ + +Mostly you will rely on a display manager, but in case you ever want to +start X without one:\ +\# **pacman -S xorg-xinit** + +&lt;optional&gt;\ +   Arch wiki recommends installing these, for testing that X works:\ +   \# **pacman -S xorg-twm xorg-xclock xterm**\ +   Refer to <https://wiki.archlinux.org/index.php/Xinitrc>. and test X:\ +   \# **startx**\ +   When you are satisfied, type ***exit*** in xterm, inside the X +session.\ +   Uninstall them (clutter. eww): \# **pacman -S xorg-xinit xorg-twm +xorg-xclock xterm**\ +&lt;/optional&gt; + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### Xorg keyboard layout {#desktop_kblayout} + +Refer to +<https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg>. + +Xorg uses a different configuration method for keyboard layouts, so you +will notice that the layout you set in /etc/vconsole.conf earlier might +not actually be the same in X. + +To see what layout you currently use, try this on a terminal emulator in +X:\ +\# **setxkbmap -print -verbose 10** + +In my case, I wanted to use the Dvorak (UK) keyboard which is quite +different from Xorg\'s default Qwerty (US) layout. + +I\'ll just say it now: *XkbModel* can be *pc105* in this case (ThinkPad +X60, with a 105-key UK keyboard). If you use an American keyboard +(typically 104 keys) you will want to use *pc104*. + +*XkbLayout* in my case would be *gb*, and *XkbVariant* would be +*dvorak*. + +The Arch wiki recommends two different methods for setting the keyboard +layout:\ +<https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_X_configuration_files> +and\ +<https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_localectl>. + +In my case, I chose to use the *configuration file* method:\ +Create the file /etc/X11/xorg.conf.d/10-keyboard.conf and put this +inside:\ +*Section \"InputClass\"\ +        Identifier \"system-keyboard\"\ +        MatchIsKeyboard \"on\"\ +        Option \"XkbLayout\" \"gb\"\ +        Option \"XkbModel\" \"pc105\"\ +        Option \"XkbVariant\" \"dvorak\"\ +EndSection* + +For you, the steps above may differ if you have a different layout. If +you use a US Qwerty keyboard, then you don\'t even need to do anything +(though it might help, for the sake of being explicit). + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### Install LXDE {#desktop_lxde} + +Desktop choice isn\'t that important to me, so for simplicity I decided +to use LXDE. It\'s lightweight and does everything that I need. If you +would like to try something different, refer to +<https://wiki.archlinux.org/index.php/Desktop_environment> + +Refer to <https://wiki.archlinux.org/index.php/LXDE>. + +Install it, choosing \'all\' when asked for the default package list:\ +\# **pacman -S lxde obconf** + +I didn\'t want the following, so I removed them:\ +\# **pacman -R lxmusic lxtask** + +I also lazily installed all fonts:\ +\# **pacman -S \$(pacman -Ssq ttf-)** + +And a mail client:\ +\# **pacman -S icedove** + +In IceCat, go to *Preferences :: Advanced* and disable *GNU IceCat +Health Report*. + +I also like to install these:\ +\# **pacman -S xsensors stress htop** + +Enable LXDM (the default display manager, providing a graphical login):\ +\# **systemctl enable lxdm.service**\ +It will start when you boot up the system. To start it now, do:\ +\# **systemctl start lxdm.service** + +Log in with your standard (non-root) user that you created earlier. It +is advisable to also create an xinitrc rule in case you ever want to +start lxde without lxdm. Read +<https://wiki.archlinux.org/index.php/Xinitrc>. + +Open LXterminal:\ +\$ **cp /etc/skel/.xinitrc \~**\ +Open .xinitrc and add the following plus a line break at the bottom of +the file.\ +*\# Probably not needed. The same locale info that we set before\ +\# Based on advice from the LXDE wiki export LC\_ALL=en\_GB.UTF-8\ +export LANGUAGE=en\_GB.UTF-8\ +export LANG=en\_GB.UTF-8\ +\ +\# Start lxde desktop\ +exec startlxde\ +* Now make sure that it is executable:\ +\$ **chmod +x .xinitrc** + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### LXDE - clock {#lxde_clock} + +In **Digital Clock Settings** (right click the clock) I set the Clock +Format to *%Y/%m/%d %H:%M:%S* + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### LXDE - font {#lxde_font} + +NOTE TO SELF: come back to this later. + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### LXDE - screenlock {#lxde_screenlock} + +Arch wiki recommends to use *xscreensaver*:\ +\# **pacman -S xscreensaver** + +Under *Preferences :: Screensaver* in the LXDE menu, I chose *Mode: +Blank Screen Only*, setting *Blank After*, *Cycle After* and *Lock +Screen After* (checked) to 10 minutes. + +You can now lock the screen with *Logout :: Lock Screen* in the LXDE +menu. + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### LXDE - automounting {#lxde_automount} + +Refer to +<https://wiki.archlinux.org/index.php/File_manager_functionality>. + +I chose to ignore this for now. NOTE TO SELF: come back to this later. + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### LXDE - disable suspend {#lxde_suspend} + +When closing the laptop lid, the system suspends. This is annoying at +least to me. NOTE TO SELF: disable it, then document the steps here. + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### LXDE - battery monitor {#lxde_battery} + +Right click lxde panel and *Add/Remove Panel Items*. Click *Add* and +select *Battery Monitor*, then click *Add*. Close and then right-click +the applet and go to *Battery Monitor Settings*, check the box that says +*Show Extended Information*. Now click *Close*. When you hover the +cursor over it, it\'ll show information about the battery. + +[Back to top of page.](#pagetop) + +</div> + +<div class="subsection"> + +### LXDE - Network Manager {#lxde_network} + +Refer to <https://wiki.archlinux.org/index.php/LXDE#Network_Management>. +Then I read: <https://wiki.archlinux.org/index.php/NetworkManager>. + +Install Network Manager:\ +\# **pacman -S networkmanager** + +You will also want the graphical applet:\ +\# **pacman -S network-manager-applet**\ +Arch wiki says that an autostart rule will be written at +*/etc/xdg/autostart/nm-applet.desktop* + +I want to be able to use a VPN at some point, so the wiki tells me to +do:\ +\# **pacman -S networkmanager-openvpn** + +LXDE uses openbox, so I refer to:\ +<https://wiki.archlinux.org/index.php/NetworkManager#Openbox>. + +It tells me for the applet I need:\ +\# **pacman -S xfce4-notifyd gnome-icon-theme**\ +Also, for storing authentication details (wifi) I need:\ +\# **pacman -S gnome-keyring** + +I wanted to quickly enable networkmanager:\ +\# **systemctl stop dhcpcd**\ +\# **systemctl start NetworkManager**\ +Enable NetworkManager at boot time:\ +\# **systemctl enable NetworkManager** + +Restart LXDE (log out, and then log back in). + +I added the volume control applet to the panel (right click panel, and +add a new applet). I also later changed the icons to use the gnome icon +theme, in *lxappearance*. + +[Back to top of page.](#pagetop) + +</div> + +</div> + +<div class="section"> + +Copyright © 2014, 2015 Leah Rowe &lt;info@minifree.org&gt;\ +Permission is granted to copy, distribute and/or modify this document +under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International license or any later version published by Creative +Commons; A copy of the license can be found at +[../cc-by-sa-4.0.txt](../cc-by-sa-4.0.txt) + +Updated versions of the license (when available) can be found at +<https://creativecommons.org/licenses/by-sa/4.0/legalcode> + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT +POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND +AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, +OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, +ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE +OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF +WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT +APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU +ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR +OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, +PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES +ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN +IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, +COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT +ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. + +</div> diff --git a/docs/gnulinux/encrypted_debian.html b/docs/gnulinux/encrypted_debian.html @@ -1,495 +0,0 @@ -<!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 Debian or Devuan GNU+Linux with full disk encryption (including /boot)</title> -</head> - -<body> - <div class="section"> - <h1>Installing Debian or Devuan GNU+Linux with full disk encryption (including /boot)</h1> - <p> - This guide is written for the Debian distribution, but it should - also work for Devuan with the net installer. - </p> - <p> - Libreboot on x86 uses the GRUB <a href="http://www.coreboot.org/Payloads#GRUB_2">payload</a> - by default, which means that the GRUB configuration file - (where your GRUB menu comes from) is stored directly alongside libreboot - and its GRUB payload executable, inside - the flash chip. In context, this means that installing distributions and managing them - is handled slightly differently compared to traditional BIOS systems. - </p> - - <p> - On most systems, the /boot partition has to be left unencrypted while the others are encrypted. - This is so that GRUB, and therefore the kernel, can be loaded and executed since the firmware - can't open a LUKS volume. Not so with libreboot! Since GRUB is already included directly as a - payload, even /boot can be encrypted. This protects /boot from tampering by someone with physical - access to the system. - </p> - <p> - This guide is written for Debian net installer. You can download the ISO from the homepage on - <a href="https://www.debian.org/">debian.org</a>. - Use this on the GRUB terminal to boot it from USB (for 64-bit Intel or AMD):<br/> - <strong> - set root='usb0'<br/> - linux /install.amd/vmlinuz<br/> - initrd /install.amd/initrd.gz<br/> - boot<br/> - </strong> - If you are on a 32-bit system (e.g. X60):<br/> - <strong> - set root='usb0'<br/> - linux /install.386/vmlinuz<br/> - initrd /install.386/initrd.gz<br/> - boot - </strong> - </p> - <p> - <a href="grub_boot_installer.html">This guide</a> shows how to - create a boot USB drive with the Debian ISO image. - </p> - <p> - <b>This guide is *only* for the GRUB payload. If you use the depthcharge payload, ignore this section entirely.</b> - </p> - - - <p> - Note: on some thinkpads, a faulty DVD drive can cause the cryptomount -a step during boot to fail. If this happens to you, try removing the drive. - </p> - <p><a href="./">Back to previous index</a></p> - </div> - - <div class="section"> - - <p> - Set a strong user password (lots of lowercase/uppercase, numbers and symbols). - </p> - - <p> - Use of the <i>diceware method</i> is recommended, for generating secure passphrases (instead of passwords). - </p> - - <p> - when the installer asks you to set up - encryption (ecryptfs) for your home directory, select 'Yes' if you want to: <b>LUKS is already secure and performs well. Having ecryptfs on top of it - will add noticeable performance penalty, for little security gain in most use cases. This is therefore optional, and not recommended. - Choose 'no'.</b> - </p> - - <p> - <b> - Your user password should be different from the LUKS password which you will set later on. - Your LUKS password should, like the user password, be secure. - </b> - </p> - - </div> - - <div class="section"> - - <h1>Partitioning</h1> - - <p>Choose 'Manual' partitioning:</p> - <ul> - <li>Select drive and create new partition table</li> - <li> - Single large partition. The following are mostly defaults: - <ul> - <li>Use as: physical volume for encryption</li> - <li>Encryption: aes</li> - <li>key size: whatever default is given to you</li> - <li>IV algorithm: whatever default is given to you</li> - <li>Encryption key: passphrase</li> (<i>diceware method</i> recommended for choosing password) - <li>erase data: Yes (only choose 'No' if it's a new drive that doesn't contain your private data)</li> - </ul> - </li> - <li> - Select 'configure encrypted volumes' - <ul> - <li>Create encrypted volumes</li> - <li>Select your partition</li> - <li>Finish</li> - <li>Really erase: Yes</li> - <li>(erase will take a long time. be patient)</li> - <li>(if your old system was encrypted, just let this run for about a minute to - make sure that the LUKS header is wiped out)</li> - </ul> - </li> - <li> - Select encrypted space: - <ul> - <li>use as: physical volume for LVM</li> - <li>Choose 'done setting up the partition'</li> - </ul> - </li> - <li> - Configure the logical volume manager: - <ul> - <li>Keep settings: Yes</li> - </ul> - </li> - <li> - Create volume group: - <ul> - <li>Name: <b>matrix</b> (use this exact name)</li> - <li>Select crypto partition</li> - </ul> - </li> - <li> - Create logical volume - <ul> - <li>select <b>matrix</b> (use this exact name)</li> - <li>name: <b>rootvol</b> (use this exact name)</li> - <li>size: default, minus 2048 MB</li> - </ul> - </li> - <li> - Create logical volume - <ul> - <li>select <b>matrix</b> (use this exact name)</li> - <li>name: <b>swap</b> (user this exact name)</li> - <li>size: press enter</li> - </ul> - </li> - </ul> - - </div> - - <div class="section"> - - <h1>Further partitioning</h1> - - <p> - Now you are back at the main partitioning screen. You will simply set mountpoints and filesystems to use. - </p> - <ul> - <li> - LVM LV rootvol - <ul> - <li>use as: btrfs</li> - <li>mount point: /</li> - <li>done setting up partition</li> - </ul> - </li> - <li> - LVM LV swap - <ul> - <li>use as: swap area</li> - <li>done setting up partition</li> - </ul> - </li> - <li>Now you select 'Finished partitioning and write changes to disk'.</li> - </ul> - - </div> - - <div class="section"> - - <h1>Kernel</h1> - - <p> - Installation will ask what kernel you want to use. linux-generic is fine. - </p> - - </div> - - <div class="section"> - - <h1>Tasksel</h1> - - <p> - For Debian, use the <em>MATE</em> option, or one of the others if you want. - The libreboot project recommends MATE, unless you're saavy enough to choose something - else. - </p> - <p> - If you want debian-testing, then you should only select barebones options here - and change the entries in /etc/apt/sources.list after install to point to the new distro, - and then run <strong>apt-get update</strong> and <strong>apt-get dist-upgrade</strong> - as root, then reboot and run <b>tasksel</b> as root. This is to avoid downloading large - packages twice. - </p> - <p> - NOTE: If you want the latest up to date version of the Linux kernel, - Debian's kernel is sometimes outdated, even in the testing distro. - You might consider using <a href="https://jxself.org/linux-libre/">this repository</a> - instead, which contains the most up to date versions of the Linux kernel. - These kernels are also deblobbed, like Debian's kernels, so you can - be sure that no binary blobs are present. - </p> - - </div> - - <div class="section"> - - <h1>Postfix configuration</h1> - - <p> - If asked, choose <i>&quot;No Configuration&quot;</i> here (or maybe you want to select something else. It's up to you.) - </p> - - </div> - - <div class="section"> - - <h1>Install the GRUB boot loader to the master boot record</h1> - - <p> - Choose 'Yes'. It will fail, but don't worry. Then at the main menu, choose 'Continue without a bootloader'. - You could also choose 'No'. Choice is irrelevant here. - </p> - - <p> - <i>You do not need to install GRUB at all, since in libreboot you are using the GRUB payload (for libreboot) to boot your system directly.</i> - </p> - - </div> - - <div class="section"> - - <h1>Clock UTC</h1> - - <p> - Just say 'Yes'. - </p> - - </div> - - <div class="section"> - - <h1> - Booting your system - </h1> - - <p> - At this point, you will have finished the installation. At your GRUB payload, press C to get to the command line. - </p> - - <p> - Do that:<br/> - grub&gt; <b>cryptomount -a</b><br/> - grub&gt; <b>set root='lvm/matrix-rootvol'</b><br/> - grub&gt; <b>linux /vmlinuz root=/dev/mapper/matrix-rootvol cryptdevice=/dev/mapper/matrix-rootvol:root</b><br/> - grub&gt; <b>initrd /initrd.img</b><br/> - grub&gt; <b>boot</b> - </p> - - </div> - - <div class="section"> - - <h1> - ecryptfs - </h1> - - <p> - If you didn't encrypt your home directory, then you can safely ignore this section. - </p> - - <p> - Immediately after logging in, do that:<br/> - $ <b>sudo ecryptfs-unwrap-passphrase</b> - </p> - - <p> - This will be needed in the future if you ever need to recover your home directory from another system, so write it down and keep the note - somewhere secret. Ideally, you should memorize it and then burn the note (or not even write it down, and memorize it still)> - </p> - - </div> - - <div class="section"> - - <h1> - Modify grub.cfg (CBFS) - </h1> - - <p> - Now you need to set it up so that the system will automatically boot, without having to type a bunch of commands. - </p> - - <p> - Modify your grub.cfg (in the firmware) <a href="grub_cbfs.html">using this tutorial</a>; - just change the default menu entry 'Load Operating System' to say this inside: - </p> - - <p> - <b>cryptomount -a</b><br/> - <b>set root='lvm/matrix-rootvol'</b><br/> - <b>linux /vmlinuz root=/dev/mapper/matrix-rootvol cryptdevice=/dev/mapper/matrix-rootvol:root</b><br/> - <b>initrd /initrd.img</b> - </p> - - <p> - Without specifying a device, the <i>-a</i> parameter tries to unlock all detected LUKS volumes. - You can also specify -u UUID or -a (device). - </p> - - <p> - <a href="grub_hardening.html">Refer to this guide</a> for further guidance - on hardening your GRUB configuration, for security purposes. - </p> - - <p> - Flash the modified ROM - using <a href="../install/#flashrom">this tutorial</a>. - </p> - - </div> - - <div class="section"> - - <h1 id="troubleshooting">Troubleshooting</h1> - - <p> - A user reported issues when booting with a docking station attached - on an X200, when decrypting the disk in GRUB. The error - <i>AHCI transfer timed out</i> was observed. The workaround - was to remove the docking station. - </p> - - <p> - Further investigation revealed that it was the DVD drive causing problems. - Removing that worked around the issue. - </p> - -<pre> - -&quot;sudo wodim -prcap&quot; shows information about the drive: -Device was not specified. Trying to find an appropriate drive... -Detected CD-R drive: /dev/sr0 -Using /dev/cdrom of unknown capabilities -Device type : Removable CD-ROM -Version : 5 -Response Format: 2 -Capabilities : -Vendor_info : 'HL-DT-ST' -Identification : 'DVDRAM GU10N ' -Revision : 'MX05' -Device seems to be: Generic mmc2 DVD-R/DVD-RW. - -Drive capabilities, per MMC-3 page 2A: - - Does read CD-R media - Does write CD-R media - Does read CD-RW media - Does write CD-RW media - Does read DVD-ROM media - Does read DVD-R media - Does write DVD-R media - Does read DVD-RAM media - Does write DVD-RAM media - Does support test writing - - Does read Mode 2 Form 1 blocks - Does read Mode 2 Form 2 blocks - Does read digital audio blocks - Does restart non-streamed digital audio reads accurately - Does support Buffer-Underrun-Free recording - Does read multi-session CDs - Does read fixed-packet CD media using Method 2 - Does not read CD bar code - Does not read R-W subcode information - Does read raw P-W subcode data from lead in - Does return CD media catalog number - Does return CD ISRC information - Does support C2 error pointers - Does not deliver composite A/V data - - Does play audio CDs - Number of volume control levels: 256 - Does support individual volume control setting for each channel - Does support independent mute setting for each channel - Does not support digital output on port 1 - Does not support digital output on port 2 - - Loading mechanism type: tray - Does support ejection of CD via START/STOP command - Does not lock media on power up via prevent jumper - Does allow media to be locked in the drive via PREVENT/ALLOW command - Is not currently in a media-locked state - Does not support changing side of disk - Does not have load-empty-slot-in-changer feature - Does not support Individual Disk Present feature - - Maximum read speed: 4234 kB/s (CD 24x, DVD 3x) - Current read speed: 4234 kB/s (CD 24x, DVD 3x) - Maximum write speed: 4234 kB/s (CD 24x, DVD 3x) - Current write speed: 4234 kB/s (CD 24x, DVD 3x) - Rotational control selected: CLV/PCAV - Buffer size in KB: 1024 - Copy management revision supported: 1 - Number of supported write speeds: 4 - Write speed # 0: 4234 kB/s CLV/PCAV (CD 24x, DVD 3x) - Write speed # 1: 2822 kB/s CLV/PCAV (CD 16x, DVD 2x) - Write speed # 2: 1764 kB/s CLV/PCAV (CD 10x, DVD 1x) - Write speed # 3: 706 kB/s CLV/PCAV (CD 4x, DVD 0x) - -Supported CD-RW media types according to MMC-4 feature 0x37: - Does write multi speed CD-RW media - Does write high speed CD-RW media - Does write ultra high speed CD-RW media - Does not write ultra high speed+ CD-RW media - -</pre> - - </div> - - <div class="section"> - - <p> - Copyright &copy; 2014, 2015, 2016 Leah Rowe &lt;info@minifree.org&gt;<br/> - Permission is granted to copy, distribute and/or modify this document - under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license - or any later version published by Creative Commons; - - A copy of the license can be found at <a href="../cc-by-sa-4.0.txt">../cc-by-sa-4.0.txt</a> - </p> - - <p> - Updated versions of the license (when available) can be found at - <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a> - </p> - - <p> - UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - </p> - <p> - TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - </p> - <p> - The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - </p> - - </div> - -</body> -</html> diff --git a/docs/gnulinux/encrypted_debian.md b/docs/gnulinux/encrypted_debian.md @@ -0,0 +1,392 @@ +<div class="section"> + +Installing Debian or Devuan GNU+Linux with full disk encryption (including /boot) +================================================================================= + +This guide is written for the Debian distribution, but it should also +work for Devuan with the net installer. + +Libreboot on x86 uses the GRUB +[payload](http://www.coreboot.org/Payloads#GRUB_2) by default, which +means that the GRUB configuration file (where your GRUB menu comes from) +is stored directly alongside libreboot and its GRUB payload executable, +inside the flash chip. In context, this means that installing +distributions and managing them is handled slightly differently compared +to traditional BIOS systems. + +On most systems, the /boot partition has to be left unencrypted while +the others are encrypted. This is so that GRUB, and therefore the +kernel, can be loaded and executed since the firmware can\'t open a LUKS +volume. Not so with libreboot! Since GRUB is already included directly +as a payload, even /boot can be encrypted. This protects /boot from +tampering by someone with physical access to the system. + +This guide is written for Debian net installer. You can download the ISO +from the homepage on [debian.org](https://www.debian.org/). Use this on +the GRUB terminal to boot it from USB (for 64-bit Intel or AMD):\ +**set root=\'usb0\'\ +linux /install.amd/vmlinuz\ +initrd /install.amd/initrd.gz\ +boot\ +** If you are on a 32-bit system (e.g. X60):\ +**set root=\'usb0\'\ +linux /install.386/vmlinuz\