PDA

View Full Version : [ubuntu] 10.04 kernel upgrade breaks Nvidia driver



drewdle
July 20th, 2011, 02:16 AM
Hey everybody. First post.

I've just installed Lucid Lynx on both my machines in the interest of sitting and waiting for the Unity/Gnome 3 storm to blow over. On the HP (see below), everything works great, and I've followed instructions online on how to upgrade to LibreOffice, upgrade the kernel to 2.6.38 using the kernel PPA, etc.

However, on the IBM, I'm using Nvidia proprietary graphics drivers. These work well on the stock kernel that 10.04 installed (2.6.32-32), but installing 2.6.38 seems to break the driver. If I install the driver first, and then the kernel on top, X stops working and I have to revert to the default, generic driver to get back in. Once there, I cannot install the driver again. The Additional Drivers dialog goes through the motions, but then drops a "systemerror: installarchives() failed" error message.

So, is there a different version of the driver I should be trying to install? I should clarify at this point I tried all three options the Additional Drivers dialog provided me, all gave the same result (version 96, version 173, and version current).

Or should I leave the kernel at 2.6.32? Is there any downside to leaving it?

Thanks for any help everyone.

coffee412
July 20th, 2011, 02:21 AM
Congrats on your first post!

Here is a link to a post that had the same problem and how they resolved it. Hope it helps you out.

http://ubuntuforums.org/showthread.php?t=1425993

coffee

drewdle
July 20th, 2011, 04:18 AM
Thanks. I'll report back with progress.

drewdle
July 21st, 2011, 01:38 AM
So, fresh install just to make sure everything was lemony fresh. I installed the NVIDIA drivers on kernel 2.6.32, they work. Removed them, upgraded to kernel 2.6.38-10. When I go to install the drivers in the Additional Drivers dialog, I'm getting this:


systemerror: installarchives() failedSo I read through the post that's been linked. Doubled checked Synaptic wasn't running secretly (it isn't). Made sure I am in fact booting into the correct kernel:



drew@appleseed:~$ uname -r
2.6.38-10-generic
Made sure my /usr/src directory has the correct kernels installed:



drew@appleseed:/usr/src$ ls
linux-headers-2.6.32-28 linux-headers-2.6.38-10
linux-headers-2.6.32-28-generic linux-headers-2.6.38-10-generic
linux-headers-2.6.32-33 nvidia-current-195.36.24
linux-headers-2.6.32-33-generic
That's the simple stuff checked and out of the way. However, I think I found part of my problem. When DKMS tries to rebuild the NVIDIA driver, this is the output:



drew@appleseed:~$ sudo apt-get --purge autoremove && sudo apt-get clean
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up nvidia-current (195.36.24-0ubuntu1~10.04) ...
Removing old nvidia-current-195.36.24 DKMS files...

------------------------------
Deleting module version: 195.36.24
completely from the DKMS tree.
------------------------------
Done.
Loading new nvidia-current-195.36.24 DKMS files...
Building only for 2.6.38-10-generic
Building for architecture i686
Building initial module for 2.6.38-10-generic

Error! Bad return status for module build on kernel: 2.6.38-10-generic (i686)
Consult the make.log in the build directory
/var/lib/dkms/nvidia-current/195.36.24/build/ for more information.
dpkg: error processing nvidia-current (--configure):
subprocess installed post-installation script returned error exit status 10
Processing triggers for python-gmenu ...
Rebuilding /usr/share/applications/desktop.en_CA.utf8.cache...
Processing triggers for python-support ...
Errors were encountered while processing:
nvidia-current
E: Sub-process /usr/bin/dpkg returned an error code (1)
If I issue the command:


sudo apt-get --reinstall install nvidia-current-modaliasesDKMS again kicks in and tries to rebuild the driver, but comes up with the same message. So I'm guessing this error is why the Additional Drivers dialog cannot install the drivers. However, I don't know what it means. Here is the output for the log file it refers to:



DKMS make.log for nvidia-current-195.36.24 for kernel 2.6.38-10-generic (i686)
Wed Jul 20 17:26:12 PDT 2011
NVIDIA: calling KBUILD...
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo; \
echo " ERROR: Kernel configuration is invalid."; \
echo " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo; \
/bin/false)
mkdir -p /var/lib/dkms/nvidia-current/195.36.24/build/.tmp_versions ; rm -f /var/lib/dkms/nvidia-current/195.36.24/build/.tmp_versions/*
make -f scripts/Makefile.build obj=/var/lib/dkms/nvidia-current/195.36.24/build
cc -Wp,-MD,/var/lib/dkms/nvidia-current/195.36.24/build/.nv.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.4.3/include -I/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include -Iinclude -include include/generated/autoconf.h -Iubuntu/include -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i686 -mtune=generic -maccumulate-outgoing-args -Wa,-mtune=generic32 -ffreestanding -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=1024 -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -I/var/lib/dkms/nvidia-current/195.36.24/build -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wpointer-arith -Wno-multichar -Werror -fno-defer-pop -MD -Wsign-compare -Wno-cast-qual -Wno-error -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"195.36.24\" -UDEBUG -U_DEBUG -DNDEBUG -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nv)" -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /var/lib/dkms/nvidia-current/195.36.24/build/.tmp_nv.o /var/lib/dkms/nvidia-current/195.36.24/build/nv.c
In file included from include/linux/bitops.h:22,
from include/linux/kernel.h:17,
from include/linux/sched.h:55,
from include/linux/utsname.h:35,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:27,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/bitops.h: In function ‘set_bit’:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/bitops.h:64: warning: pointer of type ‘void *’ used in arithmetic
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/bitops.h: In function ‘clear_bit’:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/bitops.h:102: warning: pointer of type ‘void *’ used in arithmetic
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/bitops.h: In function ‘change_bit’:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/bitops.h:178: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/kernel.h:17,
from include/linux/sched.h:55,
from include/linux/utsname.h:35,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:27,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/bitops.h: In function ‘hweight_long’:
include/linux/bitops.h:49: warning: signed and unsigned type in conditional expression
In file included from include/linux/list.h:7,
from include/linux/preempt.h:11,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:57,
from include/linux/utsname.h:35,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:27,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/prefetch.h: In function ‘prefetch_range’:
include/linux/prefetch.h:57: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/preempt.h:11,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:56,
from include/linux/sched.h:57,
from include/linux/utsname.h:35,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:27,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/list.h: In function ‘list_del’:
include/linux/list.h:107: warning: pointer of type ‘void *’ used in arithmetic
include/linux/list.h:108: warning: pointer of type ‘void *’ used in arithmetic
include/linux/list.h: In function ‘hlist_del’:
include/linux/list.h:602: warning: pointer of type ‘void *’ used in arithmetic
include/linux/list.h:603: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/sched.h:82,
from include/linux/utsname.h:35,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:27,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/rculist.h: In function ‘list_del_rcu’:
include/linux/rculist.h:112: warning: pointer of type ‘void *’ used in arithmetic
include/linux/rculist.h: In function ‘list_replace_rcu’:
include/linux/rculist.h:158: warning: pointer of type ‘void *’ used in arithmetic
include/linux/rculist.h: In function ‘hlist_del_rcu’:
include/linux/rculist.h:312: warning: pointer of type ‘void *’ used in arithmetic
include/linux/rculist.h: In function ‘hlist_replace_rcu’:
include/linux/rculist.h:332: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/utsname.h:35,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:27,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/sched.h: In function ‘object_is_on_stack’:
include/linux/sched.h:2330: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/rculist_bl.h:7,
from include/linux/dcache.h:7,
from include/linux/fs.h:383,
from include/linux/poll.h:12,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:84,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/list_bl.h: In function ‘hlist_bl_del’:
include/linux/list_bl.h:105: warning: pointer of type ‘void *’ used in arithmetic
include/linux/list_bl.h:106: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/dcache.h:7,
from include/linux/fs.h:383,
from include/linux/poll.h:12,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:84,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/rculist_bl.h: In function ‘hlist_bl_del_rcu’:
include/linux/rculist_bl.h:76: warning: pointer of type ‘void *’ used in arithmetic
In file included from /usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/uaccess.h:571,
from include/linux/poll.h:14,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:84,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/uaccess_32.h: In function ‘copy_from_user’:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/uaccess_32.h:209: warning: comparison between signed and unsigned integer expressions
In file included from include/linux/io.h:22,
from include/linux/pci.h:54,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:95,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/io.h: In function ‘writeq’:
/usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/io.h:106: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/dma-mapping.h:7,
from include/asm-generic/pci-dma-compat.h:7,
from /usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/pci.h:141,
from include/linux/pci.h:1242,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:95,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/scatterlist.h: In function ‘sg_virt’:
include/linux/scatterlist.h:199: warning: pointer of type ‘void *’ used in arithmetic
In file included from /usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/dma-mapping.h:43,
from include/linux/dma-mapping.h:93,
from include/asm-generic/pci-dma-compat.h:7,
from /usr/src/linux-headers-2.6.38-10-generic/arch/x86/include/asm/pci.h:141,
from include/linux/pci.h:1242,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:95,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/asm-generic/dma-mapping-common.h: In function ‘dma_map_page’:
include/asm-generic/dma-mapping-common.h:77: warning: pointer of type ‘void *’ used in arithmetic
In file included from /var/lib/dkms/nvidia-current/195.36.24/build/nv-linux.h:126,
from /var/lib/dkms/nvidia-current/195.36.24/build/nv.c:14:
include/linux/highmem.h: In function ‘zero_user_segments’:
include/linux/highmem.h:197: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:200: warning: pointer of type ‘void *’ used in arithmetic
/var/lib/dkms/nvidia-current/195.36.24/build/nv.c: At top level:
/var/lib/dkms/nvidia-current/195.36.24/build/nv.c:417: error: unknown field ‘ioctl’ specified in initializer
/var/lib/dkms/nvidia-current/195.36.24/build/nv.c:417: warning: initialization from incompatible pointer type
make[3]: *** [/var/lib/dkms/nvidia-current/195.36.24/build/nv.o] Error 1
make[2]: *** [_module_/var/lib/dkms/nvidia-current/195.36.24/build] Error 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[1]: *** [module] Error 1
make: *** [module] Error 2


Where to from here?

sydbat
July 21st, 2011, 08:20 PM
I wonder if the best solution might be grabbing the latest driver from nVidia (http://www.nvidia.com/object/unix.html) and manually installing it. The only annoyance is having to re-enable it every time there is a kernel update.

coffee412
July 21st, 2011, 11:04 PM
Of course you can always run the other kernel that does work. I mean, Is there really any big change in the kernels that you would need the latest greatest?

Or


cd /usr/src/linux-headers-2.6.38-10-generic
make oldconfig
make prepare
Then try and reinstall the nvidia driver.

That might work.

*uu
July 28th, 2011, 08:48 PM
As suggested by BicyclerBoy (http://ubuntuforums.org/member.php?u=816321) in this thread (http://ubuntuforums.org/showthread.php?t=1691764) (cheers to him), adding Ubuntu-X team's X Updates PPA (https://launchpad.net/~ubuntu-x-swat/+archive/x-updates) to your repositories might do the trick. They feature more current NVidia drivers (currently 275.19) which appear to work fine with kernel 2.6.38 – at least for me.

Just in case this helps. :-)

mbembi
August 28th, 2011, 09:41 AM
Update kernel to 2.6.32-33-generic, from 2.6.32-31-generic with nvidia-current.
Has result after restart, just text mode.

I try reconfigure: xserver-xorg-video-nv, nvidia-current, nvidia-settings, plymouth, plymouth-x11, plymouth-theme-mint-kde, plymouth-theme-ubuntu-text, plymouth-label.

Now the Graphics mode is back. Resolve the problem.

-------------------------------------------------------------------------------------------------------------------------------
X2 4200, 2G, 9400GT 1G.