# "load Modules" aufraeumen

## Kleinrechner

Hallo,

bin gerade dabei, die Boot-Zeit etwas zu beschleunigen und mir ist aufgefallen, dass der Abschnitt, in dem der Kernel die Module durchlaeuft (vor dem Mounten von Root), ziemlich lange dauert.

Gibt es hier einen einfachen Weg, die Module, die ich sowieso nicht brauche, raus zu schmeissen?

Wenn ich das richtig verstanden hab, muss ich dafuer nichtmal die Module komplett aus dem Kernel schmeissen, es sollte reichen, die Module aus der /etc/modules.conf aus zu kommentieren, oder?

Gibt es eine Moeglichkeit alle Module rauszufinden, die ich nicht benoetige, ohne alle Module einzeln durch zu probieren?

cu

  Kleinrechner

----------

## ChrisJumper

Hallo Kleinrechner,

du hast doch dann bestimmt genkernel benutzt um den Kernel zu erstellen oder? Mein erster Vorschlag wäre dann als erstes das du einfach versuchst dir einen Kernel von Hand zu bauen. Du musst den alten ja nicht gleich löschen sondern kannst, sofern du dir einen entsprechenden Eintrag in deiner grub Konfiguration anlegst, ja beliebig ohne ein Risiko wechseln bzw. ausprobieren. Aber wenn du dir das nicht zutraust, überspringe einfach den nächsten Abschnitt.

Schreib dir einfach die Grundzüge deiner Hardware auf und durchsuche in aller Ruhe das Menü von make menuconfig (via Konsole/Terminal) oder make xconfig (für Maus-Schubser). Manche Dinge wie Dateisysteme oder Treiber für Festplatten-Controller solltest du fest in den Kernel einbauen weil das System sonst nicht von der Festplatte booten kann. Z.B. muss der Festplatten-Controller Treiber geladen werden bevor die Festplatte eingebunden wird und es wäre dumm gelaufen wenn man das vergisst. Die Voreinstellungen sind meist schon recht gut und man muss nur beim setzen der Treiber Hand anlegen. Aber werfe nochmal einen Blick ins Installations-Handbuch zu diesem Thema.

Hier noch ein Tipp wie du heraus bekommst welche Module du brauchst. Starte einfach von der Live-CD oder dein Gentoo und gebe als root lsmod ein. Der Befehl zeigt dir dann die aktuellen im Kernel eingehängten Module an, aber bedenke das Dinge die im Kernel fest eingebaut sind in dieser Liste nichte auftauchen. Daher wäre eine Live-CD evtl. geeigneter. Aber wenn du einen genkernel benutzt, sollte das ähnlich ausfallen. Ich hoffe das sind alle Module die du brauchst... allerdings weiß ich nicht ob es ein Programm gibt welches nicht benötigte Module bei Bedarf automatisch in den Kernel lädt, da ich sowas immer von Hand gemacht habe. Zum Beispiel wlan-Treiber oder Module für einen USB-DVB Empfänger. Sicherer wäre es wenn du dir Bewusst machst welche Module du brachst..

Alle Verfügbaren Module (bei der manuellen Kernel-Konfiguration sind das nur die die du explizit als Modul ausgewiesen und mit dem Befehl make modules dann auch vollendet hast.) werden dir als root mit modprobe -l (kleines L) angezeigt.

Werfe notfalls nochmal einen Bilck ins gentoo-wiki oder die Dokumentationen.

Grüße Chris

----------

## Kleinrechner

 *ChrisJumper wrote:*   

> du hast doch dann bestimmt genkernel benutzt um den Kernel zu erstellen oder?

 

Ja, im Prinzip schon, die Grundkonfig ueber GenKernel und dann einfach ueber menuconfig die Module, die ich noch benoetigt hab, hinzugefuegt.

 *ChrisJumper wrote:*   

> Aber wenn du dir das nicht zutraust, überspringe einfach den nächsten Abschnitt.

 

Das zutrauen ist nicht das Problem, das Problem ist viel mehr der Zeitaufwand die einzelnen Module durchzuprobieren (d.h. jedes mal neu Kompilieren, reboot, schauen ob's geht und wieder von vorne...)

Deshalb waere es natuerlich gut, wenn man sich einfach eine Liste aller Module ausgeben koennte, die sowieso nicht benoetigt werden.

Aber vermutlich hast du recht und es waere eigentlich einfacher, einen nackten Kernel zu nehmen und die Module, die man benoetigt hinzuzufuegen, als den zugemuellten Kernel zu nehmen und zu versuchen die ueberfluessigen Module raus zu schmeissen.

 *ChrisJumper wrote:*   

> Die Voreinstellungen sind meist schon recht gut und man muss nur beim setzen der Treiber Hand anlegen.

 

Wie bekomm ich am besten die Voreinstellungen bzw einen nackten Kernel her? Reicht es hierfuer einfach die .config zu loeschen?

cu

  Kleinrechner

----------

## Tariella

Du könntest einen von pappy's kernel seeds probieren. Es gibt auch einen Thread dazu, falls es Probleme mit der Erstellung eines individuellen Kernels oder bei der Benutzung der kernel seeds gibt.

----------

## ChrisJumper

 *Kleinrechner wrote:*   

> 
> 
> Deshalb waere es natuerlich gut, wenn man sich einfach eine Liste aller Module ausgeben koennte, die sowieso nicht benoetigt werden.
> 
> 

 

Also genau das mein ich ja mit lsmod. Da werden nur die Module angezeigt die dein Kernel grade verwendet. So mache ich das immer mit einer Ubuntu-Live-CD, wenn ich mir nicht sicher bin wie ein Treiber heißt, und es unter einer Live-CD geht aber nicht mit meinem Kernel ;)

Einen "nackten" Kernel hast du z.B. wenn du in dein /usr/src/ wechselst und den linux link auf eine Version setzt die du zuvor noch nicht verwendet hast. Ich hab hier z.B. sys-kernel/gentoo-sources in den (re)Versionen 2.6.30-r4 und  2.6.30-r5 liegen und wenn den linux link von r4 auf r5 neu setzte liegt in dem Kernel eine nackte .config, daher kopiere ich die .config immer von der alte Version und führe make oldconfig wen ich eine bestehende Konfiguration in einen neuen Kernel übernehmen möchte. Wenn bei dir das Useflag "symlink" gesetzt ist, wir dieser Symlink automatisch angepasst.

Also notfalls einfach den Kernel mit emerge -C deinstallieren und neu emergen, dann hast du auch wieder eine "nackte" .config. Vielleicht kopierst dir deine Aktuelle .config vorher aber noch kurz wohin, damit du sie nicht Verlierst wenn du sie sonst nirgendwo gespeichert hast.

Tariella's Tipp klingt auch ganz gut. Allerdings hab ich damit noch keine Erfahrung.

Generell unterscheiden sich die Voreinstellungen, je nach dem verwendeten Kernel-System. Für einen Desktop ist die Kernel-Konfiguration natürlich einfacher als für einen Server mit z.B. Virtualisierung.

Grüße

Chris

----------

## Josef.95

Einen "nackten" sauberen Kernel-Baum erhältst du zb mit einem

```
# cd /usr/src/linux

# make distclean
```

 idR reicht aber ein 

```
# make mrproper
```

Für weiteres siehe zb auch 

```
# make --help
```

Viel Erfolg

----------

## Kleinrechner

Danke an alle!

Ich werd mir das alles nochmal anschauen, auch das mit den Seeds klingt ganz interessant.

Vermutlich wird es darauf hinaus laufen, die ganzen Geraete zu deaktiveren, die automatisch als Modul mit gerladen werden (wenn man z.B. Alsa im Kernel aktiviert, werden ja automatisch ziemlich viele Soundkarten-Typen etc per default als Modul mit aktiviert).

----------

## Tariella

Hier kannst du den Output von 

```
lspci -n
```

 ins online-Formular hineinposten und bekommst auf Knopfdruck die passenden Module angezeigt.

----------

## mrsteven

 *Tariella wrote:*   

> Hier kannst du den Output von 
> 
> ```
> lspci -n
> ```
> ...

 

Hey, den Tipp wollte ich gerade geben...  :Wink: 

Aber ja, das beste wird sein den Kernel von Hand zu bauen. Dann kannst du auf die initrd mit den Modulen verzichten und baust alle Module, die du zum Zugriff auf die Root-Partition brauchst (Dateisystem- und Festplattencontrollertreiber , ggf. Verschlüsselung und/oder Multivolume...) fest in den Kernel. Die restlichen Treiber für Soundkarte, Netzwerk usw. können auch Module bleiben, welche dann von udev oder den Init-Scripten automatisch geladen werden. Das geht aber im Gegensatz zu dem von genkernel verwendeten Verfahren recht fix, weil nicht mehr alle gefundenen Module auf gut Glück durchprobiert werden.

----------

