3

I have read a lot and tried a lot - nothing worked for me.

I have a Dell Inspiron 8200 (1600x1200) with a Geforce MX440 Mobile. Installing the driver the "easy way" (sudo apt-get install nvidia-current) leaves me stuck with a tiny non-changeable resolution (1024x768 or 800x600). So I went for the hard way:

  • sudo apt-get update
  • sudo apt-get dist-upgrade
  • blacklisted the nouveau-driver
  • rebooted
  • downloaded and run (sudo sh ...) the Nvidia 96 file ending pkg1.run which is the right one for me as I read somewhere.

This lead to an error:

ERROR: The kernel header file
'/lib/modules/3.08.0-35-generic/build/include/linux/version.h' does
not exist. The most likely reason for this is that the kernel source
files in '/lib/modules/3.08.0-35-generic/build' have not been
configured.

How can I configure the kernel source files? There is nothing like sudo make-prepare or sudo get-apt kernel-devel right?

A workaround suggested to copy the version.h (cp -v /usr/include/linux/version.h /lib/modules/$(uname -r)/build/include/linux) which lead to this error:

ERROR: If you are using a Linux 2.4 kernel, please make sure  you
either have configured kernel sources matching your  kernel or the
correct set of kernel headers installed  on your system.  If you are
using a Linux 2.6 kernel, please make sure  you have configured kernel
sources matching your kernel  installed on your system. If you
specified a separate  output directory using either the
"KBUILD_OUTPUT" or  the "O" KBUILD parameter, make sure to specify
this  directory with the SYSOUT environment variable or with  the
equivalent nvidia-installer command line option.  Depending on where
and how the kernel sources (or the  kernel headers) were installed,
you may need to specify  their location with the SYSSRC environment
variable or  the equivalent nvidia-installer command line option.

Where are the kernel sources installed?

I even tried to run the ...pkg1.run with --kernel-source-path /usr/include/linux (where version.h and many other .h Files are) as parameter but this lead to:

 ERROR: The kernel header file
 '/usr/include/linux/include/linux/kernel.h' does not exist (...)

Has anybody an idea?

Braiam
  • 67,791
  • 32
  • 179
  • 269
user239738
  • 31
  • 1
  • 1
  • 3

1 Answers1

5

Ok, seems like you have been playing way too much with your installation... please read everything before doing anything.

The only thing you need to do was install the kernel headers and everything would be fine:

sudo apt-get install linux-generic

That was the only thing you have to do and would solve the "The kernel header file 'version.h' does not exist." error... Now we need to revert what you have done to make it right.

How can I configure the kernel source files? There is nothing like sudo make-prepare or sudo get-apt kernel-devel right?

You don't need to configure anything. If you use APT everything will be placed just fine. Also, you don't need sudo to do make. There is no get-apt nor make-prepare commands, so wherever you saw those just close that page and don't trust anything said there.

A workaround suggested to copy the version.h (cp -v /usr/include/linux/version.h /lib/modules/$(uname -r)/build/include/linux) which lead to this error:

You must only follow the guides in the last 1 year and from people that knows what they are doing... the /usr/include/linux/version.h file and /lib/modules/$(uname -r)/build/include/linux are essentially provided by different packages. The one in usr is provided by linux-libc-dev while the one you need is provided by linux-headers. Remove it:

sudo rm /lib/modules/$(uname -r)/build/include/linux/version.h

ERROR: The kernel header file '/usr/include/linux/include/linux/kernel.h' does not exist (...)

This will be also fixed when you install the headers package.

Braiam
  • 67,791
  • 32
  • 179
  • 269
  • I have linux-headers intalled in my mytbuntu 14.04.3 box and so is linux-generic-lts-vivid. The directory has many .h files, but not version.h. So maybe the problem is that the Nvidia installer is not designed to work with later kernels. – jarno Jan 02 '16 at 16:10
  • This tells the same: "I attempted to figure a way to install the nvidia driver, but my understanding is that I need the 96.43 one. The .run file from nvidia doesn't work for newer kernels, and I gave up on that approach after a while. I attempted to find a repository with a recent 96.43 package, but had no luck. My guess is that folks have better things to do with their time than update packages for drivers that support cards that are roughly a decade old..." – jarno Jan 02 '16 at 16:14