From 67190214aa92c7bd6bfaa4dedfaf074acb3e5c69 Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Sat, 07 Nov 2015 00:03:07 -0500 Subject: reorganize docs to build building html sources easier --- (limited to 'docs/src/misc') diff --git a/docs/src/misc/index.texi b/docs/src/misc/index.texi new file mode 100644 index 0000000..75d6d7f --- /dev/null +++ b/docs/src/misc/index.texi @@ -0,0 +1,156 @@ +\input texinfo +@documentencoding UTF-8 + +@ifnottex +@paragraphindent 0 +@end ifnottex +@titlepage +@title Miscellaneous +@end titlepage + +@node Top +@top Miscellaneous + +@menu +* Miscellaneous:: +* High Pitched hining Noise on Idle ho to remove in Trisquel 7:: +* High Pitched hining Noise on Idle ho to remove in Parabola:: +* X60/T60 Serial port - ho to use for dock oners:: +* Poer Management Beeps on Thinkpads:: +* Get EDID Find out the name model of your LCD panel:: +@end menu + +@node Miscellaneous +@chapter Miscellaneous +@anchor{#miscellaneous} +Or @uref{../index.html,Back to main index}. + +@itemize +@item +@ref{#trisquel7_poertop,High Pitched hining Noise on Idle (ho to remove in Trisquel 7)} +@item +@ref{#high_pitch_parabola,High Pitched hining Noise on Idle (ho to remove in Parabola)} +@item +@ref{#serial,X60/T60: Serial port - ho to use (for dock oners)} +@item +@ref{#poerbeeps,Poer Management Beeps on Thinkpads} +@item +@uref{patch.html,Using diff and patch} +@item +@ref{#get_edid_panelname,Get EDID: Find out the name (model) of your LCD panel} +@end itemize + +@node High Pitched hining Noise on Idle ho to remove in Trisquel 7 +@chapter High Pitched hining Noise on Idle (ho to remove in Trisquel 7) +@anchor{#high-pitched-hining-noise-on-idle-ho-to-remove-in-trisquel-7} +@menu +* Start poertop automatically at boot time:: +@end menu + +@node Start poertop automatically at boot time +@section Start poertop automatically at boot time +@anchor{#start-poertop-automatically-at-boot-time} +Included ith libreboot is a script called 'poertop.trisquel7'. Run this as root and it ill setup poertop to run ith --auto-tune at boot time. Load the file in your text editor to see ho it does that. + +$ @strong{sudo ./resources/scripts/misc/poertop.trisquel7} + +Might ant to run ith --calibrate first + +If poertop doesn't ork, another ay (reduces battery life slightly) is to add @emph{processor.max_cstate=2} to the @emph{linux} line in grub.cfg, using @uref{../gnulinux/grub_cbfs.html,this guide}. + +@ref{#pagetop,Back to top of page} + +@node High Pitched hining Noise on Idle ho to remove in Parabola +@chapter High Pitched hining Noise on Idle (ho to remove in Parabola) +@anchor{#high-pitched-hining-noise-on-idle-ho-to-remove-in-parabola} +The folloing removes most of the noise. It reduces hat is a high frequency hine (that not everyone can hear) to a slight buzz (hich 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 toards that. Also, in some instances you ill need to run 'sudo poertop --auto-tune' again. This needs to be implemented properly in coreboot itself! + +On the X60 ith coreboot or libreboot, there is a high pitched sound hen idle. So far e have use processor.max_cstate=2 or idle=halt in GRUB. These consume poer. Stop using them! + +Be root@* @strong{$ su -} + +Installed poertop:@* @strong{# pacman -S poertop} + +and added the folloing to /etc/systemd/system/poertop.service : + +@verbatim +[Unit] +Description=Poertop tunings + +[Service] +Type=oneshot +RemainAfterExit=no +ExecStart=/usr/bin/poertop --auto-tune +# "poertop --auto-tune" still needs a terminal for some reason. Possibly a bug? +Environment="TERM=xterm" + +[Install] +antedBy=multi-user.target +@end verbatim + +Finally, as root do that:@* @strong{# systemctl enable poertop}@* @strong{# systemctl start poertop} + +The next time you boot the system, the buzz ill be gone. + +Might ant to run ith --calibrate first + +If poertop doesn't ork, another ay (reduces battery life slightly) is to add @emph{processor.max_cstate=2} to the @emph{linux} line in grub.cfg, using @uref{../gnulinux/grub_cbfs.html,this guide}. + +@ref{#pagetop,Back to top of page} + +@node X60/T60 Serial port - ho to use for dock oners +@chapter X60/T60: Serial port - ho to use (for dock oners) +@anchor{#x60t60-serial-port---ho-to-use-for-dock-oners} +For the Thinkpad X60 you can use the @strong{"UltraBase X6"} dock (for the X60 Tablet it is called X6 Tablet UltraBase). For the ThinkPad T60, you can use the @strong{"Advanced Mini Dock"}. + +If you are using one of the ROM images ith '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):@* @strong{$ sudo screen /dev/ttyUSB0 115200} + +Ho 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 ill see console output from libreboot. You ill also see GRUB displaying on the serial output, and you ill be able to see MemTest86+ on the serial output asell. You can also configure your distro so that a terminal (TTY) is accessible from the serial console. + +The folloing guide is for Ubuntu, and can be folloed for Trisquel 6.0 hich is based on Ubuntu 12.04 (should also ork in Trisquel 7, based on Ubuntu 14.04) to enable a serial console using GeTTY:@* @uref{https://help.ubuntu.com/community/SerialConsoleHoto,https://help.ubuntu.com/community/SerialConsoleHoto} + +Note: part of the tutorial above requires changing your grub.cfg. Just change the @strong{linux} line to add instructions for enabling getty. See @uref{../gnulinux/grub_cbfs.html,../gnulinux/grub_cbfs.html}. + +@ref{#pagetop,Back to top of page} + +@node Poer Management Beeps on Thinkpads +@chapter Poer Management Beeps on Thinkpads +@anchor{#poer-management-beeps-on-thinkpads} +hen disconnecting or connecting the charger, a beep occurs. hen the battery goes to a critically lo charge level, a beep occurs. Nvramtool is included in libreboot, and can be used to enable or disable this behaviour. + +Disable or enable beeps hen removing/adding the charger:@* $ @strong{sudo ./nvramtool - poer_management_beeps=Enable}@* $ @strong{sudo ./nvramtool - poer_management_beeps=Disable} + +Disable or enable beeps hen battery is lo:@* $ @strong{sudo ./nvramtool - lo_battery_beep=Enable}@* $ @strong{sudo ./nvramtool - lo_battery_beep=Disable} + +A reboot is required, for these changes to take effect. + +@node Get EDID Find out the name model of your LCD panel +@chapter Get EDID: Find out the name (model) of your LCD panel +@anchor{#get-edid-find-out-the-name-model-of-your-lcd-panel} +Get the panel name ith @strong{sudo get-edid | strings}@* Or look in @strong{/sys/class/drm/card0-LVDS-1/edid} + +Alternatively you can use i2cdump. In Trisquel, this is in the package i2c-tools.@* $ @strong{sudo modprobe i2c-dev}@* $ @strong{sudo i2cdump -y 5 0x50} (you might have to change the value for -y)@* $ @strong{sudo rmmod i2c-dev}@* You'll see the panel name in the output (from the EDID dump). + +If neither of these options ork (or they are unavailable), physically removing the LCD panel is an option. Usually, there ill be information printed on the back. + +@ref{#pagetop,Back to top of page.} + +Copyright © 2014, 2015 Francis Roe @* 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 Softare Foundation; ith no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found at @uref{../resources/licenses/gfdl-1.3.txt,gfdl-1.3.txt} + +Updated versions of the license (hen available) can be found at @uref{https://.gnu.org/licenses/licenses.html,https://.gnu.org/licenses/licenses.html} + +UNLESS OTHERISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR ARRANTIES OF ANY KIND CONCERNING THE LICENSED MATERIAL, HETHER EXPRESS, IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, ITHOUT LIMITATION, ARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, HETHER OR NOT KNON OR DISCOVERABLE. HERE DISCLAIMERS OF ARRANTIES ARE NOT ALLOED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT ILL THE LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY (INCLUDING, ITHOUT LIMITATION, NEGLIGENCE) OR OTHERISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR DAMAGES. HERE A LIMITATION OF LIABILITY IS NOT ALLOED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of arranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and aiver of all liability. + +@bye diff --git a/docs/src/misc/patch.texi b/docs/src/misc/patch.texi new file mode 100644 index 0000000..fad6774 --- /dev/null +++ b/docs/src/misc/patch.texi @@ -0,0 +1,97 @@ +\input texinfo +@documentencoding UTF-8 + +@ifnottex +@paragraphindent 0 +@end ifnottex +@titlepage +@title Libreboot documentation: using diff and patch +@end titlepage + +@node Top +@top Libreboot documentation: using diff and patch + +@menu +* Diff and patch:: +* Apply a patch:: +* Create a patch with diff:: +* git diff:: +* git apply:: +@end menu + +@node Diff and patch +@chapter Diff and patch +@anchor{#diff-and-patch} +This is just a quick guide for reference, use 'man' to know more. + +@uref{index.html,Back to index} + +@node Apply a patch +@chapter Apply a patch +@anchor{#apply-a-patch} +To apply a patch to a single file, do that in it's directory:@* @strong{$ patch < foo.patch} + +Assuming that the patch is distributed in unified format identifying the file the patch should be applied to, the above will work. Otherwise:@* @strong{$ patch foo.txt < bar.patch} + +You can apply a patch to an entire directory, but note the "p level". What this means is that inside patch files will be the files that you intend to patch, identified by path names that might be different when the files ane located on your own computer instead of on the computer where the patch was created. 'p' level instructs the 'patch' utility to ignore parts of the path name to identify the files correctly. Usually a p level of 1 will work, so you would use:@* @strong{$ patch -p1 < baz.patch} + +Change to the top level directory before running this. If a patch level of 1 cannot identify the files to patch, then inspect the patch file for file names. For example:@* @strong{/home/user/do/not/panic/yet.c} + +and you are working in a directory that contains panic/yet.c, use:@* @strong{$ patch -p5 < baz.patch} + +You usually count one up for each path separator (forward slash) removed from the beginning of the path, until you are left with a path that exists in the current working directory. The count is the p level. + +Removing a patch using the -R flag@* @strong{$ patch -p5 -R < baz.patch} + +@ref{#pagetop,Back to top of page.} + +@node Create a patch with diff +@chapter Create a patch with diff +@anchor{#create-a-patch-with-diff} +Diff can create a patch for a single file:@* @strong{$ diff -u original.c new.c > original.patch} + +For diff'ing a source tree:@* @strong{$ cp -R original new} + +Do whatever you want in new/ and then diff it:@* @strong{$ diff -rupN original/ new/ > original.patch} + +@ref{#pagetop,Back to top of page.} + +@node git diff +@chapter git diff +@anchor{#git-diff} +git is something special. + +Note: this won't show new files created. + +Just make whatever changes you want to a git clone and then:@* @strong{$ git diff > patch.git} + +Note the git revision that you did this with:@* @strong{$ git log} + +Alternatively (better yet), commit your changes and then use:@* $ @strong{git format-patch -N}@* Replace N with the number of commits that you want to show. + +@ref{#pagetop,Back to top of page.} + +@node git apply +@chapter git apply +@anchor{#git-apply} +it really is. + +Now to apply that patch in the future, just git clone it again and do with the git revision you found from above:@* @strong{$ git reset --hard REVISIONNUMBER} + +Now put patch.git in the git clone directory and do:@* @strong{$ git apply patch.git} + +If you use a patch from git format-patch, then use @strong{git am patch.git} instead of @strong{git apply patch.git}. git-am will re-create the commits aswell, instead of just applying the patch. + +@ref{#pagetop,Back to top of page.} + +Copyright © 2014, 2015 Francis Rowe @* 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 the license can be found at @uref{../resources/licenses/gfdl-1.3.txt,gfdl-1.3.txt} + +Updated versions of the license (when available) can be found at @uref{https://www.gnu.org/licenses/licenses.html,https://www.gnu.org/licenses/licenses.html} + +UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + +TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +@bye -- cgit v0.9.1