diff options
author | Libreboot Contributor <contributor@libreboot.org> | 2020-03-18 17:20:14 +0100 |
---|---|---|
committer | Libreboot Contributor <contributor@libreboot.org> | 2020-03-18 17:20:27 +0100 |
commit | 0f6ea1c9e0a25a9b7546f96f27cef8841f0d09b5 (patch) | |
tree | a28b9403123dd6204eb2dd8cb44eada12c169f4b /i18n/fr_FR/docs/misc | |
parent | 6e5bdd1271059a9c61c80b21001fd3d14ff25045 (diff) | |
download | librebootfr-0f6ea1c9e0a25a9b7546f96f27cef8841f0d09b5.tar.gz librebootfr-0f6ea1c9e0a25a9b7546f96f27cef8841f0d09b5.zip |
Creation of i18n folder containing translations of the libreboot project. Added french one, not finished.
Diffstat (limited to 'i18n/fr_FR/docs/misc')
-rw-r--r-- | i18n/fr_FR/docs/misc/bbb_ehci.md | 360 | ||||
-rw-r--r-- | i18n/fr_FR/docs/misc/codenames.md | 116 | ||||
-rw-r--r-- | i18n/fr_FR/docs/misc/index.md | 307 |
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 <your_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 <your_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) |