Monday, April 27, 2015

Unbrick the NUC

It seems there are many folks with the suspend of death on the NUC. When you suspend to RAM you can't get back. When you disconnect power for a while you can't turn it on again. Welcome to brickland, population: you. I found that following the advice on the forums if I disconnect the CMOS battery for a bit then I could turn on the NUC again.

The downside is that the CMOS battery is installed under the motherboard, so you have to remove the motherboard which is no easy task the first time. Then each subsequent time that the NUC bricks you have to take it apart again to such a great extent.

Luckily I found these extension leads which let me bring out the battery from the case. So hopefully now a debrick isn't going to involve a system teardown anymore.

1 comment:

Unknown said...

There's an unfortunate incompatibility between Linux power management and the NUC hardware. Every time Linux puts the NUC to sleep, you risk corrupting the BIOS CMOS memory. If this happens, as you've indicated, you need to disconnect the CMOS battery to revive the NUC. To prevent this problem from happening, you need to force synchronous power management:

sudo bash
cat << EOF > /etc/systemd/system/disable-async-power-management.service
[Unit]
Description=Disable asynchronous power management
DefaultDependencies=no
OnFailure=emergency.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 0 > /sys/power/pm_async"
RemainAfterExit=yes

[Install]
RequiredBy=sysinit.target
EOF
systemctl start disable-async-power-management.service
# The next command should print 0 and not 1
cat /sys/power/pm_async
systemctl enable disable-async-power-management.service