From 8b2219bfa2da36e7809588ef723a10483a6e137f Mon Sep 17 00:00:00 2001
From: Francis Rowe
- It is assumed that you are running GNU/Linux. No other operating system is known to be compatible (with libreboot) for this release.
-
- The information here is mainly user documentation. For development notes and TODO's, see release.html and
- future/index.html
-
- Libreboot is not a fork of coreboot, despite misconceptions of this fact. Libreboot (downstream supplier) is a parallel effort
- which works closely with and re-bases on the latest coreboot (upstream supplier) every so often.
-
-
- As such, all new coreboot development should be done in coreboot, not libreboot!
- Libreboot is about deblobbing, and packaging coreboot in a user-friendly way, where most work is already done for the user!
- If, for example you wanted to attempt porting a new motherboard then you should do that in coreboot. Libreboot will (as a downstream)
- receive your change at some point in the future, in a future release.
-
-
- On the other hand, coreboot is also strict about what it accepts (merges) into the main git repository:
- most of the time, a lot of changes are under review at review.coreboot.org (as a way of encouraging as much further development
- as possible before accepting the patch).
-
- Meanwhile, libreboot is a lot less strict in this area and freely merges specific patches that are desirable, sometimes before they are merged into coreboot's main repository.
-
- Before doing anything, you need the dependencies first.
-
- For all other GNU/Linux distributions, you may have to adapt these scripts. By all means send patches!
-
- 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.
+ It is assumed that you are running GNU/Linux
+ (no other operating system is known to work with this release).
- After that, run the get script:
- 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's, see #build.
-
- 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.
-
- 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 machine to boot from the other block instead (which
- is writeable along with everything beneath it when using a patched flashrom. see #build_flashrom).
- After shutting down and booting up after the first flash,
- the final 64K block is writeable so you flash the ROM again with an unpatched flashrom and run "bucts 0" to
- make the machine boot from the normal (highest) block again.
-
- BUC.TS utility is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.
- "BUC" means "Backup Control" (it's a register) and "TS" means "Top Swap"
- (it's a status bit). Hence "bucts" (BUC.TS). TS 1 and TS 0 corresponds to bucts 1 and bucts 0.
-
- First, install the build dependencies.
-
- To build bucts, do this in the main directory:
- The "builddeps" script in libreboot_src also makes use of builddeps-bucts.
-
- Flashrom is the utility for flashing/dumping ROM's. This is what you will use to install libreboot.
-
- Flashrom source code is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.
- First, install the build dependencies.
-
- To build it, do that in the main directory:
- After you've done that, under ./flashrom/ you will find the following executables:
-
- The "builddeps" script in libreboot_src also makes use of builddeps-flashrom.
-
- Before building a ROM in libreboot (or coreboot, for that matter), you need to configure it.
- This is done using the following inside the source tree:
- If you've already built a kernel before, you know how to use this interface.
-
- Configurations are then saved as files called ".config". Copies of each configuration used
- for each machine type by the libreboot build scripts are stored in resources/libreboot/config/
-
- There is certain information that can be useful to enter in particular:
-
- This information can be obtained using:
- Specifically, it's good practise to enter the same information for libreboot that you found when running this
- with the original BIOS or firmware. libreboot has already done this for you. This information is for reference,
- in the hope that it will be useful.
+ The release page and future/index.html contain details
+ about future work.
- Now go back into Devices:
+ Information about what systems libreboot supports.
- The resulting .config file was saved as resources/libreboot/config/x60/config and is used by the build
- scripts for this machine.
+ Goto hcl/index.html.
- This is based on an X60S with the Core 2 Duo L7400 processor.
+ Information about how to install libreboot on supported targets,
+ using software and/or dedicated hardware.
- SMBIOS Version Number is ThinkPad X60 on the X60, but it is believed that the X60 and X60s both have identical
- motherboards where the only difference is the CPU. This same configuration is used on the X60 and X60s.
+ Goto install/index.html.
- Now go back into Devices:
+ Installing GNU/Linux distributions, preparing bootable USB drives, changing the default GRUB
+ menu and so on.
- The resulting .config file was saved as resources/libreboot/config/x60t/config and is used by the build
- scripts for this machine.
+ This also contains guides for fully encrypted Trisquel and Parabola GNU/Linux-libre installations.
- This is based on an X60T with the Core 2 Duo L7400 processor.
+ Goto gnulinux/index.html.
Libreboot Documentation
-
-
- GNU/Linux distributions
-
-
-
-
-
- Working with source code
-
-
-
-
-
- Supported hardware
-
-
-
- Installing libreboot (software: using internal programmer)
-
-
-
- Installing libreboot (hardware: using external programmer)
-
-
-
- Security topics
-
-
- Hardware maintenance
-
-
-
- GRUB2 payload
-
-
-
- Miscallaneous
-
-
-
-
-
- What is libreboot, really?
-
-
- Project goals (and differences versus coreboot):
-
-
-
-
-
- A 'stable' coreboot:
-
-
-
-
-
-
- Install build dependencies
-
-
-
-
-
-
- Get the full source code from metadata (git clone)
-
- Documentation for libreboot project
- $ ./getall
+ What is libreboot?
-
- How to build "bucts" (for LenovoBIOS X60/X60S/X60T/T60)
-
-
- If you downloaded from git, follow #build_meta before you proceed.
-
- $ ./builddeps-bucts
-
-
- How to build "flashrom"
-
-
- If you downloaded from git, follow #build_meta before you proceed.
-
- $ ./builddeps-flashrom
-
-
-
-
-
-
-
-
-
-
-
- Configuring libreboot
-
-
- $ make menuconfig
-
- dmidecode
-
-
-
+ Release information
- $ sudo dmidecode
- # dmidecode
+ Information about this release can be found at release.html.
+ Always check libreboot.org for updates.
- ThinkPad X60 configuration (file: resources/libreboot/config/x60/config)
-
-
-
+
-
- Hardware compatibility list
-
Installing libreboot
- ThinkPad X60 Tablet configuration (file: resources/libreboot/config/x60t/config)
-
-
-
+
-
- GNU/Linux distributions
-
- ThinkPad T60 configuration (file: resources/libreboot/config/t60/config)
-
-
-
- Go back into Devices:
-
-
-
- The resulting .config file was saved as resources/libreboot/config/t60/config and is used by the build - scripts for this machine. -
+- It is believed that the motherboards on 14.1" and 15.1" T60's are the same, so the same configuration is used - on both the 14.1" and 15.1" T60's. + Information about configuring libreboot, building from source, maintaining the project, + working in git and so on.
- -- Go back and disable option ROM's: + Goto git/index.html.
-- The resulting .config file was saved as resources/libreboot/config/macbook21/config and is used by the build - scripts for this machine. This config is also used for the MacBook1,1. -
- - - -You don't need to do much, as there are scripts already written for you that can build everything automatically.
- -- First, install the build dependencies. -
-- If you downloaded libreboot from git, refer to #build_meta. -
- -If running for the first time, run this:
- $ ./buildall (also performs the "./build" step below)
- Or if you only want to build dependencies (crossgcc, grub and so on):
- $ ./builddeps
If you've already run ./builddeps and/or ./buildall before, you don't need to run them again.
- Just run that from now on to build your ROM's:
- $ ./build
To un-build (clean) the build dependencies that you built before, do the following:
- This also deletes the ROM images under ./bin/:
- $ ./cleandeps
Note: after running 'cleandeps', you will need to run 'builddeps' or 'buildall' again before you can use 'build'.
- -After 'build' or 'buildall' has finished, you'll find the ROM images for each machine under ./bin/
- -
- Run that script:
- $ ./build-release
+ Goto security/index.html.
- You'll find that the files libreboot_bin.tar.xz and libreboot_src.tar.xz have been created. + Goto hardware/index.html.
- - - -- SeaBIOS isn't really needed since libreboot uses the GRUB payload which - is much better (for several reasons), so it is no longer included in the ROM - images by default. Instead, you can add it afterwards. -
- -- In the supplied binary archives, or in your own (if you did 'build-release') you can add SeaBIOS - to the ROM images, along with SeaVGABIOS which is a free/libre Video BIOS implementation that wraps - around the 'native graphics initializitation' code in coreboot, for boards that have support for it. -
- -- First, install the build dependencies. -
- -
- Build cbfstool:
- $ ./builddeps-cbfstool
-
- Now:
- $ ./addseabios
-
- SeaBIOS and SeaVGABIOS (which the build scripts created, and the build-release script put - compiled - - inside the binary archive) have now been added to all of the ROM images under ./bin/. A GRUB menuentry will show - up when you boot your machine, allowing you to use SeaBIOS. -
- - - -- Libreboot supports the following machines in this release: -
-- 'Supported' means that the build scripts know how to build ROM's for these machines, - and that the machines have been tested (confirmed working). There may be exceptions; - in other words, this is a list of 'officially' supported machines. -
- -- It is also possible to build ROM images (from source) for other machines (and virtual machines, e.g. QEMU). -
- - - -- The following are known to work well: -
-- Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM - ('Video BIOS' or 'VBIOS'), - all known LCD panels are currently compatible: -
- -- To find what LCD panel you have, see: #get_edid_panelname. -
- -- You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical - and the motherboards are the same shape/size. -
- -- The X60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running - the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; - just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. -
- - - -- Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM - ('Video BIOS' or 'VBIOS'). -
- -- To find what LCD panel you have, see: #get_edid_panelname. -
- -- There are 5 known LCD panels for the X60 Tablet: -
-- Most X60T's only have digitizer (pen), but some have finger (touch) aswell as pen; finger/multitouch doesn't work, only digitizer (pen) does. -
- -- You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical - and the motherboards are the same shape/size. It is unknown if the same applies between the X60 Tablet and the X61 Tablet. -
- -- The X60 Tablet typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running - the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; - just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. -
- -- A user with a X60T that has digitizer+finger support, reported that they could get finger input working. They - used linuxwacom at git tag 0.25.99.2 and had the following in their xorg.conf: -
- --# This file be public domain. - -# Now, for some reason (probably a bug in linuxwacom), -# the 'Touch=on' directive gets reset to 'off'. -# So you'll need to do -# $ xsetwacom --set WTouch Touch on -# -# tested with linuxwacom git 42a42b2a8636abc9e105559e5dea467163499de7 - -Section "Monitor" - Identifier "- - - -" - DisplaySize 245 184 -EndSection - -Section "Screen" - Identifier "Default Screen Section" - Monitor " " -EndSection - -Section "InputDevice" - Identifier "WTouch" - Driver "wacom" - Option "Device" "/dev/ttyS0" -# Option "DebugLevel" "12" - Option "BaudRate" "38400" - Option "Type" "touch" - Option "Touch" "on" - Option "Gesture" "on" - Option "ForceDevice" "ISDV4" -# Option "KeepShape" "on" - Option "Mode" "Absolute" - Option "RawSample" "2" -# Option "TPCButton" "off" - Option "TopX" "17" - Option "TopY" "53" - Option "BottomX" "961" - Option "BottomY" "985" -EndSection - -Section "ServerLayout" - Identifier "Default Layout" - Screen "Default Screen Section" - InputDevice "WTouch" "SendCoreEvents" -EndSection - -
- Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM - ('Video BIOS' or 'VBIOS'). -
- -- To find what LCD panel you have, see: #get_edid_panelname. -
- -- - Some T60's have ATI GPU's, and all T60p's have ATI GPU's These are incompatible! See #t60_ati_intel for how to remedy this. - -
- -
- How to dump the EDID:
-
-
- Tested LCD panels: working(compatible) -
-- Tested LCD panels: not working yet (incompatible; see future/index.html#lcd_i945_incompatibility) + Information about fonts and keyboard layouts used in GRUB.
-- The following LCD panels are UNTESTED. If you have one of these panels - then please submit a report!: + Goto grub/index.html
-- It is unknown whether the 1680x1050 (15.4") and 1920x1200 (15.4") panels use a different inverter board than the 1280x800 panels. + Random topics that don't belong anywhere else.
- -- The T60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running - the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; - just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. -
- -- If your T60 is a 14.1" or 15.1" model with an ATI GPU, it won't work with libreboot by default but - you can replace the motherboard with another T60 motherboard that has an Intel GPU, and then libreboot should work. -
- -- As far as I know, 14.1" (Intel GPU) and 15.1" (Intel GPU) T60 motherboards are the same, where - 'spacers' are used on the 15.1" T60. In any case, it makes sense to find one that is guaranteed to fit in your chassis. -
- -- There is also a 15.4" T60 with Intel GPU. -
- -- Note: the T60p laptops all have ATI graphics. - The T60p laptops cannot be used with libreboot under any circumstances. -
- -- The following T60 motherboard (see area highlighted in white) shows an empty space where the ATI GPU would be (this particular motherboard has an Intel GPU): - -
- -- The reason that the ATI GPU on T60 is unsupported is due to the VBIOS (Video BIOS) which is non-free. - The VBIOS for the Intel GPU on X60/T60 has been reverse engineered, and replaced with Free Software and - so will work in libreboot. -
- -- The 'Video BIOS' is what initializes graphics. -
- -
- See: https://en.wikipedia.org/wiki/Video_BIOS.
- In fact, lack of free VBIOS in general is a big problem in coreboot, and is one reason (among others) why many ports for coreboot are
- unsuitable for libreboot's purpose.
-
- Theoretically, the ThinkPad T60 with ATI GPU can work with libreboot and have ROM's compiled for it, however - in practise it would not be usable as a laptop because there would be no visual display at all. That being said, - such a configuration is acceptable for use in a 'headless' server setup (with serial and/or ssh console as the display). -
- - - -- There is an Apple laptop called the macbook1,1 from 2006 which uses the same i945 chipset as the ThinkPad X60/T60. - A developer ported the MacBook2,1 to coreboot, the ROM images also work on the macbook1,1. -
- -- You can refer to #macbook21 for most of this. Macbook2,1 laptops come with Core 2 Duo processors - which support 64-bit operating systems (and 32-bit). The MacBook1,1 uses Core Duo processors (supports 32-bit OS but not 64-bit), - and it is believed that this is the only difference. -
- -- It is believed that all models are compatible, listed here: -
- - -- Specifically (Order No. / Model No. / CPU): + Goto misc/index.html.
-- Also of interest: #config_macbook21. -
- -- Unbricking: this page shows disassembly guides and mono's page (see #macbook21) - shows the location of the SPI flash chip on the motherboard. How to remove the motherboard. -
- -- No method is yet known for flashing in GNU/Linux while the Apple firmware is running. You will need to disassemble the machine and flash externally. - Reading from flash seems to work. Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable, - bus pirate cable (for connecting Pomona to the bus pirate). -
- -- There is an Apple laptop called the macbook2,1 from late 2006 or early 2007 that uses the same i945 chipset - as the ThinkPad X60 and ThinkPad T60. A developer ported coreboot to his macbook2,1, and now libreboot can run on it. -
-- Mono Moosbart is the person who wrote the port for macbook2,1. Referenced below are copies (up to date at the time of writing, 20140630) - of the pages he wrote when porting coreboot to the macbook2,1. They are included here in case the main site goes down for - whatever reason, since they include a lot of useful information. -
-
- Backups created using wget:
- $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/
- $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/coreboot/
- Use -e robots=off if using this trick for other sites and the site restricts using robots.txt
+ Libreboot is a coreboot distribution (distro) with proprietary software removed,
+ intended to be a free
+ (libre) 'BIOS' replacement for your computer.
- Links to wget backups (and the backups themselves) of Mono's pages (see above) removed temporarily. Mono has given me permission to distribute them, but I need to ask - him to tell me what license these works fall under first. Otherwise, the above URL's should be fine. NOTE TO SELF: REMOVE THIS WHEN DONE + Read the full Free Software definition.
- How to boot an ISO: burn it to a CD (like you would normally) and hold down the Alt/Control key while booting. - The bootloader will detect the GNU/Linux CD as 'Windows' (because Apple doesn't think GNU/Linux exists). Install it like you normally would. - When you boot up again, hold Alt/Control once more. The installation (on the HDD) will once again be seen as 'Windows'. (it's not actually Windows, - but Apple likes to think that Apple and Microsoft are all that exist.) - Now to install libreboot, follow #flashrom_macbook21. -
- -- It is believed that all models are compatible, listed here: -
- -- Specifically (Order No. / Model No. / CPU): -
-- Also of interest: #config_macbook21. -
- -- Unbricking: this page shows disassembly guides and mono's page (see above) - shows the location of the SPI flash chip on the motherboard. How to remove the motherboard. -
- -- Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable, - bus pirate cable (for connecting Pomona to the bus pirate). -
- -- You need to replace OS X with GNU/Linux before flashing libreboot. (OSX won't run at all in libreboot). -
- -- There are some issues with this machine (compared to other computers that libreboot supports): -
- -- This is an apple laptop, so it comes with OS X: it has an Apple keyboard, which means that certain keys you expect are missing: - insert, del, home, end, pgup, pgdown. There is also one mouse button only. Battery life is poor compared to X60/T60 (for now). - It also has other issues: for example, the Apple logo on the back is a hole, exposing the backlight, which means that it glows. You should cover it up. -
- -- The macbook21 gets extremely hot under GNU/Linux and libreboot; Macfanctld (mac fan control daemon) I'm told is a programme (GPLv3 license) that can help with this. -
- -
- Debugging the heating issues (initial work):
- Distro: Trisquel 7. kernel(linux-libre): 3.13.0-32
- CPU temperatures:
- 52C(idle)/81C(stress) on factory.bin
- 70C(idle)/80C(stress) on coreboot(with microcode updates). libreboot results (without microcode updates) were the same.
- (libreboot and coreboot rom's were both built from the same code, just with or without microcode included in the rom)
- battery life was higher on original firmware, lower on coreboot/libreboot.
- microcode patches included [y/n] makes no difference.
- libreboot: 1hr18min left on idle (99% battery), 42mins left on stress (82% battery)
- factory.bin: 2 hours left on idle (99% battery), 48mins left on stress (82% battery)
-
- Todo: see what the non-free firmware has in it's ACPI tables using acpidump and iasl -d. Try to implement cstate support in coreboot - (this will allow for lower temperatures). -
- -- - The MacBook2,1 comes with a webcam, which does not work without proprietary software. Also, webcams are a security risk; cover it up! Or remove it. - -
- -- A user reported that they could get better response from the touchpad with the following in their xorg.conf: -
- --Section "InputClass" - Identifier "Synaptics Touchpad" - Driver "synaptics" - MatchIsTouchpad "on" - MatchDevicePath "/dev/input/event*" - Driver "synaptics" -# The next two values determine how much pressure one needs -# for tapping, moving the cursor and other events. - Option "FingerLow" "10" - Option "FingerHigh" "15" -# Do not emulate mouse buttons in the touchpad corners. - Option "RTCornerButton" "0" - Option "RBCornerButton" "0" - Option "LTCornerButton" "0" - Option "LBCornerButton" "0" -# One finger tap = left-click - Option "TapButton1" "1" -# Two fingers tap = right-click - Option "TapButton2" "3" -# Three fingers tap = middle-mouse - Option "TapButton3" "2" -# Try to not count the palm of the hand landing on the touchpad -# as a tap. Not sure if helps. - Option "PalmDetect" "1" -# The following modifies how long and how fast scrolling continues -# after lifting the finger when scrolling - Option "CoastingSpeed" "20" - Option "CoastingFriction" "200" -# Smaller number means that the finger has to travel less distance -# for it to count as cursor movement. Larger number prevents cursor -# shaking. - Option "HorizHysteresis" "10" - Option "VertHysteresis" "10" -# Prevent two-finger scrolling. Very jerky movement - Option "HorizTwoFingerScroll" "0" - Option "VertTwoFingerScroll" "0" -# Use edge scrolling - Option "HorizEdgeScroll" "1" - Option "VertEdgeScroll" "1" -EndSection -- - - -
- List of directories corresponding to each board: -
-These images use coreboot text-mode graphics:
These images use coreboot framebuffer graphics:
-- _txtmode images come with a working MemTest86+ and GRUB Invaders, both of which require text-mode. - _vesafb images are recommended in most cases. -
- -- This will give you your native keyboard layout inside GRUB. The preferences in your OS are not affected, it just makes using - the GRUB command line easier (if you ever need to do that). - #grub_keyboardshows you how this was done. If your native keyboard layout - differs, you can adapt those notes and hack the 'build' script for your needs. -
- - - -- Hover over the next paragraph to make it black. -
-
- Following this guide means simply flashing a libreboot ROM. This guide will not (directly) teach you how to make a backup (dump) of the original Lenovo BIOS
- because to do so would be to explicitly endorse proprietary software. However, for the purposes of reverse engineering it can be useful
- to have a backup. Each copy of the original Lenovo BIOS is tied to the specific machine that it came from; it will not run
- on any other machine, even if it's the same type of machine as yours. What this means is that, effectively, you can back it up now (so that you can
- re-flash it later if you want to run the original Lenovo BIOS again) or lose it forever. The X60/T60 installation
- guide on the coreboot wiki will show you how to do this:
- http://www.coreboot.org/Board:lenovo/x60/Installation.
- Do not make this decision lightly! This is your last and only chance.
-
- The following is for the libreboot image and *not* the factory bios dump: -
-
- Check the last two 64K regions in your ROM file (libreboot.rom in this example):
- $ dd if=libreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x10000] count=64k
- $ dd if=libreboot.rom of=lower64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k
- $ sha512sum lower64k.bin top64k.bin
- Make *sure* that they match before you continue. The ROM's included pre-compiled in libreboot should already match.
- If they don't match, then do this (based on those instructions from coreboot wiki):
- $ dd if=top64k.bin of=libreboot.rom bs=1 seek=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k conv=notrunc
- After this, the ROM will be safe to flash. Explanation is provided in #build_bucts.
-
This is for the ThinkPad X60 and T60 while running Lenovo BIOS. If you already have coreboot or libreboot running, - then go to #flashrom instead!
- -If you are flashing a Lenovo ThinkPad T60, be sure to read #supported_t60_list
- -- First, install the build dependencies. -
- -- - Before you proceed, make *sure* to build flashrom and bucts from source. Both are provided. This is very important! - -
- - -"YOURBOARD/YOURROM" should be replaced with what is correct as per #rom. Alternatively - you may be using your own custom ROM. Adapt.
- -
- Run the script:
- $ sudo ./lenovobios_firstflash bin/YOURBOARD/YOURROM.
-
- You should see within the output the following:
- "Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped".
-
- You should also see within the output the following:
- "Flash chip is in an unknown state", "FAILED" and "DO NOT SHUTDOWN OR REBOOT"
- Seeing this means that the operation was a resounding success! DON'T PANIC.
-
- See this link for more details: - http://thread.gmane.org/gmane.linux.bios.flashrom/575. -
- -- If the above is what you see, then SHUT DOWN. Wait a few seconds, and then boot; libreboot is running, but there is a 2nd procedure *needed* (see below). -
- -- - If you boot and you see nothing, try turning up the backlight (Fn+Home). - -
- -
- When you have booted up again:
- $ sudo ./lenovobios_secondflash bin/YOURBOARD/YOURROM
-
- You should see within the output the following:
- "Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated"
-
- You should also see within the output the following:
- "Verifying flash... VERIFIED."
-
Shut down again, wait a few seconds, and then boot.
- -- Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed. - You might also want to remove bluetooth. See x60_security.html and - t60_security.html. -
- - - -- Hover over the next paragraph to make it black. -
-
- Following this guide means simply flashing a libreboot ROM. This guide will not (directly) teach you how to make a backup (dump) of the original Apple EFI firmware
- because to do so would be to explicitly endorse proprietary software. However, for the purposes of reverse engineering it can be useful
- to have a backup. Each copy of the original Apple EFI is (believed, but unproven to be) tied to the specific machine that it came from; it will not (as is believed) run
- on any other machine, even if it's the same type of machine as yours. What this means is that, effectively, you can back it up now (so that you can
- re-flash it later if you want to run the original Apple EFI firmware again) or lose it forever. The macbook21 installation
- guide on the coreboot wiki will show you how to do this:
- http://www.coreboot.org/Board:apple/macbook21.
- Do not make this decision lightly! This is (very likely) your last and only chance.
-
- (this theory is untested at the time of writing) -
-- Note: If you have a MacBook1,1 then these instructions will not work. See #macbook11 for MacBook1,1 flashing instructions. -
- -- - This is for the MacBook2,1 while running Apple EFI firmware. If you already have - coreboot or libreboot running, then go to #flashrom instead! - -
- -- Be sure to read the information in #macbook21. -
- -- First, install the build dependencies. -
- -- - Before you proceed, make *sure* to build flashrom from source. This is very important! - -
- - -- Look at #rom to see which ROM is suitable for your machine. Alternatively you may be using your own - custom ROM. Adapt. -
- -
- Flashing is actually easy (compared to X60/T60).
- $ sudo flashrom -p internal:laptop=force_I_want_a_brick -w bin/YOURBOARD/YOURROM
-
- Alternatively, a script is provided which does the same thing:
- $ sudo ./macbook21_firstflash bin/YOURBOARD/YOURROM
-
- You should also see within the output the following:
- "Verifying flash... VERIFIED."
-
- If you see that, great! Shut down now (power off). Wait a few seconds and then boot! -
- -- - If you boot and you see nothing, try turning up the backlight (F2 for macbook21). - -
- - -- - These instructions work for the Lenovo ThinkPad X60/X60S/X60T/T60 and Apple MacBook2,1. - -
-- - This assumes that you already have coreboot or libreboot running. - -
-- - If you have Lenovo BIOS running (X60/X60S/X60T/T60), go to #flashrom_lenovobios instead. - -
-- - If you have Apple EFI firmware running (macbook21), go to #flashrom_macbook21 instead. - -
-- - If you are flashing a Lenovo ThinkPad T60, be sure to read #supported_t60_list. - -
-- - If you are flashing an Apple MacBook2,1, be sure to read the information in #macbook21. - -
-- First, install the build dependencies. -
-- - Before you proceed, make *sure* to build flashrom from source. This is very important! - -
- - -- Look at #rom to see which ROM is suitable for your machine. Alternative you may be using your own - custom ROM. Adapt. -
-
- Flash the ROM:
- $ sudo ./flash bin/YOURBOARD/YOURROM
-
- You should see "Verifying flash... VERIFIED." written at the end of the flashrom output. SHUT DOWN - after you see this, and then boot up again after a few seconds. + Libreboot is not a fork of coreboot, despite misconceptions of this fact. Libreboot (downstream supplier) is a parallel effort + which works closely with and re-bases on the latest coreboot (upstream supplier) every so often.
- If you boot and you see nothing, try turning up the backlight (Fn+Home for X60/X60S/X60T/T60, F2 for macbook21). + As such, all new coreboot development should be done in coreboot, not libreboot! + Libreboot is about deblobbing, and packaging coreboot in a user-friendly way, where most work is already done for the user! + If, for example you wanted to attempt porting a new motherboard then you should do that in coreboot. Libreboot will (as a downstream) + receive your change at some point in the future, in a future release.
-- Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed. - You might also want to remove bluetooth. See x60_security.html and - t60_security.html. -
- - - -You don't need to do this unless you would like to change the default font yourself. - (this is just for reference. It has already been done for you)
- -The old font used was Unifont, and this had some missing characters: for instance, the border showed ??? characters instead of lines.
- -I tried DeJavu Sans Mono from this website: - dejavu-fonts.org
- -Specifically, the version that I chose was the latest at the time of writing (Saturday 21 June 2014): - this one
- -This is a free font that is also contained in GNU/Linux distributions like Trisquel or Parabola.
- -$ cd libreboot_src/grub
- compile grub ('build' script has the info on how to do this)
- come back out into libreboot_src/resources/grub:
- $ cd ../libreboot_src/resources/grub/font
I took Dejavu Sans Mono from dejavu (included in this version of libreboot) and did:
- $ ../../../grub/grub-mkfont -o dejavusansmono.pf2 ../../../dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf
I then added the instructions to 'build' script to include resources/grub/dejavusansmono.pf2 in all of the ROM's in root of cbfs.
- I then added that instructions to the grub.cfg files (to load the font):
- loadfont (cbfsdisk)/dejavusansmono.pf2
- Keymaps are stored in resources/utilities/grub-assemble/keymap/. -
- -
- Example (French Azerty):
- $ ckbcomp fr > frazerty
- Go in grub directory:
- cat frazerty | ./grub/grub-mklayout -o frazerty.gkb
-
- You must make sure that the files are named keymap and keymap.gkb (where 'keymap' can be whatever you want). -
- -- Then from the above example, you would put frazerty in resources/utilities/grub-assemble/keymap/original/ and - the frazerty.gkb file goes under resources/utilities/grub-assemble/keymap/ -
+- The scripts build and buildrom-withgrub will automatically see this, and automatically build - ROM's with your custom layout (given the name) and include them under bin. Example: libreboot_frazerty.rom. + On the other hand, coreboot is also strict about what it accepts (merges) into the main git repository: + most of the time, a lot of changes are under review at review.coreboot.org (as a way of encouraging as much further development + as possible before accepting the patch).
- - -- ukdvorak had to be created manually, based on usdvorak. diff them (under resources/utilities/grub-assemble/keymap/original) - to see how ukdvorak file was created + Meanwhile, libreboot is a lot less strict in this area and freely merges specific patches that are desirable, sometimes before they are merged into coreboot's main repository.
- $ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb - - - -- Tested in Trisquel 6. -
-- Note: untested in Trisquel 7. Remove this note when it is. -
- -Now you can use this command to kill that noise:
- $ sudo powertop --auto-tune
You can also run it without parameters and then go into 'Tunables' and set everything to 'Good'
- -Note: On Trisquel 6, you will need to use a later powertop version from git. The one in the repositories is too old. See below:
- -Included with libreboot is a script called 'powertop.trisquel6'. Run this and it will setup powertop to run with --auto-tune - at boot time. Load the file in your text editor to see how it does that.
- -$ ./powertop.trisquel6
- -This has been tested on Trisquel 6.
- - - -The following removes most of the noise. It reduces what is a high frequency whine - (that not everyone can hear) to a slight buzz (which most people can't hear or doesn't bother most people).
- -This is not perfect! The full solution is still not discovered but this is a step towards that. - Also, in some instances you will need to run 'sudo powertop --auto-tune' again. - This needs to be implemented properly in coreboot itself!
- -On the X60 with coreboot or libreboot, there is a high pitched sound when idle. - So far we have use processor.max_cstate=2 or idle=halt in GRUB. - These consume power. Stop using them!
- -Be root
- $ su -
Installed powertop:
- # pacman -S powertop
and added the following to /etc/systemd/system/powertop.service :
- --[Unit] -Description=Powertop tunings - -[Service] -Type=oneshot -RemainAfterExit=no -ExecStart=/usr/bin/powertop --auto-tune -# "powertop --auto-tune" still needs a terminal for some reason. Possibly a bug? -Environment="TERM=xterm" - -[Install] -WantedBy=multi-user.target -- - -
Finally, as root do that:
- # systemctl enable powertop
- # systemctl start powertop
The next time you boot the machine, the buzz will be gone.
- - - -- For the Thinkpad X60 you can use the "UltraBase X6" dock (for the X60 Tablet it is called - X6 Tablet UltraBase). For the ThinkPad T60, - you can use the "Advanced Mini Dock". -
-- If you are using one of the ROM's with 'serial' in the name, then you have serial port enabled in libreboot - and you have memtest86+ included inside the ROM. Connect your null modem cable to the serial port on the dock - and connect the other end to a 2nd machine using your USB Serial adapter. -
-
- On the 2nd machine, you can try this (using GNU Screen):
- $ sudo screen /dev/ttyUSB0 115200
-
- How to quit GNU Screen: Ctrl+A then release and press K, and then press Y. -
-There are also others like Minicom but I like GNU Screen
-- By doing this before booting the X60/T60, you will see console output from libreboot. You will also see - GRUB displaying on the serial output, and you will be able to see MemTest86+ on the serial output aswell. - You can also configure your distro so that a terminal (TTY) is accessible from the serial console. -
-
- The following guide is for Ubuntu, and can be followed for Trisquel 6.0 which is based on Ubuntu 12.04
- (should also work in Trisquel 7, based on Ubuntu 14.04) to enable a serial console using GeTTY:
- https://help.ubuntu.com/community/SerialConsoleHowto
-
- Note: part of the tutorial above requires changing your grub.cfg. Just change the linux line to add instructions for enabling getty. - See howtos/grub_cbfs.html. -
-
- Get the panel name with sudo get-edid | strings
- Or look in /sys/class/drm/card0-LVDS-1/edid
-
- Alternatively you can use i2cdump. In Trisquel, this is in the package i2c-tools.
- $ sudo modprobe i2c-dev
- $ sudo i2cdump -y 5 0x50
- $ sudo rmmod i2c-dev
- You'll see the panel name in the output (from the EDID dump).
-
- If neither of these options work (or they are unavailable), physically removing the LCD panel is an option. - Usually, there will be information printed on the back. -
-