среда, 11 мая 2011 г.

nvidia drivers on Debian Squeeze with kernel 2.6.38 from backports

Q&D way to install proprietary nvidia drivers with dkms on 2.6.38 kernel from squeeze-backports.

  1. Install linux-kbuild from Debian Wheezy
  2. Install linux-headers from squeeze-backports (with dkms compilation error)
  3. Make symlink to generated header:
    
    cd /usr/src/linux-headers-2.6.38-bpo.2-your-version/include/linux
    ln -s ../generated/autoconf.h ./
    
  4. Patch nvidia source at /usr/src/nvidia-195.36.31:
    
    --- nv-linux.h.orig     2011-05-11 12:26:22.206190191 +0400
    +++ nv-linux.h  2011-05-04 15:36:27.163263047 +0400
    @@ -975,8 +975,13 @@
     #endif
     
     #if defined(NV_ACQUIRE_CONSOLE_SEM_PRESENT)
    -#define NV_ACQUIRE_CONSOLE_SEM() acquire_console_sem()
    -#define NV_RELEASE_CONSOLE_SEM() release_console_sem()
    +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
    +#  define NV_ACQUIRE_CONSOLE_SEM() console_lock()
    +#  define NV_RELEASE_CONSOLE_SEM() console_unlock()
    +# else
    +#  define NV_ACQUIRE_CONSOLE_SEM() acquire_console_sem()
    +#  define NV_RELEASE_CONSOLE_SEM() release_console_sem()
    +# endif
     #else
     #define NV_ACQUIRE_CONSOLE_SEM()
     #define NV_RELEASE_CONSOLE_SEM()
    
  5. Reinstall linux-headers to recompile modules