Ubuntu 12.04 LTS freeze when booting with newer kernels on Lenovo Ideapad Z580

This is due to an issue in the BIOS where booting gets stuck due to ACPI and battery support. Refer this link https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1093217/comments/63.

Now start up a terminal window and type the following commands:
$ sudo apt-get install iasl <enter>
$ sudo cp /sys/firmware/acpi/tables/DSDT /home/user/DSDT.bac
$ sudo chown user.group DSDT.bac <enter>
$ cp DSDT.bac DSDT <enter>
$ iasl -d DSDT <enter>

Edit the DSDT.dsl file as shown at this link https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1093217/comments/63. You just need to add a sleep (50) at the specified line in the file.

$ iasl DSDT.dsl <enter>
$ sudo cp DSDT.aml /boot/. <enter>

Reboot and at the grub menu, press ‘e‘ to edit the linux line. Just before the ro, add acpi=/boot/DSDT.aml and press F10.

If this works, you may want to make the above change permanent, you need to edit /boot/grub/grub.cfg and the the words acpi=/boot/DSDT.aml to the line that starts with linux    /boot/vmlinuz-3.5.0-23-generic acpi=/boot/DSDT.aml …. and so on, in the file.

Remember that each time you upgrade the kernel, you need to edit the /boot/grub/grub.cfg file to re-instate acpi=/boot/DSDT.aml.