# Cambio kernel

## rmmts

Hola,

tengo el gentoo con un kernel 2.6.18-gentoo-r6, la base del sistema es algo antigua ya que la tengo como servidor y prefiero no tener que llegar a actualizar. He tenido que actualizar desde un kernel 2.6.13 por unos problemas.

Ahora me encuentro con que tras esta actualización, no me monta los pendrive automáticamente como me hacia anteriormente. El config para el kernel 2.6.18-gentoo-r6 es el que tenia en el 2.6.13. Probe tambien con un kernel 2.6.21 y este me monta los pendrive, pero me da problemas con el driver propietario de nvidia.

a alguien se le ocurre algo???

Gracias

----------

## i92guboj

 *rmmts wrote:*   

> Hola,
> 
> tengo el gentoo con un kernel 2.6.18-gentoo-r6, la base del sistema es algo antigua ya que la tengo como servidor y prefiero no tener que llegar a actualizar. He tenido que actualizar desde un kernel 2.6.13 por unos problemas.
> 
> Ahora me encuentro con que tras esta actualización, no me monta los pendrive automáticamente como me hacia anteriormente. El config para el kernel 2.6.18-gentoo-r6 es el que tenia en el 2.6.13. Probe tambien con un kernel 2.6.21 y este me monta los pendrive, pero me da problemas con el driver propietario de nvidia.
> ...

 

No das muchos datos.

En principio, el tema de los pendriver no tendría nada que ver con el kernel en sí, sino conque te falte algún driver. Ten en cuenta que para los pendrives necesitar tener los drivers de usb ohci/uhci, si usas 2.0 el ehci también. Además, necesitar el driver para mass storage support, todos están en la sección device drivers -> usb de menuconfig (la configuración del kernel). Si usas genkernel, no puedo ayudar, jamás lo usé.

Una vez que tienes esto, si enchufas el pen en un puerto usb, y luego ejecutas dmesg, deberías ver los mensajes del kernel indicando si tu dispositivo usb se ha detectado o no correctamente. A partir de ahí, el hecho de que se monten no tiene nada que ver con tu kernel, sino con tu desktop, o con ivman si es eso lo que usas. Como no das mucho info, solo puedo darte indicaciones generales.

En cuanto al problema con el driver de nvidia, cuéstanos cual es. Es vital que pegues aquí los errores y que seas lo más descriptivo posible, si no, andamos dando palos de ciego.

----------

## rmmts

Hola y gracias por tu respuesta.

Escribi poco porque andaba con algo de prisa cuando postee, lo siento.

El kernel si es un genkernel, aunque por lo que he visto es igual que un vanilla(o casi).

Tengo marcada las opciones ohci, uhci, echi y mass storage support.

El config que use para compilar este kernel (2.6.18 ) es uno que tenia del anterior kernel que usaba (2.6.13), el cual si que me automontaba los pendrive sin problemas. Cuando probe a compilar un kernel 2.6.21, tambien use el mismo config(el del 2.6.13) y este si que me automontaba tambien los pendrive, pero me daba un error al meter el driver de nvidia(el cual esta al final del este post).

A la desesperada he probado a compilar algun que otro kernel al azar(2.6.14.7, 2.6.19.7, 2.2.22.1) a partir del 2.6.13 y con todos me da el error de nvidia. El tema que tengo con el driver de nvidia, esque solo puedo usar una unica version (1.0-8774) ya que el resto me da unos problemas con el driver xv.

Bueno si hace falta algo mas que diga decirme el que. 

Aqui pongo el log del nvidia-instaler. 

Gracias

```

nvidia-installer log file '/var/log/nvidia-installer.log'

creation time: Mon Jul 23 17:42:16 2007

option status:

  license pre-accepted    : false

  update                  : false

  force update            : false

  expert                  : false

  uninstall               : false

  driver info             : false

  precompiled interfaces  : true

  no ncurses color        : false

  query latest version    : false

  OpenGL header files     : true

  no questions            : false

  silent                  : false

  no recursion            : false

  no backup               : false

  kernel module only      : false

  sanity                  : false

  add this kernel         : false

  no runlevel check       : false

  no network              : false

  no ABI note             : false

  no RPMs                 : false

  no kernel module        : false

  force SELinux           : default

  force tls               : (not specified)

  X install prefix        : (not specified)

  X library install path  : (not specified)

  X module install path   : (not specified)

  OpenGL install prefix   : (not specified)

  OpenGL install libdir   : (not specified)

  utility install prefix  : (not specified)

  utility install libdir  : (not specified)

  doc install prefix      : (not specified)

  kernel name             : (not specified)

  kernel include path     : (not specified)

  kernel source path      : (not specified)

  kernel output path      : (not specified)

  kernel install path     : (not specified)

  proc mount point        : /proc

  ui                      : (not specified)

  tmpdir                  : /tmp

  ftp mirror              : ftp://download.nvidia.com

  RPM file list           : (not specified)

Using: nvidia-installer ncurses user interface

-> License accepted.

-> There appears to already be a driver installed on your system (version: 1.0-

   8774).  As part of installing this driver (version: 1.0-8774), the existing 

   driver will be uninstalled.  Are you sure you want to continue? ('no' will a

   bort installation) (Answer: Yes)

-> No precompiled kernel interface was found to match your kernel; would you li

   ke the installer to attempt to download a kernel interface for your kernel f

   rom the NVIDIA ftp site (ftp://download.nvidia.com)? (Answer: Yes)

-> No matching precompiled kernel interface was found on the NVIDIA ftp site;

   this means that the installer will need to compile a kernel interface for

   your kernel.

-> Performing CC sanity check with CC="gcc".

-> Performing CC version check with CC="gcc".

-> Kernel source path: '/lib/modules/2.6.19.7/source'

-> Kernel output path: '/lib/modules/2.6.19.7/build'

-> Performing rivafb check.

-> Performing nvidiafb check.

-> Cleaning kernel module build directory.

   executing: 'cd ./usr/src/nv; make clean'...

   rm -f -f nv.o nv-vm.o os-agp.o os-interface.o os-registry.o nv-i2c.o nv.o nv

   -vm.o os-agp.o os-interface.o os-registry.o nv-i2c.o nvidia.mod.o

   rm -f -f build-in.o nv-linux.o *.d .*.{cmd,flags}

   rm -f -f nvidia.{o,ko,mod.{o,c}} nv_compiler.h *~

   rm -f -f stprof stprof.o symtab.h

   rm -f -rf .tmp_versions

-> Building kernel module:

   executing: 'cd ./usr/src/nv; make module SYSSRC=/lib/modules/2.6.19.7/source

   SYSOUT=/lib/modules/2.6.19.7/build'...

   

   NVIDIA: calling KBUILD...

   make CC=gcc KBUILD_OUTPUT=/lib/modules/2.6.19.7/build KBUILD_VERBOSE=1 -C /l

   ib/modules/2.6.19.7/source SUBDIRS=/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-877

   4-pkg1/usr/src/nv modules

   make -C /lib/modules/2.6.19.7/build \

   KBUILD_SRC=/usr/src/linux-2.6.19.7 \

   KBUILD_EXTMOD="/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv" -

   f /usr/src/linux-2.6.19.7/Makefile modules

   test -e include/linux/autoconf.h -a -e include/config/auto.conf || (      \

   echo;                        \

   echo "  ERROR: Kernel configuration is invalid.";      \

   echo "         include/linux/autoconf.h or include/config/auto.conf are miss

   ing.";   \

   echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.

   ";   \

   echo;                        \

   /bin/false)

   mkdir -p /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/.tmp_ver

   sions

   rm -f /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/.tmp_versio

   ns/*

   make -f /usr/src/linux-2.6.19.7/scripts/Makefile.build obj=/tmp/selfgz11126/

   NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv

   echo \#define NV_COMPILER \"`gcc -v 2>&1 | tail -n 1`\" > /tmp/selfgz11126/N

   VIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv_compiler.h

     gcc -Wp,-MD,/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/.nv

   .o.d  -nostdinc -isystem /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include -D

   __KERNEL__ -Iinclude -Iinclude2 -I/usr/src/linux-2.6.19.7/include -include i

   nclude/linux/autoconf.h  -I/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/u

   sr/src/nv -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-alias

   ing -fno-common -Os -pipe -msoft-float -mpreferred-stack-boundary=2 -march=a

   thlon -ffreestanding -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -I/usr/src

   /linux-2.6.19.7/include/asm-i386/mach-default -Iinclude/asm-i386/mach-defaul

   t -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement  -

   I/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv -Wall -Wimplicit

   -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wpointer-ar

   ith -Wno-multichar -Werror -O -fno-common -MD -Wsign-compare -Wno-

   cast-qual -Wno-error -D_LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE -DNTRM -DNV

   RM -DDYNAMIC_SLI -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=8

   774 -UDEBUG -U_DEBUG -DNDEBUG -DNV_SIGNAL_STRUCT_RLIM -DNV_MULTIPLE_BRIDGE_A

   GPGART_PRESENT -DNV_PCI_GET_CLASS_PRESENT -DNV_SYSCTL_MAX_MAP_COUNT_PRESENT 

   -DNV_PM_MESSAGE_T_PRESENT -DNV_PCI_CHOOSE_STATE_PRESENT -DNV_VM_INSERT_PAGE_

   PRESENT -DNV_REMAP_PFN_RANGE_PRESENT -DNV_CHANGE_PAGE_ATTR_PRESENT -DNV_VMAP

   _4_PRESENT -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nv)" 

   -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /tmp/selfgz11126/NVIDIA-Linux-x8

   6-1.0-8774-pkg1/usr/src/nv/.tmp_nv.o /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8

   774-pkg1/usr/src/nv/nv.c

   En el fichero incluído de /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/us

   r/src/nv/nv.c:14:

   /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv-linux.h:17:26:

   linux/config.h: No existe el fichero o el directorio

   In file included from include/linux/list.h:8,

                    from include/linux/wait.h:22,

                    from include/asm/semaphore.h:41,

                    from include/linux/sched.h:59,

                    from include/linux/utsname.h:35,

                    from /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/sr

   c/nv/nv-linux.h:19,

                    from /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/sr

   c/nv/nv.c:14:

   include/linux/prefetch.h: En la función `prefetch_range':

   include/linux/prefetch.h:62: aviso: se usó un puntero de tipo `void *' en la

   aritmética

   /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv.c: En la funci

   ón `nv_kern_open':

   /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv.c:1806: aviso:

   al pasar el argumento 2 de `request_irq' de tipo de puntero incompatible

   make[4]: *** [/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv.

   o] Error 1

   make[3]: *** [_module_/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/sr

   c/nv] Error 2

   make[2]: *** [modules] Error 2

   NVIDIA: left KBUILD.

   nvidia.ko failed to build!

   make[1]: *** [mdl] Error 1

   make: *** [module] Error 2

-> Error.

ERROR: Unable to build the NVIDIA kernel module.

ERROR: Installation has failed.  Please see the file

       '/var/log/nvidia-installer.log' for details.  You may find suggestions

       on fixing installation problems in the README available on the Linux

       driver download page at www.nvidia.com.

```

----------

## i92guboj

 *rmmts wrote:*   

> Hola y gracias por tu respuesta.
> 
> Escribi poco porque andaba con algo de prisa cuando postee, lo siento.
> 
> El kernel si es un genkernel, aunque por lo que he visto es igual que un vanilla(o casi).
> ...

 

Lo del driver es bastante raro. En cuanto a lo del pendrive, supongo que el funcionamiento del genkernel, para reutilizar configs antiguas, irá basado en make oldconfig. Esto explicaría por qué en algunas versiones te funciona algo y en otras no. Si algo cambia de sitio en el kernel, aunque lo tuvieras marcado en una versión, puede desaparecer en la siguiente. Yo nunca me fio de las utilidades automáticas para estas cosas, y poco te podré ayudar con genkernel, a no ser que aparezca alguien que sepa manejarlo.

De todas formas, si tienes todos los drivers de usb en su sitio, debería conectar el dispositivo al puerto, y ejecutar dmesg a ver si ha sido detectado. Si es así, entonces explícanos como se automontaban. ¿Estás usando ivman o te refieres al automontado de escritorios como gnome o similares?

El automontado y el reconocimiento del dispositivo son dos pasos separados, y el automontado, una vez que el dispositivo está detectado, no tiene nada que  ver con la configuración del kernel (antes si, en la era de supermount y similares).

```

[...]

   En el fichero incluído de /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/us

   r/src/nv/nv.c:14:

   /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv-linux.h:17:26:

   linux/config.h: No existe el fichero o el directorio

   In file included from include/linux/list.h:8,

                    from include/linux/wait.h:22,

                    from include/asm/semaphore.h:41,

                    from include/linux/sched.h:59,

                    from include/linux/utsname.h:35,

                    from /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/sr

   c/nv/nv-linux.h:19,

                    from /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/sr

   c/nv/nv.c:14:

   include/linux/prefetch.h: En la función `prefetch_range':

   include/linux/prefetch.h:62: aviso: se usó un puntero de tipo `void *' en la

   aritmética

   /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv.c: En la funci

   ón `nv_kern_open':

   /tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv.c:1806: aviso:

   al pasar el argumento 2 de `request_irq' de tipo de puntero incompatible

   make[4]: *** [/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/src/nv/nv.

   o] Error 1

   make[3]: *** [_module_/tmp/selfgz11126/NVIDIA-Linux-x86-1.0-8774-pkg1/usr/sr

   c/nv] Error 2

   make[2]: *** [modules] Error 2

   NVIDIA: left KBUILD.

   nvidia.ko failed to build!

   make[1]: *** [mdl] Error 1

   make: *** [module] Error 2

-> Error.

ERROR: Unable to build the NVIDIA kernel module.

ERROR: Installation has failed.  Please see the file

       '/var/log/nvidia-installer.log' for details.  You may find suggestions

       on fixing installation problems in the README available on the Linux

       driver download page at www.nvidia.com.

```

Es bastante extraño, ¿estás usando algún kernel parcheado? ¿usas el instalador de nvidia a mano o emerge nvidia-drivers? Nunca he visto este mismo error.

----------

## rmmts

Lo primero, gracias por tu ayuda.

Ahora he probado a compilar un kernel vanilla 2.6.18(usando tambien el config-2.6.13) y se me comporta exactamente igual que el genkernel. No me monta el pendrive, pero si me permite instalar el driver de nvidia.

Cuando meto el pendrive en el dmesg si que me pilla el usb bien, pero no me le automonta. También me he fijado que el hal no me crea el directorio en el que se va a montar. 

En el kernel tengo marcado en Device Drivers-->USB Support el OCHI, UCHI, ECHI y el USB Mass Storage support.

¿Se te ocurre algo?

Con respecto a lo del driver de nvidia, le instalo a mano y con los kernel que probé y me daban errores eran vanilla, asi que no tendran parches. Se que el kernel 2.6.13 tenia algun que otro parche, pero no creo que tenga nada que ver.

Muchas gracias.

----------

## i92guboj

 *rmmts wrote:*   

> Lo primero, gracias por tu ayuda.
> 
> Ahora he probado a compilar un kernel vanilla 2.6.18(usando tambien el config-2.6.13) y se me comporta exactamente igual que el genkernel. No me monta el pendrive, pero si me permite instalar el driver de nvidia.
> 
> Cuando meto el pendrive en el dmesg si que me pilla el usb bien, pero no me le automonta. También me he fijado que el hal no me crea el directorio en el que se va a montar. 
> ...

 

Repito, ni hal ni el kernel montan nada. Estás mirando en el lado equivocado.

Es tu escritorio, o ivman en su caso, el que crea directorios y/o monta unidades. Dime como se montan tus unidades, si las montas desde gnome o cualquier otro escritorio, o si usas ivman para que se monten solas. En dmesg, mira no solo que te de la info del usb, sino también de la creación del dispositivo /dev/sda sdb o el que corresponda.

Sobre el driver de nvidia, instálalo usando emerge nvidia-drivers, que para eso está el ebuild.

----------

## rmmts

De escritorio tengo un blackbox instalado, pero uso el ivman para que se monte ello solo.

Este es el dmesg del dispositivo usb:

```

usb 1-7: new high speed USB device using ehci_hcd and address 6

usb 1-7: configuration #1 chosen from 1 choice

scsi2 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 6

usb-storage: waiting for device to settle before scanning

  Vendor:           Model: USB FLASH DRIVE   Rev: PMAP

  Type:   Direct-Access                      ANSI SCSI revision: 00

SCSI device sda: 2015232 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 23 00 00 00

sda: assuming drive cache: write through

SCSI device sda: 2015232 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 23 00 00 00

sda: assuming drive cache: write through

 sda: sda1

sd 2:0:0:0: Attached scsi removable disk sda

usb-storage: device scan complete

```

----------

## i92guboj

 *rmmts wrote:*   

> De escritorio tengo un blackbox instalado, pero uso el ivman para que se monte ello solo.
> 
> 

 

Ok, ivman.

 *Quote:*   

> 
> 
> Este es el dmesg del dispositivo usb:
> 
> ```
> ...

 

Esta salida es totalmente correcta. ¿Es la que obtienes con el kernel que con el cual no se realiza el automontaje?

----------

## rmmts

Si, esa es la salida del dmesg del que no automonta.

----------

## i92guboj

Prueba a ver la salida en el kernel que no automonta, y mira a ver si es igual que esta.

----------

## rmmts

Que me he hecho un pequeño lio, lo siento

dmesg del que si automonta:

```

usb 1-2: new high speed USB device using ehci_hcd and address 16

scsi4 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 16

usb-storage: waiting for device to settle before scanning

  Vendor:           Model: USB FLASH DRIVE   Rev: PMAP

  Type:   Direct-Access                      ANSI SCSI revision: 00

SCSI device sdd: 2015232 512-byte hdwr sectors (1032 MB)

sdd: Write Protect is off

sdd: Mode Sense: 23 00 00 00

sdd: assuming drive cache: write through

SCSI device sdd: 2015232 512-byte hdwr sectors (1032 MB)

sdd: Write Protect is off

sdd: Mode Sense: 23 00 00 00

sdd: assuming drive cache: write through

 sdd: sdd1

Attached scsi removable disk sdd at scsi4, channel 0, id 0, lun 0

usb-storage: device scan complete

```

dmesg del que no automonta:

```

usb 1-7: new high speed USB device using ehci_hcd and address 6

usb 1-7: configuration #1 chosen from 1 choice

scsi2 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 6

usb-storage: waiting for device to settle before scanning

  Vendor:           Model: USB FLASH DRIVE   Rev: PMAP

  Type:   Direct-Access                      ANSI SCSI revision: 00

SCSI device sda: 2015232 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 23 00 00 00

sda: assuming drive cache: write through

SCSI device sda: 2015232 512-byte hdwr sectors (1032 MB)

sda: Write Protect is off

sda: Mode Sense: 23 00 00 00

sda: assuming drive cache: write through

 sda: sda1

sd 2:0:0:0: Attached scsi removable disk sda

usb-storage: device scan complete

```

----------

