# Compilazione kernel-initrd

## domx

Ciao a tutti, questo è il mio primo post qui e la mia prima esperienza con gentoo!  :Very Happy: 

Sto provando ad installare gentoo da un altro sistema linux installato (non dal live cd) e così, non potendo usare genkernel per compilare il kernel, l'ho fatto a mano seguendo il wiki. Il problema è che non mi ha generato l'initrd, e così non posso configurare grub. Qualcuno mi saprebbe aiutare?

Ciao e grazie  :Wink: 

----------

## lele_dj

E perchè mai non potresti usare genkernel   :Question: 

Certo che lo puoi usare ... una volta fatto il chroot nel sistema ... prima di compilare dai

 *Quote:*   

> emerge genkernel

 

poi 

 *Quote:*   

> genkernel --menuconfig all

 

 :Wink: 

----------

## ciro64

Non puoi usare genkernel in quanto ti manca la connessione di rete ?

Anche con installazione non da live la procedura è pressochè identica.

Mah.. se vuoi evitare di ricompilarti subito il kernel, al limite potresti tentare con dracut:

```

 sys-kernel/dracut

     Available versions:  ~002-r1 ~003 ~004 ~006 ~006-r1 ~007 {bootchart btrfs crypt debug dmraid dmsquash-live gensplash iscsi lvm md mdraid multipath nbd nfs selinux syslog uswsusp xen}

     Homepage:            http://sourceforge.net/projects/dracut/

     Description:         Generic initramfs generation tool

```

PS:  :Embarassed:  scusa Lele_dj ... sono stato troppo lento  :Sad: 

----------

## k01

credo che lui sostenga di non poter utilizzare genkernel perchè sull'handbook c'è scritto di utilizzare il config.gz preso dal livecd se non ricordo male. l'initrd comunque non è fondamentale, se ne può fare benissimo a meno

----------

## domx

Ragazzi, innanzitutto grazie per le risposte  :Very Happy: 

qui dice che genkernel copia la configurazione del kernel dal live cd.

Ma se l'initrd non è fondamentale, perché dopo che ho configurato il file /boot/grub/grub.conf nella partizione di gentoo (senza initrd), quando poi do update-grub da ubuntu (faccio caricare tutti i SO dal suo grub2, anche arch che usa grub-legacy) sebbene mi dia:

```
domenico@domenico-desktop:~$ sudo update-grub

[sudo] password for domenico: 

Generating grub.cfg ...

Found linux image: /boot/vmlinuz-2.6.35-23-generic

Found initrd image: /boot/initrd.img-2.6.35-23-generic

Found linux image: /boot/vmlinuz-2.6.35-22-generic

Found initrd image: /boot/initrd.img-2.6.35-22-generic

Found memtest86+ image: /boot/memtest86+.bin

Found Arch on /dev/sda7

Found Ubuntu 10.10 (10.10) on /dev/sda8

Found Gentoo Base System release 1.12.14 on /dev/sda9

done
```

poi non mi compare nel menu di grub al riavvio?

edit: aggiungo che non viene aggiunto nemmeno in /boot/grub/grub.cfg...

----------

## domx

Ragazzi, nessuno mi può aiutare?

----------

## domx

up

----------

## ciro64

Hai varie possibilità per gestire il dual o multi boot.

Hai deciso di usare quello di ubuntu ma nessuno impedisce di usare quello di gentoo per far avviare anche ubuntu.

Ubuntu usa ormai grub2. mentre Gentoo usa il grub1.

Vedi un po' cosa intendi fare.

Potresti editare il file grub.cfg di ubuntu quindi aggiungere le voci relative a gentoo. Oppure il contrario aggiungendo le voci relative a ubuntu nel grub.conf di Gentoo

Magari prova a fornirci i seguenti outputs (da ubuntu o da una live) in modo da poter ragionare meglio

```

# fdisk -l

# blkid -g && blkid
```

Agiungi magari una tua descrizione relativamente all'utilizzo delle varie partizioni.

----------

## domx

 *ciro64 wrote:*   

> Hai varie possibilità per gestire il dual o multi boot.
> 
> Hai deciso di usare quello di ubuntu ma nessuno impedisce di usare quello di gentoo per far avviare anche ubuntu.
> 
> Ubuntu usa ormai grub2. mentre Gentoo usa il grub1.
> ...

 

grazie della risposta. Sì, questo lo so, in effetti ho anche provato ad aggiungere in grub.cfg le righe per gentoo, ma non vedevo niente al riavvio...

```
domenico@domenico-desktop:~$ sudo fdisk -l

Disco /dev/sda: 320.1 GB, 320072933376 byte

255 testine, 63 settori/tracce, 38913 cilindri

Unità = cilindri di 16065 * 512 = 8225280 byte

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Identificativo disco: 0x000c6cf8

Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1       26122   209818624    5  Esteso

/dev/sda2           26122       38914   102751232    7  HPFS/NTFS

/dev/sda5             131       11693    92870656   83  Linux

/dev/sda6               1         131     1046528   82  Linux swap / Solaris

/dev/sda7           13035       22117    72952832   83  Linux

/dev/sda8           11693       13035    10778624   83  Linux

/dev/sda9           22117       26122    32164864   83  Linux

Le voci nella tabella delle partizioni non sono nello stesso ordine del disco

```

il secondo comando non mi dà output.

Comunque gentoo è in /dev/sda9...

----------

## ciro64

Intendi "tutto" in sda9 boot compresa ?

Quindi hai installato grub su gentoo usando

```

# grub-install /dev/sda9
```

?

se così, prova a rendere sda9 avviabile (magari flaggandola bootabile con gparted)

In tal caso magari aggiungi l' output di /boot/grub/grub.cfg di ubuntu (la parte che hai inserito relativa a Gentoo)

----------

## domx

 *ciro64 wrote:*   

> Intendi "tutto" in sda9 boot compresa ?
> 
> Quindi hai installato grub su gentoo usando
> 
> ```
> ...

 

come avviabile ho flaggato la partizione estesa che contiene tutte le patizioni logiche linux.

Comunque quando do quel comando rimane fermo finché non lo blocco senza restiruirmi nessun output...

----------

## ciro64

Prova a postare il grub.conf di Gentoo ed il grub.cfg di ubuntu.

----------

## domx

ubuntu:

```
#

# DO NOT EDIT THIS FILE

#

# It is automatically generated by grub-mkconfig using templates

# from /etc/grub.d and settings from /etc/default/grub

#

### BEGIN /etc/grub.d/00_header ###

if [ -s $prefix/grubenv ]; then

  set have_grubenv=true

  load_env

fi

set default="0"

if [ "${prev_saved_entry}" ]; then

  set saved_entry="${prev_saved_entry}"

  save_env saved_entry

  set prev_saved_entry=

  save_env prev_saved_entry

  set boot_once=true

fi

function savedefault {

  if [ -z "${boot_once}" ]; then

    saved_entry="${chosen}"

    save_env saved_entry

  fi

}

function recordfail {

  set recordfail=1

  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi

}

function load_video {

  insmod vbe

  insmod vga

}

insmod part_msdos

insmod ext2

set root='(hd0,msdos5)'

search --no-floppy --fs-uuid --set 5d025dd0-3af4-480f-953f-f1c527b2bf96

if loadfont /usr/share/grub/unicode.pf2 ; then

  set gfxmode=640x480

  load_video

  insmod gfxterm

fi

terminal_output gfxterm

insmod part_msdos

insmod ext2

set root='(hd0,msdos5)'

search --no-floppy --fs-uuid --set 5d025dd0-3af4-480f-953f-f1c527b2bf96

set locale_dir=($root)/boot/grub/locale

set lang=it

insmod gettext

if [ "${recordfail}" = 1 ]; then

  set timeout=-1

else

  set timeout=10

fi

### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###

set menu_color_normal=white/black

set menu_color_highlight=black/light-gray

### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###

menuentry 'Ubuntu, with Linux 2.6.35-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {

   recordfail

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos5)'

   search --no-floppy --fs-uuid --set 5d025dd0-3af4-480f-953f-f1c527b2bf96

   linux   /boot/vmlinuz-2.6.35-23-generic root=UUID=5d025dd0-3af4-480f-953f-f1c527b2bf96 ro   quiet splash

   initrd   /boot/initrd.img-2.6.35-23-generic

}

menuentry 'Ubuntu, with Linux 2.6.35-23-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {

   recordfail

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos5)'

   search --no-floppy --fs-uuid --set 5d025dd0-3af4-480f-953f-f1c527b2bf96

   echo   'Loading Linux 2.6.35-23-generic ...'

   linux   /boot/vmlinuz-2.6.35-23-generic root=UUID=5d025dd0-3af4-480f-953f-f1c527b2bf96 ro single 

   echo   'Loading initial ramdisk ...'

   initrd   /boot/initrd.img-2.6.35-23-generic

}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###

menuentry "Memory test (memtest86+)" {

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos5)'

   search --no-floppy --fs-uuid --set 5d025dd0-3af4-480f-953f-f1c527b2bf96

   linux16   /boot/memtest86+.bin

}

menuentry "Memory test (memtest86+, serial console 115200)" {

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos5)'

   search --no-floppy --fs-uuid --set 5d025dd0-3af4-480f-953f-f1c527b2bf96

   linux16   /boot/memtest86+.bin console=ttyS0,115200n8

}

### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###

menuentry "Arch (on /dev/sda7)" {

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos7)'

   search --no-floppy --fs-uuid --set a51679b9-e5da-475d-8ac3-ba9cbcbd1137

   linux /boot/vmlinuz26 root=/dev/sda7

   initrd /boot/kernel26.img

}

menuentry "Ubuntu, with Linux 2.6.35-22-generic (on /dev/sda8)" {

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos8)'

   search --no-floppy --fs-uuid --set fee0f5fa-7048-4942-81cc-e8f0f187d303

   linux /boot/vmlinuz-2.6.35-22-generic root=UUID=fee0f5fa-7048-4942-81cc-e8f0f187d303 ro quiet splash

   initrd /boot/initrd.img-2.6.35-22-generic

}

menuentry "Ubuntu, with Linux 2.6.35-22-generic (recovery mode) (on /dev/sda8)" {

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos8)'

   search --no-floppy --fs-uuid --set fee0f5fa-7048-4942-81cc-e8f0f187d303

   linux /boot/vmlinuz-2.6.35-22-generic root=UUID=fee0f5fa-7048-4942-81cc-e8f0f187d303 ro single

   initrd /boot/initrd.img-2.6.35-22-generic

}

### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###

# This file provides an easy way to add custom menu entries.  Simply type the

# menu entries you want to add after this comment.  Be careful not to change

# the 'exec tail' line above.

### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###

if [ -f  $prefix/custom.cfg ]; then

  source $prefix/custom.cfg;

fi

### END /etc/grub.d/41_custom ###
```

gentoo:

```
# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook

# http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2

# If you are not using Genkernel and you need help creating this file, you

# should consult the handbook. Alternatively, consult the grub.conf.sample that

# is included with the Grub documentation.

default 0

timeout 30

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

title Gentoo Linux 2.6.35-r12

root (hd0,0)

kernel /boot/linux-2.6.35-gentoo-r12 root=/dev/sda9

#initrd /boot/initramfs-genkernel-x86-2.6.24-gentoo-r5

# vim:ft=conf:
```

----------

## ciro64

Riguardo Gentoo, sarà non (hd0,0) bensì (hd0,8); in quanto è tutto in sda9.

Penso che rifacendo il chroot da live quindi dando

```

# grep -v rootfs /proc/mounts > /etc/mtab

# grub-install --no-floppy /dev/sda

```

Gentoo debba partire (salvo errori o mancanze di qualche modulo a livello di configurazione/compilazione del kernel)

Il tuo grub.conf diverrebbe :

```

# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook 

# http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2 

# If you are not using Genkernel and you need help creating this file, you 

# should consult the handbook. Alternatively, consult the grub.conf.sample that 

# is included with the Grub documentation. 

default 0 

timeout 30 

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

title Gentoo Linux 2.6.35-r12 

root (hd0,8) 

kernel /boot/linux-2.6.35-gentoo-r12 root=/dev/sda9 

#initrd /boot/initramfs-genkernel-x86-2.6.24-gentoo-r5 

title Ubuntu Linux

root (hd0,4)

kernel  /boot/vmlinuz-2.6.35-23-generic root=UUID=5d025dd0-3af4-480f-953f-f1c527b2bf96 ro   quiet splash 

initrd  /boot/initrd.img-2.6.35-23-generic

```

Questo usando appunto Gentoo per gestire il multiboot.

----------------------------

Nel caso proprio volessi usare il grub2 di ubuntu allora vediamo prima da ubntu o da live

```

# ls -l /dev/disk/by-uuid/ 
```

Si potrà cercare di aggiungere le voci opportune in modo da poter avviare Gentoo usando appunto grub2 di ubuntu.

----------

## domx

Preferirei far caricare gentoo dal grub2 di ubuntu.

Quindi ho modificato il grub.conf di gentoo mettendo (hd0, :Cool:  ed ho aggiunto queste righe al grub.cfg di ubuntu:

```
menuentry "Gentoo"{

   insmod part_msdos

   insmod ext2

   set root='(hd0,msdos9)'

   search --no-floppy --fs-uuid --set fe464b09-6ec1-45b1-bd04-830a820f7be6

   linux /boot/kernel-2.6.35-gentoo-r12 root=UUID=fe464b09-6ec1-45b1-bd04-830a820f7be6 ro single

}
```

ma al riavvio niente, non lo vedo nel grub...

davvero non riesco a capire quale problema possa avere...

----------

## domx

up...

----------

## domx

up

----------

## domx

Ciao ragazzi, innanzitutto auguri  :Wink: 

ho risolto il problema dell'avvio, ho scoperto di avere problemi col grub2 di ubuntu e li ho risolti, ora però ho un altro problema: quando avvio m idà kernel panic e mi lampeggiano le spie della tastiera (quelle del maiuscolo ecc.). So che è molto vago, ma sapreste darmi una mano o almeno qualche indicazione?

Ciao e grazie  :Wink: 

----------

## cloc3

l'output su console dovrebbe restituirti qualche messaggio di errore.

per esempio che non trova il dispositivo da cui lanciare il programma init.

probabilmente, la uid indicata nel tuo grub non è corretta, oppure non hai compilato built-in i driver della scheda madre, di modo che il kernel non riesce ad accedere al disco rigido.

----------

## domx

 *cloc3 wrote:*   

> l'output su console dovrebbe restituirti qualche messaggio di errore.
> 
> per esempio che non trova il dispositivo da cui lanciare il programma init.
> 
> probabilmente, la uid indicata nel tuo grub non è corretta, oppure non hai compilato built-in i driver della scheda madre, di modo che il kernel non riesce ad accedere al disco rigido.

 

l'uuid è corretto, penso siano i drver della scheda madre, non sapevo si compilassero. sapresti aiutarmi?

----------

## cloc3

 *domx wrote:*   

> 
> 
> l'uuid è corretto, penso siano i drver della scheda madre, non sapevo si compilassero. sapresti aiutarmi?

 

devi cercare le opzioni nella sezione DEVICE DRIVERS --> Serial ATA and Parallel ATA drivers  e marcare con una y le opzioni che ti interessano.

molto spesso, quando si hanno dei dubbi, si parte dal file /proc/config.gz generato da cd di installazione.

ora, non so se, in quel cd, i driver della scheda madre siano built-in, come una volta, o siano diventati moduli, ma lo capirai guardandoci dentro.

----------

## domx

 *cloc3 wrote:*   

>  *domx wrote:*   
> 
> l'uuid è corretto, penso siano i drver della scheda madre, non sapevo si compilassero. sapresti aiutarmi? 
> 
> devi cercare le opzioni nella sezione DEVICE DRIVERS --> Serial ATA and Parallel ATA drivers  e marcare con una y le opzioni che ti interessano.
> ...

 

non sto installando dal cd live, comunque questa cosa sono sicuro di averla già fatta, feci molta attenzione ai driver...

comunque mi dice: "unable to mount root fs or unknow block"...

----------

## cloc3

 *domx wrote:*   

> 
> 
> non sto installando dal cd live, comunque questa cosa sono sicuro di averla già fatta, feci molta attenzione ai driver...
> 
> comunque mi dice: "unable to mount root fs or unknow block"...

 

eppure, l'errore conferma un problema nel mount.

potrebbe anche semplicemente mancare il driver del filesystem.

usi ext2, ext3, ext4 o altro ancora.

anch'essi devono essere built-in, perché carichi direttamente il kernel al boot.

----------

## domx

 *cloc3 wrote:*   

>  *domx wrote:*   
> 
> non sto installando dal cd live, comunque questa cosa sono sicuro di averla già fatta, feci molta attenzione ai driver...
> 
> comunque mi dice: "unable to mount root fs or unknow block"... 
> ...

 

uso ext4...

----------

## domx

Ho installato e2fsprogs, ma niente...

comunque mi dà questo:

[IMG]http://img5.imageshack.us/img5/4198/sta40171.th.jpg[/IMG]

----------

## cloc3

il disco lo vede.

ma sembra che non sappia cosa farsene.

vedo che hai postato una configurazione di grub2 per ubuntu e una di grub semplice (direi oramai vecchio, anche se io lo uso ancora), per gentoo.

ma tu, quale dei due grub hai installato?

in ogni caso, verifica ancora che ext4 sia compilato built-in.

----------

## domx

Nessun mi sa aiutare?

----------

## domx

scusami cloc3, non mi ero accorto avessi risposto, andava sull'altra pagina  :Laughing:   :Laughing: 

comunque ho installato il grub2 di ubuntu, ed ext4 l'ho selezionato quando ho compilato il kernel...

----------

## cloc3

 *domx wrote:*   

> 
> 
> comunque ho installato il grub2 di ubuntu

 

ma, nella configurazione di grub2 che hai postato, non comparirebbe nessuna menuentry dedicata al kernel gentoo.

purtroppo, non posso aiutarti nel dettaglio, perché sono ancora utente del vecchio grub.

----------

## domx

 *cloc3 wrote:*   

>  *domx wrote:*   
> 
> comunque ho installato il grub2 di ubuntu 
> 
> ma, nella configurazione di grub2 che hai postato, non comparirebbe nessuna menuentry dedicata al kernel gentoo.
> ...

 

scusa il ritardo,

la riga per gentoo l'ho aggiunta io, comunque grazie lo stesso  :Wink: 

----------

## domx

Ciao, anche se con un mese di ritardo, mi sono rimesso a compilare gentoo ed avevo lo stesso problema. Mi sono detto: vuoi vedere che la colpa è del filesystem? Ho rifatto tutto sotto ext3 ed ora parte perfettamente. L'ho scritto in caso fosse utile per altri.

Tanti saluti  :Very Happy: 

----------

