# Da genkernel a compilazione manuale [risolto]

## mrl4n

Ho recentemente installato una gentoo x64 compilando il kernel con genkernel per velocizzare l'operazione, ma ora mi sono accorto che non sono supportate la stampante USB e la webcam, per cui mi piacerebbe utilizzare un kernel creato ad hoc a manina, anche per eventuali modifiche future.

Non ho mai utilizzato genkernel prima d'ora e sinceramente pensavo fisse sufficiente, per cambiare, modificare il kernel, compilare con il make copiare bzImage in /boot e modificare grub.

Il sistema parte solo solo con il kernel generato automaticamente; con quello "manuale" il sistema dice che è impossibile montare /root

Ho sbagliato configurazione di grub?

il mio fdisk 

```
web&hardware cr4sh # fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes

255 testine, 63 settori/tracce, 9729 cilindri, totale 156301488 settori

Unità = settori di 1 * 512 = 512 byte

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

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

Identificativo disco: 0x7b48b2c5

Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sda1   *          63   156280319    78140128+   7  HPFS/NTFS/exFAT

Disk /dev/sdb: 400.1 GB, 400087375360 bytes

255 testine, 63 settori/tracce, 48641 cilindri, totale 781420655 settori

Unità = settori di 1 * 512 = 512 byte

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

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

Identificativo disco: 0x1c553332

Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048   781418495   390708224    7  HPFS/NTFS/exFAT

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes

255 testine, 63 settori/tracce, 121601 cilindri, totale 1953525168 settori

Unità = settori di 1 * 512 = 512 byte

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

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

Identificativo disco: 0x6410aaee

Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sdc1   *          63       80324       40131   83  Linux

/dev/sdc2           80325     8482319     4200997+  82  Linux swap / Solaris

/dev/sdc3         8482320  1953520064   972518872+  83  Linux

Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes

255 testine, 63 settori/tracce, 121601 cilindri, totale 1953525168 settori

Unità = settori di 1 * 512 = 512 byte

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

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

Identificativo disco: 0xb2cde992

Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sdd1   *          63  1953520064   976760001    7  HPFS/NTFS/exFAT

Disk /dev/sde: 203.9 GB, 203928109056 bytes

53 testine, 48 settori/tracce, 156563 cilindri, totale 398297088 settori

Unità = settori di 1 * 512 = 512 byte

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

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

Identificativo disco: 0xbd437a92

Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sde1            2048   398292991   199145472    7  HPFS/NTFS/exFAT

Disk /dev/sdf: 300.1 GB, 300090728448 bytes

255 testine, 63 settori/tracce, 36483 cilindri, totale 586114704 settori

Unità = settori di 1 * 512 = 512 byte

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

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

Identificativo disco: 0x19626f12

Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sdf1              63   586099394   293049666    7  HPFS/NTFS/exFAT

```

grub.conf

```
default 0

timeout 30

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

title Gentoo Linux 3.0.6

root (hd0,0)

kernel /boot/kernel-genkernel-x86_64-3.0.6-gentoo root=/dev/ram0 real_root=/dev/sdc3 rootfstype=ext3 video=uvesafb:mtrr,ywrap,1280x1024-3$

initrd /boot/initramfs-genkernel-x86_64-3.0.6-gentoo

title Gentoo (manuale)

root (hd0,0)

kernel /boot/kernel-3.0.6 root=/dev/sdc3

title Windows

map (hd0) (hd2)

map (hd2) (hd0)

rootnoverify (hd2,0)

chainloader +1

```

Last edited by mrl4n on Tue Jan 03, 2012 10:46 pm; edited 1 time in total

----------

## djinnZ

ma usare semplicemente 

```
genkernel --menuconfig all
```

 o 

```
genkernel --noclean all
```

 dopo aver configurato è chiedere troppo?

----------

## mrl4n

Quindi sei favorevole ai kernel compilati automaticamente?

Io ero convinto che fosse meglio qualcosa di personale, e volevo rimediare...

Credo che sei tanto capace con gentoo, quanto non rispondere alle domande...vecchio volpone   :Wink: 

o forse bastava leggessi meglio la guida di genkernel, cosa che ho fatto solo un'attimo fa.

Grazie.Last edited by mrl4n on Tue Jan 03, 2012 10:14 pm; edited 1 time in total

----------

## k01

 *mrl4n wrote:*   

> Non ho mai utilizzato genkernel prima d'ora e sinceramente pensavo fisse sufficiente, per cambiare, modificare il kernel, compilare con il make copiare bzImage in /boot e modificare grub. 

 

a me non è molto chiaro cosa hai fatto invece... non hai mai utilizzato genkernel? prima cosa usavi??   :Confused: 

----------

## mrl4n

Il primissimo kernel l'ho configurato a manina opzione per opzione e poi compilato con 

```
make && make modules_install
```

 i kernel successivi con il vecchio .config e 

```
make oldconfig
```

è una cosa fuori dal mondo?

Ultimamente ho provato a seguire le indicazioni di "kernel seeds" che però in questo caso non mi hanno aiutato...

----------

## k01

ah ok, quindi il problema è passare da compilazione manuale a genkernel? avevo capito che fosse il contrario... o forse quello che intendi è "ho fatto un primo kernel con genkernel ora lo voglio modificare e ho dato menuconfig"? in questo caso come ha detto djinnZ devi passare --menuconfig a genkernel per far funzionare la cosa

----------

## mrl4n

 *The Extremer wrote:*   

> ah ok, quindi il problema è passare da compilazione manuale a genkernel? avevo capito che fosse il contrario...

 

Infatti è il contrario...sulla macchina su cui sto lavorando mi sono affidato a genkernel e ora ho bisogno di personalizzare, ma ancora non conoscevo le possibilità offerte da genkernel (non avevo mai letto la guida)

----------

## djinnZ

leggila e leggi il make help del kernel, le possibilità ci sono, e sono decisamente "sfiziose".

Ti ripeto che genkernel serve solo a non perder tempo a lanciare una serie di comandi per compilare ed installare il kernel.

E deve essere configurato (quindi oltre alla guida leggi i commenti in genkernel.conf che spiegano quello che manca nel man)

per esempio la sequenza

```
genkernel --clean --mrproper all

module-rebuild -X rebuild
```

riavvio

```
cd /usr/src/linux

make localyesconfig

make menuconfig

genkernel all

module-rebuild -X rebuild
```

per la prima configurazione è la mia preferita (risparmio una buona metà del lavoro) mentre  *Quote:*   

> cd /usr/src/linx
> 
> cp /etc/kernels/kernel-config-<vecchia versione> .config
> 
> make listnewconfig

 (in genere in un altro terminale) è molto utile quando si aggiorna...

quante cose si possono fare semplicemente andando oltre la banale formula magica ... del piffero ...

Non te la prendere ma mi sono stancato di ripetere sempre le stesse cose. E sono favorevole a non ripetere inutilmente sequenze di comandi quando ne basta uno (e sei sicuro che non ti scordi depmod, make modules_install od altro). Nell'esempio il default è noclean (che implica nomrproper), normalmente, al più, disabilito solo mrproper. ma è questione di gusti.

----------

