"Release" means that a new coreboot git revision with substantially different code has been adapted for libreboot.
"Revision" means a modification to an existing release, where the result is insubstantially different from what preceded it.
The 1st, 2nd, 3rd and 4th releases were really just older revisions of the 5th release.
For historical reasons (and to avoid confusion), these are still called 'releases' instead of correcting the mistake.
If flashing on an X60 then note that you might want to enable wifi and trackpoint after booting libreboot the first time (meaning, **after** you powered off and subsequently booted again).
See docs/index.html#x60_wifi and docs/index.html#x60_trackpoint for how to do that.
Lenovo ThinkPad T60/T60p 14.1"/15.1"/15.4" with ATI GPU (all models)
Reasons are given in the documentation. If you have one of these machines,
then you can look at the documentation for how to remedy the situation (hardware modifications).
T60 15.1" QXGA (2048x1536) with Intel GPU currently does not show GRUB visually (the serial output works), although everything after GRUB is working.
A proposed (untested) workaround for GRUB is to lower the screen resolution for that machine (only in GRUB), or try to fix it (the current theory is that not enough memory is
allocated for the framebuffer; this is an issue to be dealt with in coreboot (the upstream provider) and not libreboot (the downstream provider)).
** Warning: MacBook2,1 UNTESTED!
At the time of this pre-release, MacBook2,1 support is present but untested. I have ordered a MacBook2,1
but it has not yet arrived at the time of writing.
I take it merely on faith that these images even work at all. Use at your own risk!
Machines no longer supported (compared to previous release):
All previous machines still supported!
Development notes
Initial release (new coreboot base, dated June 1st 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): 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 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' (ROM's 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 ROM's to the list of ROM's in docs/index.html#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's for T60 *serial*.rom images into the grub configs for non-serial images. (T60's 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 (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 T60's and LCD panels for T60 (so that the user can check what LCD panel they have).
X60/T60: Merged patches for 3D fix 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 ROM's to the list of ROM's
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/index.html 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
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/howtos/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 T60's 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'
TODO: Add copyright license as appropriate to all of the parts that are mine. (REMOVE THIS LINE WHENDONE)
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 RELEASE, DEBLOB and BACKPORT file (no longer needed)
Documentation: added information about X60/T60 dock (ultrabase x6 and advanced mini dock) to relevant sections.
Added to docs/index.html#serial
Other tasks (to be completed as revisions after the initial pre-release)
TODO: Re-tooled linux-libre deblob scripts for use with coreboot. Deblobbing is already complete; completion of this additional task will simply make future deblobbing work easier.
TODO: Modified coreboot to make wifi and trackpoint be enabled by default on the ThinkPad X60 (so no need for nvramtool)
TODO: added this to gitdiff file.
(Remove from or add comment in the documentation the notes about disabling wifi/trackpoint)
TODO:Modify the Kconfig options in coreboot so that the (non-existent, deleted) microcode is never loaded when building.
TODO: Ask Mono what license he wants to use for his pages (see notes in docs/index.html#macbook21) and then include a copy in the relevant part of the documentation. (note: the backups are not included for now, for this exact reason)
TODO: Retroactively GPG-sign the final revisions of each previous release. (SHA512 sums aswell).
TODO: For the gitdiff in resources/libreboot/patch, re-implement those changes as actual commits in git, using separate patch files for each change.
TODO: Start GPG signing the release archives.
TODO: Made the lenovobios_firstflash and lenovobios_secondflash scripts safer to use (checking for unintended errors, bad checksums and so on)
TODO: cbfstool/flashrom/bucts: Investigate that idea: https://wiki.debian.org/HowToPackageForDebian (make a package for Trisquel 6 for cbfstool) (distributing a .deb for Trisquel 6)
TODO: Added instructions to builddeps-cbfstool to fail if it detects that it is being executed from anywhere other than libreboot_bin
TODO: Tested all of the remaining untested LCD panels under docs/index.html#supported_t60_list
TODO: Documentation: start translating the documentations into other languages aswell.
TODO: macbook21: from what I can tell, macbook21 has no dock or serial. investigate usbdebug and spkmodem option.
TODO: Documentation: macbook2,1: Show how to physically remove the built-in webcam (which doesn't work unless you install a non-free driver)
TODO: Documentation: macbook2,1: Check if there is another webcam to replace it that can work without requiring any non-free drivers.
TODO: T60 15" QXGA (2048x1536): fixed issue where GRUB wouldn't show any graphics.
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.
This should be done in coreboot and backported into libreboot. See 5320 and 5345 on review.coreboot.org
For now, see if lowering GRUB's resolution works (as a workaround) since everything (GNU/Linux) works after that.
TODO: Documentation: added as many links as I could find, to datasheets and schematics for macbook21/x60/t60 (i945 chipset, EC info for x60/t60/macbook21)
TODO: Go over the documentation, and find the parts that are not accessible: eg, improve the docs to be friendly for colour-blind people.
TODO: the X60 unbricking tutorial could use some work. It currently has lots of red and green, for instance. Consider highlighting specific parts of pictures in bold zig-zagged white lines instead of straight red lines.
TODO: Documentation: Added (replicated) the same level of logs (from default firmware) that Mono did for macbook21, for t60/x60/x60t
TODO: macbook21: make it's grub.cfg's use a background1280x800.png instead, because macbook21 uses this 16:10 resolution instead of 4:3
TODO: Documentation: Write documentation showing how to install a GNU/Linux distribution on a macbook2,1 while stock (non-free) firmware is running.
TODO: macbook21: Added script 'macbook21_firstflash' for flashing libreboot while Apple EFI firmware is running.
TODO: Documentation: macbook21: added software-based flashing instructions for flashing libreboot while Apple EFI firmware is running.
TODO: Documentation: updated the X60 unbrick tutorial to use the 5-pin method instead (safer / less dangerous).
TODO: X60/X60s: create new x60sconfig in resources/libreboot/config
TODO: Added script build-x60s which puts it's ROM's in bin/x60s and uses resources/libreboot/config/x60sconfig (still uses resources/grub/config/*)
TODO: Added ./build-x60s instruction to build script
TODO: Documentation: added unbricking tutorial for T60
TODO: Documentation: Advise what parts of the unbricking tutorial to follow (or skip) for replacing motherboard
TODO: Documentation: X60/T60: added information about checking custom ROM's 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 ROM's from libreboot, without using the build scripts, or if they forgot to use dd, etc).
TODO: Updated 'build' script to include coreboot/util/nvramtool source directory as 'nvramtool_standalone' directory in libreboot_bin
TODO: Added 'builddeps-nvramtool' for building nvramtool (for libreboot_bin, not src) standalone, which does 'make' in libreboot_bin/nvramtool_standalone then puts the nvramtool executable in libreboot_bin/ and then does 'make clean' in libreboot_bin/nvramtool_standalone/.
TODO: Updated 'build' script to include 'builddeps-nvramtool' in libreboot_bin
TODO: Updated 'build' script to include X60/T60/macbook21 cmos.layout files (from libreboot_src/coreboot/src/mainboard/oem/board/) in libreboot_bin, for use with nvramtool
TODO: Documentation: updated the relevant parts that use nvramtool to mention the new 'builddeps-nvramtool' and the cmos.layout files in libreboot_bin. Emphasize that this is for libreboot_bin and not libreboot_src
TODO: Documentation: Add a "development guide" for how to maintain libreboot ('get' scripts, deblob scripts, associated files under ./resources and so on)
TODO: Investigate high boot speeds on X60/T60/macbook21
"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 ISO's *much* easier than before.