4

So I upgraded my Acer C720P Chromebook with a larger Transcend MTS400 SSD. However this SSD has a firmware bug, because of which it is incompatible with SATA power management (ALPM). This Transcend MTS400 bug crashes my C720, and before it crashes has poor performance. What happens is that it seems to work when I install it, but after is has gone from AC power to battery—when I take out the charger—I get input-lag when browsing folders or in commandline, sluggish performance and random crashes.

This guy had the same problem—and happens to be a Linux developer—so he was able to pinpoint the problem to the min_power SATA power state. When that variable is set (when chromebook is taken off AC), the SATA link starts throwing errors, after which the chromebook crashes.

He also suggests some solutions. In his post he suggests executing a commandline script every time you take the Chromebook off AC, for which you need to go in developer mode. In a comment he suggests a permanent solution, which will disable auto-updates. I will see if I can get those to work and will post an answer if I do. However I think there are multiple ways to go about this and input from other users might be helpful.

  • This is a good/informative post. But one suggestion for your future answer—if the tweaks you mention work—is that the question part of this post should really be the first two paragraphs. The rest should be edited and adapted into your future answer if/when you post that. But good work. – JakeGould Mar 10 '15 at 19:09
  • Will add those to the answer if I get it to work. Thanks for the feedback. – Leo Mar 10 '15 at 19:10
1

As I did here, defining specific policies for the modes and setting battery mode to medium_power (default, as noted before is min_power) fixes these crashes. At least, that's what I've observed on my Acer C720 on Arch Linux. (note, changing CONTROL_INTEL_SATA_POWER to 1 was reverting the previous change of disabling it like suggested before)

1

tl;dr: set CONTROL_INTEL_SATA_POWER to 0 in /etc/laptop-mode/conf.d/intel-sata-powermgmt.conf

There are three ways I know to solve this, two of which were suggested by Preston, one of which I thought of after reading his post. I tried the most rigorous approach suggested by Preston and it works! (Note that updates would undo these changes)

Method 0: prevent the problem :)

In retrospect many people complain about this problem in Amazon reviews. It seems it depends on the OS and what scenario the user is in whether or not it will crash. However, all users complain about either bad performance (at least worse than advertised, many cases notable sluggishness) or crashes (within a minute until after an hour). The only way to prevent this problem is not to buy the SSD or return it if your reseller accepts this. You probably have the right to return this product as it doesnt function as advertised, however it would probably take a lot of time and effort to exercise this right.

Transcend ironically uses the C720 as an example to show users how to install their SSD. Guess they never tested it. As chromebooks are probably the main reason they sell these SSD's in the first place you might think they care about it actually working. Their technical support is quick to reply, but when it was obvious the problem was not going to be solved by standard troubleshooting they stopped replying to me. They did reply to Preston saying that "I am unable to provide you with a definitive answer." about whether or not they would be going to solve this.

I hope this post will help solve the problem for people who cant return their SSD anymore, but also let people know this problem exists so they can prevent it by not trying to combine this SSD with a laptop that uses sata power management (at least all chromebooks and some windows laptops).

Method 1: disable sata power management in laptop-mode configuration, tested and works

Step 1: enable dev mode

This will wipe all user data from your chromebook! Besides that it will turn off some security features such as verified boot and will boot you with a scary warning screen (which is actually scary because an unfamiliar user might accidentaly wipe your data). Since you installed an SSD you might have performed this step already.

To enable dev mode, first boot into recovery mode by holding down esc and refresh and poke the power button. When the recovery screen shows press Ctrl-D. From now on everytime you boot you will have to press Ctrl-D to get into chrome. Dont press any other keys as it will wipe your data.

Step 2: enable read/write permission

Open a crosh commandline by pressing Ctrl-Alt-T. In crosh type shell to get into an actual shell. Then run this command to get read/write permission.

sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification

This command then gave me the actual command to run, just in case I didnt know what I was doing. Which I really didn't but I need to have a workng SSD so I ran it. Its this command, I dont know if it is different per system:

sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4

After this reboot and you will have read/write permission.

Step 3: remove write protection from configuration file

Open up a shell again and use chmod to make the laptop-mode configuration file writable. This will disable chrome auto update. I dont know how manual updates will fare but I guess its a good idea because now you have to perform the updates yourself and then you can immediately perform this fix again.

sudo chmod 6 /etc/laptop-mode/conf.d/intel-sata-powermgmt.conf

Step 4: set CONTROL_INTEL_SATA_POWER to 0

The commandline texteditor vi is supplied with chrome os. Its very annoying to use, read instructions at the link for how it works. Basically you use the arrows to go to the character you want to edit and then type in a command to change the character.

vi /etc/laptop-mode/conf.d/intel-sata-powermgmt.conf

Use arrows to go to the 1 in CONTROL_INTEL_SATA_POWER=1 and use the command r to enable replace and then type 0 to replace it with 0. Then use the command :wq to save the file and quit vi.

If you want to write protect the file again use

sudo chmod 5 /etc/laptop-mode/conf.d/intel-sata-powermgmt.conf

Step 5: enjoy chromebook that doesnt crash, doesnt have input-lag and has normal performance

However I did notice that my chromebook case got hotter around the location of the SSD. I havent found a temperature sensor or power consumption utility for chrome OS yet, so I cant quantify this. However predicted battery time seems to have decreased with something between half an hour or an hour (say 10%).

Method 2: use medium_power instead of min_power setting when on battery, untested

Using the same steps as in Method 1, replace min_power with medium_power as suggested here. This has to be done in the file /usr/share/laptop-mode-tools/modules/intel-sata-powermgmt. I have not tested this, but it might circumvent the increased temperature and battery usage I noted with Method 1.

Method 3: execute a command everytime you unplug your charger, not tested by me

Use the only Step 1 from Method 1 to enable dev mode. Then when unplugging your chromebook open up crosh, get into shell and then use this command:

echo max_performance | sudo tee /sys/class/scsi_host/*/link_power_management_policy

Preston seems to use this workaround. I have not tested it.

Closing remarks

There are two things that might put you off from using these solutions, but they have their own workaround:

-During loading screen at start anyone can wipe your user data

-Updates will undo the changes to sata powermanagement

There is a workaround that will make the loading screen last shorter and disable keyboard input so that people wont accidentally wipe your user data. There is also a way to disable updates. These workarounds can be found online and are probably not in the scope of this question.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.