Created attachment 56946 [details] Log file for default boot up (and no xorg.conf) - 'vesa' driver is wrongly loaded Xorg loads 'vesa' driver for Intel 82945G/GZ Video Controller. A get-around is to specify 'pci=noacpi' on the boot up command - when this is done, the 'intel' driver is correctly loaded. $ Xorg -version X.Org X Server 1.10.4 Release Date: 2011-08-19 X Protocol Version 11, Revision 0 Build Operating System: Linux 2.6.24-29-server i686 Ubuntu Current Operating System: Linux thich 3.0.0-15-generic #26-Ubuntu SMP Fri Jan 20 15:59:53 UTC 2012 i686 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.0.0-15-generic root=/dev/sda3 ro quiet nosplash Build Date: 19 October 2011 05:09:41AM xorg-server 2:1.10.4-1ubuntu4.2 (For technical support please see http://www.ubuntu.com/support) $ lspci | grep "VGA" 00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
Created attachment 56947 [details] Successful load of 'intel' driver when 'pci=noacpi' is specified at boot up
Other info about this bug .. https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/805700 http://markmail.org/message/msojtkj4o4klho3t?q=lkml+list:org.kernel.vger.linux-kernel
Lets have lspci -n with a normal boot and pci=noacpi, and see how the device is configuring the PCI device layout in both cases. From the description this sounds like it is going to be an [kernel] ACPI bug... Jesse, do you have any clue as how invoking ACPI might rearrange or hide the display controller (on a gen3 device so no hybrid gfx involved)?
Guessing that the 'Lets have ..' request was for me, the lspci -n gave the same result for both reboots .. $ lspci -n 00:00.0 0600: 8086:2770 (rev 02) 00:02.0 0300: 8086:2772 (rev 02) 00:1b.0 0403: 8086:27d8 (rev 01) 00:1d.0 0c03: 8086:27c8 (rev 01) 00:1d.1 0c03: 8086:27c9 (rev 01) 00:1d.2 0c03: 8086:27ca (rev 01) 00:1d.3 0c03: 8086:27cb (rev 01) 00:1d.7 0c03: 8086:27cc (rev 01) 00:1e.0 0604: 8086:244e (rev e1) 00:1f.0 0601: 8086:27b8 (rev 01) 00:1f.1 0101: 8086:27df (rev 01) 00:1f.2 0101: 8086:27c0 (rev 01) 00:1f.3 0c05: 8086:27da (rev 01) 01:06.0 0200: 10ec:8139 (rev 10)
Ok, that's a little more mysterious. I could understand how we would fail if the device disappeared due to pci=acpi, but if it is present for both I need a new explanation. Can you please attach the dmesg for your boot in both cases? Adding drm.debug=0xe to your kernel boot parameters would be useful, but I don't think required. My next theory is that the i915.ko failed to load in the pci=acpi case, and so the ddx found no kms support and did not initialise. Looking at the dmesg should confirm that and if so give the next clue.
Created attachment 57065 [details] dmesg for pci=noacpi drm.debug=0xe
Created attachment 57066 [details] dmesg for drm.debug=0xe Attached are the dmesg results for the alternate reboots.
Hi, I have the same problem here. I may be important to note that it doesn't occur with all intel 82945G/GZ chipsets, at least according to my searches (example http://askubuntu.com/questions/81076/issue-with-text-in-a-intel-82945g-express-chipset-family). It could be linked to Foxconn motherboards, maybe even those including intel Atom processors. Tybion, is it also your case ? (and thanks for reporting)
In the bad path, we see: [ 24.211464] ------------[ cut here ]------------ [ 24.211536] WARNING: at /build/buildd/linux-3.0.0/drivers/gpu/drm/i915/intel_display.c:915 assert_pipe+0x75/0x80 [i915]() [ 24.211546] Hardware name: O.E.M [ 24.211553] pipe A assertion failure (expected off, current on) [ 24.211559] Modules linked in: intel_rng(-) snd_seq snd_timer snd_seq_device i915(+) parport_pc snd drm_kms_helper drm soundcore snd_page_alloc i2c_algo_bit video lp parport ses enclosure usb_storage uas 8139too 8139cp [ 24.211617] Pid: 342, comm: modprobe Not tainted 3.0.0-15-generic #26-Ubuntu [ 24.211624] Call Trace: [ 24.211645] [<c1047c02>] warn_slowpath_common+0x72/0xa0 [ 24.211698] [<f830da25>] ? assert_pipe+0x75/0x80 [i915] [ 24.211748] [<f830da25>] ? assert_pipe+0x75/0x80 [i915] [ 24.211761] [<c1047cd3>] warn_slowpath_fmt+0x33/0x40 [ 24.211812] [<f830da25>] assert_pipe+0x75/0x80 [i915] [ 24.211865] [<f8317373>] i9xx_crtc_disable+0x133/0x170 [i915] [ 24.211919] [<f83173d7>] i9xx_crtc_dpms+0x27/0x30 [i915] [ 24.211972] [<f830b87f>] intel_crtc_dpms+0x3f/0x130 [i915] [ 24.212025] [<f830b812>] intel_crtc_disable+0x22/0x50 [i915] [ 24.212116] [<f810f45f>] drm_helper_disable_unused_functions+0xef/0x150 [drm_kms_helper] ... [ 24.234078] [drm:init_ring_common], render ring head not reset to zero ctl ffffffff head ffffffff tail ffffffff start ffffffff [ 24.234113] [drm:init_ring_common] *ERROR* failed to set render ring head to zero ctl ffffffff head ffffffff tail ffffffff start ffffffff [ 24.234153] [drm:init_ring_common] *ERROR* render ring initialization failed ctl ffffffff head ffffffff tail ffffffff start ffffffff [ 24.234348] vga_switcheroo: disabled [ 24.234360] [drm:i915_driver_load] *ERROR* failed to init modeset So completely fubar with pci=acpi. However, even the "good" path is worrisome: [ 1173.380034] [drm:i915_hangcheck_ring_idle] *ERROR* Hangcheck timer elapsed... render ring idle [waiting on 11453, at 11453], missed IRQ? which is not meant to happen at all.
Thanks, Ghislain, for that observation. Yes, you're spot on .. Some of the output from 'sudo lshw' .. description: Desktop Computer *-core description: Motherboard product: 45CS/45CSX vendor: FOXCONN *-firmware description: BIOS vendor: American Megatrends Inc. physical id: 0 version: 080014 date: 05/08/2009 size: 64KiB capacity: 448KiB *-cpu:0 description: CPU product: Intel(R) Atom(TM) CPU 330 @ 1.60GHz vendor: Intel Corp. physical id: 4 bus info: cpu@0 version: 6.12.2 slot: Socket437 size: 1600MHz capacity: 1666MHz width: 64 bits clock: 133MHz *-pci description: Host bridge product: 82945G/GZ/P/PL Memory Controller Hub vendor: Intel Corporation physical id: 100 bus info: pci@0000:00:00.0 version: 02 width: 32 bits clock: 33MHz configuration: driver=agpgart-intel resources: irq:0 *-display description: VGA compatible controller product: 82945G/GZ Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 02 width: 32 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:16 memory:ffe80000-ffefffff ioport:ec00(size=8) memory:d0000000-dfffffff memory:ffe40000-ffe7ffff
Almost the same here : (part of 'sudo lshw') description: Desktop Computer *-core description: Motherboard product: 45CS/45CSX vendor: FOXCONN *-firmware description: BIOS vendor: American Megatrends Inc. physical id: 0 version: 080014 date: 11/28/2008 size: 64KiB capacity: 448KiB capabilities: isa pci pnp apm upgrade shadowing cdboot bootselect socketedrom edd int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification *-cpu:0 description: CPU product: Intel(R) Atom(TM) CPU 330 @ 1.60GHz vendor: Intel Corp. physical id: 4 bus info: cpu@0 version: 6.12.2 serial: 0001-06C2-0000-0000-0000-0000 slot: Socket437 size: 1600MHz capacity: 1600MHz width: 64 bits clock: 133MHz *-pci description: Host bridge product: 82945G/GZ/P/PL Memory Controller Hub vendor: Intel Corporation physical id: 100 bus info: pci@0000:00:00.0 version: 02 width: 32 bits clock: 33MHz configuration: driver=agpgart-intel resources: irq:0 *-display description: VGA compatible controller product: 82945G/GZ Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 02 width: 32 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:16 memory:ffe80000-ffefffff ioport:ec00(size=8) memory:d0000000-dfffffff memory:ffe40000-ffe7ffff
The other oddity is why is this problem only showing up now? Did earlier kernels work? Which is the latest kernel that does work and the first that doesn't? And is anyone prepared to bisect to find the commit that breaks the working setup?
Well this problem is quite old : it became obvious with Ubuntu 10.10 (I couldn't even start a live-CD or USB) until now. But I also had an issue with Ubuntu 10.04 : the use of compiz (by enabling the 3D effects) used to create random freezes. The workaround to these freezes was to install "compiz fusion icon", to check "indirect rendering" in its options, and to add it to startup applications. I can't say if it was related to our current problem. Most probably ? I would be glad to try any new kernel (or other changes) when I have time, but I'm not an advanced user so please explain the method(s) step by step... Regards,
(In reply to comment #13) > Well this problem is quite old : it became obvious with Ubuntu 10.10 (I couldn't even start a live-CD or USB) until now. > But I also had an issue with Ubuntu 10.04 : the use of compiz (by enabling the 3D effects) used to create random freezes. The workaround to these freezes was > to install "compiz fusion icon", to check "indirect rendering" in its options, and to add it to startup applications. I can't say if it was related to our > current problem. Most probably ? Nope, I can safely say that is a different issue. The current issue prevents X from starting up an accelerated driver at all, and so compiz would simply not work (or perhaps only through incredibly slow swrast). So I believe you would have noticed the issue even then. > I would be glad to try any new kernel (or other changes) when I have time, but I'm not an advanced user so please explain the method(s) step by step... We need to start compiling kernels and performing a bisection using the 10.04 kernel as the last known good commit. Can you track down a guide for compiling a kernel on ubuntu and simply try replacing your current one with one from git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git?
I have had a problem with video for the last few versions of Ubuntu, and for the last couple of versions (at least) have been running in a failsafe mode. A good test for me has been Google Earth. I have not been able to run Google Earth properly for some time now. With pci=noacpi in Oneiric, I actually have the best set up I have had so far - I can now run Google Earth with proper performace AND Gnome 3. I submitted this report, because I wanted to get the problem addressed properly, though, rather than just hoping that it will work in the next Ubuntu version. I also thought that it would be good to get it fixed for the long term release of Ubuntu - Precise. I will install Ubuntu 10.04.3 on a spare partition to confirm (or otherwise) that there is a problem with that version also.
Created attachment 57190 [details] Xorg log file for Ubuntu 10.04.2
Created attachment 57191 [details] Dmesg for Ubuntu 10.04.2
Created attachment 57192 [details] Dmesg for Ubuntu 10.04.2 with drm.debug=0xe (overloaded with i915 messages?)
Seems that the problem does not go back to Lucid after all! I installed Lucid 2 (rather than 3) since I already had the .ISO file. Kernel is 2.6.32-28-generic The Intel driver does load - please see attachments.
FWIW, you can install most kernels from Ubuntu packages here: http://kernel.ubuntu.com/~kernel-ppa/mainline/ Even the packages marked as Maverick or Natty should more or less work with Oneiric.
Thanks, Milan - yes, that info is worth a lot. :) So .. the Lucid version of Xorg correctly loads the 'intel' driver for kernel 2.6.32.28 (probably need to repeat test with the current Xorg?) It is likely (but to be confirmed) that Xorg incorrectly loads 'vesa' for the following kernel .. [DIR] v2.6.35.7-maverick/ 29-Sep-2010 11:26 - (which is about 90 versions later) What is the next step, Chris? BTW, what do you mean by 'bisection'? (I am guessing a binary trial-and-error process?)
(In reply to comment #21) > Thanks, Milan - yes, that info is worth a lot. :) > > So .. the Lucid version of Xorg correctly loads the 'intel' driver for kernel 2.6.32.28 (probably need to repeat test with the current Xorg?) > > It is likely (but to be confirmed) that Xorg incorrectly loads 'vesa' for the following kernel .. > [DIR] v2.6.35.7-maverick/ 29-Sep-2010 11:26 - > > (which is about 90 versions later) So, what's the last version you can test that works? Also, why do you say "to be confirmed"? The info is only interesting if you're absolutely sure you're right. ;-)
Some results booting up a fully-patched Oneiric with old kernels .. 2.6.32.28 /boot/vmlinuz-2.6.32-02063228-generic root=/dev/sda3 ro quiet nosplash Loads 'Intel' driver 2.6.33.1 /boot/vmlinuz-2.6.33-02063301-generic root=/dev/sda3 ro quiet nosplash Loads 'Intel' driver 2.6.33.20 /boot/vmlinuz-2.6.33-02063320-generic root=/dev/sda3 ro quiet nosplash Loads 'Intel' driver 2.6.34.1 /boot/vmlinuz-2.6.34-02063401-generic root=/dev/sda3 ro quiet nosplash Loads 'Vesa' driver That is, the last kernel to load 'Intel' driver correctly was 2.6.33.20 (Maverick)
And to add a little more certainty, I booted up on a Natty kernel .. 2.6.38.4 /boot/vmlinuz-2.6.38-02063804-generic root=/dev/sda3 ro quiet nosplash Loads 'Vesa' driver
What is the next step ?
So we have two endpoints: last known good: 2.6.33.20 first bad: 2.6.34.1 The next step is download the source for both of those into a single git tree (which should be available from Ubuntu) and recompile both checking that we can reproduce the issue when manually compiling the kernel package. Having verified that we can recompile and reproduce the issue at will, we start a "git bisection" to find the offending commit. Something like: $ cd /usr/src/linux $ git bisect good v2.6.33.20 # or whatever the git commit id that corresponds to the Ubuntu kernel is, it should have a tag... $ git bisect bad v2.6.34.1 # git will now pick a point between those two and give you a kernel tree to compile $ make kernel-pkg # install and test and say either $ git bisect good # if the driver loads $ git bisect bad # if vesa is loaded instead # rebuild, reinstall, retest until git pronounces the winner Despite the large number of patches that go into each release, due to the nature of bisection you will only need about 20 recompiles at most, so it is not quite as time consuming as it may first appear! ;-)
Thanks, Chris. That's what 'bisect' means! :) Can you or anyone tell me how to 'download the source for both of those into a single git tree and recompile both'? I am willing to help further, but I don't have time to spend hours or days working out how to do this by myself - please do not just point me to a tutorial.
(In reply to comment #27) > Thanks, Chris. That's what 'bisect' means! :) > > Can you or anyone tell me how to 'download the source for both of those into a > single git tree and recompile both'? I am willing to help further, but I don't > have time to spend hours or days working out how to do this by myself - please > do not just point me to a tutorial. You just need to grab Linus's git tree, all versions are there. So you should run: git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git You can see the tags corresponding to versions here: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=tags Good luck! ;-)
Thanks, Milan. Sorry, I have been out of action for over a month, but am now back. I have cloned the git tree onto my system successfully - with .. git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git From http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=tags - it seems that I need to use the tags .. v2.6.33 (good) v2.6.34 (bad) Following the bisect instructions, I have done .. git bisect start git bisect bad v2.6.34 git bisect good v2.6.33 .. But when I run .. make kernel-pkg I get the instructions .. *** You have not yet configured your kernel! *** (missing kernel config file ".config") *** *** Please run some configurator (e.g. "make oldconfig" or *** "make menuconfig" or "make xconfig"). Can someone please give me further instructions?
As the message says, you need to configure the kernel. See https://wiki.ubuntu.com/KernelTeam/GitKernelBuild The simplest solution is to use the Ubuntu default configuration: cp /boot/config-`uname -r` .config
Thanks. I have read the GitKernelBuild article. Have done .. cd linux cp /boot/config-`uname -r` .config git bisect start git bisect good v2.6.33 git bisect bad v2.6.34 When I run .. make kernel-pkg .. I am asked lots of questions - I just press ENTER for each .. after that I get .. # configuration written to .config # make[1]: *** No rule to make target `kernel-pkg'. Stop. make: *** [kernel-pkg] Error 2
My fault, that's not part of upstream. Use sudo make modules_install install. The tricky part with the standard setup is that grub defaults to booting the kernel with the highest version number, so you have to be careful to select the right kernel when rebooting.
I get this result .. david@thich:~/linux$ sudo make modules_install cp: cannot stat `/home/david/linux/modules.order': No such file or directory make: *** [_modinst_] Error 1
That's because you need to build the kernel before installing it. What happens if you follow the Ubuntu instructions? In particular, have you run this? CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
david@thich:~/linux$ CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers /usr/bin/fakeroot: line 176: make-kpkg: command not found
You didn't install the needed package from the Prerequisites section: sudo apt-get install git-core kernel-package fakeroot build-essential ncurses-dev
Thanks. Needed to install 'kernel-package'. make-kpkg build now progresses - but failed - but I will look into it more carefully before reporting back.
I have run these commands .. git bisect start git bisect bad v2.6.34 git bisect good v2.6.33 CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd > ../makekpkg.log Although it seems to have successfully run, I cannot find any newly created.deb files.
Created attachment 60412 [details] Log file for make -kpkg
Not sure, but the docs say the .deb are created in the parent directory of the current directory: > Change to one directory level up (this is where the linux-image and > linux-header .deb files were put) > > cd ..
Thanks, Milan. No, there is no .deb file there, and the process does not seem to have created a .deb file.
Sorry, I'm not sure I can help. Be sure to run first make-kpkg clean so that the package is really built. But you'd better ask on Ubuntu IRC or mailing lists.
I have now successfully compiled kernel 3.4.0-rc4-custom and booted into this kernel using the instructions on https://wiki.ubuntu.com/KernelTeam/GitKernelBuild ie. using .. CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers Presumably this procedure builds the most recent kernel. Prior to doing the bisect, how do I modify this procedure to build versions 2.6.33 and 2.6.34 of the kernel ?
(In reply to comment #43) > I have now successfully compiled kernel 3.4.0-rc4-custom and booted into this > kernel using the instructions on > https://wiki.ubuntu.com/KernelTeam/GitKernelBuild > > ie. using .. > CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd > --append-to-version=-custom kernel_image kernel_headers > > Presumably this procedure builds the most recent kernel. > > Prior to doing the bisect, how do I modify this procedure to build versions > 2.6.33 and 2.6.34 of the kernel ? Follow the the bisect recipe from comment #38 and compile&install each version using the above command. If it works, run git bisect good if it fails git bisect bad git will then automatically select the next version for you to build&test.
Reporter seems to be awol, closing. Please reopen if this is still an issue and the required information is provided.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.