# [Kernel] Trucos para compilar el Kernel (Abierto)

## will198

Hola a todos,

Ahora que todo funciona (razonablemente) quería probar a recompilarme el kernel.

De momento me he compilado uno con una configuración base de Ubuntu 8.04 (que no se porqué carga menos opciones modulos etc que el que viene por defecto de Gentoo) y le he quitado alguna cosa que sabía seguro que no necesitaba (Bluetooth, nosequé histora para la radio y pocas cosas más) y decirle que el micro es el k8/optheron o algo así no he tocado mucho más.

He notado que en el arranque me carga muchísimos módulos, pero creo que la mitad no los necesito (a modo de ejemplo me carga los módulos de la e1000 que creo que es una tarjeta de red cuando yo uso el atl1 que tengo que cargar manual, si lo quito con rmmod la red sigue funcionado)

Me he leido varios tutriales y el manual de Gentoo en lo relativo recompilarme el kernel, se que es recomendable hacer un lspci para ver los dispositibos que tengo pero luego esto no se como se traduce en opciones del kernel (al menos con el 2.6 estoy más perdido, con el 2.4 me apañaba mejor)

Por cierto por más que pongo integrado en el kernel al driver de HD, el sistema de archivos ext3, nunca me arranca si no lo configuro con el genkernel para que me genere el initramfs ¿Que otros módulos me pueden faltar?

¿Alguna sugerencia?

Gracias por contestar

Tengo un AMD64 k8, una tarjeta nvidia (uso los propios drivers de nvidia), tarjeta de red, sonido, usb, etc... os pongo la salida del lspci

lspci:

00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge

00:02.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Graphics Port 0)

00:06.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 2)

00:07.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 3)

00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA

00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)

00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)

00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)

00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)

00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)

00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)

00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 13)

00:14.1 IDE interface: ATI Technologies Inc SB600 IDE

00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)

00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge

00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)

03:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)

04:0a.0 RAID bus controller: HighPoint Technologies, Inc. HPT302/302N (rev 02)

y os pongo la lista de módulos que se cargan cuando inicio el sistema (sin el e1000 que lo he quitado ahora  :Smile: )

Module                  Size  Used by

ipv6                  217652  18 

snd_pcm_oss            31584  0 

snd_mixer_oss          13556  1 snd_pcm_oss

snd_seq_oss            23840  0 

snd_seq_midi_event      6388  1 snd_seq_oss

snd_seq                42416  4 snd_seq_oss,snd_seq_midi_event

snd_seq_device          6336  2 snd_seq_oss,snd_seq

snd_hda_codec_realtek   185432  1 

snd_hda_intel          22952  0 

nvidia               9572484  26 

snd_hda_codec          58420  2 snd_hda_codec_realtek,snd_hda_intel

ppdev                   6456  0 

rtc_cmos                9388  0 

parport_pc             33732  0 

rtc_core               15984  1 rtc_cmos

rtc_lib                 2612  1 rtc_core

atl1                   26876  0 

processor              35144  0 

button                  5252  0 

parport                31564  2 ppdev,parport_pc

thermal                13232  0 

i2c_piix4               9348  0 

mii                     4692  1 atl1

i2c_core               21128  2 nvidia,i2c_piix4

serio_raw               4792  0 

ati_agp                 6272  0 

k8temp                  4020  0 

agpgart                31380  2 nvidia,ati_agp

pcspkr                  2164  0 

floppy                 46724  0 

snd_pcm                59672  3 snd_pcm_oss,snd_hda_intel,snd_hda_codec

snd_timer              17980  2 snd_seq,snd_pcm

snd                    49700  10 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_pcm,snd_timer

snd_page_alloc          8220  2 snd_hda_intel,snd_pcm

thermal_sys            12476  2 processor,thermal

tg3                    95960  0 

libphy                 19956  1 tg3

fuse                   48240  0 

xfs                   442944  0 

exportfs                3764  1 xfs

nfs                   223816  0 

auth_rpcgss            33312  1 nfs

nfs_acl                 2644  1 nfs

lockd                  59468  1 nfs

sunrpc                167648  4 nfs,auth_rpcgss,nfs_acl,lockd

jfs                   153092  0 

raid10                 18932  0 

dm_bbr                  9440  0 

dm_snapshot            21148  0 

dm_mirror              12728  0 

dm_region_hash         10420  1 dm_mirror

dm_log                  8568  2 dm_mirror,dm_region_hash

dm_mod                 49412  4 dm_bbr,dm_snapshot,dm_mirror,dm_log

scsi_wait_scan          1044  0 

sbp2                   19616  0 

ohci1394               26532  0 

ieee1394               76156  2 sbp2,ohci1394

sl811_hcd               9396  0 

usbhid                 31200  0 

ohci_hcd               21508  0 

ssb                    38876  1 ohci_hcd

uhci_hcd               19012  0 

usb_storage            48512  0 

ehci_hcd               29760  0 

usbcore               123440  7 sl811_hcd,usbhid,ohci_hcd,uhci_hcd,usb_storage,ehci_hcd

lpfc                  246468  0 

qla2xxx               184324  0 

megaraid_sas           29136  0 

megaraid_mbox          27460  0 

megaraid_mm             8400  1 megaraid_mbox

megaraid               37032  0 

aacraid                61724  0 

sx8                    13408  0 

DAC960                 60552  0 

cciss                  80836  0 

3w_9xxx                28452  0 

3w_xxxx                22016  0 

mptsas                 31708  0 

scsi_transport_sas     25140  1 mptsas

mptfc                  14776  0 

scsi_transport_fc      36408  3 lpfc,qla2xxx,mptfc

scsi_tgt               11272  1 scsi_transport_fc

mptspi                 15516  0 

mptscsih               29268  3 mptsas,mptfc,mptspi

mptbase                72644  4 mptsas,mptfc,mptspi,mptscsih

atp870u                25152  0 

dc395x                 28544  0 

qla1280                20076  0 

dmx3191d                9588  0 

sym53c8xx              64300  0 

qlogicfas408            6260  0 

gdth                   75720  0 

advansys               54112  0 

initio                 15044  0 

BusLogic               20724  0 

arcmsr                 19808  0 

aic7xxx               103768  0 

aic79xx               109816  0 

scsi_transport_spi     19540  5 mptspi,dmx3191d,sym53c8xx,aic7xxx,aic79xx

sg                     25576  0 

videobuf_core          16056  0 

pdc_adma                6200  0 

sata_inic162x           8216  0 

sata_mv                25160  0 

ata_piix               22360  0 

ahci                   30660  6 

sata_qstor              6328  0 

sata_vsc                5144  0 

sata_uli                3864  0 

sata_sis                4952  0 

sata_sx4                9176  0 

sata_nv                20252  0 

sata_via                8600  0 

sata_svw                4952  0 

sata_sil24             11832  0 

sata_sil                8412  0 

sata_promise           10040  0 

pata_pcmcia            10836  0 

pcmcia                 31404  2 ssb,pata_pcmcia

pcmcia_core            32200  2 ssb,pcmcia

Son muchos ¿no?

----------

## gringo

 *Quote:*   

> e notado que en el arranque me carga muchísimos módulos

 

esto creo que es normal si usas genkernel, aunque no puedo decírtelo seguro porque nunca he usado genkernel.

 *Quote:*   

> Por cierto por más que pongo integrado en el kernel al driver de HD, el sistema de archivos ext3, nunca me arranca si no lo configuro con el genkernel para que me genere el initramfs ¿Que otros módulos me pueden faltar?

 

igual simplemente no has puesto la controladora adecuada, que error te dá cuando intentas cargarlo ?

lo de configurar el kernel es como todo, vete leyendo el menú poco a poco, lo que creas que necesitas lo habilitas, en una configuración por defecto ya se suelen habilitar bastantes opciones que seguramente necesites.

Y si tienes alguna duda concreta, ponla aqui e intentaremos ayudarte.

saluetes

----------

## Inodoro_Pereyra

Ante la duda usa la tecla H para llamar a la ayuda del configurador ncurses del kernel (el que se invoca con menuconfig), que no sé si es el que estás usando...

Y si que son muchos módulos. Para que compares:

```
# lsmod 

Module                  Size  Used by

nvidia               4695224  22 

snd_via82xx            19420  0 

snd_ac97_codec         89988  1 snd_via82xx

ac97_bus                1308  1 snd_ac97_codec

snd_mpu401_uart         5432  1 snd_via82xx

snd_rawmidi            16844  1 snd_mpu401_uart
```

La red, los sensores de hardware, el soporte para sistemas de archivos y demás que en tu caso se cargan como módulos los tengo marcados estáticos en el kernel, únicamente los que se que uso, y el resto sin marcar. Con esto consigo un kernel bastante livianito:

```
du -h arch/x86/boot/bzImage 

2.6M   arch/x86/boot/bzImage
```

Trucos, no se me ocurre ninguno  :Very Happy: 

Salud!

----------

## edgar_uriel84

Yo creo que el "problema" no es genkernel, más bien es que agarraste el .config de un Ubuntu, el cual compila casi todo pues es un "kernel genérico", creo que debes empezar por dejar ese .config o bien, dejar de compilar los módulos que se cargan al inicio pero que sabes que no necesita tu computadora, así iras haciendo más ligero el kernel (así lo hice yo).

Ahora, si quieres un kernel a la medida, es más fácil iniciar desde cero, es decir sin copiar otro .config

Saludos.

----------

## will198

Hola a todos,

He probado lo que me decian por ahi de coger mejor una configuración en blanco e ir añadiendo cosas...

Con el primer intento kernel panic porque no podía montar el root (que mania con querer montar el root.. ¿es tan necesario?  :Smile: )

En fin que he preferido hacerlo al reves, con la config que me funciona voy a ir quitando cosas que se que sobran... de momento me he centrado en la red, me he quitado todos los módulos de dispositivos que se que no tengo y he dejado solo el mio "atl1" y un tal "mii" que se arranca al iniciar el mio (servira para algo digo yo) el resto fuera... y si antes tenía la version V4 estable y funcionando ahora tengo la V7 estable y funcionando... pero con menos módulos de red (ahora el lsmod en lugar de mostrarme 122 me muestra 118... vamos progresando)... si el ánimo no me abandona calculo que para la versión V999 tendré un kernel decente casi con un tamaño como el de Inodoro_Pereyra y sólo 6 módulos  :Smile: .

De todas formas me han surgido un par de dudas:

1.- Driver de nvidia: al compilar el nuevo kernel ya el driver de nvidia no carga. En la V4 lo que hice fue instalarme el driver de nvidia oficial no el de Gentoo (que no funcionaba muy bien la verdad)... ¿Tengo que instalarme el driver de nvidia cada vez que pruebe con un nuevo kernel? ¿o hay alguna manera de traérmelo de un kernel a otro? he probado directamente copiando el nvidia.ko de uno a otro y cuando hago modprobe nvidia me dice que leches...

2.- ¿Cual es la diferencia entre cargarlo como módulo o construirlo dentro del kernel? se que para los sistemas de archivos y esas historias es necesario construirlo dentro para evitar los kernel panic... pero ¿para las tarjetas de red, tarjetas de sonido y esas historias que es mejo? por ejemplo se seguro que sin el módulo atl1 mi tarjeta de red no funciona... y no creo que la cambie porque va integrada en la placa... ¿debería construirla dentro del kernel porque gano velocidad... eficiencia o algo por el estilo o da igual?

Por último, me gustaría dejar de usar el initramfs... por favor del lsmod que he posteado arriba me podríais indicar cual de los módulos tendría que estar construido dentro del kernel? o al menos cuales son los candidatos... he probado con el ext3 (que es mi sistema de ficheros) y con lo que creo que es el módulo de la controladora scsi de mi disco duro pero no hay manera... kernel panic... y como con el initramsf funciona me imagino que hay algun módulo que aparece en el lsmod que debería estar dentro del kernel...

Muchas gracias por contestar

----------

## esteban_conde

 *Quote:*   

> Driver de nvidia

 

cada vez que cambies de kernel tienes que repetir el proceso de instalación del driver.

----------

## Inodoro_Pereyra

 *will198 wrote:*   

> 
> 
> 2.- ¿Cual es la diferencia entre cargarlo como módulo o construirlo dentro del kernel? se que para los sistemas de archivos y esas historias es necesario construirlo dentro para evitar los kernel panic... pero ¿para las tarjetas de red, tarjetas de sonido y esas historias que es mejo? por ejemplo se seguro que sin el módulo atl1 mi tarjeta de red no funciona... y no creo que la cambie porque va integrada en la placa... ¿debería construirla dentro del kernel porque gano velocidad... eficiencia o algo por el estilo o da igual?

 

Cargar drivers como módulos implica que el driver en cuestión no es vital para el funcionamiento de tal o cual componente y puede ser cargado y descargado al vuelo en función de si se necesita o no... Esto por lo general automatizado por alguna aplicación, (udev, por ejemplo).

Algunos drivers no pueden ser cargados como módulos por que son necesarios durante el arranque mucho tiempo antes de que algún programa detecte si son necesarios o no, por ejemplo, el driver de tu controladora de discos rígidos o el del sistema de archivos, obviamente... 

Si el kernel no puede leer tu sistema de archivos o detectar tu disco rígido por falta de modulos por cargar entonces no puede montar tu partició raiz.

Lo único que se pierde compilando la mayor cantidad posible de drivers como módulos es tiempo, por el contrario, un kernel como muchos drivers sin uso compilados de forma estática desperdicia algunos poquitos Mb de ram, que en una pc actual ni llegan a ser apreciables y supongo que algo de tiempo de CPU también.

 *will198 wrote:*   

> Por último, me gustaría dejar de usar el initramfs... por favor del lsmod que he posteado arriba me podríais indicar cual de los módulos tendría que estar construido dentro del kernel? o al menos cuales son los candidatos... he probado con el ext3 (que es mi sistema de ficheros) y con lo que creo que es el módulo de la controladora scsi de mi disco duro pero no hay manera... kernel panic... y como con el initramsf funciona me imagino que hay algun módulo que aparece en el lsmod que debería estar dentro del kernel...
> 
> Muchas gracias por contestar

 

Para dejar de usar initramfs simplemente compilar de forma estática el soporte para tu controladora de discos y el/los sistemas de archivos en uso, con eso debería bastar pero no he usado un initrd jamás en mi vida y hablo en el aire, a ver si viene alguien que sepa mas que yo del asunto a aclarar mejor las cosas  :Very Happy: 

Salud!

----------

## the incredible hurd

 *will198 wrote:*   

> 1.- Driver de nvidia: al compilar el nuevo kernel ya el driver de nvidia no carga. En la V4 lo que hice fue instalarme el driver de nvidia oficial no el de Gentoo (que no funcionaba muy bien la verdad)... ¿Tengo que instalarme el driver de nvidia cada vez que pruebe con un nuevo kernel? ¿o hay alguna manera de traérmelo de un kernel a otro? he probado directamente copiando el nvidia.ko de uno a otro y cuando hago modprobe nvidia me dice que leches...
> 
> 2.- ¿Cual es la diferencia entre cargarlo como módulo o construirlo dentro del kernel? se que para los sistemas de archivos y esas historias es necesario construirlo dentro para evitar los kernel panic... pero ¿para las tarjetas de red, tarjetas de sonido y esas historias que es mejo? por ejemplo se seguro que sin el módulo atl1 mi tarjeta de red no funciona... y no creo que la cambie porque va integrada en la placa... ¿debería construirla dentro del kernel porque gano velocidad... eficiencia o algo por el estilo o da igual?
> 
> Por último, me gustaría dejar de usar el initramfs... por favor del lsmod que he posteado arriba me podríais indicar cual de los módulos tendría que estar construido dentro del kernel? o al menos cuales son los candidatos... he probado con el ext3 (que es mi sistema de ficheros) y con lo que creo que es el módulo de la controladora scsi de mi disco duro pero no hay manera... kernel panic... y como con el initramsf funciona me imagino que hay algun módulo que aparece en el lsmod que debería estar dentro del kernel...
> ...

 

1.- Usa sys-kernel/module-rebuild; y por supuesto usa los drivers propietarios de nvidia con y mediante portage x11-drivers/nvidia-drivers

2.- Da exactamente igual, yo todo lo que tengo integrado en la placa y tarjetas lo meto dentro del kernel y todo lo que se pueda enchufar en caliente (sobre todo la infinita serie de periféricos USB) lo tengo como módulo. Los sistemas de archivos sólo tengo en el kernel ext3 y ext2, todos los demás como módulos (una vez me dejaron un disco externo con NTFS y eso explica tanto módulo ¡ah y el ntfs3g!).

3.- Yo no uso initrd o initramfs desde hace años y todo perfecto.

Create un alias en el .bashrc de root

```
alias genkernel='genkernel --mountboot --menuconfig --makeopts=-j2 --kernel-config=/etc/kernels/el_que_corresponda_a_la_versión_anterior kernel && module-rebuild rebuild nvidia-drivers'
```

Lo de kernel-config es opcional y habrás de modificar el alias cada vez que actualices de versión, puedes añadir muchas otras opciones a genkernel que te facilitarán el automatizar la tarea y hacer todo en un solo paso. El makeopts debes adecuarlo al número de cores que tengas. ¡Ah! y nota que que el parámetro kernel al final de genkernel no construirá ningún initrd o initramfs, por lo que podrás borrar todos los anteriores de /boot/. Sigue mi regla: todo el hardware de la placa y tarjetas dentro del kernel y no tendrás ningún problema.

----------

## will198

1.- Usa sys-kernel/module-rebuild; y por supuesto usa los drivers propietarios de nvidia con y mediante portage x11-drivers/nvidia-drivers

Los drives que se me isntalan con emerge de envidia no van bien (el openarena me corre a saltos) así que instalé los descargados de la página de nvidia que van muy bien...

¿Como se usa el module-rebuild? no hay página del man... y la help que da el fichero no es muy abundante...

lo del genkernel lo tengo dominado, de momento me creo dentro de /usr/src/linux/ un fichero que se llama .config + el número de versión por el que voy (actualmente .config12) ejecuto el genkernel --menuconfig all, cuando aparece el menuconfig le doy a cargar la .config12 (ultima usada) y cuando termino de probar la grabo como .config13 y como .config... salgo y el genkernel hace todo lo demás, sólo tengo que modificar el /boot/grub/menu.list y yastá nuevo kernel para probar.

La estrategia que estoy siguiendo es ir por cada uno de los /device driveres/ e ir quitando cosas que creo que no necesito... luego arranco el kernel y veo si todo sigue funcionando como debiera  :Smile: 

En relacción con poner el modulo de la controladora de HD y el del sistema de archivos integrado en el kernel... esto que suena tan sencillo ¿como se hace?

porque no tengo npi de que controladora tengo... se lo que sale de un lspci (ver más arriba) y qute tengo 2 discos  SATA seagate un DVD y un CDrom que creo que son ATA y un par más de discos duros ATA seagate... con esto cual es mi controladora? que entro en las opciones de:

 │                             [*] Misc devices  --->                                                                              │ │  

  │ │                             <*> ATA/ATAPI/MFM/RLL support  --->                                                                 │ │  

  │ │                                 SCSI device support  --->                                                                       │ │  

  │ │                             <*> Serial ATA (prod) and Parallel ATA (experimental) drivers  --->                                 │ │  

  │ │                             [*] Multiple devices driver support (RAID and LVM)  --->                                            │ │  

  │ │                             [*] Fusion MPT device support  --->                                                                 │ │  

  │ │                                 IEEE 1394 (FireWire) support  --->                                                              │ │  

  │ │                             <M> I2O device support  --->                                  

dentro de que opción tengo que entrar? hay algun archivo tipo /proc/ o algo así que me de más información?

Por cierto se me ha ocurrido lo siguiente... si con lo que va en el kernel no arranca sin el initramsf es por que hay algo vital que carga como módulo... y si con el rmmod voy quitando módulos, puedo probar si el disco duro sigue funcionando... (alquitar algún otro dejó de funcionar por ejemplo el raton usb), así averiguaré como se llama el módulo que necesito?... esto es así? o la puedo liar parda y cargarme un disco duro?

Un saludo y gracias por contestar.

----------

## the incredible hurd

 *will198 wrote:*   

> 1.- Usa sys-kernel/module-rebuild; y por supuesto usa los drivers propietarios de nvidia con y mediante portage x11-drivers/nvidia-drivers
> 
> Los drives que se me isntalan con emerge de envidia no van bien (el openarena me corre a saltos) así que instalé los descargados de la página de nvidia que van muy bien...
> 
> ¿Como se usa el module-rebuild? no hay página del man... y la help que da el fichero no es muy abundante...
> ...

 

```
module-rebuild add nvidia-drivers
```

y todos los controladores propietarios que uses

como ya dije, para reconstruirlo es muy sencillo:

```
module-rebuild rebuild nvidia-drivers
```

Sin el alias te encontrarás con las X que no arrancan hasta que recuerdes recompilarlo por tu cuenta siempre.

 *will198 wrote:*   

> 
> 
> lo del genkernel lo tengo dominado, de momento me creo dentro de /usr/src/linux/ un fichero que se llama .config + el número de versión por el que voy (actualmente .config12) ejecuto el genkernel --menuconfig all, cuando aparece el menuconfig le doy a cargar la .config12 (ultima usada) y cuando termino de probar la grabo como .config13 y como .config... salgo y el genkernel hace todo lo demás, sólo tengo que modificar el /boot/grub/menu.list y yastá nuevo kernel para probar.
> 
> La estrategia que estoy siguiendo es ir por cada uno de los /device driveres/ e ir quitando cosas que creo que no necesito... luego arranco el kernel y veo si todo sigue funcionando como debiera 
> ...

 

genkernel tiene muchas otras opciones interesantes para perezosos como yo   :Smile:   Prueba a cambiar el all por kernel y suerte.

 *will198 wrote:*   

> 
> 
> En relacción con poner el modulo de la controladora de HD y el del sistema de archivos integrado en el kernel... esto que suena tan sencillo ¿como se hace?
> 
> porque no tengo npi de que controladora tengo... se lo que sale de un lspci (ver más arriba) y qute tengo 2 discos  SATA seagate un DVD y un CDrom que creo que son ATA y un par más de discos duros ATA seagate... con esto cual es mi controladora? que entro en las opciones de:
> ...

 

En la única que he dejado [Serial ATA (prod) and Parallel ATA (experimental) drivers] pulsas intro y pon con asterisco:

<*> AHCI SATA Support

Si tienes un panic (lo cual sólo es probable si tu controladora SATA es bastante antigua), entonces deberás quitar AHCI y poner 

[*] ATA SFF support 

y seleccionar

<*> ATI PATA support

 *will198 wrote:*   

> Los drives que se me isntalan con emerge de envidia no van bien (el openarena me corre a saltos) así que instalé los descargados de la página de nvidia que van muy bien...

 

En portage seguro que tienes la misma versión que la que estás usando, si es la 185.18.31

```
echo "=x11-drivers/nvidia-drivers-185.18.31" >> /etc/portage/package.keywords
```

y podrás usarlos, La 190.18 todavía está hard masked y no es recomendable.

Paciencia con el kernel.

----------

## will198

Mil gracias increible HURD, ya arranco el kernel sin el initramsf...

Solo tenía que compilar dentro del kernel el <*> AHCI SATA Support... y asunto resuelto, por cierto que esto me ha aportiado unas ventajas considerables... no se si es el initramsf o el genkernel pero con la misma config el kernel compilado con genkernel y que usa initramsf se dedica ha escaner dispositivos / módulos y me cargarme 100 modulos de los cuales se que varios no los uso, mientras que el mismo kernel (use la misma config sin tocarla) compilado a pelos (make menuconfig && make %% make modules_install) me genera un kernel que no se dedica a escanear dispositovos / módulos, como resultado de momento sólo tengo 40 modulos (se que son muchos conparados con los 6 de Inodoro_Pereyra, pero no me negarán que es un avance de 100 --> 40).

Por cierto lo de compilar las cosas como módulo o dentro del kernel, yo voy a optar por módulo, más que nada porque me ayuda cuando doy un lsmod se que cosas estoy usando y me pueden ser útiles (tengo memoria de pez y aunque se grabe en la config del kernel, perfiero tenerlo más a mano)

Con respecto a los drivers de nvidia, no se si es por alguna flag o que pero el de gentoo no me va bien, perfiero reinstalar los drivers de nvidia... total es sencillisimo (sh NVIDIA-el-driver-que-se.run y ya está).

Una duda, repasando los módulos me acorde del frame buffer (estuve un tiempo pegándome con el en mi viejo portatil) y decidí ponerlo en el nuevo kernel... pues vereis, en el portatil en todo momento veo lo que pasa en la consola, al principio en 640x360 y después cambia al fb. En el fijo hay unos segundos que no veo nada hasta que entra el fb... ¿esto se puede cambiar?

En el portatil uso un kernel 2.6.20 y en el grub no le digo nada, el solo usa el fb

En el fijo uso un kernel 2.6.30 y el el grub le tengo que poner vga=791 para que use el fb.

Otra cosita... se que es una tonteria, pero en el portatil no se muy bien porqué pero cada vez que sale una línea en la consola al lado aparece un numerito (que creo que es el segundo en el que sale la linea)... y en el fijo no. ¿Que hay que hacer para que salga esto?

Muchuas gracias por cotestar y mil gracias por la ayuda.

----------

## will198

una duda que me he dejado...

No se si es necesario pero el Genkernel me copiaba el System.ma-lo-que-sea en boot y en algunos tutoriales decían de copiar este system.map en el boot.

El tutorial de gentoo no dice nada sobre este system.map.

Yo lo he copiado en /boot con el nombre System.map y el apellido del kernel, pero ¿es necesario?

¿Para que sirve?

Un saludo

----------

