aboutsummaryrefslogtreecommitdiff
path: root/i18n/fr_FR/docs/misc
diff options
context:
space:
mode:
Diffstat (limited to 'i18n/fr_FR/docs/misc')
-rw-r--r--i18n/fr_FR/docs/misc/bbb_ehci.md360
-rw-r--r--i18n/fr_FR/docs/misc/codenames.md116
-rw-r--r--i18n/fr_FR/docs/misc/index.md307
3 files changed, 783 insertions, 0 deletions
diff --git a/i18n/fr_FR/docs/misc/bbb_ehci.md b/i18n/fr_FR/docs/misc/bbb_ehci.md
new file mode 100644
index 00000000..50801a33
--- /dev/null
+++ b/i18n/fr_FR/docs/misc/bbb_ehci.md
@@ -0,0 +1,360 @@
+---
+title: EHCI debugging on the BeagleBone Black
+...
+
+EHCI debugging
+==============
+
+1. [Find USB port on the target that supports EHCI
+ debug](#FindUSBportonthetargetthatsupportsEHCIdebug)
+
+2. [Initial setup of BBB to act as EHCI debug
+ dongle](#InitialsetupofBBBtoactasEHCIdebugdongle)
+3. [Patch BBB's `g_dbgp` module (optional, but highly
+ recommended)](#PatchBBBsgdbgpmoduleoptionalbuthighlyrecommended)
+4. [Configure libreboot with EHCI
+ debug](#ConfigurelibrebootwithEHCIdebug)
+ 1. [Selecting `HCD Index` and
+ `USB Debug port`](#SelectingHCDIndexandUSBDebugport)
+5. [How to get the debug logs](#Howtogetthedebuglogs)
+6. [Eneble EHCI Debug on the target's kernel (optional,
+ recommended)](#EnebleEHCIDebugonthetargetskerneloptionalrecommended)
+7. [References](#References)
+
+*NOTE: this documentation may be outdated, and discusses configuring
+EHCI debug on the default Debian system that the BBB sometimes comes
+with. If you want an easier time, just use [BBB
+ScrewDriver](https://www.coreboot.org/BBB_screwdriver) which comes
+pre-configured.*
+
+If your computer does not boot after installing libreboot, it is very
+useful to get debug logs from it, from the payload (grub) and/or the
+kernel (if gets to there). All of them stream debug logs on the
+available serial (RS-232) by default. However, most of todays laptops
+lack RS-232 port. The other option is to stream the logs to USB EHCI
+debug port.
+
+This section explains step-by-step how to setup BBB as a “USB EHCI debug
+dongle” and configure libreboot and the linux kernel to stream logs to
+it (TODO: grub).
+
+I will refer to three computers:
+
+- *host* - this is the computer you use, have tools, compiler,
+ Internet, etc
+- *BBB* - Beaglebone Black (rev. B or higher, i use rev. C)
+- *target* - the computer you are trying to install liberboot
+
+### Find USB port on the target that supports EHCI debug {#FindUSBportonthetargetthatsupportsEHCIdebug}
+
+Not all USB controllers support EHCI debug (see: [EHCI Debug
+Port](http://www.coreboot.org/EHCI_Debug_Port#Hardware_capability) ).
+Even more, if a USB controller supports EHCI debug, it is available only
+*on a single port* that might or might not be exposed externally.
+
+- You need running OS (GNU+Linux) on your target for this step (If
+ you've flashed libreboot and it does not boot, you have to flush
+ back the stock bios)
+- You need USB memory stick (the data on it will not be touched).
+- The EHCI debugging can not be done through external hub, BBB must be
+ connected directly to the debug port of the controller (so, no hubs)
+
+<!-- -->
+
+- Download^[1](#___fn1)^
+ [this](http://www.coreboot.org/pipermail/coreboot/attachments/20080909/ae11c291/attachment.sh)
+ shell script.
+
+1. Plug the usb stick in the first available usb port
+2. Run the script, you will get output similar to following:
+3. The buses the support debug are Bus 3 (0000:00:1a.0) on Port 1 and
+ Bus 4 (0000:00:1d.0) on port 2. Your usb stick is plugged on Bus 1,
+ Port 3
+4. Repeat the steps, plugging the USB stick in the next available port
+5. Go through all available ports and remember(write down) those for
+ which bus/port of the usb stick matches one of the bus/port that
+ support debug (bold).
+
+Remember (write down) for each port (external plug) you found that
+supports debug: *PCI device id, the bus id, the port number, and the
+physical location of the usb plug.*
+
+If you do not find a match, you can not get debug over EHCI. Sorry.
+
+^1^ The guys from coreboot were talking about including the script in
+coreboot distribution (check the status).
+
+### Initial setup of BBB to act as EHCI debug dongle {#InitialsetupofBBBtoactasEHCIdebugdongle}
+
+BBB must be powered with a barrel power connector since the mini-B USB
+plug will be used for the EHCI debug stream. So you will need:
+
+- power supply (5V, 2A(10W) is sufficient).
+- an extra usb cable: A to mini-B
+
+(On BBB) The linux kernel includes module (g\_dbgp that enables one of
+the usb ports on a computer to behave as EHCI debug dongle. Make sure
+you have this module available on your BBB (Debian 7.8 that comes with
+BBB should have it), if not, you should compile it yourself (see next
+section):
+
+ ls /lib/modules/3.8.13-bone70/kernel/drivers/usb/gadget/g_dbgp.ko
+
+Unload all other g\_\* modules:
+
+ # lsmod
+ # rmmod g_multi
+ ...
+
+Then load g\_dbgp :
+
+ # modprobe g_dbgp
+ # lsmod # should show that g_dbgp is loaded, and no other g_*
+
+Plug the mini-B side of the USB cable in your BBB and the A side in your
+target. Then one of the usb devices on your target (with lsusb ) should
+be:
+
+ Bus 001 Device 024: ID 0525:c0de Netchip Technology, Inc.
+
+If you see the device on the target, you are good to continue to the
+next step.
+
+### Patch BBB's g\_dbgp module (optional, but highly recommended) {#PatchBBBsgdbgpmoduleoptionalbuthighlyrecommended}
+
+For the reasons why you need this, see: [EHCI Gadget
+Debug](http://www.coreboot.org/EHCI_Gadget_Debug).\
+Make sure that you have cross compiling environment for
+arm-linux-gnueabihf setup on your *host*.
+
+- On BBB: uname -r - this will give you version number like
+ 3.8.13-bone70 (I will refer to this as: \$mav.\$miv-\$lv: where
+ mav=3.8, miv=13, lv=bone70
+- Get the BBB kernel ready on your host for cross-compiling:
+
+<!-- -->
+
+ $ cd $work_dir
+ $ git clone https://github.com/beagleboard/kernel.git
+ $ cd kernel
+ $ git checkout $mav (see above)
+ $ ./patch.sh
+ $ wget http://arago-project.org/git/projects/?p=am33x-cm3.git\;a=blob_plain\;f=bin/am335x-pm-firmware.bin\;hb=HEAD -O kernel/firmware/am335x-pm-firmware.bin
+ $ cp configs/beaglebone kernel/arch/arm/configs/beaglebone_defconfig
+
+- Download the patch from
+ [coreboot.org](http://www.coreboot.org/images/8/88/Ehci-debug-gadget-patches.tar.gz)
+- tar -xf Ehci-debug-gadget-patches.tar.gz (will create dir:
+ usbdebug-gadget)
+- Note that there are two patches (patch\_1 and patch\_2) for each of
+ the two different version of the kernel (3.8 and 3.10). I will use
+ 3.8. (If using kernel 3.12 patch\_1 is not needed)
+- cd kernel (note that this is one more level: you should be in
+ \$work\_dir/kernel/kernel)
+- Apply the patches:
+
+<!-- -->
+
+ git apply ../usbdebug-gadget/v3.8-debug-gadget/0001-usb-dbgp-gadget-Fix-re-connecting-after-USB-disconne.patch
+ git apply ../usbdebug-gadget/v3.8-debug-gadget/0002-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch
+ ;
+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- beaglebone_defconfig -j4@
+
+- You should also apply the linux-libre *deblob* script to turn it
+ into linux-libre (deletes all the blobs from the linux kernel).
+ [fsfla website](http://www.fsfla.org/ikiwiki/selibre/linux-libre/) -
+ see
+ [scripts](http://www.fsfla.org/svn/fsfla/software/linux-libre/scripts/).
+- Get your current BBB kernel config (from: /boot/config-<ver>)
+ and copy it to your host as \$work\_dir/kernel/kernel/.config
+- Set proper version number:
+ - On your host, edit \$work\_dir/kernel/kernel/.config (the one
+ you've just copied from BBB), find the line
+ CONFIG\_LOCALVERSION="<something or empty>" and change
+ it to CONFIG\_LOCALVERSION="-\$lv", so it will look something
+ like: CONFIG\_LOCALVERSION="-bone70"
+- Also, make sure that: CONFIG\_USB\_G\_DBGP=m (If not, make
+ menuconfig, and set @Device Drivers-> USB Support -> USB
+ Gadget Support -> EHCI Debug Device Gadget=m
+- Build the module:
+
+<!-- -->
+
+ $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 (is it possoble to build only the gadget modules)
+ $ mkdir ../tmp && make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=../tmp modules_install
+
+- on BBB, backup /lib/modules/3.8.13-bone70/kernel/drivers/usb/gadget
+ (i.e. mv /lib/modules/3.8.13-bone70/kernel/drivers/usb/gadget
+ \$HOME)
+- copy the freshly compiled usb/gadget dir to
+ /lib/modules/3.8.13-bone70/kernel/drivers/usb
+- restart BBB
+- Remove all g\_\* modules (rmmod g\_<>)
+- modprobpe g\_dbgp
+
+### Configure libreboot with EHCI debug {#ConfigurelibrebootwithEHCIdebug}
+
+Libreboot(coreboot) should be configured with debug turned on and to
+push debug messages to the EHCI debug port.\
+If you've downloaded the binary distribution, you can check if it is
+properly configured in the following way:
+
+- Go to the libreboot dist root directory cd \$libreboot\_bin
+- Locate the rom image for your target (I will call it: \$img\_path)
+- Running the following command will extract the config in a file
+ ./my\_config:
+
+<!-- -->
+
+ ./cbfstool/i686/cbfstool $img_path extract -n config -f ./my_config
+
+- Make sure that the following params in the config are set as
+ following:
+
+<!-- -->
+
+ CONFIG_USBDEBUG=y (Generic Drivers -> USB 2.0 EHCI debug dongle support)
+ CONFIG_USBDEBUG_IN_ROMSTAGE=y (Generic Drivers -> Enable early (pre-RAM) usbdebug)
+ CONFIG_USBDEBUG_HCD_INDEX=<HCD Index of usb controller - see below> (Generic Drivers -> Index for EHCI controller to use with usbdebug)
+ CONFIG_USBDEBUG_DEFAULT_PORT=<USB Debug port - see below> (Generic Drivers -> Default USB port to use as Debug Port)
+
+The following three are behind radio button in the menu. Only the first
+one^[2](#___fn2)^ should be = y
+
+ USBDEBUG_DONGLE_STD=y (Generic Drivers -> Type of dongle (Net20DC or compatible) -> Net20DC or compatible)
+ CONFIG_USBDEBUG_DONGLE_BEAGLEBONE=n (Generic Drivers -> Type of dongle (Net20DC or compatible) -> BeagleBone)
+ CONFIG_USBDEBUG_DONGLE_BEAGLEBONE_BLACK=n (Generic Drivers -> Type of dongle (Net20DC or compatible) -> BeagleBone Black)
+
+^2^ The g\_dbgp module on BeagleBone Black (Rev. C) reports it self as
+Net20DC, the other options are for older BB(B) - ver1. This is
+documented
+[on John Lewis's blog](https://johnlewis.ie/coreboot-ehci-debug-gadget-demonstration/)
+(also tested/verified).
+
+Then:\
+
+ CONFIG_CONSOLE_USB=y (Console -> USB dongle console output)
+
+Also Debugging \---> Output verbose XYZ ) (*FIXME* somebody verify
+these):
+
+ CONFIG_DEBUG_CBFS=y (Output verbose CBFS debug messages )
+ CONFIG_HAVE_DEBUG_RAM_SETUP=y (??? What/where is this)
+ CONFIG_DEBUG_RAM_SETUP=y (Output verbose RAM init debug messages)
+ CONFIG_DEBUG_SMI=y (Output verbose SMI debug messages)
+ CONFIG_DEBUG_ACPI=y (Output verbose ACPI debug messages )
+ CONFIG_DEBUG_USBDEBUG=y (Output verbose USB 2.0 EHCI debug dongle messages)
+
+If some of the above mentioned configuration options are not as
+specified, you have to configure and compile libreboot yourself. Please
+refer to the doc(*FIXME: link* about compiling libreboot.
+
+#### Selecting HCD Index and USB Debug port {#SelectingHCDIndexandUSBDebugport}
+
+This applies (and works) only if the USB controller that supports debug
+(found in the first section) is from Intel.\
+If the PCI ID of the port you found in the first section is 0000:00:1a.0
+or 0000:00:1d.0 , you are ok. Otherwise you have to try without
+guarantee that will work.
+
+If the externally exposed port is on a bus with PCI ID == 0000:00:1a.0
+then for CONFIG\_USBDEBUG\_HCD\_INDEX choose 2, otherwise choose 0 .
+
+For CONFIG\_USBDEBUG\_DEFAULT\_PORT choose the port from the first
+section that correspond to the PCI ID
+
+Notes:\
+The above is based on the implementation of
+coreboot/src/southbridge/intel/common/usb\_debug.c :
+pci\_ehci\_dbg\_dev() .\
+This is enough as it applies for the supported GM45/G45 Thinkpads.
+coreboot support some other contollers too, but they are irellevent for
+libreboot (for now).
+
+- On T500 (with switchable GPU) the debug ports for both intel
+ controllers is exposed.
+- On x200t the debug ports for both intel controllers is exposed.
+
+### How to get the debug logs {#Howtogetthedebuglogs}
+
+- Plug the USB cable in the target's debug port (the one you found in
+ step 1) and BBB's mini-B USB
+- Make sure no other then g\_dbgp of the g\_\* modules is loaded on
+ your BBB
+- On the BBB:
+
+<!-- -->
+
+ stty -icrnl -inlcr -F /dev/ttyGS0
+ cat /dev/ttyGS0
+
+- Power on the target with libreboot
+- You should see debug logs comming on your BBB console
+
+Note that this is not permanent on BBB, if you reboot it, you have to
+rmmod g\_\* and modprobe g\_dbgp
+
+### Eneble EHCI Debug on the target's kernel (optional, recommended) {#EnebleEHCIDebugonthetargetskerneloptionalrecommended}
+
+You have to know how to compile kernel for your target.
+
+1. Check if early debugging is already enabled: grep
+ CONFIG\_EARLY\_PRINTK\_DBGP /boot/config-<ver>
+2. If enabled, you do not have to compile the kernel (skip this step).
+ Otherwise, prepare kernel source for your distribution and select
+ (Kernel hacking -> Early printk via EHCI debug port). Compile and
+ install the new kernel.
+3. Edit your grub configuration and add following to the kenel
+ parameters^[20](#___fn20)[21](#___fn21)^: earlyprintk=dbgp,keep.
+ Also, try: earlyprintk=dbgp<N>,keep where N is the debug port
+ id if the first does not work.
+
+### References {#References}
+
+^10^ [EHCI Debug Port](http://www.coreboot.org/EHCI_Debug_Port)
+
+^11^ [coreboot EHCI debug gadget
+demonstration](https://johnlewis.ie/coreboot-ehci-debug-gadget-demonstration/)
+
+^12^ [EHCI Gadget Debug](http://www.coreboot.org/EHCI_Gadget_Debug)
+
+^13^
+[Ehci-debug-gadget-patches.tar.gz](http://www.coreboot.org/images/8/88/Ehci-debug-gadget-patches.tar.gz)
+
+^14^ [Compiling the BeagleBone Black
+Kernel](http://wiki.beyondlogic.org/index.php/BeagleBoneBlack_Building_Kernel)
+
+^15^
+http://dumb-looks-free.blogspot.ca/2014/06/beaglebone-black-bbb-compile-kernel.html
+
+^16^
+http://dumb-looks-free.blogspot.fr/2014/06/beaglebone-black-bbb-kernal-headers.html
+
+^17^ [Building BBB Kernel](http://elinux.org/Building_BBB_Kernel)
+
+^18^
+http://komposter.com.ua/documents/USB-2.0-Debug-Port%28John-Keys%29.pdf
+
+^19^ [Exploring USB at the Hardware/Software
+Interface](http://cs.usfca.edu/~cruse/cs698s10/)
+
+^20^ https://www.kernel.org/doc/Documentation/x86/earlyprintk.txt
+
+^21^ https://wiki.ubuntu.com/Kernel/Debugging/USBearlyprintk
+
+*TODO*:
+
+1. grub does not send messages to EHCI debug. Investigate.
+2. The section “Configure libreboot with EHCI debug” can be
+ skipped/simplified if a common configuration works for all relevant
+ targets is selected as defualt
+3. Patch and compule g\_dbgp on BBB instead cross-compile
+4. Find a simple way to send debug messages from targets userland
+
+Copyright © 2015 Alex David <opdecirkel@gmail.com>\
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License Version 1.3 or any later
+version published by the Free Software Foundation
+with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts.
+A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md)
diff --git a/i18n/fr_FR/docs/misc/codenames.md b/i18n/fr_FR/docs/misc/codenames.md
new file mode 100644
index 00000000..482d3c64
--- /dev/null
+++ b/i18n/fr_FR/docs/misc/codenames.md
@@ -0,0 +1,116 @@
+---
+title: Product Codenames
+...
+
+Introduction
+============
+
+This document lists product codenames for some hardware.
+Please note that just because a certain device is listed here does NOT mean
+that it is supported in Libreboot. For supported devices refer to the
+installation documentation.
+
+### A note on GPUs
+
+Some laptops come with and without a discrete GPU (dGPU). Whether the
+motherboard includes one or not can be determined by (in descending order
+of reliability):
+
+- often thorough disassembly and searching for the actual chip
+- looking at white PCB markings near RAM slots / under keyboard
+ and comparing with some known codenames (if not available FRU ID sticker)
+ listed below.
+- sometimes by looking at heatsink grills: on
+ discrete GPU laptops these will look orange and on intergrated ones
+ they will appear silver.
+
+List of models and codenames
+============================
+
+### Codenames
+
+- Asus Chromebook C201PA: speedy\_rk3288, veyron-speedy
+
+- ThinkPad X60: KS Note
+- ThinkPad X60s (slim): KS Note-2 / KS-2
+- ThinkPad X60 Tablet: Dali (Same PCB as KS Note-2, different EC firmware)
+
+- ThinkPad X200: Mocha-1
+- ThinkPad X200s (slim): Pecan-1
+- ThinkPad X200 Tablet: Caramel-1
+
+- ThinkPad R400/T400: Malibu-3
+ - with discrete GPU (dGPU), at board revision 0: "MLB3D-0
+ - with only integrated GPU (iGPU), at board revision 0: "MLB3I-0"
+
+- ThinkPad T500/W500: Coronado-5
+ - with dGPU (radeon): "COR5D-0" (last number is the board revision)
+ - with only iGPU: "COR5I-0"
+
+- ThinkPad T400s (slim): Shinai-MV
+- ThinkPad R500: Waikiki-3
+
+- T6x (whole family): Davinci. They don't have codename label in
+silkscreen so you need to use FRU label of the board, which is placed
+under RAM sticks.
+- T60:
+ - with dGPU (radeon): Magi-0 (last number is the board revision)
+ - with iGPU: Lisa-0
+
+- R60(e): RP-1, RP-2 - Rockwell / Picasso
+
+- With ThinkPads on Intel platforms newer than Montevina (Except T410),
+ the codenames become more consistent. All boards have the following
+ appended based on the type of graphics they have:
+ - with dGPU: SWG (SWitchable Graphics)
+ - with only iGPU: UMA (Unified Memory Access)
+
+*Note that Intel platforms newer than Montevina are not supported by libreboot
+yet!. Currently only Calistoga and Montevina platforms are supported.
+
+- These are the known model codenames:
+ - ThinkPad T410: NOZOMI-1 # EXT/INT
+ - ThinkPad T410s: SHINAI-2 # SWG/UMA
+ - ThinkPad T420: NOZOMI-3 # SWG/UMA
+ - ThinkPad T420s: SHINAI-3 # SWG/UMA
+ - ThinkPad T430: NOZOMI-4 # SWG/UMA
+ - ThinkPad T430s: SHINAI-4 # SWG/UMA
+ - ThinkPad T520: KENDO-1
+ - ThinkPad W520: KENDO-1 WS
+ - ThinkPad T520: KENDO-3
+ - ThinkPad W520: KENDO-3 WS
+ - ThinkPad T530: KENDO-4
+ - ThinkPad W530: KENDO-4 WS
+
+
+### Miscellaneous
+- [Calistoga](https://ark.intel.com/products/codename/5950/Calistoga):
+945GM/945PM chipset family name
+- Napa: calistoga based platform
+- [Cantiga](https://ark.intel.com/products/codename/26552/Cantiga):
+GM45/GS45/PM45 chipset family name.
+ This is the chipset used in T400,X200 and similar.
+- Montevina: cantiga based platform.
+- PMH: the Power Management Hub is a gate array for managing the power
+ up/down sequence. It is additionally tasked with extending EC's I/O.
+ Its later version was called "Thinker-1", and eventually it was merged
+ with PMIC (Rinkan) as ThinkEngine (Do not confuse it with EC chip which is also
+ has ThinkEngine logo on ThinkPad boards)
+- Kozak, Tsurumai, Rinkan: These are successive versions of power management
+ ICs for Notebook PCs. Tsurumai chip marking is "TB62501F" and datasheet
+ of it fully describes its operation.
+
+See also
+========
+- Many more Intel codenames can be found at
+ [Wikipedia](https://en.wikipedia.org/wiki/List_of_Intel_codenames).
+- For ThinkPads see [Documentation/thinkpad/codenames.csv @ Coreboot]
+(https://review.coreboot.org/cgit/coreboot.git/tree/Documentation/thinkpad/codenames.csv)
+
+Copyright © 2018 Fedja Beader <fedja@protonmail.ch>
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License Version 1.3 or any later
+version published by the Free Software Foundation
+with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts.
+A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md)
diff --git a/i18n/fr_FR/docs/misc/index.md b/i18n/fr_FR/docs/misc/index.md
new file mode 100644
index 00000000..1f4561c6
--- /dev/null
+++ b/i18n/fr_FR/docs/misc/index.md
@@ -0,0 +1,307 @@
+---
+title: Miscellaneous
+x-toc-enable: true
+...
+
+High Pitched Whining Noise on Idle in Debian or Devuan
+======================================================================
+
+Start powertop automatically at boot time.
+
+Included with libreboot is a script called 'powertop.debian'. Run this
+as root 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.
+
+ $ sudo ./resources/scripts/misc/powertop.debian
+
+Might want to run with --calibrate first
+
+If powertop doesn't work, another way (reduces battery life slightly)
+is to add *processor.max\_cstate=2* to the *linux* line in grub.cfg,
+using [this guide](../gnulinux/grub_cbfs.md).
+
+High Pitched Whining Noise on Idle in Parabola
+==============================================================
+
+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 system, the buzz will be gone.
+
+Might want to run with --calibrate first
+
+If powertop doesn't work, another way (reduces battery life slightly)
+is to add *processor.max\_cstate=2* to the *linux* line in grub.cfg,
+using [this guide](../gnulinux/grub_cbfs.md).
+
+X60/T60: Serial port - how to use (for dock owners)
+
+[Note: using a grsec enabled kernel will disable the powertop function. ](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options)
+===================================================
+
+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 images 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 system using your
+USB Serial adapter.
+
+On the 2nd system, 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, but it should work in Debian and
+Devuan, to enable a serial console using GeTTY:\
+<https://help.ubuntu.com/community/SerialConsoleHowto> (we DO NOT
+recommend Ubuntu, because it contains non-free software in the default
+repos. Use Debian or Devuan)
+
+Note: part of the tutorial above requires changing your grub.cfg. Just
+change the `linux` line to add instructions for enabling getty. See
+[../gnulinux/grub\_cbfs.md](../gnulinux/grub_cbfs.md).
+
+Finetune backlight control on intel gpu's
+=========================================
+
+Sometimes the backlight control value (BLC\_PWM\_CTL) set by libreboot
+is not ideal. The result is either flicker, which could cause nausea or
+epilepsy or an uneven backlight and/or coil whine coming from the
+display. To fix this a different value for the gpu reg BLC\_PWM\_CTL
+needs to be set. See p94 of
+<https://01.org/sites/default/files/documentation/g45_vol_3_register_0_0.pdf>
+for more information on this reg. The tool for setting registry values
+on intel gpu's is included in intel-gpu-tools. Install intel-gpu-tools:
+
+ sudo apt-get install intel-gpu-tools
+
+You can set values:
+
+ sudo intel_reg write 0x00061254 your_value_in_C_hex_format
+
+NOTE: on older versions of this utility, use `intel_reg_write` instead.
+
+The value set has the following structure: bits \[31:16\] is PWM
+divider. PWM / PWM\_divider = frequency bits \[15:0\] is the duty cycle
+and determines the portion of the backlight modulation frequency. A
+value of 0 will mean that the display is off. A value equal to the
+backlight modulation frequency means full on. The value should not be
+larger than the backlight modulation frequency.
+
+On displays with a CCFL backlight start from: 0x60016001 To verify if
+all modes work as desired use: `xbacklight -set 10` and gradually
+increase until 100. Displays with an LED backlight need a lower
+backlight modulation. Do the same thing but start from 0x01290129 . Try
+setting different values until you have found a value which presents no
+issue.
+
+It is important to know that there are four failure modes:
+
+1. flickering very fast, which could cause epilepsy (frequency is too
+ low. decrease divider)
+2. randomly flickering in random intervals - driver IC cannot keep up
+ with toggling the mosfet (frequency too fast, increase divider)
+3. frequency is in audible range and causes coils to whine (frequency
+ is too high. increase divider)
+4. backlight is uneven. (CCFL specific, frequency is too high. increase
+ divider)
+
+To check for flickering try moving your laptop while looking at it.
+
+A higher frequency equals higher power consumption. You want to find the
+highest good working value.
+
+Next this value should be set at boot: either add
+
+ intel_reg write 0x00061254 &ltyour_ideal_value>
+
+NOTE: on older versions of this utility, use `intel_reg_write` instead.
+
+before exit 0 in /etc/rc.local or create a systemd service file
+/etc/systemd/system/backlight.service:
+ [Unit]
+ Description=Set BLC_PWM_CTL to a good value
+ [Service]
+ Type=oneshot
+ RemainAfterExit=no
+ ExecStart=/usr/bin/intel_reg write 0x00061254 &ltyour_value>
+ [Install]
+ WantedBy=multi-user.target
+
+
+Now start and enable it:
+
+ sudo systemctl start backlight && sudo systemctl enable backlight
+
+Special note on i945:
+
+i945 behaves differently. Bit 16 needs to be 1 and the duty cycle is not
+updated when backlight is changed. There are no available datasheets on
+this target so why it behaves in such a way is not known. So to find a
+working value BLC\_PWM\_CTL set bit 16 to 1 and make sure PWM divider ==
+duty cycle. see <https://review.coreboot.org/#/c/10624/> on bit 16. The
+cause of this issue is that i945, in contrast with to GM45, is set to
+work in BLM Legacy Mode. This makes backlight more complicated since the
+duty cycle is derived from 3 instead of 2 registers using the following
+formula: if(BPC\[7:0\] <> xFF) then BPCR\[15:0\] \* BPC\[7:0\]
+Else BPCR\[15:0\] BPC is LBB - PCI Backlight Control Register, described
+on <http://www.mouser.com/pdfdocs/945gmedatasheet.pdf> on page 315. BPCR
+is BLC\_PWM\_CTL described in
+<https://01.org/sites/default/files/documentation/g45_vol_3_register_0_0.pdf>
+on page 94. More research needs to be done on this target so proceed
+with care.
+
+Power Management Beeps on Thinkpads
+===================================
+
+When disconnecting or connecting the charger, a beep occurs. When the
+battery goes to a critically low charge level, a beep occurs. Nvramtool
+is included in libreboot, and can be used to enable or disable this
+behaviour.
+
+You need to write changes in a libreboot rom image, and flash it, in order
+to apply them. You can either use a pre-compiled rom image, or create an image
+from the current one in your computer. See here
+<https://libreboot.org/docs/gnulinux/grub_cbfs.html#get-the-rom-image> for
+more information on how to do that.
+
+Once you have a libreboot rom image, say 'libreboot.rom', you can write
+changes on the image with the following commands.
+
+Disable or enable beeps when removing/adding the charger:
+
+ $ sudo ./nvramtool -C libreboot.rom -w power_management_beeps=Enable
+ $ sudo ./nvramtool -C libreboot.rom -w power_management_beeps=Disable
+
+Disable or enable beeps when battery is low:
+
+ $ sudo ./nvramtool -C libreboot.rom -w low_battery_beep=Enable
+ $ sudo ./nvramtool -C libreboot.rom -w low_battery_beep=Disable
+
+You can check that the parameters are set in the image with :
+
+ $ sudo ./nvramtool -C libreboot.rom -a
+
+Finally, you need to flash the rom with this new image. See here
+<https://libreboot.org/docs/gnulinux/grub_cbfs.html#with-re-flashing-the-rom>
+for a detailed explanation.
+
+Get EDID: Find out the name (model) of your LCD panel
+=====================================================
+
+Get the panel name:
+
+ sudo get-edid | strings
+
+Or look in `/sys/class/drm/card0-LVDS-1/edid`
+
+Alternatively you can use i2cdump. In Debian and Devuan, this is in the
+package i2c-tools.
+
+ $ sudo modprobe i2c-dev
+ $ sudo i2cdump -y 5 0x50 (you might have to change the value for
+
+-y)
+
+ $ 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.
+
+e1000e driver trouble shooting (Intel NICs)
+===========================================
+
+Example error, ¿may happen on weird and complex routing schemes(citation
+needed for cause):
+
+ e1000e 0000:00:19.0 enp0s25: Detected Hardware Unit Hang
+
+Possible workaround, tested by Nazara: Disable C-STATES.
+
+*NOTE: this also disables power management, because disabling C-States
+means that your CPU will now be running at full capacity (and therefore
+using more power) non-stop, which will drain battery life if this is a
+laptop. If power usage is a concern, then you should not use this.
+(we're also not sure whether this workaround is appropriate)*
+
+To disable c-states, do this in GNU+Linux:
+
+ for i in /sys/devices/system/cpu/cpu/cpuidle/state/disable;
+ do
+ echo 1 > $i;
+ done
+
+You can reproduce this issue more easily by sending lots of traffic
+across subnets on the same interface (NIC).
+
+More information, including logs, can be found on [this
+page](https://notabug.org/libreboot/libreboot/issues/23).
+
+USB keyboard wakeup on GM45 laptops
+===================================
+
+Look at resources/scripts/helpers/misc/libreboot\_usb\_bugfix
+
+Put this script in /etc/init.d/ on debian-based systems.
+
+Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>\
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License Version 1.3 or any later
+version published by the Free Software Foundation
+with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts.
+A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md)