I've seen a lot of threads with users who are having troubles due to the inability to load a custom DSDT file in kernels after 2.6.30. This prevents many users from upgrading simply because their hardware will not run correctly without a fixed DSDT. I fell into this category with my gateway lt3103u netbook and compiled a working kernel (2.6.31_15.50). I figured I would show what I did so people can do the same. If your laptop overheats or CPU scaling doesn't work, this might be for you.
What you need to upgrade:
1. A working DSDT tabled (compiled):
For gateway LT31 users:
http://www.pow.za.net/index.html
Thread on fixing your specific DSDT file:
http://ubuntuforums.org/showthread.p...ght=buggy+dsdt
2. Kernel source for the kernel you wish to compile:
Download linux-source-2.6.31-<version-number-here>.deb from:
http://archive.ubuntu.com/ubuntu/pool/main/l/linux/
and install using
Code:
sudo dpkg -i linux-source-<version-number-here>.deb
or use apt for current kernel
Code:
apt-get install linux-source
3. Any patches you wish to apply. (ie powernow patch for netbook CPUs)
Now we can begin compiling the Kernel, I am following this guide:
https://help.ubuntu.com/community/Kernel/Compile
First get nessessary packages:
Code:
sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile
sudo apt-get build-dep linux
sudo apt-get install qt3-dev-tools libqt3-mt-dev
Now we make a directory and extract the kernel source into it:
Code:
mkdir ~/src
cd ~/src
tar xjvf /usr/src/linux-source-<version-number-here>.tar.bz2
cd linux-source-<version-number-here>
Now we copy over our current kernel configuration so we only have to change the DSDT option in the new kernel
Code:
cp -vi /boot/config-`uname -r` .config
Now we configure the kernel use our custom DSDT table. You need to know the path to the compiled DSDT table you are using. In my case, I copied my DSTS table from 'dsdt.hex' to '/dsdt/dsdt_table.h'.
run xconfig
Now we will point to the DSDT table in xconfig:
- On the left pane, highlight "ACPI (Advanced ..."
- Now, in the right pan doubleclick "Custom DSDT Table file to include: "
and enter the full path to your DSDT table
- Save the configuration and exit.
If you do not have patches to apply, skip this part: Apply any patches you have now using
Code:
cp path-to-patchs ~/src/linux-source-<version-number-here>/
patch -p0 < patch_name.diff
Now we compile the kernel:
Code:
fakeroot make-kpkg --initrd --append-to-version=-some-string-here kernel-image kernel-headers
After this is finished, the deb file will be located in ~/src/, and now we can install it:
Code:
echo vesafb | sudo tee -a /etc/initramfs-tools/modules
echo fbcon | sudo tee -a /etc/initramfs-tools/modules
sudo dpkg -i linux-image-<version-number-here>_i386.deb
sudo dpkg -i linux-headers-<version-number-here>_i386.deb
I tested this with my gateway lt3103u using kernel source 2.6.31-15.50 from the ubuntu repositories and my custom DSDT works perfectly.
This is my first how-to, so let me know if there are mistakes/suggestions
Bookmarks