# was muss nach einem kernelupdate alles neugebaut werden

## pieter_parker

hab auf meinem desktop system ein kernel update gemacht

habe dazu die alte .config vom linux-2.6.31-gentoo-r10 nach linux-2.6.32-gentoo-r7 kopiert

dann ein make oldconfig gemacht, dann ein make zum bauen

den kernel nach /boot/linux-2.6.32-gentoo-r7 kopiert

habe dann in /boot/grub/grub.conf

```
title   linux-2.6.32-gentoo-r7

root    (hd0,0)

kernel  /boot/linux-2.6.32-gentoo-r7     root=/dev/sda2    vga=0x361
```

eingetragen und reboot gemacht

1.

vga=0x361

sollte die auflösung 1280x800 in der konsole anzeigen, war aber nicht möglich

hatte nur die auswahl zwischen den standart auflösungen

in der kenelkonfig hab ich dann später gesehen das

Device Drivers  --->  Graphics support  --->   -*- Support for frame buffer devices  --->

VESA VGA graphics support

nicht mehr eingeschaltet war, wie kann sowas passieren ?

bei make oldconfig wurde nichts davon erwähnt

habe dann emerge -av1 nvidia-drivers gemacht

dann eselect opengl set nvidia

und dann xdm gestartet

2.

kde > systemeinstellungen > arbeitsfläche > arbeitsflächeneffekte

compositing war deaktiviert und lies sich auch nicht aktivieren

3.

kde

ob kwrite oder dolphin oder konsole oder ein anderes belibiges programm

jede taste die ich gedrückt halte (egal ob buchstaben oder pfeiltasten zum navigieren) haben eine verzögerung von 1 bis 1,5 sekunden, aber nur beim gedrückt halten

woran kann das liegen ?

ich hab jetzt den alten 2.6.31 kernel wieder gebootet und ein "emerge -av1 nvidia-drivers" und "eselect opengl set nvidia" gemacht und es läuft alles wie gewohnt

was mus ich nach einem kernel update machen, eventuel noch alles neubauen, damit die 3 probleme verschwinden ?

----------

## schmutzfinger

Zusammen mit dem Kernel müssen Module entsprechend neu gebaut werden. Wenn du eine initrd benutzt, die Module enthält, dann muss die auch neu gebaut werden.

Für die ramdisk weiß ich es gerade nicht aus dem Kopf aber dafür gibts sicher gute Doku.

Für die Module:

```

eselect kernel <kernel>

#modules that come with the kernel

make -C /usr/src/linux modules_install

#external modules

# requires sys-kernel/module-rebuild

module-rebuild rebuild

```

----------

## schachti

 *schmutzfinger wrote:*   

> 
> 
> ```
> 
> #external modules
> ...

 

Oder mit portage 2.2:

 *Quote:*   

> 
> 
> emerge @module-rebuild
> 
> 

 

----------

## pieter_parker

nee, eine initrd hab ich nicht

wie mache ich es denn mit portage-2.1.7.17 und den modules ?

----------

## Max Steel

emerge -a sys-kernel/module-rebuild

module-rebuild -X rebuild

----------

## Polynomial-C

Falls man app-portage/portage-utils installiert hat, geht auch ein 

```
emerge -1av $(qfile -Cq /lib/modules)
```

("/lib64/modules" funktioniert übrigens nicht bei dem Befehl)

----------

## tazinblack

Da ich seit langem nur noch den genkernel benutze hab ich das wohl einiges verpasst.

Gabs da nicht mal was wie make modules und make modules_install?!?

----------

## schachti

Das ist nur für die Module, die der Kernel selbst mitbringt (also für die Treiber, die Du in der Konfiguration des Kernels mit "m" ausgewählt hast). Externe Module wie sys-fs/aufs2, app-emulation/vmware-modules, app-emulation/virtualbox-modules usw., die mit portage installiert werden, müssen aber auch neu gebaut werden, und von diesen Modulen "weiß" das Kernel-Makefile nichts.

----------

## JoHo42

Hi pieter_parker,

warum kopierst du die Config rueber?

OK ich verstehe warum du das machst.

Es gibt aber einen eleganteren weg.

Schau mal in den Kernel sources, da gibt es einen Menupunkt Kernel Config aktivieren.

Die config als modul aktivieren und wenn du beim naechsten mal einen neuen kernel bauen willst (hoehre version).

Brauchst du nur das modul config laden und den neuen Kernel bauen.

Dann wird automtisch die neue config uebernommen.

Gruss Jörg

----------

## tazinblack

 *schachti wrote:*   

> Das ist nur für die Module, die der Kernel selbst mitbringt (also für die Treiber, die Du in der Konfiguration des Kernels mit "m" ausgewählt hast). Externe Module wie sys-fs/aufs2, app-emulation/vmware-modules, app-emulation/virtualbox-modules usw., die mit portage installiert werden, müssen aber auch neu gebaut werden, und von diesen Modulen "weiß" das Kernel-Makefile nichts.

 

Ahh, jetzt dämmerts. Sorry, bin noch nicht ganz wach heute morgen.

Also sprich nvidia-drivers und so Zeugs.

Die hab ich bisher immer nach bestem Wissen und Gewissen neu gebaut.   :Wink: 

Aber gut zu wissen, das es da auch ne bessere Lösung gibt.

----------

## Josef.95

Off-Topic

 *JoHo42 wrote:*   

> Hi pieter_parker,
> 
> warum kopierst du die Config rueber?
> 
> OK ich verstehe warum du das machst.
> ...

  @JoHo42

Das interessiert mich auch...,

meinst du 

```
CONFIG_IKCONFIG:                                                                                                                    │   

  │                                                                                                                                     │   

  │ This option enables the complete Linux kernel ".config" file                                                                        │   

  │ contents to be saved in the kernel. It provides documentation                                                                       │   

  │ of which kernel options are used in a running kernel or in an                                                                       │   

  │ on-disk kernel.  This information can be extracted from the kernel                                                                  │   

  │ image file with the script scripts/extract-ikconfig and used as                                                                     │   

  │ input to rebuild the current kernel or to build another kernel.                                                                     │   

  │ It can also be extracted from a running kernel by reading                                                                           │   

  │ /proc/config.gz if enabled (below).                                                                                                 │   

  │                                                                                                                                     │   

  │ Symbol: IKCONFIG [=y]                                                                                                               │   

  │ Prompt: Kernel .config support                                                                                                      │   

  │   Defined at init/Kconfig:409                                                                                                       │   

  │   Location:                                                                                                                         │   

  │     -> General setup
```

?

/edit: und natürlich auch "CONFIG_IKCONFIG_PROC" /edit:ende

Diese ist afaik in der Standard .config schon aktiviert,

und diese Möglichkeit über "/proc/config.gz" nutze ich auch recht gern. Ich hab das aber meist wie folgt gemacht

Symlink auf die neuen Sources gesetzt

und dann 

```
# zcat /proc/config.gz > /usr/src/linux/.config

# cd /usr/src/linux

# make oldconfig

eventuell dann noch

# make menuconfig

usw
```

Oder wie meinst du das mit  *Quote:*   

> Brauchst du nur das modul config laden und den neuen Kernel bauen. 

 ?Last edited by Josef.95 on Fri Apr 16, 2010 1:37 pm; edited 1 time in total

----------

## tazinblack

Interessant, 

aber was passiert, wenn man z.B. im alten Kernel zeugs drin hatte, was aber im neuen nicht mehr vorhanden ist?

Oder was geschieht mit neuen Treibern im neuen Kernel? Werden die dann nicht gebaut oder gibts da ne Möglichkeit à la etc-update oder so?

----------

## firefly

 *tazinblack wrote:*   

> Interessant, 
> 
> aber was passiert, wenn man z.B. im alten Kernel zeugs drin hatte, was aber im neuen nicht mehr vorhanden ist?
> 
> Oder was geschieht mit neuen Treibern im neuen Kernel? Werden die dann nicht gebaut oder gibts da ne Möglichkeit à la etc-update oder so?

 

wenn man eine .config von einem anderen kernel kopiert. sollte man ein make oldconfig nach dem kopieren im Verzeichnis des neuen kernels ausführen.

make oldconfig geht die .config datei durch und macht folgendes (soweit ich das verstanden habe):

- Einträge, die es im aktuellen Kernel nicht mehr gibt werden entfernt.

- Optionen, welche im aktuellen Kernel dazugekommen sind, werden angezeigt und der Benutzer wird gefragt wie diese Option gesetzt werden soll.

Was aber mit Einträgen passiert die im aktuellen kernel unter neuen Namen vorhanden sind, weis ich nicht. Da kann ich nur vermuten dass dann der neuen Name verwendet wird.

----------

## Polynomial-C

 *firefly wrote:*   

> Was aber mit Einträgen passiert die im aktuellen kernel unter neuen Namen vorhanden sind, weis ich nicht. Da kann ich nur vermuten dass dann der neuen Name verwendet wird.

 

Ich mag mich irren, aber soweit ich weiß werden solche Einträge wie neue Einträge behandelt...

----------

