<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cheloide</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cheloide"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Cheloide"/>
	<updated>2026-06-09T23:23:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid&amp;diff=59201</id>
		<title>Problem with e1000: EEPROM Checksum Is Not Valid</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid&amp;diff=59201"/>
		<updated>2019-08-15T04:00:25Z</updated>

		<summary type="html">&lt;p&gt;Cheloide: /* Using Preboot tool on linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Description ==&lt;br /&gt;
On certain ThinkPads, [[e1000]] driver for [[Intel Gigabit Ethernet (10/100/1000)]] fails to load with the following error message in /var/log/messages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e1000: 0000:02:00.0: e1000_probe: The EEPROM Checksum Is Not Valid&lt;br /&gt;
e1000: probe of 0000:02:00.0 failed with error -5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is caused by a power savings feature obstructing normal operation, and causes the first bytes read from the EEPROM to be corrupt, resulting in a random or invalid MAC address (but no other data corruption). The EEPROM checksum test traps the problem and the driver refuses to load.&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
Try to reload the e1000 module until the ethernet is pluged in, and the hardware have a chance to detect a link.&lt;br /&gt;
&lt;br /&gt;
=== Use e1000e---Kernel Patch ===&lt;br /&gt;
Auke Kok published two patches in October 2007 that help solve both the &amp;quot;corrupted&amp;quot; EEPROM read and bad latency.&lt;br /&gt;
One of the patches moves many network cards over to the e1000e (e1000 for PCI-Express) module. The second disables some PCIe power management features that were the cause for the bad EEPROM read and some stability issues.&lt;br /&gt;
 [http://kerneltrap.org/mailarchive/linux-netdev/2007/10/31/374579 &amp;lt;nowiki&amp;gt;[PATCH 3/4] e1000/e1000e: Move PCI-Express device IDs over to e1000e&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
 [http://kerneltrap.org/mailarchive/linux-netdev/2007/10/31/374573 &amp;lt;nowiki&amp;gt;[PATCH 2/4] e1000e: Disable L1 ASPM power savings for 82573 mobile variants&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
Refer to [http://www.linuxhq.com/patch-howto.html LinuxHQ] on how to apply kernel patches.&lt;br /&gt;
&lt;br /&gt;
=== From Lenovo ===&lt;br /&gt;
Lenovo provides a [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-67166 script] that uses 'ethtool' command to update the card's settings. They say it is for SLED 10 but the Linux flavor shouldn't really matter. For some users, neither of the circumventions listed below help, but this script does!&lt;br /&gt;
&lt;br /&gt;
=== Via module parameter ===&lt;br /&gt;
&lt;br /&gt;
In recent kernels (at least with 2.6.22, maybe also in 2.6.21) there is a kernel module option to make the module ignore the error.&lt;br /&gt;
&lt;br /&gt;
Load the module like this &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe e1000 eeprom_bad_csum_allow=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might also apply that parameter via modprobe.d or if you are using Debian/Ubuntu as append-line in your bootloader: e1000.eeprom_bad_csum_allow=1&lt;br /&gt;
&lt;br /&gt;
=== From Mat's Blog ===&lt;br /&gt;
The fundamental solution is explained at [http://www.matinfo.ch/blog/archive/2007/01/26/intel-nic-pxe-e05-error.html Mat's Blog]&lt;br /&gt;
which directs the reader to Intel's site to download PROBOOT.EXE.&lt;br /&gt;
&lt;br /&gt;
'''DO NOT USE THIS TOOL ON THINKPADS.''' The IBAUTIL.EXE tool that it contains is designed only to work with discrete ethernet parts that are on PCI/PCIe cards. It is not at all intended for use with laptop parts, although it is not sufficiently careful to refuse to run on such hardware. Improper use of this tool can leave your LAN firmware corrupted to the point that it will not even enumerate on the PCI bus and you will probably have to have your laptop repaired to restore the LAN functionality.&lt;br /&gt;
See http://www.mail-archive.com/e1000-devel@lists.sourceforge.net/msg00398.html for an Intel Linux driver employee's comments on this.&lt;br /&gt;
'''&lt;br /&gt;
=== Comment: ===&lt;br /&gt;
'''&lt;br /&gt;
I used PROBOOT.EXE Version 15.2 (file version 4.0.100.1124) on Bios Version 2.26 (79ETE6WW) for T60 Type 2007-53G with success.&lt;br /&gt;
The copied instruction is:&lt;br /&gt;
&amp;lt;br&amp;gt; “ Download PROBOOT.EXE from Intel. Get the first one from the list - the &lt;br /&gt;
one without Network adapter, it says only &amp;quot;Intel® Boot Agent PROBOOT.exe &lt;br /&gt;
version: 11.2&amp;quot;, install that - it will create a folder with some files - &lt;br /&gt;
put these on a bootable floppy (or two) or a bootable CD. Boot to DOS with &lt;br /&gt;
the floppy or CD and run &amp;quot;IBAUtil.exe -DEFCFG&amp;quot; that will reset the &lt;br /&gt;
configuration and all should be OK „&amp;lt;br&amp;gt;&lt;br /&gt;
I used an old bootable W98 to start the computer and a second CD with the files above. It is only working under DOS!&lt;br /&gt;
&lt;br /&gt;
=== Using Preboot tool on linux ===&lt;br /&gt;
&lt;br /&gt;
{{WARN|Try at your own risk!}}&lt;br /&gt;
This has been tested on a {{T60}} running 64bit Debian buster displaying the error '''e1000e the nvm checksum is not valid'''&lt;br /&gt;
&lt;br /&gt;
 1. Download [https://downloadcenter.intel.com/download/19186 Intel® Ethernet Connections Boot Utility, Preboot Images, and EFI Drivers '''(For Linux)''']&lt;br /&gt;
 2. On a Terminal Go to the download directory {{cmduser|cd /path/to/Preboot.tar.gz}}&lt;br /&gt;
 3. Create a folder for the files {{cmduser|mkdir Preboot}}&lt;br /&gt;
 4. untar the file {{cmduser|tar -xvzf Preboot.tar.gz -C Preboot}}&lt;br /&gt;
&lt;br /&gt;
if you're running a 32Bit installation of linux, follow this instructions (This was not tested)&lt;br /&gt;
&lt;br /&gt;
 5. cd to BootUtil folder for your architecture {{cmduser|cd Preboot/APPS/BootUtil/Linux32/}}&lt;br /&gt;
 6. Give execution permissions to bootutil32e {{cmduser|chmod +x bootutil32}}&lt;br /&gt;
 7. Run {{cmduser|sudo ./bootutil32 -NIC 1 -defcfg }}&lt;br /&gt;
&lt;br /&gt;
if you're running a 64Bit installation of linux, follow this instructions&lt;br /&gt;
 5. cd to BootUtil folder for your architecture {{cmduser|cd Preboot/APPS/BootUtil/Linux_x64}}&lt;br /&gt;
 6. Give execution permissions to bootutil64e {{cmduser|chmod +x bootutil64e}}&lt;br /&gt;
 7. Run {{cmduser|sudo ./bootutil64e -NIC 1 -defcfg }}&lt;br /&gt;
&lt;br /&gt;
[https://superuser.com/a/1170175/449434 Source (superuser.com)]&lt;br /&gt;
&lt;br /&gt;
== Circumvention ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade your BIOS&lt;br /&gt;
&lt;br /&gt;
Lenovo has published newer BIOS revisions that appear to fix the issue for some users. The BIOS upgrade turns off &amp;quot;Deep smart power down&amp;quot; which has been known to cause issues at initialization time (the driver can re-enable the issue later if you desire, the feature works correctly then).&lt;br /&gt;
&lt;br /&gt;
* Insert a cable&lt;br /&gt;
&lt;br /&gt;
Inserting a linked network cable bypasses the problem.&lt;br /&gt;
&lt;br /&gt;
* Take the checksum twice&lt;br /&gt;
&lt;br /&gt;
This [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1474679&amp;amp;group_id=42302&amp;amp;atid=447449 bug report] describes a fix -- take the checksum twice.  First time will report a bad checksum, second will work (the problem seems to be triggered by some power-saving technology).  This requires a tweak to the driver source and a rebuild of your kernel.  This is much better than a previous &amp;quot;fix&amp;quot; published here that disabled checksum checking entirely.&lt;br /&gt;
&lt;br /&gt;
I updated the patch above to 2.6.22:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff -urN linux-2.6.22-suspend2-r1.orig/drivers/net/e1000/e1000_main.c linux-2.6.22-suspend2-r1/drivers/net/e1000/e1000_main.c&lt;br /&gt;
--- linux-2.6.22-suspend2-r1.orig/drivers/net/e1000/e1000_main.c        2007-08-17 23:32:04.000000000 +0200&lt;br /&gt;
+++ linux-2.6.22-suspend2-r1/drivers/net/e1000/e1000_main.c     2007-09-05 16:39:11.000000000 +0200&lt;br /&gt;
@@ -999,16 +999,18 @@&lt;br /&gt;
                goto err_eeprom;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
-       /* before reading the EEPROM, reset the controller to&lt;br /&gt;
-        * put the device in a known good starting state */&lt;br /&gt;
-&lt;br /&gt;
-       e1000_reset_hw(&amp;amp;adapter-&amp;gt;hw);&lt;br /&gt;
-&lt;br /&gt;
-       /* make sure the EEPROM is good */&lt;br /&gt;
-&lt;br /&gt;
        if (e1000_validate_eeprom_checksum(&amp;amp;adapter-&amp;gt;hw) &amp;lt; 0) {&lt;br /&gt;
-               DPRINTK(PROBE, ERR, &amp;quot;The EEPROM Checksum Is Not Valid\n&amp;quot;);&lt;br /&gt;
-               goto err_eeprom;&lt;br /&gt;
+               /* before reading the EEPROM, reset the controller to&lt;br /&gt;
+                * put the device in a known good starting state */&lt;br /&gt;
+               &lt;br /&gt;
+               e1000_reset_hw(&amp;amp;adapter-&amp;gt;hw);&lt;br /&gt;
+&lt;br /&gt;
+               /* make sure the EEPROM is good */&lt;br /&gt;
+&lt;br /&gt;
+               if (e1000_validate_eeprom_checksum(&amp;amp;adapter-&amp;gt;hw) &amp;lt; 0) {&lt;br /&gt;
+                       DPRINTK(PROBE, ERR, &amp;quot;The EEPROM Checksum Is Not Valid\n&amp;quot;);&lt;br /&gt;
+                       goto err_eeprom;&lt;br /&gt;
+               }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        /* copy the MAC address out of the EEPROM */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[User:Ra|Ra]] 15:28, 5 September 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Remove/add kernel module&lt;br /&gt;
&lt;br /&gt;
Removing and adding the kernel module is a possible work-around. As root, run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# modprobe -r e1000&lt;br /&gt;
# modprobe e1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On some occasions, the commands have to be run twice before eth0 becomes useable.&lt;br /&gt;
On some X60s this will not work at all.&lt;br /&gt;
&lt;br /&gt;
* Disabling and re-enabling the NIC in the BIOS&lt;br /&gt;
&lt;br /&gt;
For some it fixed the issue finally, for some it helped just temporarily.&lt;br /&gt;
&lt;br /&gt;
* Hacking the kernel to carry on even if the checksum is not valid&lt;br /&gt;
&lt;br /&gt;
Although being a very ugly, hack, this works fine for me. To do that, you have to search drivers/net/e1000/e1000_main.c for the line containing the error message and then comment out the following two lines which set the error state and then jump to the error code. Although this doesn't fry the hardware for me, consider yourself warned...&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-67166 Lenovo's solution]&lt;br /&gt;
* [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1474679&amp;amp;group_id=42302&amp;amp;atid=447449 bug report] submitted for e1000 driver.&lt;br /&gt;
* Discussion at [http://forums.gentoo.org/viewtopic-t-476305-highlight-e1000.html Gentoo forums]&lt;/div&gt;</summary>
		<author><name>Cheloide</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid&amp;diff=59200</id>
		<title>Problem with e1000: EEPROM Checksum Is Not Valid</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid&amp;diff=59200"/>
		<updated>2019-08-15T03:56:04Z</updated>

		<summary type="html">&lt;p&gt;Cheloide: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Description ==&lt;br /&gt;
On certain ThinkPads, [[e1000]] driver for [[Intel Gigabit Ethernet (10/100/1000)]] fails to load with the following error message in /var/log/messages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e1000: 0000:02:00.0: e1000_probe: The EEPROM Checksum Is Not Valid&lt;br /&gt;
e1000: probe of 0000:02:00.0 failed with error -5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is caused by a power savings feature obstructing normal operation, and causes the first bytes read from the EEPROM to be corrupt, resulting in a random or invalid MAC address (but no other data corruption). The EEPROM checksum test traps the problem and the driver refuses to load.&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
Try to reload the e1000 module until the ethernet is pluged in, and the hardware have a chance to detect a link.&lt;br /&gt;
&lt;br /&gt;
=== Use e1000e---Kernel Patch ===&lt;br /&gt;
Auke Kok published two patches in October 2007 that help solve both the &amp;quot;corrupted&amp;quot; EEPROM read and bad latency.&lt;br /&gt;
One of the patches moves many network cards over to the e1000e (e1000 for PCI-Express) module. The second disables some PCIe power management features that were the cause for the bad EEPROM read and some stability issues.&lt;br /&gt;
 [http://kerneltrap.org/mailarchive/linux-netdev/2007/10/31/374579 &amp;lt;nowiki&amp;gt;[PATCH 3/4] e1000/e1000e: Move PCI-Express device IDs over to e1000e&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
 [http://kerneltrap.org/mailarchive/linux-netdev/2007/10/31/374573 &amp;lt;nowiki&amp;gt;[PATCH 2/4] e1000e: Disable L1 ASPM power savings for 82573 mobile variants&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
Refer to [http://www.linuxhq.com/patch-howto.html LinuxHQ] on how to apply kernel patches.&lt;br /&gt;
&lt;br /&gt;
=== From Lenovo ===&lt;br /&gt;
Lenovo provides a [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-67166 script] that uses 'ethtool' command to update the card's settings. They say it is for SLED 10 but the Linux flavor shouldn't really matter. For some users, neither of the circumventions listed below help, but this script does!&lt;br /&gt;
&lt;br /&gt;
=== Via module parameter ===&lt;br /&gt;
&lt;br /&gt;
In recent kernels (at least with 2.6.22, maybe also in 2.6.21) there is a kernel module option to make the module ignore the error.&lt;br /&gt;
&lt;br /&gt;
Load the module like this &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe e1000 eeprom_bad_csum_allow=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might also apply that parameter via modprobe.d or if you are using Debian/Ubuntu as append-line in your bootloader: e1000.eeprom_bad_csum_allow=1&lt;br /&gt;
&lt;br /&gt;
=== From Mat's Blog ===&lt;br /&gt;
The fundamental solution is explained at [http://www.matinfo.ch/blog/archive/2007/01/26/intel-nic-pxe-e05-error.html Mat's Blog]&lt;br /&gt;
which directs the reader to Intel's site to download PROBOOT.EXE.&lt;br /&gt;
&lt;br /&gt;
'''DO NOT USE THIS TOOL ON THINKPADS.''' The IBAUTIL.EXE tool that it contains is designed only to work with discrete ethernet parts that are on PCI/PCIe cards. It is not at all intended for use with laptop parts, although it is not sufficiently careful to refuse to run on such hardware. Improper use of this tool can leave your LAN firmware corrupted to the point that it will not even enumerate on the PCI bus and you will probably have to have your laptop repaired to restore the LAN functionality.&lt;br /&gt;
See http://www.mail-archive.com/e1000-devel@lists.sourceforge.net/msg00398.html for an Intel Linux driver employee's comments on this.&lt;br /&gt;
'''&lt;br /&gt;
=== Comment: ===&lt;br /&gt;
'''&lt;br /&gt;
I used PROBOOT.EXE Version 15.2 (file version 4.0.100.1124) on Bios Version 2.26 (79ETE6WW) for T60 Type 2007-53G with success.&lt;br /&gt;
The copied instruction is:&lt;br /&gt;
&amp;lt;br&amp;gt; “ Download PROBOOT.EXE from Intel. Get the first one from the list - the &lt;br /&gt;
one without Network adapter, it says only &amp;quot;Intel® Boot Agent PROBOOT.exe &lt;br /&gt;
version: 11.2&amp;quot;, install that - it will create a folder with some files - &lt;br /&gt;
put these on a bootable floppy (or two) or a bootable CD. Boot to DOS with &lt;br /&gt;
the floppy or CD and run &amp;quot;IBAUtil.exe -DEFCFG&amp;quot; that will reset the &lt;br /&gt;
configuration and all should be OK „&amp;lt;br&amp;gt;&lt;br /&gt;
I used an old bootable W98 to start the computer and a second CD with the files above. It is only working under DOS!&lt;br /&gt;
&lt;br /&gt;
=== Using Preboot tool on linux ===&lt;br /&gt;
&lt;br /&gt;
{{WARN|Try at your own risk!}}&lt;br /&gt;
This has been tested on a {{T60}} displaying the error '''e1000e the nvm checksum is not valid'''&lt;br /&gt;
&lt;br /&gt;
 1. Download [https://downloadcenter.intel.com/download/19186 Intel® Ethernet Connections Boot Utility, Preboot Images, and EFI Drivers '''(For Linux)''']&lt;br /&gt;
 2. On a Terminal Go to the download directory {{cmduser|cd /path/to/Preboot.tar.gz}}&lt;br /&gt;
 3. Create a folder for the files {{cmduser|mkdir Preboot}}&lt;br /&gt;
 4. untar the file {{cmduser|tar -xvzf Preboot.tar.gz -C Preboot}}&lt;br /&gt;
&lt;br /&gt;
if you're running a 32Bit installation of linux, follow this instructions&lt;br /&gt;
&lt;br /&gt;
 5. cd to BootUtil folder for your architecture {{cmduser|cd Preboot/APPS/BootUtil/Linux32/}}&lt;br /&gt;
 6. Give execution permissions to bootutil32e {{cmduser|chmod +x bootutil32}}&lt;br /&gt;
 7. Run {{cmduser|sudo ./bootutil32 -NIC&amp;amp;#61;1 -DEFAULTCONFIG }}&lt;br /&gt;
&lt;br /&gt;
if you're running a 64Bit installation of linux, follow this instructions&lt;br /&gt;
 5. cd to BootUtil folder for your architecture {{cmduser|cd Preboot/APPS/BootUtil/Linux_x64}}&lt;br /&gt;
 6. Give execution permissions to bootutil64e {{cmduser|chmod +x bootutil64e}}&lt;br /&gt;
 7. Run {{cmduser|sudo ./bootutil64e -NIC&amp;amp;#61;1 -DEFAULTCONFIG }}&lt;br /&gt;
&lt;br /&gt;
[https://superuser.com/a/1170175/449434 Source (superuser.com)]&lt;br /&gt;
&lt;br /&gt;
== Circumvention ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade your BIOS&lt;br /&gt;
&lt;br /&gt;
Lenovo has published newer BIOS revisions that appear to fix the issue for some users. The BIOS upgrade turns off &amp;quot;Deep smart power down&amp;quot; which has been known to cause issues at initialization time (the driver can re-enable the issue later if you desire, the feature works correctly then).&lt;br /&gt;
&lt;br /&gt;
* Insert a cable&lt;br /&gt;
&lt;br /&gt;
Inserting a linked network cable bypasses the problem.&lt;br /&gt;
&lt;br /&gt;
* Take the checksum twice&lt;br /&gt;
&lt;br /&gt;
This [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1474679&amp;amp;group_id=42302&amp;amp;atid=447449 bug report] describes a fix -- take the checksum twice.  First time will report a bad checksum, second will work (the problem seems to be triggered by some power-saving technology).  This requires a tweak to the driver source and a rebuild of your kernel.  This is much better than a previous &amp;quot;fix&amp;quot; published here that disabled checksum checking entirely.&lt;br /&gt;
&lt;br /&gt;
I updated the patch above to 2.6.22:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff -urN linux-2.6.22-suspend2-r1.orig/drivers/net/e1000/e1000_main.c linux-2.6.22-suspend2-r1/drivers/net/e1000/e1000_main.c&lt;br /&gt;
--- linux-2.6.22-suspend2-r1.orig/drivers/net/e1000/e1000_main.c        2007-08-17 23:32:04.000000000 +0200&lt;br /&gt;
+++ linux-2.6.22-suspend2-r1/drivers/net/e1000/e1000_main.c     2007-09-05 16:39:11.000000000 +0200&lt;br /&gt;
@@ -999,16 +999,18 @@&lt;br /&gt;
                goto err_eeprom;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
-       /* before reading the EEPROM, reset the controller to&lt;br /&gt;
-        * put the device in a known good starting state */&lt;br /&gt;
-&lt;br /&gt;
-       e1000_reset_hw(&amp;amp;adapter-&amp;gt;hw);&lt;br /&gt;
-&lt;br /&gt;
-       /* make sure the EEPROM is good */&lt;br /&gt;
-&lt;br /&gt;
        if (e1000_validate_eeprom_checksum(&amp;amp;adapter-&amp;gt;hw) &amp;lt; 0) {&lt;br /&gt;
-               DPRINTK(PROBE, ERR, &amp;quot;The EEPROM Checksum Is Not Valid\n&amp;quot;);&lt;br /&gt;
-               goto err_eeprom;&lt;br /&gt;
+               /* before reading the EEPROM, reset the controller to&lt;br /&gt;
+                * put the device in a known good starting state */&lt;br /&gt;
+               &lt;br /&gt;
+               e1000_reset_hw(&amp;amp;adapter-&amp;gt;hw);&lt;br /&gt;
+&lt;br /&gt;
+               /* make sure the EEPROM is good */&lt;br /&gt;
+&lt;br /&gt;
+               if (e1000_validate_eeprom_checksum(&amp;amp;adapter-&amp;gt;hw) &amp;lt; 0) {&lt;br /&gt;
+                       DPRINTK(PROBE, ERR, &amp;quot;The EEPROM Checksum Is Not Valid\n&amp;quot;);&lt;br /&gt;
+                       goto err_eeprom;&lt;br /&gt;
+               }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        /* copy the MAC address out of the EEPROM */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[User:Ra|Ra]] 15:28, 5 September 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Remove/add kernel module&lt;br /&gt;
&lt;br /&gt;
Removing and adding the kernel module is a possible work-around. As root, run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# modprobe -r e1000&lt;br /&gt;
# modprobe e1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On some occasions, the commands have to be run twice before eth0 becomes useable.&lt;br /&gt;
On some X60s this will not work at all.&lt;br /&gt;
&lt;br /&gt;
* Disabling and re-enabling the NIC in the BIOS&lt;br /&gt;
&lt;br /&gt;
For some it fixed the issue finally, for some it helped just temporarily.&lt;br /&gt;
&lt;br /&gt;
* Hacking the kernel to carry on even if the checksum is not valid&lt;br /&gt;
&lt;br /&gt;
Although being a very ugly, hack, this works fine for me. To do that, you have to search drivers/net/e1000/e1000_main.c for the line containing the error message and then comment out the following two lines which set the error state and then jump to the error code. Although this doesn't fry the hardware for me, consider yourself warned...&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-67166 Lenovo's solution]&lt;br /&gt;
* [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1474679&amp;amp;group_id=42302&amp;amp;atid=447449 bug report] submitted for e1000 driver.&lt;br /&gt;
* Discussion at [http://forums.gentoo.org/viewtopic-t-476305-highlight-e1000.html Gentoo forums]&lt;/div&gt;</summary>
		<author><name>Cheloide</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid&amp;diff=59199</id>
		<title>Problem with e1000: EEPROM Checksum Is Not Valid</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_e1000:_EEPROM_Checksum_Is_Not_Valid&amp;diff=59199"/>
		<updated>2019-08-15T03:51:56Z</updated>

		<summary type="html">&lt;p&gt;Cheloide: /* Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Description ==&lt;br /&gt;
On certain ThinkPads, [[e1000]] driver for [[Intel Gigabit Ethernet (10/100/1000)]] fails to load with the following error message in /var/log/messages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e1000: 0000:02:00.0: e1000_probe: The EEPROM Checksum Is Not Valid&lt;br /&gt;
e1000: probe of 0000:02:00.0 failed with error -5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is caused by a power savings feature obstructing normal operation, and causes the first bytes read from the EEPROM to be corrupt, resulting in a random or invalid MAC address (but no other data corruption). The EEPROM checksum test traps the problem and the driver refuses to load.&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
Try to reload the e1000 module until the ethernet is pluged in, and the hardware have a chance to detect a link.&lt;br /&gt;
&lt;br /&gt;
=== Use e1000e---Kernel Patch ===&lt;br /&gt;
Auke Kok published two patches in October 2007 that help solve both the &amp;quot;corrupted&amp;quot; EEPROM read and bad latency.&lt;br /&gt;
One of the patches moves many network cards over to the e1000e (e1000 for PCI-Express) module. The second disables some PCIe power management features that were the cause for the bad EEPROM read and some stability issues.&lt;br /&gt;
 [http://kerneltrap.org/mailarchive/linux-netdev/2007/10/31/374579 &amp;lt;nowiki&amp;gt;[PATCH 3/4] e1000/e1000e: Move PCI-Express device IDs over to e1000e&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
 [http://kerneltrap.org/mailarchive/linux-netdev/2007/10/31/374573 &amp;lt;nowiki&amp;gt;[PATCH 2/4] e1000e: Disable L1 ASPM power savings for 82573 mobile variants&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
Refer to [http://www.linuxhq.com/patch-howto.html LinuxHQ] on how to apply kernel patches.&lt;br /&gt;
&lt;br /&gt;
=== From Lenovo ===&lt;br /&gt;
Lenovo provides a [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-67166 script] that uses 'ethtool' command to update the card's settings. They say it is for SLED 10 but the Linux flavor shouldn't really matter. For some users, neither of the circumventions listed below help, but this script does!&lt;br /&gt;
&lt;br /&gt;
=== Via module parameter ===&lt;br /&gt;
&lt;br /&gt;
In recent kernels (at least with 2.6.22, maybe also in 2.6.21) there is a kernel module option to make the module ignore the error.&lt;br /&gt;
&lt;br /&gt;
Load the module like this &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe e1000 eeprom_bad_csum_allow=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might also apply that parameter via modprobe.d or if you are using Debian/Ubuntu as append-line in your bootloader: e1000.eeprom_bad_csum_allow=1&lt;br /&gt;
&lt;br /&gt;
=== From Mat's Blog ===&lt;br /&gt;
The fundamental solution is explained at [http://www.matinfo.ch/blog/archive/2007/01/26/intel-nic-pxe-e05-error.html Mat's Blog]&lt;br /&gt;
which directs the reader to Intel's site to download PROBOOT.EXE.&lt;br /&gt;
&lt;br /&gt;
'''DO NOT USE THIS TOOL ON THINKPADS.''' The IBAUTIL.EXE tool that it contains is designed only to work with discrete ethernet parts that are on PCI/PCIe cards. It is not at all intended for use with laptop parts, although it is not sufficiently careful to refuse to run on such hardware. Improper use of this tool can leave your LAN firmware corrupted to the point that it will not even enumerate on the PCI bus and you will probably have to have your laptop repaired to restore the LAN functionality.&lt;br /&gt;
See http://www.mail-archive.com/e1000-devel@lists.sourceforge.net/msg00398.html for an Intel Linux driver employee's comments on this.&lt;br /&gt;
'''&lt;br /&gt;
=== Comment: ===&lt;br /&gt;
'''&lt;br /&gt;
I used PROBOOT.EXE Version 15.2 (file version 4.0.100.1124) on Bios Version 2.26 (79ETE6WW) for T60 Type 2007-53G with success.&lt;br /&gt;
The copied instruction is:&lt;br /&gt;
&amp;lt;br&amp;gt; “ Download PROBOOT.EXE from Intel. Get the first one from the list - the &lt;br /&gt;
one without Network adapter, it says only &amp;quot;Intel® Boot Agent PROBOOT.exe &lt;br /&gt;
version: 11.2&amp;quot;, install that - it will create a folder with some files - &lt;br /&gt;
put these on a bootable floppy (or two) or a bootable CD. Boot to DOS with &lt;br /&gt;
the floppy or CD and run &amp;quot;IBAUtil.exe -DEFCFG&amp;quot; that will reset the &lt;br /&gt;
configuration and all should be OK „&amp;lt;br&amp;gt;&lt;br /&gt;
I used an old bootable W98 to start the computer and a second CD with the files above. It is only working under DOS!&lt;br /&gt;
&lt;br /&gt;
=== Using Preboot tool on linux ===&lt;br /&gt;
{{WARN|Try at your own risk!}}&lt;br /&gt;
This has been tested on a T60 displaying the error '''e1000e the nvm checksum is not valid'''&lt;br /&gt;
&lt;br /&gt;
 1. Download [https://downloadcenter.intel.com/download/19186 Intel® Ethernet Connections Boot Utility, Preboot Images, and EFI Drivers '''(For Linux)''']&lt;br /&gt;
 2. On a Terminal Go to the download directory {{cmduser|cd /path/to/Preboot.tar.gz}}&lt;br /&gt;
 3. Create a folder for the files {{cmduser|mkdir Preboot}}&lt;br /&gt;
 4. untar the file {{cmduser|tar -xvzf Preboot.tar.gz -C Preboot}}&lt;br /&gt;
&lt;br /&gt;
if you're running a 32Bit installation of linux, follow this instructions&lt;br /&gt;
&lt;br /&gt;
 5. cd to BootUtil folder for your architecture {{cmduser|cd Preboot/APPS/BootUtil/Linux32/}}&lt;br /&gt;
 6. Give execution permissions to bootutil32e {{cmduser|chmod +x bootutil32}}&lt;br /&gt;
 7. Run {{cmduser|sudo ./bootutil32 -NIC&amp;amp;#61;1 -DEFAULTCONFIG }}&lt;br /&gt;
&lt;br /&gt;
if you're running a 64Bit installation of linux, follow this instructions&lt;br /&gt;
 5. cd to BootUtil folder for your architecture {{cmduser|cd Preboot/APPS/BootUtil/Linux_x64}}&lt;br /&gt;
 6. Give execution permissions to bootutil64e {{cmduser|chmod +x bootutil64e}}&lt;br /&gt;
 7. Run {{cmduser|sudo ./bootutil64e -NIC&amp;amp;#61;1 -DEFAULTCONFIG }}&lt;br /&gt;
&lt;br /&gt;
[https://superuser.com/a/1170175/449434 Source (superuser.com)]&lt;br /&gt;
&lt;br /&gt;
== Circumvention ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade your BIOS&lt;br /&gt;
&lt;br /&gt;
Lenovo has published newer BIOS revisions that appear to fix the issue for some users. The BIOS upgrade turns off &amp;quot;Deep smart power down&amp;quot; which has been known to cause issues at initialization time (the driver can re-enable the issue later if you desire, the feature works correctly then).&lt;br /&gt;
&lt;br /&gt;
* Insert a cable&lt;br /&gt;
&lt;br /&gt;
Inserting a linked network cable bypasses the problem.&lt;br /&gt;
&lt;br /&gt;
* Take the checksum twice&lt;br /&gt;
&lt;br /&gt;
This [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1474679&amp;amp;group_id=42302&amp;amp;atid=447449 bug report] describes a fix -- take the checksum twice.  First time will report a bad checksum, second will work (the problem seems to be triggered by some power-saving technology).  This requires a tweak to the driver source and a rebuild of your kernel.  This is much better than a previous &amp;quot;fix&amp;quot; published here that disabled checksum checking entirely.&lt;br /&gt;
&lt;br /&gt;
I updated the patch above to 2.6.22:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff -urN linux-2.6.22-suspend2-r1.orig/drivers/net/e1000/e1000_main.c linux-2.6.22-suspend2-r1/drivers/net/e1000/e1000_main.c&lt;br /&gt;
--- linux-2.6.22-suspend2-r1.orig/drivers/net/e1000/e1000_main.c        2007-08-17 23:32:04.000000000 +0200&lt;br /&gt;
+++ linux-2.6.22-suspend2-r1/drivers/net/e1000/e1000_main.c     2007-09-05 16:39:11.000000000 +0200&lt;br /&gt;
@@ -999,16 +999,18 @@&lt;br /&gt;
                goto err_eeprom;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
-       /* before reading the EEPROM, reset the controller to&lt;br /&gt;
-        * put the device in a known good starting state */&lt;br /&gt;
-&lt;br /&gt;
-       e1000_reset_hw(&amp;amp;adapter-&amp;gt;hw);&lt;br /&gt;
-&lt;br /&gt;
-       /* make sure the EEPROM is good */&lt;br /&gt;
-&lt;br /&gt;
        if (e1000_validate_eeprom_checksum(&amp;amp;adapter-&amp;gt;hw) &amp;lt; 0) {&lt;br /&gt;
-               DPRINTK(PROBE, ERR, &amp;quot;The EEPROM Checksum Is Not Valid\n&amp;quot;);&lt;br /&gt;
-               goto err_eeprom;&lt;br /&gt;
+               /* before reading the EEPROM, reset the controller to&lt;br /&gt;
+                * put the device in a known good starting state */&lt;br /&gt;
+               &lt;br /&gt;
+               e1000_reset_hw(&amp;amp;adapter-&amp;gt;hw);&lt;br /&gt;
+&lt;br /&gt;
+               /* make sure the EEPROM is good */&lt;br /&gt;
+&lt;br /&gt;
+               if (e1000_validate_eeprom_checksum(&amp;amp;adapter-&amp;gt;hw) &amp;lt; 0) {&lt;br /&gt;
+                       DPRINTK(PROBE, ERR, &amp;quot;The EEPROM Checksum Is Not Valid\n&amp;quot;);&lt;br /&gt;
+                       goto err_eeprom;&lt;br /&gt;
+               }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        /* copy the MAC address out of the EEPROM */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[User:Ra|Ra]] 15:28, 5 September 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Remove/add kernel module&lt;br /&gt;
&lt;br /&gt;
Removing and adding the kernel module is a possible work-around. As root, run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# modprobe -r e1000&lt;br /&gt;
# modprobe e1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On some occasions, the commands have to be run twice before eth0 becomes useable.&lt;br /&gt;
On some X60s this will not work at all.&lt;br /&gt;
&lt;br /&gt;
* Disabling and re-enabling the NIC in the BIOS&lt;br /&gt;
&lt;br /&gt;
For some it fixed the issue finally, for some it helped just temporarily.&lt;br /&gt;
&lt;br /&gt;
* Hacking the kernel to carry on even if the checksum is not valid&lt;br /&gt;
&lt;br /&gt;
Although being a very ugly, hack, this works fine for me. To do that, you have to search drivers/net/e1000/e1000_main.c for the line containing the error message and then comment out the following two lines which set the error state and then jump to the error code. Although this doesn't fry the hardware for me, consider yourself warned...&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-67166 Lenovo's solution]&lt;br /&gt;
* [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1474679&amp;amp;group_id=42302&amp;amp;atid=447449 bug report] submitted for e1000 driver.&lt;br /&gt;
* Discussion at [http://forums.gentoo.org/viewtopic-t-476305-highlight-e1000.html Gentoo forums]&lt;/div&gt;</summary>
		<author><name>Cheloide</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:X1_Carbon_(3rd_Gen)&amp;diff=59198</id>
		<title>Category:X1 Carbon (3rd Gen)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:X1_Carbon_(3rd_Gen)&amp;diff=59198"/>
		<updated>2019-08-15T03:15:14Z</updated>

		<summary type="html">&lt;p&gt;Cheloide: Added System freezes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives an overview of the Lenovo New ThinkPad X1 Carbon Ultrabook™ (3rd Gen) (2015), also referred to as '''X1C3'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Previous generations: [[:Category:X1 Carbon|2012]], [[:Category:X1 Carbon 2nd|2014]]&lt;br /&gt;
{{QUOTE|Jonas Hendrickx|ThinkScopes.com|[http://www.thinkscopes.com/blog/2015/01/06/lenovo-thinkpad-x1-carbon-gen-3-review-2/ The new X1 Carbon Gen 3 goes by several name, internally it is referred as Mystique 2, while the gen 2 is Mystique 1, and ThinkPad X1 Carbon Gen 1 is called the Genesis]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
{{Todo|Please note that the specs below are incomplete, help needed!}}&lt;br /&gt;
* '''Machine type:''' 20BS*, 20BT*&lt;br /&gt;
* '''Processor:''' One of the following ULV fifth generation [[Intel Core]] processors (code name: &amp;quot;Broadwell&amp;quot;):&lt;br /&gt;
** Intel® Core™ i5-5200M (2.2-2.7GHz, 3MB L3 cache)&lt;br /&gt;
** Intel® Core™ i5-5300M (2.3-2.9GHz, 3MB L3 cache)&lt;br /&gt;
** Intel® Core™ i7-5500U (2.4-3.0GHz, 4MB L3 cache)&lt;br /&gt;
** Intel® Core™ i7-5600U (2.6-3.2GHz, 4MB L3 cache)&lt;br /&gt;
* '''Graphics:''' [[Intel HD Graphics|Intel HD Graphics 5500]]&lt;br /&gt;
* '''Display:'''&lt;br /&gt;
** 14.0&amp;quot; WQHD (2560x1440), 260nit, IPS with multitouch&lt;br /&gt;
** 14.0&amp;quot; WQHD (2560x1440), 300nit&lt;br /&gt;
** 14.0&amp;quot; HD+ (1920x1080), 300nit&lt;br /&gt;
* '''Memory:''' Soldered directly on the mainboard, with capacities of:&lt;br /&gt;
** 4GB DDR3L SDRAM PC3-12800&lt;br /&gt;
** 8GB DDR3L SDRAM PC3-12800&lt;br /&gt;
* '''Disk:'''&lt;br /&gt;
** 128GB SSD&lt;br /&gt;
** 256GB SSD&lt;br /&gt;
** 512GB PCIe SSD&lt;br /&gt;
* '''WLAN:'''&lt;br /&gt;
** Intel Dual-Band Wireless-N 7265 (Stone Peak 2 BN) 2x2 AC + Bluetooth 4.2&lt;br /&gt;
** Intel Dual-Band Wireless-AC 7265 (Stone Peak 2 AC) 2x2 AC + Bluetooth 4.2&lt;br /&gt;
&lt;br /&gt;
* '''WWAN:''' &lt;br /&gt;
** Sierra Wireless EM7345&lt;br /&gt;
** Ericsson Business Mobile Networks BV N5321 gw&lt;br /&gt;
* '''Bluetooth:''' Bluetooth 4.2 supported by WLAN module&lt;br /&gt;
* '''Keyboard:''' 5-row with Trackpoint, backlit Keyboard keys&lt;br /&gt;
* '''I/O Ports:'''&lt;br /&gt;
** 2 x USB 3.0 (1 with AOU)&lt;br /&gt;
** Audio/Mic Combo&lt;br /&gt;
** OneLink Dock&lt;br /&gt;
** HDMI&lt;br /&gt;
** MiniDP&lt;br /&gt;
** Ethernet mini jack&lt;br /&gt;
** Sim card slot&lt;br /&gt;
* '''Battery:''' Up to 10.9 hours&lt;br /&gt;
* '''Webcam:''' [[Integrated camera]] 1.3MP - 720P with mute function&lt;br /&gt;
* '''Audio:''' Dolby® Home Theater® v4 with Digital Dual Array microphone certified for Microsoft Lync&lt;br /&gt;
* '''Fingerprint Reader''': yes&lt;br /&gt;
* '''Wired ethernet network''': yes, via a external dongle provided [https://www.flickr.com/photos/hendry/16769857511/ FRU:04X6435; Lenovo P/N:SC10A39882AB]&lt;br /&gt;
* Size: 13.03in x 8.94in x 0.73in (331mm x 227mm x 18.5mm)&lt;br /&gt;
* Weight: 3.07 lb (1.39 kg)&lt;br /&gt;
&lt;br /&gt;
* [http://support.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x1-carbon-20bs-20bt Download and support page for ThinkPad X1 Carbon 3rd Gen]&lt;br /&gt;
* [http://download.lenovo.com/pccbbs/mobiles_pdf/x1_carbon3_hmm_en_sp40g55065.pdf Hardware Maintenance Manual Thinkpad X1 Carbon 3] (52,995,586 bytes)&lt;br /&gt;
&lt;br /&gt;
= Distro resources =&lt;br /&gt;
==Archlinux==&lt;br /&gt;
Amazingly the X1C3 works out of the box on Archlinux.  Only a couple of niggly issues remain:&lt;br /&gt;
* HDMI sound output does not work&lt;br /&gt;
* Trackpad is a horrible UX&lt;br /&gt;
* [https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_3) Resources for running with Archlinux]&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
Debian Jessie worked out of the box via the Ethernet connection and a netinst image on USB. All buttons appear to work. Need some more time to test but amazing. Did install the non-free firmware and repos. Confirmed that HDMI audio does work however I had to configure the HDMI audio source to be higher in the list to be selected for output. ArchLinux above should work with proper settings.&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
[http://fredrik.wendt.se/2015/02/24/lenovo-thinkpad-x1-carbon-3rd-gen/ Ubuntu 14.10 on ThinkPad X1 Carbon 3rd Gen]&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Unrecoverable System Freezes ==&lt;br /&gt;
Users have reported freezes when their systems are under medium/heavy load or playing html5 videos (Youtube, Netflix) with the only option being a hard power off.&lt;br /&gt;
&lt;br /&gt;
this issue is usually related to c-states, a power saving feature on intel CPUs&lt;br /&gt;
&lt;br /&gt;
===Fixes===&lt;br /&gt;
====Disabling c-states from bios (Easy)====&lt;br /&gt;
This solution is simpler than the others since does not involve editing system files nor needs superuser access.&lt;br /&gt;
&lt;br /&gt;
    1. Enter Bios Setup&lt;br /&gt;
    2. Config &amp;gt; Power Management &amp;gt; CPU Power Management &amp;gt; Disabled&lt;br /&gt;
&lt;br /&gt;
====Adding a Kernel parameter to GRUB Bootloader (Medium, needs administrator privileges)====&lt;br /&gt;
This solutions applies only to GRUB Bootloader, if you're not using GRUB [https://wiki.archlinux.org/index.php/kernel_parameters#Configuration you should search instructions on how to add kernel parameters to the one you're using], the parameter should be the same.&lt;br /&gt;
&lt;br /&gt;
    1. Edit file {{path|/etc/default/grub}}&lt;br /&gt;
    2. Locate the variable {{bootparm|GRUB_CMDLINE_LINUX_DEFAULT|}}.&lt;br /&gt;
    3. Add {{bootparm|intel_idle.max_cstate|0}} to the variable (0 should disable c-states falling back to acpi, 1 or 2 should work too). The variable should end similar to {{bootparm|GRUB_CMDLINE_LINUX_DEFAULT|intel_idle.max_cstate&amp;amp;#61;0&amp;amp;nbsp;quiet&amp;quot;}}&lt;br /&gt;
    4. Run {{cmdroot|update-grub}} as administrator to apply the new configuration.&lt;br /&gt;
    5. Reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://bugzilla.kernel.org/show_bug.cgi?id=193011 Bugzilla Bug report ]&lt;br /&gt;
&lt;br /&gt;
[https://bbs.archlinux.org/viewtopic.php?id=236686&amp;amp;p=2 ArchLinux forums ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X1_Carbon]][[Category:X Series]]&lt;/div&gt;</summary>
		<author><name>Cheloide</name></author>
		
	</entry>
</feed>