# [RISOLTO] Lilo: dual boot tra ubuntu and gentoo

## mrfabiolo

E' possibile fare un dual boot con lilo con due distribuzioni di Linux diverse nello stesso computer?

So farlo con Windows è molto facile.

basta scrivere (in /etc/lilo.conf):

```
other=/dev/sda6

  label=windows
```

Però per quanto riguarda linux forse bisogna mettergli il nome del kernel e l'initrd.

Per gentoo scrivo così:

```
image=/boot/kernel-genkernel-x86_64-3.10.7-gentoo

   label=gentoo

   read-only

   append="real_root=/dev/sdb3"

   initrd=/boot/initramfs-genkernel-x86_64-3.10.7-gentoo
```

ma come potrei fare per avviare un linux che si trova in un'altra partizione? (non so, forse non è nemmeno possibile con lilo)[/code]Last edited by mrfabiolo on Mon Sep 16, 2013 8:41 pm; edited 1 time in total

----------

## RMariotti

E' possibile fare un dual-boot tra SO che si trovano in diverse partizioni con lilo, non è invece possibile se la partizione risiede su un altro disco (se non ricordo male) e a meno che nel tuo caso lilo non risieda su /dev/sdb non riuscirà a fare il boot.

Nel caso lilo sia su sdb ricordati di aggiornarlo con

```
lilo
```

----------

## tano70

e' assolutamente possibile farlo, ci sono riuscito io nel mio portatile, avendo un trial boot, winzozz, slackware e Gentoo, il tutto gestito da Lilo di slackware. Ci ho smaronnato sopra pure io perche' non riuscivo in nessun modo a fare riconoscere Gentoo al lilo di slack, ma alla fine ci sono riuscito, e mi godo il sistema. Piu tardi aggiorno questo post e ti posto la mia configurazione, in modo che cerchi di fare lo stesso., intanto il mio fstab di Gentoo:

```
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

/dev/sda7      /      ext4   defaults,noatime   0 0

/dev/sda8      /home           ext4      defaults        0 2

/dev/sda9      swap      swap      sw      0 1

/dev/cdrom      /mnt/cdrom   auto      noauto,ro   0 0

/dev/fd0      /mnt/floppy   auto      noauto      0 0

devpts         /dev/pts   devpts      gid=5,mode=620  0 0

proc         /proc      proc      defaults   0 0

tmpfs         /dev/shm   tmpfs      defaults   0 0

```

----------

## RMariotti

 *tano70 wrote:*   

> e' assolutamente possibile farlo, ci sono riuscito io nel mio portatile, avendo un trial boot, winzozz, slackware e Gentoo, il tutto gestito da Lilo di slackware. Ci ho smaronnato sopra pure io perche' non riuscivo in nessun modo a fare riconoscere Gentoo al lilo di slack, ma alla fine ci sono riuscito, e mi godo il sistema. Piu tardi aggiorno questo post e ti posto la mia configurazione, in modo che cerchi di fare lo stesso., intanto il mio fstab di Gentoo:
> 
> ```
> # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
> 
> ...

 

Si è possibile fare il boot di multipli OS da lilo ma da ciò che ricordo si devono avere tutte le partizioni in un solo disco. Quando avevo Slackware su sda e Arch su sdb non riuscii a fare il boot da lilo e quindi ricorsi a grub (e credo che la situazione di mrfabiolo sia analoga dato che:

 *Quote:*   

> image=/boot/kernel-genkernel-x86_64-3.10.7-gentoo 
> 
>    label=gentoo 
> 
>    read-only 
> ...

  gentoo risiende in sdb o magari mi sbaglio perchè sdb è il suo hdd principale ma mi pare improbabile)

----------

## tano70

si confermo tutti devono risiedere in partizioni dello stesso hard disk, almeno nel mio caso e' cosi

----------

## mrfabiolo

Ho risolto, grazie a tutti.

Riesco a far partire un altro linux anche situato in un altro harddisk. ho installato lilo su sda. Mi parte però anche un altro gentoo (che avevo installato) su sdb3.

----------

## djinnZ

Solo il kernel (e l'immagine se non è integrata) sulla stessa unità, non le installazioni, quelle le puoi sbattere dove ti pare.

Anche se funziona può fare i capricci se lo si configura su unità diverse ergo caveat emptor, usare boot sepatata unica.

Volendo su dischi separati si potrebbe pensare di concatenare più lilo.

----------

## perjliv

Ciao a tutti! mi accodo qua perchè ho un problema analogo!

Sul mio pc ho tre sistemi in triple boot, slackware gentoo e windows. Gentoo l'ho installato su /dev/sda4 dalla slack (che è su /dev/sda5) e sembra essere andato tutto a buon fine solo che:

se utilizzo liloconfig da slack slack e windows funzionano, e anche gentoo, ma solo apparentemente perchè se do un uname -a mi dice che sta utilizzando il kernel di slackware. E infatti c'è qualcosa che non va perchè non ho nessun modulo caricato (lsmod è vuoto)

Se invece faccio il chroot su gentoo da slackware ed edito il file lilo.conf e lo salvo sull'mbr durante il caricamento il pc mi si pianta. Stessa cosa se installo grub da gentoo....ma tu come hai fatto, tano70? dato che leggo che abbiamo entrambi la stessa ocnfigurazione...

----------

## perjliv

hei come mai nessun commento? devo essere più preciso nella descrizione del problema? ma se qualcuno ci è già passato sa bene di quel che parlo...con slack ho fatto doppi e tripli boot con praticamente qualsiasi disto, è questa che ora mi crea problemi...non capisco se c'è qualche errore nella compilazione del kernel, se proprio il tool di lilo non riesce a caricare il kernel di slackware e per quale motivo, oppure se  va obbligatoriamente fatto a mano, senza usare liloconfig (che per altro su slackware non c'è), e io sbaglio a configurare il lilo.conf..

----------

## djinnZ

vedi che ci eri già arrivato da solo? A manina che è l'unica cosa che funziona sempre.

Controlla la conf di lilo e vedrai che liloconfig ha combinato qualche pasticcio. Aiuto sull'uso di una funzione specifica di un'altra distribuzione qui non ne puoi chiedere, non è un problema di volontà ma dovresti trovare qualcuno che usa slack come te.

E gli up prima di un paio di giorni non si fanno di norma.

O puoi pensare di passare a grub con la /boot unica separata, che resta il modo più semplice di gestire il multiboot.

----------

## perjliv

ok scusa per l'up, ma non so ancora bene come funziona su questo foro...

Per quanto riguarda i metodi di boot, ho provato tutte e sedici le combinazioni`, cioe` con i tool di grub e lilo da gentoo e da slack, e a manina sul files di configurazione di grub e lilo da gentoo e slack, il tutto con e senza initramfs ma nn va mai. Non mi e` molto bene chiaro l'uso dell'opzione  "real_root" di grub ma a parte quello non capisco perche` non debba funzionare con lilo. A mano l'ho configurato bene, o comunque per slackware funziona, il comando lilo mi dice che ha aggiunto i due sistemi operativi e non mi riporta nessun errore e` solo che gentoo si pianta in fase di caricamento dei moduli, sui pci, mi sembra.

La cosa migliore mi sembra la partizione di /boot separata, ma come faccio? 

una volta che l'ho creata devo copiarci con un cp i kernel e gli eventuali initramfs e modificare i files fstab di gentoo e slack, quindi configurare il lilo.conf e installarlo? Basta questo?

EDIT: 

ho fatto come ho detto. Ho creato una partizione separata (sda8) per il boot (di circa 500 MB). Ho rinominato le directories /boot di gentoo e slackware in /boot_bak e ne ho create due nuove /boot su cui monto /dev/sda8 e nella quale ho copiato il contenuto delle directories /boot_bak di gentoo e slacky. Il file fstab è questo

```
/dev/sda8        /boot            ext4        defaults,noatime 1   2

/dev/sda6        swap             swap        defaults         0   0

/dev/sda5        /                ext4        defaults         1   1

/dev/sda7        /home            ext4        defaults         1   2

/dev/sda2        /fat-c           ntfs-3g     umask=000        1   0

#/dev/cdrom      /mnt/cdrom       auto        noauto,owner,ro  0   0

/dev/fd0         /mnt/floppy      auto        noauto,owner     0   0

devpts           /dev/pts         devpts      gid=5,mode=620   0   0

proc             /proc            proc        defaults         0   0

tmpfs            /dev/shm         tmpfs       defaults         0   0

```

il contenuto di /boot ora è il seguente 

```
total 37590

lrwxrwxrwx 1 root root      37 Jan  9 23:14 README.initrd -> /usr/doc/mkinitrd-1.4.7/README.initrd

lrwxrwxrwx 1 root root      30 Jan  9 23:14 System.map -> System.map-huge-smp-3.2.29-smp

-rw-r--r-- 1 root root 1515031 Jan  9 23:14 System.map-generic-3.2.29

-rw-r--r-- 1 root root 1570076 Jan  9 23:14 System.map-generic-smp-3.2.29-smp

-rw-r--r-- 1 root root 1757940 Jan  9 23:14 System.map-genkernel-x86-3.10.17-gentoo

-rw-r--r-- 1 root root 2483429 Jan  9 23:14 System.map-huge-3.2.29

-rw-r--r-- 1 root root 2542480 Jan  9 23:14 System.map-huge-smp-3.2.29-smp

drwxr-xr-x 3 root root    1024 Jan  9 23:18 boot-bak

-rw-r--r-- 1 root root     512 Jan  9 23:14 boot.0800

drwxr-xr-x 2 root root    1024 Jan  9 23:18 boot_bak

-rw-r--r-- 1 root root     209 Jan  9 23:14 boot_message.txt

lrwxrwxrwx 1 root root      26 Jan  9 23:14 config -> config-huge-smp-3.2.29-smp

-rw-r--r-- 1 root root  125794 Jan  9 23:14 config-generic-3.2.29

-rw-r--r-- 1 root root  126494 Jan  9 23:14 config-generic-smp-3.2.29-smp

-rw-r--r-- 1 root root  125768 Jan  9 23:14 config-huge-3.2.29

-rw-r--r-- 1 root root  126468 Jan  9 23:14 config-huge-smp-3.2.29-smp

drwxr-xr-x 6 root root    1024 Jan  9 23:14 grub

-rw-r--r-- 1 root root 3662380 Jan  9 23:14 initramfs-genkernel-x86-3.10.17-gentoo

-rw-r--r-- 1 root root   22578 Jan  9 23:14 inside.bmp

-rw-r--r-- 1 root root 3237888 Jan  9 23:14 kernel-3.10.17-gentoo

-rw-r--r-- 1 root root 3228384 Jan  9 23:14 kernel-genkernel-x86-3.10.17-gentoo

-rw------- 1 root root  154112 Jan  8 23:29 map

-rw-r--r-- 1 root root    6878 Jan  9 23:14 onlyblue.bmp

-rw-r--r-- 1 root root   14174 Feb 15  2010 slack.bmp

-rw-r--r-- 1 root root   33192 Jan  9 23:14 tuxlogo.bmp

lrwxrwxrwx 1 root root      27 Jan  9 23:14 vmlinuz -> vmlinuz-huge-smp-3.2.29-smp

-rw-r--r-- 1 root root 2851632 Jan  9 23:14 vmlinuz-generic-3.2.29

-rw-r--r-- 1 root root 3030752 Jan  9 23:14 vmlinuz-generic-smp-3.2.29-smp

-rw-r--r-- 1 root root 5803216 Jan  9 23:14 vmlinuz-huge-3.2.29

-rw-r--r-- 1 root root 6059920 Jan  9 23:14 vmlinuz-huge-smp-3.2.29-smp

```

Da slacky il liloconfig continua a funzionare, non mi dà errori e mi fa partire entrambe le disto, tutte e due però con lo stesso kernel, e mentre su slack viene regolarmente caricato tutto su gentoo non mi carica nemmeno un modulo, e, l'lsmod, come già detto prima, è vuoto. Se provo con grub da gentoo il tool mi configura il ile.conf correttamente e non mi da errore, al riavvio però il sistema non parte. 

Configurando il lilo.conf o il grub.conf a mano slackware parte, gentoo no.

Insomma, anche in questo modo, con /boot su partizione separata, è solo gentoo a darmi dei problemi...ma di che cosa ha bisogno sta benedetta gentoo per caricarmi un kernel in maniera corretta?

----------

## djinnZ

Per prima cosa la boot separata la si usa come prima partizione primaria (siamo proprio alle basi), meglio se ext2 e montata sempre ro; per seconda cosa ti ho detto già che liloconfig è una cosa specifica della slackware; per terza cosa leggi qui; quarto ricorda che il supporto ai dischi deve essere builtin.

Per semplificarmi la vita userei qualcosa del genere */etc/genkernel.conf - modifiche da fare wrote:*   

> LVM="no"
> 
> LUKS="no"
> 
> GPG="no"
> ...

 installando xz e configurando (via genkernel --menuconfig all) il supporto alla compressione giusta (da notare che il percorso per l'initramfs non va impostato, lo fa genkernel per i fatti suoi) ed ovviamente un bel CONFIG_CMDLINE="rootfstype=ext4" che non guasta.

Cosa diavolo possa combinare liloconfig non lo so e non mi interessa. Se vuoi aiuto su liloconfig cercalo sul forum slackware. Qui puoi solo parlare di quello che c'è in /etc/lilo.conf

 *perjliv wrote:*   

> Da slacky il liloconfig

 chissenefrega *perjliv wrote:*   

> tutte e due però con lo stesso kernel

 ovvio che non funzioni *perjliv wrote:*   

> su gentoo non mi carica nemmeno un modulo

 grazie al [censura], i moduli sono0 in /lim/modules della pqartizione root di slackware *perjliv wrote:*   

> da gentoo il tool

 eh? quale tool? non ce ne sono, su gento si procede manualmente *perjliv wrote:*   

> di che cosa ha bisogno sta benedetta gentoo per caricarmi un kernel in maniera corretta?

 della corretta linea di comando del kernel e che carichi il suo di kernel.

----------

## perjliv

 *Quote:*   

> eh? quale tool? non ce ne sono, su gento si procede manualmente

 grub2-mkconfig

 *Quote:*   

> della corretta linea di comando del kernel e che carichi il suo di kernel.

 

lo stavo quasi sospettando.

 *Quote:*   

> ovvio che non funzioni

 esatto, è quello che ho scritto

 *Quote:*   

> Per prima cosa la boot separata la si usa come prima partizione primaria (siamo proprio alle basi), meglio se ext2 e montata sempre ro

 vero, speravo di poterlo evitare dato che ho già due partizioni primarie obbligatoriamente occupate da windows, una per forza di cose è quella estesa, e quindi di primaria me ne resta solo una che allora adibirò a /boot, anche se avrei voluto avere la root di gentoo su primaria.

 *Quote:*   

> quarto ricorda che il supporto ai dischi deve essere builtin

  cioè scusa ma sono un alle basi, questo significa  che devo compilare il kernel con il supporto ai dischi e non caricarli dopo come moduli, giusto? ma non è un impostazione di default quella?

----------

## djinnZ

Il default di genkernel è una impostazione tutta modulare da impegare con l'initrd. Se vuoi avviare il kernel senza immagine (inclusa o meno) devi impostare i moduli giusti come builtin.

Solo i bootloader ed i sistemi operativi scassi richiedono che la root sia su primaria da tempo immemorabile.

La boot all'inizio del disco la si mette sempre per causa dei bootloader datati o dei sistemi oprativi scassoni come windozz che hanno ancora certa limitazioni.

In realtà potresti anche usare il kernel della slack il problema è che non torva i moduli perchè sono sulla partizione della slack e non su quella dello gentoo che viene montata come root.

Puoi postare i file di conf? è li il problema.

----------

## perjliv

 *djinnZ wrote:*   

> Il default di genkernel è una impostazione tutta modulare da impegare con l'initrd. Se vuoi avviare il kernel senza immagine (inclusa o meno) devi impostare i moduli giusti come builtin.
> 
> Solo i bootloader ed i sistemi operativi scassi richiedono che la root sia su primaria da tempo immemorabile.
> 
> La boot all'inizio del disco la si mette sempre per causa dei bootloader datati o dei sistemi oprativi scassoni come windozz che hanno ancora certa limitazioni.
> ...

 

il fatto è che sto cercando di far partire il kernel con il preemption mode (per il real time) e quindi non uso genkernel, ma configuro e compilo da me...

gli dò un 

```
make menuconfig
```

 e configuro i moduli che mi interessano, seguendo il manuale, poi, una volta terminate le modifiche le salvo, ovviamente, prima di compilare, e mi chiede se voglio chiamare il file .config.

E' il nome corretto? 

poi dò un 

```
make && make modules_install
```

 ed in effetti devo dire che la compilazione mi sembra un po' rapidina...

eppure la prima volta che ho compilato i tempi erano consistenti con quanto impiega a compilarmelo anche sull'altra disto, comunque anche anche la prima volta che ho compilato qui su gentoo poi non mi caricava tutti i supporti e si piantava circa a metà.

Io ho sempre pensato che fosse un problema di opzioni da passare al lilo.conf o al grub.conf (io preferirei lilo), ma a questo punto forse è proprio un problema di configurazione del kernel, ad ogni modo ti riporto i files.conf di lilo e grub.

Per chiarezza ti metto anche lo schema delle partizioni

```
root@darkstar:/mnt/gentoo/boot/grub>fdisk -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes

255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0x69ab9b56

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1            2048    20508671    10253312   27  Hidden NTFS WinRE

/dev/sda2   *    20508672    98549759    39020544    7  HPFS/NTFS/exFAT

/dev/sda3        99078144   234440703    67681280    5  Extended

/dev/sda4        98549760    99078143      264192   83  Linux

/dev/sda5       120565760   142882815    11158528   83  Linux

/dev/sda6       232282112   234440703     1079296   82  Linux swap

/dev/sda7       142884864   232280063    44697600   83  Linux

/dev/sda8        99080192   120563711    10741760   83  Linux

Partition table entries are not in disk order

```

qui il grub.conf

```
root@darkstar:/mnt/gentoo/boot/grub>cat grub.conf 

# Quale opzione viene avviata in modo predefinito. 0 è la prima, 1 la seconda, ecc.

default 0

# Quanti secondi attenedere prima di avviare l'opzione predefinita.

timeout 30

# Un'immagine gradevole da commentare se non si dispone di scheda grafica

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

title Gentoo Linux

# La partizione dove si trova l'immagine del kernel (o il sistema operativo)

root (hd0,3)

kernel /boot/kernel-3.10.25-gentoo ro root=/dev/sda8

#title Gentoo Linux 3.3.8 (rescue)

# Partizione dove si trova l'immagine del kernel o il sistema operativo

#root (hd0,0)

#kernel /boot/kernel-3.3.8-gentoo root=/dev/sda3 init=/bin/bb

 

# Le prossime tre righe vanno messe solo se si ha un dualboot con Windows.

# In questo caso, Windows è in /dev/sda6.

title Windows   

rootnoverify (hd0,1)

makeactive 

chainloader +1

```

qui il lilo.conf

```
root@darkstar:/mnt/gentoo>cat etc/lilo.conf

boot=/dev/sda             # Installa LILO nel MBR

prompt                    # Dà possibilità di selezionare un'altra sezione

delay=50                  # Aspetta 5 secondi prima di avviare la scelta predefinita

default=gentoo            # Passato il timeout, avvia la sezione "gentoo"

image=/boot/kernel-3.10.25-gentoo

  label=gentoo            # Il nome dato alla sezione

  read-only               # Avvio con root di sola lettura. Non modificare!

  root=/dev/sda8          # Posizione del filesystem root

root@darkstar:/mnt/gentoo>

```

----------

## djinnZ

 *perjliv wrote:*   

> il fatto è che sto cercando di far partire il kernel con il preemption mode (per il real time) e quindi non uso genkernel, ma configuro e compilo da me...

 e questo cosa ci azzecca?

Premesso che mostri di non possedere nozioni basilari sulla configurazione del kernel (ed il partizionamento... e l'uso dei bootloader...) e ti avventuri nel realtime (ok i gentooisti sono masochisti per natura e complicarsi la vista è la regola ma, tra l'altro, configurare il preemption mode non è realtime) ... rivolgersi alla compilazione manuale è una fesseria a prescindere.

Allora perché scomodarsi a lanciare un comando emerge vattelappesca e configurare le use  quando puoi benissimo compilare lanciando un ebuild unpack, lanciare a mano il .configure --with-qualcosa e poi lanciare ebuild compile ed install?

Continuo a non capire perché impazzire a lanciare una sfilza di comandi quando se ne può usare uno solo.

Usa genkernel, parti da un default affidabile e valido (quello del kernel non lo è).

Lo configuri (ti consiglio l'immagine integrata, è sempre utilissima) editando il file genkernel.conf che è abbastanza ben commentato ed usi l'opzione --menuconfig per mettere builtin quello che ti serve scartando i moduli inutili, partendo dall'hardware.

Procedi un passo alla volta se non sai esattamente quello che stai facendo.

Se vuoi fare a tutti i costi l'eroe del piffero che procede manualmente ti dico solo arrangiati visto che ti mancano le basi per avventurarti in qualcosa che comunque è inutile.

Per le opzioni di avvio ti ripeto che per evitare casini devi usare un solo bootloader (sarebbe preferibile grub in quanto richiede solo che adatti il file di configurazione, solo per questo) da una sola distribuzione (quindi non installare bootloader multipli). Inutile dire che liloconfig te lo devi scordare.

 *fdisk wrote:*   

> Partition table entries are not in disk order

 questo è certamente fonte di grandissimi guai.

Rischi che da un giorno all'altro il buon winzozz ti pialli le partizioni.

Devono essere in ordine.

Per fare le cose per bene il partizionamento dovrebbe essere quello tradizionale

```
partizione  tipo         uso              label

sda1        Hidden NTFS  recover windows  

sda2        NTFS         Windows          dk-win

sda3        ext2/3       boot             dk-boot

sda4        extended

sda5        ext4         root slackware   dk-slack

sda6        swap         swap condivisa   dk-swap (opzionale se condiviso, non so se slack azzera le label per le swap)

sda7        ext4         root gentoo      dk-gentoo

sda8        ext4         home condivisa   dk-home
```

nell'ordine specificato (dk perchè ho visto darkstar, nome sfigatissimo tra l'altro, per quelllo a cui rimanda altrimenti).

Facendo conto che non fai uso del suspend su linux.

Se vuoi usare il suspend allora dovrai prevedere due swap separate (una a piacere come tradizionale swap, una di dimensione almeno pari alla ram+ram_schede_grafiche per la sospensione) per ogni distribuzione linux ed i mount incrociati dovranno essere noauto,ro in fstab (eventualmente per la /boot lasci solo ro ma disabiliti il check automatico e per la home imposti sync).

Sarebbe meglio usare le label per i mount piuttosto che le partizioni.Quindi avrai degli fstab del genere

```
LABEL=dk-boot    /boot     ext2        ro,sync(,noatime se ext3) 1 1

LABEL=dk-gentoo  /         ext4        defaults   1 1

LABEL=dk-home    /home     ext4        defaults   1 2

LABEL=dk-win     /fat-c    ntfs-3g     umask=000  1 0

LABEL=dk-slack   /slack    ext4        defaults   1 1
```

Se non ricordo male (ext3 mi era antipatico assai il 4 non lo voglio proprio vedere) devi avere nella linea di comando del kernel le opzioni che ti ho indicato, personalmente, visto che servono a prescindere, preferisco configurarle direttamente nel kernel (nel mio caso c'è il raid quindi ho domdadm ma è la stessa cosa per rootfstype=ext4").

Quindi (con genkernel configurato per l'immagine integrata) resta la configurazione di lilo (visto che vuoi usare lui).

Lo devi installare solo su slackware (e non su gentoo) ed a questo punto dovrai avere qualcosa del genere */etc/lilo.conf wrote:*   

> image=/boot/kernel-genkernel-xqualcosa-3.10.25-gentoo
> 
> label=gentoo
> 
> root=/dev/ram0
> ...

 ma bada che la conf del kernel dovrà avere CONFIG_CMDLINE="rootfstype=ext4" e  */etc/genkernel.conf wrote:*   

> DISKLABEL="yes"
> 
> INTEGRATED_INITRAMFS="1"
> 
> COMPRESS_INITRD="yes"
> ...

 ; quel root=/dev/ram0 dovrebbe essere opzionale ma mi pare di ricordare che lilo lo richiedeva comunque, potresti aggiungerlo a CONFIG_CMDLINE.

Se eventualmente vuoi evitare di dover riavviare su slack ogni volta che modifichi il kernel di gentoo potresti pensare di lanciare un 

```
chroot --userspec=root:root /slack /sbin/lilo
```

avendo cura di impostare

```
/dev  /slack/dev  none rbind 0 0

/sys  /slack/sys  none rbind 0 0

/proc /slack/proc none rbind 0 0
```

dopo aver modificato opportunamente /slack/etc/lilo.conf

chiaro?

----------

## perjliv

ho modificato gli fstab, windows lo uso una volta all'anno, quindi se come dici te il problema delle partizioni in ordine sparso è più che altro per winzoz per ora le lascio così, poi se riesco a far funzionare tutto metto ordine.

```
LABEL=boot            /boot      ext2        ro,sync           1 1 

LABEL=root-slackware  /          ext4        defaults          1 1 

LABEL=home            /home      ext4        defaults          1 2 

LABEL=seven           /fat-c     ntfs-3g     umask=000         1 0

LABEL=swap            none       swap        defaults          0 0

devpts                /dev/pts   devpts      gid=5,mode=620    0 0

proc                  /proc      proc        defaults          0 0

tmpfs                 /dev/shm   tmpfs       defaults          0 0

```

```
LABEL=boot              /boot           ext2            ro,sync                 1 1 

LABEL=root-gentoo       /               ext4            defaults                1 1 

LABEL=home              /home           ext4            defaults                1 2 

LABEL=seven             /fat-c          ntfs-3g         umask=000               1 0

LABEL=swap              none            swap            defaults                0 0

```

ho inserito il CONFIG_CMDLINE nel conf del kernel

```

...

#

# Processor type and features

#

CONFIG_ZONE_DMA=y

CONFIG_SMP=y

CONFIG_X86_MPPARSE=y

# CONFIG_X86_BIGSMP is not set

CONFIG_X86_EXTENDED_PLATFORM=y

# CONFIG_X86_GOLDFISH is not set

...

CONFIG_CMDLINE_BOOL=y

CONFIG_CMDLINE="rootfstype=ext4 root=/dev/ram0"

# CONFIG_CMDLINE_OVERRIDE is not set

CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

...

```

questo è il genkernel 

```
root@darkstar:~>cat /mnt/gentoo/etc/genkernel.conf   

# Configuration file for genkernel

# This file is sourced by genkernel at startup and determines which options

# we will be using to compile our kernel.  The order of precidence is simple,

# with the internal settings being least important, configuration file

# settings next, and command line options being most important.

# =========Common Command Line Option Defaults=========

# Should we install to $BOOTDIR?  Default is "no" because genkernel is used in

# catalyst and stage building.

#INSTALL="yes"

# Run 'make oldconfig' before compiling this kernel?

#OLDCONFIG="yes"

# Run 'make menuconfig' before compiling this kernel?

#MENUCONFIG="no"

# Run 'make clean' before compilation?

# If set to NO, implies MRPROPER WILL NOT be run

# Also, if clean is NO, it won't copy over any configuration

# file, it will use what's there.

#CLEAN="yes"

# Run 'make mrproper' before configuration/compilation?

#MRPROPER="yes"

# Override the arch detection?

#ARCH_OVERRIDE="x86"

# Mount BOOTDIR automatically if it isn't mounted?

MOUNTBOOT="yes"

# Make symlinks in BOOTDIR automatically?

SYMLINK="yes"

# Save the new configuration in /etc/kernels upon

# successfull compilation

SAVE_CONFIG="yes"

# Use Color output in Genkernel?

USECOLOR="yes"

# Clear build cache dir

#CLEAR_CACHE_DIR="yes"

# Clear all tmp files and caches after genkernel has run

#POSTCLEAR="1"

# Genkernel uses an independent configuration for MAKEOPTS, and does not source

# /etc/make.conf . You can override the default setting by uncommenting and

# tweaking the following line. Default setting is set up by

# ${GK_SHARE}/${ARCH_OVERRIDE}/config.sh . The recommended value for -j

# argument is: <number of processors>*<number of cores per processor>+1

MAKEOPTS="-j3"

# Add in LVM support from static binaries if they exist on the system, or

# compile static LVM binaries if static ones do not exist.

LVM="no"

# Add in Luks support. Needs sys-fs/cryptsetup with -dynamic installed.

LUKS="no"

# Add in GnuPG support

GPG="no"

# Add DMRAID support.

DMRAID="no"

# Include (or suppresses the inclusion of) busybox in the initrd or initramfs.

# If included, busybox is rebuilt if the cached copy is out of date.

BUSYBOX="yes"

# Includes mdadm/mdmon binaries in initramfs.

# Without sys-fs/mdadm[static] installed, this will build a static mdadm.

MDADM="no"

# Specify a custom mdadm.conf.

# By default the ramdisk will be built *without* an mdadm.conf and will auto-detect

# arrays during bootup.  Usually, this should not be needed.

#MDADM_CONFIG="/etc/mdadm.conf"

# Add Multipath support.

MULTIPATH="no"

# Add iSCSI support.

ISCSI="no"

# Add e2fsprogs support.

E2FSPROGS="yes"

# Include support for unionfs

#UNIONFS="1"

# Enable copying of firmware into initramfs

FIRMWARE="yes"

# Specify directory to pull from

FIRMWARE_DIR="/lib/firmware"

# Specify specific firmware files to include. This overrides FIRMWARE_DIR

#FIRMWARE_FILES=""

# Enable disklabel support (copies blkid to initrd)

DISKLABEL="yes"

# Add new kernel to grub?

#BOOTLOADER="grub"

# Enable splashutils in early space (initrd). Default is "no".

#SPLASH="yes"

# Use this splash theme. If commented out - the "default" name theme is used.

# Also, SPLASH="yes" needs to be enabled for this one to one work.

# This supersedes the "SPLASH_THEME" option of /etc/conf.d/splash (in early space).

#SPLASH_THEME="gentoo"

# =========Keymap Settings=========

#

# Force keymap selection at boot

#DOKEYMAPAUTO="yes"

# Disables keymap selection support

KEYMAP="it"

# =========Low Level Compile Settings=========

#

# GNU Make to use for kernel.  See also the --kernel-make command line option.

#KERNEL_MAKE="make"

# Compiler to use for the kernel (e.g. distcc).  See also the --kernel-cc

# command line option.

#KERNEL_CC="gcc"

# Assembler to use for the kernel.  See also the --kernel-as command line

# option.

#KERNEL_AS="as"

# Linker to use for the kernel.  See also the --kernel-ld command line option.

#KERNEL_LD="ld"

# GNU Make to use for the utilities.  See also the --utils-make command line

# option.

#UTILS_MAKE="make"

# Compiler to use for the utilities (e.g. distcc).  See also the --utils-cc

# command line option.

#UTILS_CC="gcc"

# Assembler to use for the utilities.  See also the --utils-as command line

# option.

#UTILS_AS="as"

# Linker to use for the utilities.  See also the --utils-ld command line

# option.

#UTILS_LD="ld"

# Common prefix of cros compile commands

#UTILS_CROSS_COMPILE="x86_64-pc-linux-gnu"

# Value of CROSS_COMPILE utils variable

# during kernel compilation

#KERNEL_CROSS_COMPILE="x86_64-pc-linux-gnu"

# =========GENKERNEL LOCATION CONFIGURATION============

# Variables:

#   %%ARCH%%  - Final determined architecture

#   %%CACHE%% - Final determined cache location

# Set genkernel's temporary work directory.  Default is /var/tmp/genkernel

#TMPDIR="/var/tmp/genkernel"

# Set the boot directory, default is /boot

#BOOTDIR="/boot"

# Default share directory location

GK_SHARE="${GK_SHARE:-/usr/share/genkernel}"

# Location of the default cache

CACHE_DIR="/var/cache/genkernel"

# Location of DISTDIR, where our source tarballs are stored

DISTDIR="${CACHE_DIR}/src"

# Log output file

LOGFILE="/var/log/genkernel.log"

# Debug Level

LOGLEVEL=1

# =========COMPILED UTILS CONFIGURATION============

#

# Default location of kernel source

DEFAULT_KERNEL_SOURCE="/usr/src/linux"

# Default kernel config (only use to override using

# arch/%%ARCH%%/kernel-config-${VER}.${PAT} !)

#DEFAULT_KERNEL_CONFIG="${GK_SHARE}/arch/%%ARCH%%/kernel-config"

# Specifies a user created busybox config

#BUSYBOX_CONFIG="/path/to/file"

#BUSYBOX_APPLETS="[ ash sh mount uname echo cut cat"

# NOTE: Since genkernel 3.4.41 the version of

#   busybox, lvm, mdadm, .. have been moved to

#   /usr/share/genkernel/defaults/software.sh in order to

#   reduce the merging you have to do during etc-update.

#   You can still override these settings in here.

# =========MISC KERNEL CONFIGURATION============

#

# Tag the kernel and ramdisk with a name:

# If not defined the option defaults to

# 'genkernel'

#KNAME="genkernel"

# This option is only valid if kerncache is

# defined. If there is a valid kerncache no checks

# will be made against a kernel source tree

#KERNEL_SOURCES="0"

# Build a static (monolithic kernel)

#BUILD_STATIC="1"

# Make and install kernelz image (PowerPC)

#GENZIMAGE="1"

# File to output a .tar.bz2'd kernel contents

# of /lib/modules/ and the kernel config

# NOTE: This is created before the callbacks

# are run!

#KERNCACHE="/path/to/file"

# Prefix to kernel module destination, modules

# will be installed in <prefix>/lib/modules

# (.conf equivalent of --module-prefix=<dir>)

#INSTALL_MOD_PATH=""

# =========MISC INITRD CONFIGURATION============

#

# Copy all kernel modules to the ramdisk

#ALLRAMDISKMODULES="1"

# Don't copy any modules to the ramdisk

#RAMDISKMODULES="0"

# File to output a .tar.bz2'd kernel and ramdisk:

# No modules outside of the ramdisk will be

# included...

#MINKERNPACKAGE="/path/to/file.bz2"

# File to output a .tar.bz2'd modules after the

# callbacks have run

#MODULESPACKAGE="/path/to/file.bz2"

# Directory structure to include in the initramfs,

# only available on >=2.6 kernels

#INITRAMFS_OVERLAY=""

# Build the generated initramfs into the kernel instead of

# keeping it as a separate file

INTEGRATED_INITRAMFS="1"

# Compress generated initramfs

COMPRESS_INITRD="yes"

# Types of compression: best, xz, lzma, bzip2, gzip, lzop, fastest

# "best" selects the best available compression method

# "fastest" selects the fastest available compression method

COMPRESS_INITRD_TYPE="xz"

# Create a self-contained env in the initramfs

#NETBOOT="1"

# =========MISC BOOT CONFIGURATION============

#

# Specify a default for real_root=

REAL_ROOT="LABEL=root-gentoo"

root@darkstar:~>

```

 io l'oldconfig glielo lascerei in realtà, ma non sono sicuro, se vuoi dammi tu un parere

faccio chroot sulla root di gentoo e compilo con genkernel

questo è il risultato quando compilo con genkernel:

```
(chroot) darkstar / # genkernel --menuconfig all

* Gentoo Linux Genkernel; Version 3.4.45.1

* Running with options: --menuconfig all

* Using genkernel.conf from /etc/genkernel.conf

* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86/config.sh ..

* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86/modules_load ..

* Linux Kernel 3.10.25-gentoo for x86...

* .. with config file /etc/kernels/kernel-config-x86-3.10.25-gentoo

* kernel: --mrproper is disabled; not running 'make mrproper'.

* kernel: --oldconfig is disabled; not running 'make oldconfig'.

* kernel: --clean is disabled; not running 'make clean'.

* kernel: >> Invoking menuconfig...

*** End of the configuration.

*** Execute 'make' to start the build or try 'make help'.

*         >> Compiling 3.10.25-gentoo bzImage...

*         >> Not installing firmware as it's included in the kernel already (CONFIG_FIRMWARE_IN_KERNEL=y)...

*         >> Compiling 3.10.25-gentoo modules...

*         >> Generating module dependency data...

* Copying config for successful build to /etc/kernels/kernel-config-x86-3.10.25-gentoo

* busybox: >> Using cache

* initramfs: >> Initializing...

*         >> Appending base_layout cpio data...

*         >> Appending auxilary cpio data...

*         >> Appending busybox cpio data...

*         >> Appending e2fsprogs cpio data...

*         >> Appending modules cpio data...

*         >> Appending blkid cpio data...

*         >> Appending modprobed cpio data...

*         >> Appending firmware cpio data...

*         >> Compiling 3.10.25-gentoo bzImage...

*         >> Not installing firmware as it's included in the kernel already (CONFIG_FIRMWARE_IN_KERNEL=y)...

* 

* Kernel compiled successfully!

* 

* Required Kernel Parameters:

*     root=/dev/$ROOT

* 

*     Where $ROOT is the device node for your root partition as the

*     one specified in /etc/fstab

* 

* If you require Genkernel's hardware detection features; you MUST

* tell your bootloader to use the provided INITRAMFS file.

* WARNING... WARNING... WARNING...

* Additional kernel cmdline arguments that *may* be required to boot properly...

* With support for several ext* filesystems available, it may be needed to

* add "rootfstype=ext3" or "rootfstype=ext4" to the list of boot parameters.

* Do NOT report kernel bugs as genkernel bugs unless your bug

* is about the default genkernel configuration...

* 

* Make sure you have the latest ~arch genkernel before reporting bugs.

(chroot) darkstar / # exit

```

 non capisco perchè mi dia quel warning, ossia perchè non riconosca il CONFIG_CMDLINE0 "rootfstype=ext4"

il file lilo.conf su slack è questo 

```
root@darkstar:~>cat /etc/lilo.conf

# LILO configuration file

# generated by 'liloconfig'

#

# Start LILO global section

boot = /dev/sda

#compact        # faster, but won't work on all systems.

# Boot BMP Image.

# Bitmap in BMP format: 640x480x8

  bitmap = /boot/slack.bmp

# Menu colors (foreground, background, shadow, highlighted

# foreground, highlighted background, highlighted shadow):

  bmp-colors = 255,0,255,0,255,0

# Location of the option table: location x, location y, number of

# columns, lines per column (max 15), "spill" (this is how many

# entries must be in the first column before the next begins to

# be used.  We don't specify it here, as there's just one column.

  bmp-table = 60,6,1,16

# Timer location x, timer location y, foreground color,

# background color, shadow color.

  bmp-timer = 65,27,0,255

# Standard menu.

# Or, you can comment out the bitmap menu above and

# use a boot message with the standard menu:

#message = /boot/boot_message.txt

# Append any additional kernel parameters:

append=" vt.default_utf8=0"

prompt

timeout = 50

# Normal VGA console

vga = normal

# Ask for video mode at boot (time out to normal in 30s)

#vga = ask

# VESA framebuffer console @ 1024x768x64k

# vga=791

# VESA framebuffer console @ 1024x768x32k

# vga=790

# VESA framebuffer console @ 1024x768x256

# vga=773

# VESA framebuffer console @ 800x600x64k

# vga=788

# VESA framebuffer console @ 800x600x32k

# vga=787

# VESA framebuffer console @ 800x600x256

# vga=771

# VESA framebuffer console @ 640x480x64k

# vga=785

# VESA framebuffer console @ 640x480x32k

# vga=784

# VESA framebuffer console @ 640x480x256

# vga=769

# ramdisk = 0     # paranoia setting

# End LILO global section

# Linux bootable partition config begins

image = /boot/vmlinuz

  root = /dev/sda5

  label = slackware

  read-only  # Partitions should be mounted read-only for checking

# Linux bootable partition config ends

# Linux bootable partition config begins

image=/boot/kernel

label=gentoo 

root=/dev/ram0 

read-only

# Linux bootable partition config ends

# Windows bootable partition config begins

other = /dev/sda2

  label = seven

  table = /dev/sda

# Windows bootable partition config ends

root@darkstar:~>

```

il lilo -v mi da esito positivo. (non devo per forza usare lui, anche grub va bene, se con lilo deve essere un problema)

Quando avvio gentoo il risultato è sempre lo stesso di prima (quando mi compilavo il kernel con make menuconfig make && make modules_install -sti due comandi davo, non uno di più, come c'è scritto sul manuale gentoo che consiglia la compilazione a mano del kernel)

Darkstar è una delle gloriose macchine su cui Pat ha sviluppato slackware, e che ha poi deciso di mettere come hostname di default per la slack. mi sembra che non si debba aggiungere altro

----------

## djinnZ

uffa! ricomiciamo:

Premetto che genkernel non fa altro che vedere se esiste /etc/kernels/kernel-config-xqualcosa-versione e lo copia su /usr/src/linux/.config o prende il suo predefinito da /usr/share/genkernel.

Poi il suo comportamento predefinito è lanciare i vari make, costruire l'initrd e quant'altro. 

Se le operazioni vanno a buon fine copia /usr/src/linux/.config su /etc/kernels/kernel-config-xqualcosa-versione.

L'immagine creata da genkernel avvierà il sistema usando come root (in realtà come nuova root, perchè inizialmente è il ramdisk nel quale è esplosa l'immagine) quella indicata nella variabile real_root della linea di comando del kernel.

Il problema con lilo ed i boot loader più "rudimentali" rispetto a grub (che è quello che è stato tenuto come unico riferimento nella guida) è che lilo in alcune versioni non passa automaticamente il parametro root=/dev/ram0 al kernel in assenza di una impostazione valida per lo stesso, quindi devi indicarlo esplicitamente od hai un kernel panic per root non valida; ci si rimedia con le opzioni di boot.

L'altro tuo problema è che con ogni probabilità, partendo da un default non valido, avrai dimenticato qualcosa nella configurazione possibile che sia il ramdisk, od il supporto ad udev o tmpfs o non so che altro; oppure hai dimenticato parametri necessari come quelli per il filesystem di root ext3/4. In questo caso, usando l'iimagine, avrai un corretto caricamento ed avvio del kernel ma all'avvio del sistema ti riporteranno errori. Poiché l'immagine contiene un minimo supporto puoi investigare se hai impostato male qualcosa, se non ti vede il disco e perchè (ed usando label od uuid non sei più legato ad un preciso assetto dei dischi).

Quindi partire da un default verificato e valido è senz'altro più semplice.

Ultimo problema è che i kernel da qualche tempo a questa parte poco gradiscono che non sia lanciato almeno un make clean dopo aver modificato la configurazione (per questo il default di genkernel è lanciare sempre make mrproper, poi copiare la conf e lanciarci sopra un make oldconfig) e la tendenza è non tanto a riportare errori ma generare immagini non validi. Non mi chiedere perché, non lo ricordo adesso, ma una ragione c'era.

Per prima cosa pulisci /etc/kernels di modo da partire dalla configurazione predefinita. Se hai seguito il suggerimento idiota di copiare roba in /usr/share/genkernel ripristìnalo con un emerge -1 genkernel.

La configurazione che ti consiglio è questa (qualcosa non va bene)

```
INSTALL="yes"

OLDCONFIG="yes"

MENUCONFIG="no"

CLEAN="yes"

MRPROPER="yes"

MOUNTBOOT="yes"

SAVE_CONFIG="yes"

USECOLOR="yes"

CLEAR_CACHE_DIR="yes"

POSTCLEAR="1"

MAKEOPTS="-j3"

LVM="no"

LUKS="no"

GPG="no"

DMRAID="no"

BUSYBOX="yes"

MDADM="no"

MULTIPATH="no"

ISCSI="no"

E2FSPROGS="yes"

FIRMWARE="no"

DISKLABEL="yes"

KEYMAP="it"

BOOTDIR="/boot"

INTEGRATED_INITRAMFS="1"

COMPRESS_INITRD_TYPE="xz"

REAL_ROOT="LABEL=root-gentoo"
```

volendo potresti impostare MENUCONFIG="yes" (non lo faccio perché uso alternativamente xconfig o, raramente, modifico direttamente il file in /etc/kernel se intervengo solo sulla linea di comando/valori di default e simili ma è una questione di preferenze personali) così ti parte direttamente la configurazione invece di usare il parametro --menuconfig; bada che CLEAN="no" implica MRPROPER="no" quindi stai sempre compilando male. Se REAL_ROOT non è vuoto lo script di init dell'immagine prende il suo valore per real_root se non è indicato nella linea di comando.

Per usare l'immagine compressa in xz devi lanciare emerge xz-utils (non è automatico) e devi abilitare il supporto con 

```
# CONFIG_KERNEL_GZIP is not set

# CONFIG_KERNEL_BZIP2 is not set

# CONFIG_KERNEL_LZMA is not set

CONFIG_KERNEL_XZ=y

# CONFIG_KERNEL_LZO is not set

CONFIG_BLK_DEV_INITRD=y

CONFIG_INITRAMFS_SOURCE=""

# CONFIG_RD_GZIP is not set

# CONFIG_RD_BZIP2 is not set

# CONFIG_RD_LZMA is not set

CONFIG_RD_XZ=y

# CONFIG_RD_LZO is not set
```

 e controllare che [General setup]->[Built-in initramfs compression mode] sia impostato a "none" (ad xz se non vuoi usare l'immagine integrata); ti conviene farlo, è il modo più semplice di gestire i kernel (con questa configurazione se stacchi il disco e lo sposti su sdb o lo colleghi ad un adattatore usb dovrebbe partire lo stesso).

Perdonami se lo ho considerato implicito ma, a meno che non sia indispensabile, uso (per semplificarmi la vita, tanto basta digitare "/" in menuconfig ed inserire il nome della variabile anche senza il CONFIG inizale od anche incompleta per avere l'help) riportare il nome della variabile del kernel quindi invece di dire imposta [General setup]->[Support initial ramdisks compressed using XZ] dico imposta CONFIG_RD_XZ=y.

Ma a parte la modifica della linea di comando non sono così folle da avventurarmi in modifiche dirette alla configurazione.

Un suggerimento a proposito della gestione dei kernel: emerge gentoo sources non fa altro che piazzare in world una indicazione generica ed al prossimo 

```
emerge -aDNuv @world ; emerge --depclean
```

ti ritroveresti con un kernel non configurato ed i sorgenti di quello che usi piallati. Un 

```
emerge -n =sys-kernel/gentoo-sources-[versione]
```

è d'uopo come non valorizzare KNAME in genkernel.conf ma lanciare genkernel --kernname=default all (o quel che ti pare) per avere una copia sicuramente funzionante; quando l'aggiornamento ti installa una nuova versione lanci 

```
genkernel --menuconfig --kernel-config=/etc/kernels/[versione-precedente] all
```

 e lo provi, verificato che va bene te ne crei una copia con l'opzione --kernname e rimuovi il vecchio kernel con emerge -C (se proprio lo ritieni necessario)¹.

A questo punto lanci genkernel --menuconfig all e ti configuri il tuo kernel a puntino. Inizierei con il mettere builtin il supporto al controller, la base scsi ed usb e le schede di rete poi pian pianino ti imposti quello che ti aggrada. Sempre da menuconfig aggiungi alla linea di comando rootfstype=ext4 ed eventualmente root=/dev/ram0 ed ro (questo per fa si che l'immagine parta senza necessità di alcun parametro, in genere lo si evita per non avere conflitti laddove si debba intervenire manualmente ma usando l'initrd è il parametro real_root a stabilire dov'è il sistema).

Con l'immagine integrata ti dovrebbe bastare

```
image=/boot/kernel-genkernel-vattelappesca

label=gentoo

read-only
```

con immagine separata invece

```
image=/boot/kernel-genkernel-vattelappesca

initrd=/boot/initramfs-genkernel-x86_64-3.10.7-gentoo

label=gentoo

read-only
```

eventualmente potresti giocare con

```
image=/boot/kernel-genkernel-vattelappesca

initrd=/boot/initramfs-genkernel-vattelappesca

append="root=/dev/ram0"

label=gentoo

read-only
```

Non uso lilo da qualche tempo quindi non ricordo se ha problemi con l'immagine integrata ma non dovrebbe. Il problema piuttosto è che forse il device non è /dev/ram0 potresti fare qualche prova in tal senso.

Se hai dubbi su opzioni specifiche del kernel chiedi pure. Se hai problemi con moduli che non riesci a mettere builtin sulle prime puoi provare a lanciare genkernel con -all-ramdisk-modules.

Per evitare schifezze delle compilazioni precedenti che diano fastidio ti consiglio un 

```
rm -Rf /lib/modules/*
```

per ripulire i vecchi moduli.

Quale profilo stai usando?

Grub con le partizioni incasinate è da mal di testa, già soffro di cefalea cronica... per questo non ho insistito.

Quanto al nome darkstar, se non ricordo male Pat lo ha scelto proprio pensando al fim, autoironicamente, dandosi dello sfigato alle prese con una macchina pazzoide. battuta malriuscita.

¹ in realtà prima lancio (supponendo che hardened-3.9.9 sia il vecchio)

```
eselect kernel set 2

cp /etc/kernels/kernel-config-x86_64-3.9.9-hardened /usr/src/linux/.config

make listnewconfig
```

su un terminale e sull'altro lancio 

```
genkernel --menuconfig --kernel-config=cp /etc/kernels/kernel-config-x86_64-3.9.9-hardened all
```

di modo da poter vedere direttamente cosa è cambiato.

Nulla ti vieta, tra l'altro di usare parametri del make come localmodconfig e localyesconfig per vedere cosa ti serve caricare.

Se usi KMS con il supporto modulare ricorda che devi includere il firmware nell'immagine, se è builtin lo devi includere nel kernel e, per evitare stranezze, anche nell'immagine (lo so che è uno spreco di spazio ma in passato ho avuto problemi).

Per mettere builtin qualcosa che richiede dei parameti modulo aggiungi [nome_modulo].[parametro]=[valore] alla linea di comando di default.

Nel mio caso uso una linea di comando del genere  *kernel wrote:*   

> CONFIG_CMDLINE="domdadm radeon.audio=0 video=HDMI-A-1:d video=DVI-I-1:d drm_kms_helper.edid_firmware=VGA-1:edid/Samsung_S19B150N.bin video=VGA-1:e rfkill.master_switch_mode=2"
> 
> CONFIG_EXTRA_FIRMWARE="edid/Samsung_S19B150N.bin radeon/R600_rlc.bin radeon/R700_rlc.bin rtl_nic/rtl8168e-2.fw"
> 
> CONFIG_EXTRA_FIRMWARE_DIR="/lib64/firmware"

 e *genkernel.conf wrote:*   

> FIRMWARE="yes"
> 
> FIRMWARE_FILES="/lib64/firmware/radeon/R600_rlc.bin /lib64/firmware/radeon/R700_rlc.bin /lib64/firmware/edid/1280x1024.bin /lib64/firmware/edid/Samsung_S19B150N.bin /lib64/firmware/rtl_nic/rtl8168e-2.fw"

   per capirci.

----------

## perjliv

allora, arrivo eh, con calma ma arrivo  :Laughing: 

vado con ordine:  *Quote:*   

> Premetto che genkernel non fa altro che vedere se esiste /etc/kernels/kernel-config-xqualcosa-versione e lo copia su /usr/src/linux/.config o prende il suo predefinito da /usr/share/genkernel. 

  ma se è così che senso ha settare i vari parametri del .config del kernel come CONFIG_KERNEL_XZ=y, CONFIG_CMDLINE="rootfstype=ext4" etc PRIMA di dare genkernel --menuconfig all? se lui poi mi copia sopra /etc/kernels/kernel-config-xqualcosa-versione non vanno persi?

 *Quote:*   

> Il problema con lilo ed i boot loader più "rudimentali" rispetto a grub (che è quello che è stato tenuto come unico riferimento nella guida) è che lilo in alcune versioni non passa automaticamente il parametro root=/dev/ram0 al kernel in assenza di una impostazione valida per lo stesso, quindi devi indicarlo esplicitamente od hai un kernel panic per root non valida; ci si rimedia con le opzioni di boot. 

  anche questo non mi è chiaro, sotto mi consigli di impostare in lilo  *Quote:*   

> Con l'immagine integrata ti dovrebbe bastare
> 
> lilo.conf:
> 
> image=/boot/kernel-genkernel-vattelappesca 
> ...

 

 *Quote:*   

> L'altro tuo problema è che con ogni probabilità, partendo da un default non valido, avrai dimenticato qualcosa nella configurazione possibile che sia il ramdisk, od il supporto ad udev o tmpfs o non so che altro; oppure hai dimenticato parametri necessari come quelli per il filesystem di root ext3/4. In questo caso, usando l'iimagine, avrai un corretto caricamento ed avvio del kernel ma all'avvio del sistema ti riporteranno errori. Poiché l'immagine contiene un minimo supporto puoi investigare se hai impostato male qualcosa, se non ti vede il disco e perchè (ed usando label od uuid non sei più legato ad un preciso assetto dei dischi). 

 ora ho rimmediato anche a questo: ho formattato tutto, impostato le partizioni in ordine con /boot sulla primaria in ext2 ecc, esattamente come mi hai detto tu sopra.

Un dubbio su un opzione specifica del kernel è questo. In /usr/src/linux/.config vedo che tu hai messo CONFIG_INITRAMFS_SOURCE="" io invece quella variabile ce l'ho settata: CONFIG_INITRAMFS_SOURCE="/var/tmp/genkernel/initramfs-3.10.25-gentoo.cpio" la lascio così?

 *Quote:*   

> controllare che [General setup]->[Built-in initramfs compression mode] sia impostato a "none"

 

questo non lo trovo, però ho impostato CONFIG_INITRAMFS_COMPRESSION_NONE=y è la stessa cosa?

 *Quote:*   

> Perdonami se lo ho considerato implicito ma, a meno che non sia indispensabile, uso (per semplificarmi la vita, tanto basta digitare "/" in menuconfig ed inserire il nome della variabile anche senza il CONFIG inizale od anche incompleta per avere l'help) riportare il nome della variabile del kernel quindi invece di dire imposta [General setup]->[Support initial ramdisks compressed using XZ] dico imposta CONFIG_RD_XZ=y. 

  figurati, anzi preferisco anch io il riferimento diretto alle variabili, almeno su questo andiamo d'accordo!  :Wink: 

 *Quote:*   

> Sempre da menuconfig aggiungi alla linea di comando rootfstype=ext4 ed eventualmente root=/dev/ram0 ed ro (questo per fa si che l'immagine parta senza necessità di alcun parametro, in genere lo si evita per non avere conflitti laddove si debba intervenire manualmente ma usando l'initrd è il parametro real_root a stabilire dov'è il sistema)

 ecco questo non lo so davvero fare: posso aggiungere al .config del kernel CONFIG_CMDLINE="rootfstype=ext4" ma come faccio a passare quello al menuconfig?

 *Quote:*   

> Quale profilo stai usando? 

  il profilo che utilizzo è il 6: default/linux/x86/13.0/desktop/kde

Adesso, prima di andare avanti: abbiamo fatto un po' di paciocco qua. Ti ho già scritto che ho riformattato l'intero HD mettendo in ordine le partizioni come mi avevi consigliato tu, per quel che mi riguarda posso anche riformatttare la /dev/sda7 (che è a root su cui ho gentoo) e rifare tutto da capo, per me non c'è problema, se vogliamo partire dall'inizio con tutto ordinato, almeno evitiamo malintesi e sovrapposizioni caotiche di argomenti, ma facciamo tutto in fila.

----------

## perjliv

ho trovato il problema, era relativamente semplice, non so come abbiamo fatto a non pensarci qua....

Il fatto è che il mio sistema ha problemi con i kernel nuovi; da una certa versione in avanti (dovrebbe essere la la 3.3.x, ma lo devo ancora verificare meglio) la scheda video non viene riconosciuta dal kernel. 

Si vede abbastanza immediatamente se si guardano i log, non so come non ci avevamo pensato, avevamo dato per scontato che ci fosse un errore di compilazione, che, ovviamente, era la strada sbagliata.

Ora sto cercando di trovare qual è il kernel incriminato a partire dal quale ho questa incompatibilità, e cerco di capire cosa cambia dall'ultimo kernel supportato...vedremo cosa salta fuori...

----------

