# kernel panic init

## jdc18

Hola, estoy haciendo unas pruebas y para esto me baje el ultimo kernel de kernel.org.

Compile el kernel y me di cuenta cuando reiniciaba que no podia montar la raiz porque compile los drivers sata como modulo.  Entonces instale mkinitrd para hacer una imagen de los modulos pero el problema es que se que debo pasar un valor al init, pero no se cual.  Los ultimos kernels que use lo instale con genkernel --menuconfig all, que hace casi todo el trabajo pero crea ese archivo /linuxrc.  Si no le pongo init se queja que le debo pasar un valor por init. Intente init=3 igual se quejó.

Estoy haciendo un disco de booteo y queria probar este ultimo kernel. No se que parametros extra deberia pasarle al mkinitrd para que me cree esa imagen.

Este es mi grub.conf

```

splashimage=(hd0,1)/grub/splash.xpm.gz

#map System.map-genkernel-x86_64-2.6.25-gentoo-r7

map System.map

title=Gentoo Linux 2.6.25-r7

root (hd0,1)

kernel /kernel-genkernel-x86-2.6.25-gentoo-r7 real_root=/dev/sda3 root=/dev/ram0 video=uvesafb:1280x1024-16 splash=silent init=/linuxrc ramdisk=8192 hda=ide-cd udev

initrd /initramfs-genkernel-x86-2.6.25-gentoo-r7

title=Gentoo Linux 2.6.24-r7

root (hd0,1)

kernel /kernel-genkernel-x86-2.6.24-gentoo-r7 real_root=/dev/sda3 root=/dev/ram0 video=uvesafb:1280x1024-16 splash=silent init=/linuxrc ramdisk=8192 hda=ide-cd udev

initrd /initramfs-genkernel-x86-2.6.24-gentoo-r7

title=Gentoo-prueba

root (hd0,1)

kernel /kernel-2.6.25.5-jdc root=/dev/sda3 udev

title=Gentoo-prueba2

root (hd0,1)

kernel /kernel-2.6.25.5-jdc real_root=/dev/sda3 root=/dev/ram0 video=uvesafb:1280x1024-16 splash=silent init=/sbin/init ramdisk=8192 hda=ide-cd udev

initrd /initrd-2.6.26.5-jdc

```

trate con /sbin/init  /linuxrc, pero ahi me da otro problema.  No se que parametro le debo pasar al grub para que no me moleste con el init o que le debo aumentar al mkinitrd para que reconozca esos comandos.

----------

## Inodoro_Pereyra

No tengo ni idea de genkernel, nunca lo he probado, pero que pasa si simplemente omitís la linea que hace referencia a init? O, que pasa si compilás el kernel con soporte estático y no como módulo para tu controladora sata?

Esta última opción sería la mas adecuada... 

Perdón si pregunté burradas, es que a eso del genkernel cada día lo entiendo menos...  :Very Happy: 

Salud!

----------

## AnimAlf

hola jdc18

 *jdc18 wrote:*   

> instale mkinitrd para hacer una imagen de los modulos pero el problema es que se que debo pasar un valor al init,

 

el archivo que crea, ¿lo crea incluyendo los módulos? con el mkinitrd no consigo entrar ni un módulo en él. Cuando listo el contenido de éste, está vacio. ¿Puedes darme alguna pista para ejecutarlo? probé el modo normal, me crea el archivo con una estructura pero sin incluir módulos  :Sad: 

thnks

----------

## gringo

mkinitrd que yo sepa crea el initrd, pero no crea lo que es el init ( que es lo que debe ser el linuxrc ese).

No tengo ni idea de genkernel y apenas he usado mkinitrd pero me dá que no vas a poder usar mkinitrd para poder crear un initrd compatible con un kernel creado con genkernel. Desempaqueta ambos initrd y mira las diferencias, igual todo se limita a copiar el linuxrc del initrd que crea genkernel al initrd que has creado con mkinitrd.

saluetes

----------

## jdc18

Hola, gracias.

Estoy tratando de compilar un kernel nuevo sin genkernel, cuando no uso initrd, se queja de que no puede montar la unidad sda3, y la unica que encuentra es la hda que es la unidad de disco.  Ahora cuando uso el mkinitrd, corrijanme si me equivoco lo que hace es crear una imagen de los modulos y otras cosas necesarias para correrlos.  Por lo cual necesita el real_root, y el root=/dev/ram0, el parametro root dice que monte las cosas de lamemoria ram y el real_root le indica cual es el verdadero root.  Necesita el parametro init para que le diga que programa de la imagen que usar, asumo que de alguna forma le debes poner algun programa dentro de la imagen como /bin/bash o init o el archivo linuxrc y sus librerias correspondientes, lo que no se es como.

Como le desempaqueto al initrd?

----------

## Eleazar Anzola

Ujummm,

intenta cambiando el root=/dev/ram0 por root=/dev/sda3 y despues me cuentas

----------

## jdc18

ya habia probado, no puede montar el dispositivo /dev/sda3

Intente compilar

```
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)

00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 0c)

00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)

00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)

00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)

00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)

00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)

00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)

00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)

00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03)

00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)

00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 03)

00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)

00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)

00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)

00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)

00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03)

00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)

00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)

00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)

01:00.0 VGA compatible controller: nVidia Corporation GeForce 8400M GS (rev a1)

04:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)

0c:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN Network Connection (rev 61)

0e:06.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 05)

0e:06.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22)

0e:06.2 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 12)

0e:06.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev ff)

```

Le compile con esto ahora CONFIG_SATA_AHCI=y

----------

## zorth

hola.

comprueba en tu configuracion de kernel si has dado soporte (*) no como modulo, para " jmicron "  :Smile: 

saludos.

----------

## jdc18

No tengo nada jmicron, pero si lo tengo como modulo, no veo para que poner jmicron como parte del kernel?

```
#grep -i jmicron .config

CONFIG_BLK_DEV_JMICRON=m

CONFIG_PATA_JMICRON=m
```

ya lo compile con esto

```
CONFIG_SATA_AHCI=y
```

igual no puede montarlo, me sale "unknown block sda3", sda3 esta como reiserfs y el soporte para reiserfs esta compilado como para del kernel.

aqui tengo mas modulos compilados porque estoy tratando de hacer un boot cd para unas pruebas que estoy haciendo con una maquina.

aqui les pongo todo mi .config que estoy compilado sin genkernel

----------

## Eleazar Anzola

Ujummm,

Suele suceder que muchas veces el modulo que crees es el correcto no funciona con el sata que tienes (Ya me ha sucedido antes) por lo que recomiendo activar todos los satas dentro de esa sección y recompilar el kernel, por lo general no es necesario colocarlo dentro del kernel, con dejarlo solo como modulo basta,

----------

## Inodoro_Pereyra

 *Eleazar Anzola wrote:*   

> Ujummm,
> 
> Suele suceder que muchas veces el modulo que crees es el correcto no funciona con el sata que tienes (Ya me ha sucedido antes) por lo que recomiendo activar todos los satas dentro de esa sección y recompilar el kernel, por lo general no es necesario colocarlo dentro del kernel, con dejarlo solo como modulo basta,

 

Apoyo lo moción.

Si no querés meter todos los drivers en la imagen del kernel, booteá algún livecd que si detecte tu disco rígido y sacate la duda de que módulo está usando el kernel con el comando lsmod

Me estaba acordando de un caso que me tocó: La pc no detectaba el disco Serial ATA con la placa de video AGP insertada en la ranura, pero si lo hacía si se la quitaba. Para no sacar la placa de video, tuve que arrancar pasandole noapic al kernel como parámetro, pero me quedé sin aceleración 3D. Podrías probar eso si estás seguro de que el driver es el que corresponde, por ridículo que suene.

Salud!

----------

## jbcjorge

Perdón por algo que quizá sea hasta tonto, pero tengo que preguntar....

Tu configuración del gestor de arranque apunta a varios kernel's... 2.6.24  y 2.6.25....

Si no recuerdo mal (digo "recuerdo" porque trabajo sobre git-sources), la última versión del kernel es 2.6.27-rc6.... y la estable 2.6.26.5.... Si bajaste cualquiera de las dos, ¿estas apuntando al kernel correcto? Porque si no esto lanza un kernel panic

----------

