Page 9 of 15 FirstFirst ... 7891011 ... LastLast
Results 81 to 90 of 145

Thread: failed to get i915 symbols, graphics turbo disabled error on boot

  1. #81
    Join Date
    Nov 2010
    Beans
    4

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Quote Originally Posted by de_Selby View Post
    Thanks for that 25an! I've compiled a new kernel and it's working perfectly.

    I've uploaded a deb of the kernel for anyone else to download so they don't have to go through the effort of compiling. The link is below:

    http://www.4shared.com/file/HiJd6rdx...eneric_26.html

    I haven't used 4shared before, hopefully they don't have a limit on the no of downloads.
    Same message on K52JB notebook :'( even after installing your .deb kernel

  2. #82
    Join Date
    Jun 2010
    Beans
    9

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Yeah you'll still get the initial message, but the driver gets re-attached - that's what the patch does

    if you do dmesg | grep "intel ips" with the kernel i've compiled you'll see something like this:


    Code:
    peter@deSelby:~$ dmesg | grep "intel ips"
    [   17.456759] intel ips 0000:00:1f.6: Warning: CPU TDP doesn't match expected value (found 25, expected 35)
    [   17.456787] intel ips 0000:00:1f.6: PCI INT C -> GSI 18 (level, low) -> IRQ 18
    [   17.456956] intel ips 0000:00:1f.6: failed to get i915 symbols, graphics turbo disabled
    [   17.491721] intel ips 0000:00:1f.6: IPS driver initialized, MCP temp limit 90
    [   22.678855] intel ips 0000:00:1f.6: i915 driver attached, reenabling gpu turbo
    If you see the last line in your output you're good, it got re-enabled.
    Last edited by de_Selby; February 21st, 2011 at 02:33 AM. Reason: typo

  3. #83
    Join Date
    Feb 2011
    Beans
    1

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Quote Originally Posted by de_Selby View Post
    Thanks for that 25an! I've compiled a new kernel and it's working perfectly.

    I've uploaded a deb of the kernel for anyone else to download so they don't have to go through the effort of compiling. The link is below:

    http://www.4shared.com/file/HiJd6rdx...eneric_26.html

    I haven't used 4shared before, hopefully they don't have a limit on the no of downloads.
    Could you plz help to make a package for i386 if it's possible,I have tried to compile it by myself, it seemed generating some errors.

  4. #84
    Join Date
    Nov 2008
    Location
    Antwerp, Belgium
    Beans
    43
    Distro
    Ubuntu Gnome 14.04 Trusty Tahr

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Thanks 25an and de_Selby!
    New patched kernel as provided by de_Selby works fine for me!

  5. #85
    Join Date
    Jun 2010
    Beans
    9

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Quote Originally Posted by visonwei View Post
    Could you plz help to make a package for i386 if it's possible,I have tried to compile it by myself, it seemed generating some errors.
    well first you have to make sure you have all the development packages installed, so do this:

    Code:
    sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge
    sudo apt-get build-dep linux
    sudo apt-get install git-core libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev
    Then you want to download the kernel source, so make a temporary directory open a terminal there and do the following:
    Code:
    sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
    apt-get source linux-image-$(uname -r)
    then you'll have to apply the patch given in 25an's link, so paste the following into a file called intel_patch
    Code:
    ---
     drivers/gpu/drm/i915/i915_dma.c  |   23 +++++++++++++++++++++++
     drivers/platform/x86/intel_ips.c |   36 +++++++++++++++++++++++++++++++++---
     drivers/platform/x86/intel_ips.h |   21 +++++++++++++++++++++
     3 files changed, 77 insertions(+), 3 deletions(-)
     create mode 100644 drivers/platform/x86/intel_ips.h
    
    diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
    index 18746e6..8cb7f93 100644
    --- a/drivers/gpu/drm/i915/i915_dma.c
    +++ b/drivers/gpu/drm/i915/i915_dma.c
    @@ -34,6 +34,7 @@
     #include "i915_drm.h"
     #include "i915_drv.h"
     #include "i915_trace.h"
    +#include "../../../platform/x86/intel_ips.h"
     #include <linux/pci.h>
     #include <linux/vgaarb.h>
     #include <linux/acpi.h>
    @@ -1834,6 +1835,26 @@ out_unlock:
     EXPORT_SYMBOL_GPL(i915_gpu_turbo_disable);
     
     /**
    + * Tells the intel_ips driver that the i915 driver is now loaded, if
    + * IPS got loaded first.
    + *
    + * This awkward dance is so that neither module has to depend on the
    + * other in order for IPS to do the appropriate communication of
    + * GPU turbo limits to i915.
    + */
    +static void
    +ips_ping_for_i915_load(void)
    +{
    +	void (*link)(void);
    +
    +	link = symbol_get(ips_link_to_i915_driver);
    +	if (link) {
    +		link();
    +		symbol_put(ips_link_to_i915_driver);
    +	}
    +}
    +
    +/**
      * i915_driver_load - setup chip and create an initial config
      * @dev: DRM device
      * @flags: startup flags
    @@ -2019,6 +2040,8 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
     	dev_priv->mchdev_lock = &mchdev_lock;
     	spin_unlock(&mchdev_lock);
     
    +	ips_ping_for_i915_load();
    +
     	return 0;
     
     out_gem_unload:
    diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
    index aa5f9b6..a8d21ee 100644
    --- a/drivers/platform/x86/intel_ips.c
    +++ b/drivers/platform/x86/intel_ips.c
    @@ -75,6 +75,7 @@
     #include <drm/i915_drm.h>
     #include <asm/msr.h>
     #include <asm/processor.h>
    +#include "intel_ips.h"
     
     #define PCI_DEVICE_ID_INTEL_THERMAL_SENSOR 0x3b32
     
    @@ -245,6 +246,7 @@
     #define thm_writel(off, val) writel((val), ips->regmap + (off))
     
     static const int IPS_ADJUST_PERIOD = 5000; /* ms */
    +static bool late_i915_load = false;
     
     /* For initial average collection */
     static const int IPS_SAMPLE_PERIOD = 200; /* ms */
    @@ -339,6 +341,9 @@ struct ips_driver {
     	u64 orig_turbo_ratios;
     };
     
    +static bool
    +ips_gpu_turbo_enabled(struct ips_driver *ips);
    +
     /**
      * ips_cpu_busy - is CPU busy?
      * @ips: IPS driver struct
    @@ -517,7 +522,7 @@ static void ips_disable_cpu_turbo(struct ips_driver *ips)
      */
     static bool ips_gpu_busy(struct ips_driver *ips)
     {
    -	if (!ips->gpu_turbo_enabled)
    +	if (!ips_gpu_turbo_enabled(ips))
     		return false;
     
     	return ips->gpu_busy();
    @@ -532,7 +537,7 @@ static bool ips_gpu_busy(struct ips_driver *ips)
      */
     static void ips_gpu_raise(struct ips_driver *ips)
     {
    -	if (!ips->gpu_turbo_enabled)
    +	if (!ips_gpu_turbo_enabled(ips))
     		return;
     
     	if (!ips->gpu_raise())
    @@ -549,7 +554,7 @@ static void ips_gpu_raise(struct ips_driver *ips)
      */
     static void ips_gpu_lower(struct ips_driver *ips)
     {
    -	if (!ips->gpu_turbo_enabled)
    +	if (!ips_gpu_turbo_enabled(ips))
     		return;
     
     	if (!ips->gpu_lower())
    @@ -1454,6 +1459,31 @@ out_err:
     	return false;
     }
     
    +static bool
    +ips_gpu_turbo_enabled(struct ips_driver *ips)
    +{
    +	if (!ips->gpu_busy && late_i915_load) {
    +		if (ips_get_i915_syms(ips)) {
    +			dev_info(&ips->dev->dev,
    +				 "i915 driver attached, reenabling gpu turbo\n");
    +			ips->gpu_turbo_enabled = !(thm_readl(THM_HTS) & HTS_GTD_DIS);
    +		}
    +	}
    +
    +	return ips->gpu_turbo_enabled;
    +}
    +
    +void
    +ips_link_to_i915_driver()
    +{
    +	/* We can't cleanly get at the various ips_driver structs from
    +	 * this caller (the i915 driver), so just set a flag saying
    +	 * that it's time to try getting the symbols again.
    +	 */
    +	late_i915_load = true;
    +}
    +EXPORT_SYMBOL_GPL(ips_link_to_i915_driver);
    +
     static DEFINE_PCI_DEVICE_TABLE(ips_id_table) = {
     	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL,
     		     PCI_DEVICE_ID_INTEL_THERMAL_SENSOR), },
    diff --git a/drivers/platform/x86/intel_ips.h b/drivers/platform/x86/intel_ips.h
    new file mode 100644
    index 0000000..73299be
    --- /dev/null
    +++ b/drivers/platform/x86/intel_ips.h
    @@ -0,0 +1,21 @@
    +/*
    + * Copyright (c) 2010 Intel Corporation
    + *
    + * This program is free software; you can redistribute it and/or modify it
    + * under the terms and conditions of the GNU General Public License,
    + * version 2, as published by the Free Software Foundation.
    + *
    + * This program is distributed in the hope it will be useful, but WITHOUT
    + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
    + * more details.
    + *
    + * You should have received a copy of the GNU General Public License along with
    + * this program; if not, write to the Free Software Foundation, Inc.,
    + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
    + *
    + * The full GNU General Public License is included in this distribution in
    + * the file called "COPYING".
    + */
    +
    +void ips_link_to_i915_driver(void);
    --
    save that file in the kernel source directory, and in a terminal there do:
    Code:
    cat intel_patch | patch -p1 --dry-run
    This tests to see whether the patch can be applied ok, look at the output from it, it should return a status for each of the 'Hunks' of the patch - you want these to all say Ok (no failures) **. If that runs ok, then you can actually apply the patch - ie execute the command above without the --dry-run bit.

    Then you can go on to build the kernel, just run

    Code:
    fakeroot debian/rules clean
    AUTOBUILD=1 fakeroot debian/rules binary-debs
    That'll take a while, but it should compete successfully and you'll be left with a deb to install.



    ** if there are some failures with the patching you can open the patch file and figure out which ones failed and just edit the file yourself. the format is pretty self explanatory, and the only two files being patched are "drivers/platform/x86/intel_ips.c" and "drivers/platform/x86/intel_ips.h"

  6. #86
    Join Date
    Feb 2011
    Beans
    6

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    This method is obsolete. See post 94 for a better (and simpler) solution.

    I came here initially for the solution. Since there wasn't an easy one, I ended up trying to solve it myself... anyway, guess I was lucky, I found the fix It works for my laptop (ACER-1830T). Here's how I got rid of this annoying message (BTW, it did not seem to create any harm for me, other than showing this ugly error during boot)

    You need to do this as root,

    Code:
    sudo -s
    echo "i915" >> /etc/initramfs-tools/modules
    update-initramfs -k all -u
    reboot
    Last edited by x_lk; February 27th, 2011 at 10:24 PM.

  7. #87
    Join Date
    Jun 2010
    Beans
    9

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Quote Originally Posted by x_lk View Post
    I came here initially for the solution. Since there wasn't an easy one, I ended up trying to solve it myself... anyway, guess I was lucky, I found the fix It works for my laptop (ACER-1830T). Here's how I got rid of this annoying message (BTW, it did not seem to create any harm for me, other than showing this ugly error during boot)

    You need to do this as root,

    Code:
    sudo -s
    echo "i915" >> /etc/initramfs-tools/modules
    update-initramfs -k all -u
    reboot
    That doesn't solve anything, it just stops the message appearing

  8. #88
    Join Date
    Feb 2011
    Beans
    6

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Quote Originally Posted by de_Selby View Post
    That doesn't solve anything, it just stops the message appearing
    Let me explain how it worked. I think many of us already agreed that the root cause of the issue is i915 driver was not loaded when intel_ips driver needs it. In other word, module i915 must be inserted into kernel before intel_ips module. The kernel patch solution modifies driver code, so that initialization order does not matter any more. However, for the rest of us not wanting to rebuild kernel, forcing i915 to be loaded before intel_ips is a more elegant solution, IMO. Using following command line I found that intel_ips module is not included in initramfs,
    Code:
    lsinitramfs /boot/initrd.img-2.6.35-25-generic | grep intel_ips
    So making i915 module into initramfs will most likely fix the issue, because this way, it can be loaded at a much earlier stage. After making change to my initramfs, kernel log shows that kernel does load i915 module much earlier than intel_ips now. And, as expected, intel_ips does not complain about not being able to find i915 any more.
    Code:
    dmesg | grep i915
    [    1.785142] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
    [    1.785150] i915 0000:00:02.0: setting latency timer to 64 tr
    [    1.845774] i915 0000:00:02.0: irq 43 for MSI/MSI-X
    [    2.850377] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
    dmesg | grep 'intel ips'
    [    8.846831] intel ips 0000:00:1f.6: Warning: CPU TDP doesn't match expected value (found 11, expected 18)
    [    8.846880] intel ips 0000:00:1f.6: PCI INT A -> GSI 21 (level, low) -> IRQ 21
    [    8.910249] intel ips 0000:00:1f.6: IPS driver initialized, MCP temp limit 65535

  9. #89
    Join Date
    Dec 2008
    Beans
    11

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    Quote Originally Posted by x_lk View Post
    I came here initially for the solution. Since there wasn't an easy one, I ended up trying to solve it myself... anyway, guess I was lucky, I found the fix It works for my laptop (ACER-1830T). Here's how I got rid of this annoying message (BTW, it did not seem to create any harm for me, other than showing this ugly error during boot)

    You need to do this as root,

    Code:
    sudo -s
    echo "i915" >> /etc/initramfs-tools/modules
    update-initramfs -k all -u
    reboot

    Seemed like a good idea, but when I rebooted I got an error message - first thing - saying that the system couldn't find i915.ko. I've checked, and it *is* in my system (/lib/modules/2.6.35-27-generic-pae/kernel/drivers/gpu/drm/i915/i915.ko).

    Code:
    $ dmesg | grep i915
    [    3.919543] [drm:i915_init] *ERROR* drm/i915 can't work without intel_agp module!
    [   20.816634] intel ips 0000:00:1f.6: failed to get i915 symbols, graphics turbo disabled
    $ dmesg | grep intel_ips
    <i.e., blank>
    Have drawn a blank at this point.
    Dominik
    Last edited by wujastyk; February 26th, 2011 at 06:18 PM. Reason: adding output of dmesg

  10. #90
    Join Date
    Feb 2011
    Beans
    1

    Re: failed to get i915 symbols, graphics turbo disabled error on boot

    I am very new at linux & Ubuntu.
    I have installed the Ubuntu 10.10 x64.
    After installing the linux-image-2.6.35-28-generic_2.6.35-28.48_amd64, Gnome fails to start, only in revovery mode i can enter.
    Any ideas???


Page 9 of 15 FirstFirst ... 7891011 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •