diff options
-rw-r--r-- | docs/gnulinux/grub_cbfs.md | 2 | ||||
-rw-r--r-- | docs/hardware/mac_address.md | 107 | ||||
-rw-r--r-- | docs/install/r400_external.md | 10 | ||||
-rw-r--r-- | docs/install/t400_external.md | 10 | ||||
-rw-r--r-- | docs/install/t500_external.md | 10 | ||||
-rw-r--r-- | docs/install/x200_external.md | 11 | ||||
-rw-r--r-- | projects/cros-ec/configs/nyan/revision | 2 | ||||
-rw-r--r-- | projects/cros-ec/configs/veyron/revision | 2 | ||||
-rw-r--r-- | projects/cros-ec/patches/veyron/0005-Don-t-include-missing-and-unnecessary-math-header.patch | 29 | ||||
-rw-r--r-- | projects/cros-ec/patches/veyron/0005-cortex-m0-Use-assembly-exception-handlers-for-task-s.patch (renamed from projects/cros-ec/patches/veyron/0006-cortex-m0-Use-assembly-exception-handlers-for-task-s.patch) | 0 | ||||
-rw-r--r-- | www/faq.md | 81 |
11 files changed, 195 insertions, 69 deletions
diff --git a/docs/gnulinux/grub_cbfs.md b/docs/gnulinux/grub_cbfs.md index 2e68cb0b..fc46180c 100644 --- a/docs/gnulinux/grub_cbfs.md +++ b/docs/gnulinux/grub_cbfs.md @@ -262,7 +262,7 @@ Then, add the new one to the ROM: $ ./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t raw -#### Change MAC address in ROM +#### Change MAC address in ROM {#changeMAC} The last step before flashing the new ROM, is to change the MAC address inside it. Every libreboot ROM image contains a generic MAC address; you want to make sure that your ROM image contains yours, so as to not create any problems on your network diff --git a/docs/hardware/mac_address.md b/docs/hardware/mac_address.md new file mode 100644 index 00000000..0a0d3621 --- /dev/null +++ b/docs/hardware/mac_address.md @@ -0,0 +1,107 @@ +--- +title: Changing the MAC address +... + +Introduction (GM45+e1000) +========================= + +This section is applicable to all Libreboot-supported laptops with the +mobile 4 series chipset (as shown in `$ lspci`) +that use the e1000 ethernet controller (e.g. T400, X200). +The R500 is an exception to this as it does not use the built-in e1000. + +On all these laptops, the +[MAC address](https://en.wikipedia.org/wiki/MAC_address) +for the built-in gigabit ethernet controller is stored inside the flash chip, +along with Libreboot and other configuration data. Therefore, installing +Libreboot will overwrite it. + +Thus, for these laptops, prebuilt Libreboot already contains a generic +MAC address in the configuration section. This address is `00:f5:f0:40:71:fe` +in builds before 2018-01-16 and `00:4c:69:62:72:65` (see the ascii character +set) afterwards. +Unless you change it, your computer will boot and use it. This can lead +to network problems if you have more than one Libreboot computer on +the same layer2 network (e.g. on the same network switch). The switch +(postman) will simply not know who to deliver to as the MAC (house) addresses +will be the same. + +To prevent these address clashes, you can either modify prebuilt Libreboot +to use an address of your own choosing or you can change the address in your +operating system's boot scripts. + +In either case, it is a good idea to write down the address that your +computer originally had. + +Obtaining the existing MAC address +================================== + +The existing MAC address may be obtained by the following methods: + +1. Run `ip link` or `ifconfig` in a terminal/console/shell; + find your ethernet device (e.g., **enpXXX** or **ethXXX**), + and look for a set of 12 colon-delimited + [hexadecimal digits](https://en.wikipedia.org/wiki/Hexadecimal). + For example: `00:f3:f0:45:91:fe`. + + * `$ ip link` + + `... link/ether ??:??:??:??:??:?? brd ...` + + * Alternatively: + + `$ ifconfig` + + `... ether ??:??:??:??:??:?? txqueuelen ...` + + +2. Otherwise you can read the white label that is often found on the + motherboard under the memory sticks: + ![](../install/images/t400/macaddress1.jpg) + +3. The MAC address is usually listed on the laptop chassis as well. This one + will be incorrect if the motherboard was changed and the stickers were not + updated. + +Changing the MAC address in the operating system +================================================ + +There are three portable ways of doing so: + +1. Using the new iproute2 package: + + `# ip link set <interface> down` + + `# ip link set dev <interface> address 00:4c:69:62:72:65` + + `# ip link set <interface> up` + + +2. Using the old `ifconfig` command: + + `# ifconfig <interface> hw ether 00:4c:69:62:72:65` + + +3. Using the macchanger package. + +You can use use of these three methods in your operating system's +init scripts or you can use your operating system's own networking +configuration. Refer to your operating system's documentation for +how to do this. + +Changing the MAC address in Libreboot +===================================== + +See [here](../gnulinux/grub_cbfs.md#changeMAC). + + + +Copyright © 2017 Fedja Beader <fedja@protonmail.ch> + +Copyright © 2014, 2015 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) diff --git a/docs/install/r400_external.md b/docs/install/r400_external.md index 4036c761..8f9dd1ff 100644 --- a/docs/install/r400_external.md +++ b/docs/install/r400_external.md @@ -69,15 +69,7 @@ Use this to find out: MAC address {#macaddress} =========== -On the R400, the MAC address for the onboard gigabit ethernet chipset is -stored inside the flash chip, along with other configuration data. - -Keep a note of the MAC address before disassembly; this is very -important, because you will need to insert this into the libreboot ROM -image before flashing it. It will be written in one of these locations: - -![](images/t400/macaddress0.jpg) ![](images/t400/macaddress1.jpg) -![](images/x200/disassembly/0001.jpg) +Refer to [mac\_address.md](../hardware/mac_address.md). Initial BBB configuration ========================= diff --git a/docs/install/t400_external.md b/docs/install/t400_external.md index 672ea46e..d377d4c0 100644 --- a/docs/install/t400_external.md +++ b/docs/install/t400_external.md @@ -70,15 +70,7 @@ Use this to find out: MAC address {#macaddress} =========== -On the T400, the MAC address for the onboard gigabit ethernet chipset is -stored inside the flash chip, along with other configuration data. - -Keep a note of the MAC address before disassembly; this is very -important, because you will need to insert this into the libreboot ROM -image before flashing it. It will be written in one of these locations: - -![](images/t400/macaddress0.jpg) ![](images/t400/macaddress1.jpg) -![](images/x200/disassembly/0001.jpg) +Refer to [mac\_address.md](../hardware/mac_address.md). Initial BBB configuration ========================= diff --git a/docs/install/t500_external.md b/docs/install/t500_external.md index 9e114bca..2a29d8ed 100644 --- a/docs/install/t500_external.md +++ b/docs/install/t500_external.md @@ -73,15 +73,7 @@ Use this to find out: MAC address {#macaddress} =========== -On the T500, the MAC address for the onboard gigabit ethernet chipset is -stored inside the flash chip, along with other configuration data. - -Keep a note of the MAC address before disassembly; this is very -important, because you will need to insert this into the libreboot ROM -image before flashing it. It will be written in one of these locations: - -![](images/t400/macaddress0.jpg) ![](images/t400/macaddress1.jpg) -![](images/x200/disassembly/0001.jpg) +Refer to [mac\_address.md](../hardware/mac_address.md). Initial BBB configuration ========================= diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index 83a5c23f..c7330ce9 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -28,16 +28,7 @@ supported; see the [hardware](../hardware/x200.html#x200s) page. MAC address =========== -On the X200/X200S/X200T, the MAC address for the onboard gigabit -ethernet chipset is stored inside the flash chip, along with other -configuration data. - -Keep a note of the MAC address before disassembly; this is very -important, because you will need to insert this into the libreboot ROM -image before flashing it. It will be written in one of these locations: - -![](images/x200/disassembly/0002.jpg) -![](images/x200/disassembly/0001.jpg) +Refer to [mac\_address.md](../hardware/mac_address.md). Initial BBB configuration ========================= diff --git a/projects/cros-ec/configs/nyan/revision b/projects/cros-ec/configs/nyan/revision index 6ce6b84b..c5b2d348 100644 --- a/projects/cros-ec/configs/nyan/revision +++ b/projects/cros-ec/configs/nyan/revision @@ -1 +1 @@ -origin/release-R65-10323.B +origin/firmware-nyan-5771.B diff --git a/projects/cros-ec/configs/veyron/revision b/projects/cros-ec/configs/veyron/revision index 6ce6b84b..6c728396 100644 --- a/projects/cros-ec/configs/veyron/revision +++ b/projects/cros-ec/configs/veyron/revision @@ -1 +1 @@ -origin/release-R65-10323.B +origin/firmware-veyron-6588.B diff --git a/projects/cros-ec/patches/veyron/0005-Don-t-include-missing-and-unnecessary-math-header.patch b/projects/cros-ec/patches/veyron/0005-Don-t-include-missing-and-unnecessary-math-header.patch deleted file mode 100644 index 0a099213..00000000 --- a/projects/cros-ec/patches/veyron/0005-Don-t-include-missing-and-unnecessary-math-header.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 913b2f1265bd7f3ebe6cf4cba92c20c5a423a6c3 Mon Sep 17 00:00:00 2001 -From: Paul Kocialkowski <contact@paulk.fr> -Date: Tue, 2 Aug 2016 12:05:55 +0200 -Subject: [PATCH 5/6] Don't include missing and unnecessary math header - -This removes the inclusion of an unnecessary math header that is neither -found nor necessary for non-cortex-m ECs. - -Change-Id: I56a04178dadedb76f841504fa645e2d43900d25f -Signed-off-by: Paul Kocialkowski <contact@paulk.fr> ---- - common/math_util.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/common/math_util.c b/common/math_util.c -index 120d13d..34a267d 100644 ---- a/common/math_util.c -+++ b/common/math_util.c -@@ -6,7 +6,6 @@ - /* Common math functions. */ - - #include "common.h" --#include "math.h" - #include "math_util.h" - #include "util.h" - --- -2.9.0 - diff --git a/projects/cros-ec/patches/veyron/0006-cortex-m0-Use-assembly-exception-handlers-for-task-s.patch b/projects/cros-ec/patches/veyron/0005-cortex-m0-Use-assembly-exception-handlers-for-task-s.patch index f0175825..f0175825 100644 --- a/projects/cros-ec/patches/veyron/0006-cortex-m0-Use-assembly-exception-handlers-for-task-s.patch +++ b/projects/cros-ec/patches/veyron/0005-cortex-m0-Use-assembly-exception-handlers-for-task-s.patch @@ -149,6 +149,87 @@ cryptomount command from `for` loop in libreboot's It could be fixed in upstream grub by contributing patch that would add quiet flag to it. +How to save kernel panic logs on thinkpad laptops? +-------------------------------------------------- + +The easiest method of doing so is by using the kernel's netconsole +and reproducing the panic. Netconsole requires two machines, the one that is +panicky (source) and the one that will receive crash logs (target). The +source has to be connected with an ethernet cable and the target has to be +reachable at the time of the panic. To set this system up, execute the +following commands as root on the source (`source#`) and normal user on +the target (`target$`): + +1. Start a listener server on the target machine (netcat works well): + + `target$ nc -u -l -p 6666` + +2. Mount configfs (only once per boot, you can check if it is already mounted + with `mount | grep /sys/kernel/config`. This will return no output + if it is not). + + `source# modprobe configfs` + + `source# mkdir -p /sys/kernel/config` + + `source# mount none -t configfs /sys/kernel/config` + +3. find source's ethernet interface name, it should be of the form `enp*` or + `eth*`, see `ip address` or `ifconfig` output. + + `source# iface="enp0s29f8u1"` change this + + Fill the target machine's IPv4 address here: + + `source# tgtip="192.168.1.2"` change this + + +3. Create netconsole logging target on the source machine: + + `source# modprobe netconsole` + + `source# cd /sys/kernel/config/netconsole` + + `source# mkdir target1; cd target1` + + `source# srcip=$(ip -4 addr show dev "$iface" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')` + + `source# echo "$srcip" > local_ip` + + `source# echo "$tgtip" > remote_ip` + + `source# echo "$iface" > dev_name` + + `source# arping -I "$iface" "$tgtip" -f | grep -o '..:..:..:..:..:..' > remote_mac` + + `source# echo 1 > enabled` + +4. Change console loglevel to debugging: + + `source# dmesg -n debug` + +5. Test if the logging works by e.g. inserting or removing an USB + device on the source. There should be a few lines appearing in the + terminal, in which you started netcat (nc), on the target host. + +6. Try to reproduce the kernel panic. + +Machine check exceptions on some Montevina (Penryn CPU) laptops +--------------------------------------------------------------- + +Some GM45 laptops have been freezing or experiencing a kernel panic +(blinking caps lock LED and totaly unresponsive machine, sometimes followed +by an automatic reboot within 30 seconds). +We do not know what the problem(s) is(are), but a CPU microcode +update in some cases prevents this from happening again. +See the following bug reports for more info: + +- [T400 Machine check: Processor context corrupt](https://notabug.org/libreboot/libreboot/issues/493) +- [X200 Machine check: Processor context corrupt](https://notabug.org/libreboot/libreboot/issues/289) + +- [Unrelated, RAM incompatibility and suspend-to-ram issues on X200](https://libreboot.org/docs/hardware/x200.html#ram_s3_microcode) + + Hardware compatibility ====================== |