New computer hangs on shutdown/reboot, how to troubleshoot?

This answer on Ubuntu Forums has the exact solution! (Why didn't I post there in parallel to here on AU? It would have saved a week of calendar time and several hours of computer time!)

The wrong driver is loaded which prevents shutdown. To fix it you need to do this:

Open a terminal and type: sudo modprobe -rf rt2860sta

Followed by: sudo modprobe rt2860sta

Then you need to blacklist the wrong driver:
echo blacklist rt2800pci | sudo tee -a /etc/modprobe.d/blacklist.conf

Once you have rebooted (you will need to do a hard power off for the last time!) you will find you can reboot properly.


For Ubuntu 11.10, you could try the reboot=bios option (or other options):

  1. Access the GRUB configuration file as explained here.

    cd .. && cd .. && sudo -H gedit etc/default/grub
    
  2. Edit the line GRUB_CMDLINE_LINUX="" so it says:

    GRUB_CMDLINE_LINUX="reboot=bios"
    

    and save the file.

  3. Update GRUB to write the configuration:

    sudo update-grub
    
  4. Reboot your computer

    (it may hang on the purple screen, but hopefully for the last time...)


It could be an ACPI problem. You can try to pass the kernel some parameters to disable some of ACPI functions. Note this will result in a loss of features (power management) or performance (lots of polling).

First a little explanation about how to add some kernel parameters, robbed miserably from Htorque:

  1. Start your system and wait for the GRUB menu to show (if you don't see a GRUB menu, press and hold the left Shift key right after starting the system).
  2. Now highlight the kernel you want to use, and press the c key. You should be able to see and edit the commands associated with the highlighted kernel.
  3. Go down to the line starting with linux and add one of the following parameters after a space.
  4. Now press Ctrl + x to boot.

You cant try the following options, one each time, they are ordered from more aggressive, likely to work to less aggressive but less functions disabled:

  • acpi=off , this one should completely disable acpi. It's the most likely to work, but you will lose all your power management.
  • pci=noacpi , this will make the kernel to ignore acpi for pic scanning and irq assignment.
  • acpi=noirq, this will only disable irq assignment through acpi.
  • irqpoll, this will make the kernel poll for all unattended irq interruptions.
  • noapic, this will make the kernel ignore the APIC.

Tags:

Kernel