X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/af24adfa744cfef43b9764366459fb11ca5f8cbb..fc69198f89b689c41f669748e7e9839dfcf9d19b:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index b6b11dce03..57c57503a2 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,113 @@ http://people.skolelinux.org/pere/blog/ + + How to fix a Thinkpad X230 with a broken 180 GB SSD disk + http://people.skolelinux.org/pere/blog/How_to_fix_a_Thinkpad_X230_with_a_broken_180_GB_SSD_disk.html + http://people.skolelinux.org/pere/blog/How_to_fix_a_Thinkpad_X230_with_a_broken_180_GB_SSD_disk.html + Wed, 17 Jul 2013 23:50:00 +0200 + <p>Today I switched to +<a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230_.html">my +new laptop</a>. I've previously written about the problems I had with +my new Thinkpad X230, which was delivered with an +<a href="http://people.skolelinux.org/pere/blog/Intel_SSD_520_Series_180_GB_with_Lenovo_firmware_still_lock_up_from_sustained_writes.html">180 +GB Intel SSD disk with Lenovo firmware</a> that did not handle +sustained writes. My hardware supplier have been very forthcoming in +trying to find a solution, and after first trying with another +identical 180 GB disks they decided to send me a 256 GB Samsung SSD +disk instead to fix it once and for all. The Samsung disk survived +the installation of Debian with encrypted disks (filling the disk with +random data during installation killed the first two), and I thus +decided to trust it with my data. I have installed it as a Debian Edu +Wheezy roaming workstation hooked up with my Debian Edu Squeeze main +server at home using Kerberos and LDAP, and will use it as my work +station from now on.</p> + +<p>As this is a solid state disk with no moving parts, I believe the +Debian Wheezy default installation need to be tuned a bit to increase +performance and increase life time of the disk. The Linux kernel and +user space applications do not yet adjust automatically to such +environment. To make it easier for my self, I created a draft Debian +package <tt>ssd-setup</tt> to handle this tuning. The +<a href="http://anonscm.debian.org/gitweb/?p=collab-maint/ssd-setup.git">source +for the ssd-setup package</a> is available from collab-maint, and it +is set up to adjust the setup of the machine by just installing the +package. If there is any non-SSD disk in the machine, the package +will refuse to install, as I did not try to write any logic to sort +file systems in SSD and non-SSD file systems.</p> + +<p>I consider the package a draft, as I am a bit unsure how to best +set up Debian Wheezy with an SSD. It is adjusted to my use case, +where I set up the machine with one large encrypted partition (in +addition to /boot), put LVM on top of this and set up partitions on +top of this again. See the README file in the package source for the +references I used to pick the settings. At the moment these +parameters are tuned:</p> + +<ul> + +<li>Set up cryptsetup to pass TRIM commands to the physical disk + (adding discard to /etc/crypttab)</li> + +<li>Set up LVM to pass on TRIM commands to the underlying device (in + this case a cryptsetup partition) by changing issue_discards from + 0 to 1 in /etc/lvm/lvm.conf.</li> + +<li>Set relatime as a file system option for ext3 and ext4 file + systems.</li> + +<li>Tell swap to use TRIM commands by adding 'discard' to + /etc/fstab.</li> + +<li>Change I/O scheduler from cfq to deadline using a udev rule.</li> + +<li>Run fstrim on every ext3 and ext4 file system every night (from + cron.daily).</li> + +<li>Adjust sysctl values vm.swappiness to 1 and vm.vfs_cache_pressure + to 50 to reduce the kernel eagerness to swap out processes.</li> + +</ul> + +<p>During installation, I cancelled the part where the installer fill +the disk with random data, as this would kill the SSD performance for +little gain. My goal with the encrypted file system is to ensure +those stealing my laptop end up with a brick and not a working +computer. I have no hope in keeping the really resourceful people +from getting the data on the disk (see +<a href="http://xkcd.com/538/">XKCD #538</a> for an explanation why). +Thus I concluded that adding the discard option to crypttab is the +right thing to do.</p> + +<p>I considered using the noop I/O scheduler, as several recommended +it for SSD, but others recommended deadline and a benchmark I found +indicated that deadline might be better for interactive use.</p> + +<p>I also considered using the 'discard' file system option for ext3 +and ext4, but read that it would give a performance hit ever time a +file is removed, and thought it best to that that slowdown once a day +instead of during my work.</p> + +<p>My package do not set up tmpfs on /var/run, /var/lock and /tmp, as +this is already done by Debian Edu.</p> + +<p>I have not yet started on the user space tuning. I expect +iceweasel need some tuning, and perhaps other applications too, but +have not yet had time to investigate those parts.</p> + +<p>The package should work on Ubuntu too, but I have not yet tested it +there.</p> + +<p>As for the answer to the question in the title of this blog post, +as far as I know, the only solution I know about is to replace the +disk. It might be possible to flash it with Intel firmware instead of +the Lenovo firmware. But I have not tried and did not want to do so +without approval from Lenovo as I wanted to keep the warranty on the +disk until a solution was found and they wanted the broken disks +back.</p> + + + Intel SSD 520 Series 180 GB with Lenovo firmware still lock up from sustained writes http://people.skolelinux.org/pere/blog/Intel_SSD_520_Series_180_GB_with_Lenovo_firmware_still_lock_up_from_sustained_writes.html @@ -668,108 +775,5 @@ make a decision that would work for them.</p> - - Fixing the Linux black screen of death on machines with Intel HD video - http://people.skolelinux.org/pere/blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html - http://people.skolelinux.org/pere/blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html - Tue, 11 Jun 2013 11:00:00 +0200 - <p>When installing RedHat, Fedora, Debian and Ubuntu on some machines, -the screen just turn black when Linux boot, either during installation -or on first boot from the hard disk. I've seen it once in a while the -last few years, but only recently understood the cause. I've seen it -on HP laptops, and on my latest acquaintance the Packard Bell laptop. -The reason seem to be in the wiring of some laptops. The system to -control the screen background light is inverted, so when Linux try to -turn the brightness fully on, it end up turning it off instead. I do -not know which Linux drivers are affected, but this post is about the -i915 driver used by the -<a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell -EasyNote LV</a>, Thinkpad X40 and many other laptops.</p> - -<p>The problem can be worked around two ways. Either by adding -i915.invert_brightness=1 as a kernel option, or by adding a file in -/etc/modprobe.d/ to tell modprobe to add the invert_brightness=1 -option when it load the i915 kernel module. On Debian and Ubuntu, it -can be done by running these commands as root:</p> - -<pre> -echo options i915 invert_brightness=1 | tee /etc/modprobe.d/i915.conf -update-initramfs -u -k all -</pre> - -<p>Since March 2012 there is -<a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955">a -mechanism in the Linux kernel</a> to tell the i915 driver which -hardware have this problem, and get the driver to invert the -brightness setting automatically. To use it, one need to add a row in -<a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_display.c">the -intel_quirks array</a> in the driver source -<tt>drivers/gpu/drm/i915/intel_display.c</tt> (look for "<tt>static -struct intel_quirk intel_quirks</tt>"), specifying the PCI device -number (vendor number 8086 is assumed) and subdevice vendor and device -number.</p> - -<p>My Packard Bell EasyNote LV got this output from <tt>lspci --vvnn</tt> for the video card in question:</p> - -<p><pre> -00:02.0 VGA compatible controller [0300]: Intel Corporation \ - 3rd Gen Core processor Graphics Controller [8086:0156] \ - (rev 09) (prog-if 00 [VGA controller]) - Subsystem: Acer Incorporated [ALI] Device [1025:0688] - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \ - ParErr- Stepping- SE RR- FastB2B- DisINTx+ - Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- \ - <TAbort- <MAbort->SERR- <PERR- INTx- - Latency: 0 - Interrupt: pin A routed to IRQ 42 - Region 0: Memory at c2000000 (64-bit, non-prefetchable) [size=4M] - Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M] - Region 4: I/O ports at 4000 [size=64] - Expansion ROM at <unassigned> [disabled] - Capabilities: <access denied> - Kernel driver in use: i915 -</pre></p> - -<p>The resulting intel_quirks entry would then look like this:</p> - -<p><pre> -struct intel_quirk intel_quirks[] = { - ... - /* Packard Bell EasyNote LV11HC needs invert brightness quirk */ - { 0x0156, 0x1025, 0x0688, quirk_invert_brightness }, - ... -} -</pre></p> - -<p>According to the kernel module instructions (as seen using -<tt>modinfo i915</tt>), information about hardware needing the -invert_brightness flag should be sent to the -<a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel">dri-devel -(at) lists.freedesktop.org</a> mailing list to reach the kernel -developers. But my email about the laptop sent 2013-06-03 have not -yet shown up in -<a href="http://lists.freedesktop.org/archives/dri-devel/2013-June/thread.html">the -web archive for the mailing list</a>, so I suspect they do not accept -emails from non-subscribers. Because of this, I sent my patch also to -the Debian bug tracking system instead as -<a href="http://bugs.debian.org/710938">BTS report #710938</a>, to make -sure the patch is not lost.</p> - -<p>Unfortunately, it is not enough to fix the kernel to get Laptops -with this problem working properly with Linux. If you use Gnome, your -worries should be over at this point. But if you use KDE, there is -something in KDE ignoring the invert_brightness setting and turning on -the screen during login. I've reported it to Debian as -<a href="http://bugs.debian.org/711237">BTS report #711237</a>, and -have no idea yet how to figure out exactly what subsystem is doing -this. Perhaps you can help? Perhaps you know what the Gnome -developers did to handle this, and this can give a clue to the KDE -developers? Or you know where in KDE the screen brightness is changed -during login? If so, please update the BTS report (or get in touch if -you do not know how to update BTS).</p> - - -