PDA

View Full Version : [all variants] Patched DSDT load in GRUB setup



reef2dive
February 14th, 2013, 07:22 PM
The Toshiba U500 laptop overheats with 12.04 due to faults in the DSDT. (It overheats in all previous ubuntu releases apart from 10.04.) I corrected the DSDT, so at least the active cooling works fine, and used to load the DSDT according to the following instruction in
http://blog.michael.kuron-germany.de/2011/03/patching-dsdt-in-recent-linux-kernels-without-recompiling/

As this instruction loads the DSDT prior to any OS load, the solution works fine for Linux, however Windows cannot load as the patched DSDT does not fit the windows environment. (Windows hangs at boot.)
So I added some rows in the linux load code in grub.cfg to the following



search --no-floppy --fs-uuid --set=root d1043490-cee7-4aae-9a9e-783d68db104b
echo 'Loading Corrected AML / DSDT ...'
acpi ($root)/boot/dsdt-corrected.aml
echo 'Loading Linux 3.2.0-36-generic Standard ...'
linux /boot/vmlinuz-3.2.0-36-generic root=UUID=d1043490-cee7-4aae-9a9e-783d68db104b ro


where the echo, acpi and echo row is added.
As the DSDT is only loaded at linux load, the windows start-up works.
The issue will be that at every time when update-grub is run, the line has to be added manually to all the linux items in the grub menu.

As far as I understand the grub.cfg is generated by the scripts in /etc/grub when


sudo update-grub

is run.
Is there a description of those scripts and in which order they are run when two scripts have the same level, e.g. "20_xxxxxx" and "20_yyyyyy"?

I would like to embed the acpi load in the scripts to simplfy kernel upgrades.