Modules indispensables

Bonjour à tous !

Je suis à la recherche d’une liste des modules indispensables au boot de Debian. Je trouve que j’en ai un peu beaucoup au démarrage, des cron et anacron qui font sûrement doublon & co., donc j’aimerais bien savoir ce qu’il faut comme strict minimum.
Je suis à peu près sûr d’avoir vu passer ça quelque part mais impossible de remettre la main dessus…

Merci :slightly_smiling:

Salut,
Peux-tu poster la liste des modules que ton pc charge au démarrage, stp, que je puisse la comparer avec la mienne?
Merci d’avance.

Module Size Used by fuse 52032 2 nvidia 8863084 28 iptable_raw 1744 0 iptable_mangle 2252 0 iptable_nat 4280 0 nf_nat 15976 1 iptable_nat xt_tcpudp 2524 6 nf_conntrack_ipv4 11528 5 iptable_nat,nf_nat nf_defrag_ipv4 1680 1 nf_conntrack_ipv4 xt_state 1784 2 iptable_filter 2252 1 ip_tables 10272 4 iptable_raw,iptable_mangle,iptable_nat,iptable_filter x_tables 14528 4 iptable_nat,xt_tcpudp,xt_state,ip_tables ipv6 234536 18 coretemp 5336 0 hwmon_vid 2496 0 nf_conntrack_ftp 6316 0 nf_conntrack 59536 5 iptable_nat,nf_nat,nf_conntrack_ipv4,xt_state,nf_conntrack_ftp loop 13512 0 ses 5752 0 enclosure 6900 1 ses arc4 1576 2 snd_hda_codec_realtek 184380 1 ecb 2384 2 rt61pci 18320 0 crc_itu_t 1828 1 rt61pci rt2x00pci 7224 1 rt61pci rt2x00lib 26052 2 rt61pci,rt2x00pci led_class 3868 1 rt2x00lib snd_hda_intel 23296 0 input_polldev 3604 1 rt2x00lib snd_hda_codec 57800 2 snd_hda_codec_realtek,snd_hda_intel mac80211 123564 2 rt2x00pci,rt2x00lib snd_pcm_oss 32432 0 snd_mixer_oss 13120 1 snd_pcm_oss snd_pcm 64228 3 snd_hda_intel,snd_hda_codec,snd_pcm_oss snd_seq_dummy 2440 0 cfg80211 78864 2 rt2x00lib,mac80211 rfkill 16508 1 cfg80211 eeprom_93cx6 1920 1 rt61pci snd_seq_oss 23032 0 snd_seq_midi 5704 0 i2c_i801 8560 0 snd_rawmidi 18832 1 snd_seq_midi snd_seq_midi_event 6228 2 snd_seq_oss,snd_seq_midi snd_seq 42228 7 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event i2c_core 20012 2 nvidia,i2c_i801 pcspkr 2204 0 snd_timer 17760 2 snd_pcm,snd_seq snd_seq_device 6276 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq snd 47340 12 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device soundcore 6352 1 snd snd_page_alloc 8044 2 snd_hda_intel,snd_pcm intel_agp 23704 0 agpgart 30976 2 nvidia,intel_agp processor 34804 0 button 5148 0 sbp2 19552 1 evdev 8308 3 ext3 107456 3 jbd 41584 1 ext3 mbcache 7008 1 ext3 usbhid 31608 0 hid 36144 1 usbhid sg 25040 0 sr_mod 13392 0 cdrom 30332 1 sr_mod sd_mod 24948 8 ata_generic 4364 0 ata_piix 20896 4 libata 152240 2 ata_generic,ata_piix scsi_mod 137004 6 ses,sbp2,sg,sr_mod,sd_mod,libata ide_pci_generic 3652 0 ide_core 89156 1 ide_pci_generic ohci1394 25744 2 ieee1394 74884 2 sbp2,ohci1394 atl1 27080 0 mii 4704 1 atl1 ehci_hcd 30720 0 uhci_hcd 19104 0 usbcore 128672 4 usbhid,ehci_hcd,uhci_hcd nls_base 6784 1 usbcore thermal 12692 0 fan 4064 0 thermal_sys 13536 3 processor,thermal,fan

J’en ai relevé un bon nombre d’utilisés par iptables, mais il me reste pas mal d’inconnues…

C’est ton fichier de modules (/etc/modules)?

Non, c’est la sortie d’un lsmod après le démarrage.

Ok,
je jetterai un oeil ce soir sur ce que me dit lsmod (sur mon pc sous Debian).
Edit: j’en ai identifié quelques uns:
[ul]
thermal/thermal_sys/core_temp : modules qui lisent les températures du processeur, du disque dur, etc…
fan : c’est le module qui gère le ventilo.
ohci1394/ieee1394 : modules pour le firewire
ehci_hcd : gestion des ports USB 2.0
uhci_hcd : gestion des ports USB 1.0
modules en snd_XXX et soundXXX: modules de gestion des cartes son (et des logiciels qui vont avec)
modules en rt2X et autres en rtXXX: modules pour les cartes réseau
[/ul]

Salut,
Dans ton premier post tu parlais de cron, anacron (qui sont complémentaire, voir fcron) sont des daemons.
Si c’est bien ça que tu cherches, il existe sysv-rc-conf qui permet de gérer facilement les daemons.

Cron et anacron ne sont pas des modules du noyau, ce sont des services, des “démons” (programmes tournant en tâche de fond) lancés par les scripts d’initialisation figurant dans /etc/rc*.d/ et installés par des paquets. Ce sont deux choses très différentes.

Un module peut être chargé soit parce qu’ils sert à piloter un élément matériel présent qui a été détecté par udev, soit parce qu’ils figurent dans /etc/modules, soit parce qu’il fournit une fonctionnalité qui a été demandée par un programme, comme iptables pour créer des règles, mount pour monter un système de fichiers (ext3)… ou bien par dépendance d’un autre module.

Quant à savoir lesquels sont “indispensables”, tout dépend de ce que tu veux faire.

Merci à tous pour votre intérêt !

Bon, donc je me suis embrouillé entre modules et daemons. En fait l’idée de base c’était d’alléger un peu le boot. Dans cette optique, il faut élaguer daemons, modules ou les deux ? Parce que avahi (un daemon), par exemple, si j’ai tout bien compris étant donné que je ne fais pas partie d’un LAN, je n’en ai pas besoin. Mais niveau module j’ai vu des gens dont le lsmod était bien plus court aussi…

Donc par “indispensables”, j’entends daemons et modules minimums pour pouvoir booter. Je pense que j’ai déjà plus ou moins identifié ce qui est spécifique à mon matériel, mais ça laisse quelques inconnues.

[quote=“PascalHambourg”]
Quant à savoir lesquels sont “indispensables”, tout dépend de ce que tu veux faire.[/quote]
Tout à fait, et pas se tromper de cible non plus.

Ames sensibles et amis du bon gout s’abstenir :wink: (edit, en rouge: une utilisation inappropriée des recommandations ci dessous est DANGEREUSE, peut rendre votre ordinateur instable, voire non-bootable)

Au minimum, t’as besoin d’un kernel, d’un /dev peuplé et d’un shell, mais t’iras pas loin avec ça :wink:

Après tout dépend de ce que TU veux, ce qui n’est pas forcément ce que nous voulons, c’est pour ça que tu ne trouveras pas de guide pré fabriqué. Je te dirais qu’il n’y a pas que les daemons et les modules.

Par exemple le PC sur lequel je t’écris avec une configuration “desktop”, caché en NAT derrière un routeur qui fait aussi pare feu (i386, mono proc):

Déjà ça commence par une ligne de boot adaptée à ton matériel:

$ cat /proc/cmdline 
auto BOOT_IMAGE=Linux ro root=803 noisapnp lp=0 nosmp nomce quiet

(isapnp prend un temps fou alors que ca m’est pas utile).
PAS de framebuffer, ni de bootsplash, ni de message inutiles - quand t’es sur une stable t’es sur de jamais avoir d’ennuis de toute manière :wink:

Ensuite l’init:

$ ls /etc/rcS.d/
README             S05mountdevsubfs.sh   S09mtab.sh      S12mountall-bootclean.sh
S01glibc.sh        S06keymap.sh          S09udev-mtab    S14networking
S02hostname.sh     S08checkroot.sh       S10checkfs.sh   S17console-screen.sh
S03mountkernfs.sh  S09ifupdown-clean     S11ifupdown     S18bootmisc.sh
S04udev            S09module-init-tools  S11mountall.sh
$ ls /etc/rc2.d
README  S01anacron  S01lighttpd  S01rmnologin  S01sysfsutils

Oui, je suis vraiment un rapace, pas de syslog ni de cron rien. Oui je suis un fou de lancer un serveur HTTP sans avoir syslog… ce serveur n’écoute que sur localhost - Tu commences à comprendre le “ça dépend” je pense :wink:

J’ai viré certains script qui étaient lents (cpufreq par exemple) pour mettre les modules à charger directement dans /etc/modules. Après j’ai pris des risques, par exemple:

(Attention, je ne recommande pas !)

/etc/init.d/rc:32:CONCURRENCY=startpar
/etc/init.d/rc:112:    # startpar do not work properly at the start of rcS.d/.  Avoid it.

Mais mon plus gros risque reste (Ca c’est vraiment dangereux je ne recommande pas du tout):

$ mount
/dev/sda3 on / type ext2 (rw,noatime,errors=remount-ro)
/dev/sda5 on /home type ext2 (rw,noatime)
/dev/sda7 on /media/sda7 type ext2 (rw,noatime)

(l’ext2 est bien plus rapide que l’ext3, même en mode writeback, mais tu le payes plus tard par des fdisk à rallonge voire des pertes de données en cas de crash ou de coupure de courant… )

Aussi udev est accusé de tout les maux. Même s’il est vrai que le “udevadm settle” est long, je fais tout par udev, lancement de cups au branchement de l’imprimante, automount des clés USB etc. - le jeu en vaut la chandelle, et le temps de lancement d’udev est compensé par le temps et les ressources gagnées par le lancement de services pas toujours utiles.

Mais quand t’en seras arrivé à mon point, tu te rendras compte que c’est ridicule, tu mets moins de temps à booter que de sortir d’hibernation :smt005

Et pourtant j’utilise un kernel bien lourd « d’usine » (2.6.30-bpo), et je rogne pas sur les modules, y a un moyen simple de pas faire charger le module X, c’est de désactiver le périphérique qui provoque le chargement de X dans ton bios - ça c’est très souvent oublié !

Voila :slightly_smiling:

Ouaw, merci pour les infos détaillées :slightly_smiling: J’ai pris note, ça va me servir à comprendre et à ne pas faire la même chose !

Ceci dit j’ai déjà viré avahi, kerneloops et timidity qui m’em**** plus qu’autre chose. Résultats des courses : 15s de temps de boot en moins et 5Mb de RAM économisés au démarrage.

Maintenant je me pose la question de tous ces processus de planification : cron, anacron et atd. Est-ce que par défaut ils servent à quelque chose, parce que moi j’y ai jamais touché donc… J’ai vu quand même que cron a certaines tâches planifiées : des apt, des aptitude, exim4-base, logrotate, scrollkeeper et autres joyeusetés.
Qu’est-ce que je peux virer raisonnablement “sans” risques ?

Comme le dit alxx, anacron et cron sont complémentaires, anacron effectue les taches au boot seulement, et quitte une fois les taches terminées, alors que cron effectue les taches en permanence.

De plus, utiliser anacron seul, ça signifie devoir booter tout les jours, un vrai boot - pas de retour d’hibernation ou autre, sinon anacron est inefficace. Cron prend alors le relai d’anacron. Voila pourquoi on dit qu’ils sont complémentaires.

Donc si on reste prudent, on garde les 2 :slightly_smiling:

Concernant atd, tu peux l’enlever de la séquence de boot, a moins que tu n’utilises at pour programmer une commande à une heure précise.

Bon ben merci à tous, j’aurai appris des tas de trucs sur le boot et ses runlevels :slightly_smiling:
Tout ce qu’il me reste de lent au chargement, c’est hald et preload, mais ça je garde. Ah, je perds aussi quelques secondes à cause de mon disque dur externe, quand udevd passe dessus, mais je garde aussi.

Juste pour satisfaire ma curiosité, Knucky, est-ce que tu pourrais détailler un peu ta ligne de boot (isapnp, smp, mce, lp : késako ?) et m’informer sur où je peux en apprendre plus sur les différentes options possibles ?

En anglais: linuxinsight.com/files/lkn/ch09.pdf

noisapnp : ne pas s’embeter avec des cartes ISA (j’en ai pas donc…) (isa plug n pray par expérience personnelle :wink:)
lp=0 : pas de pilote pour l’impression via port parrallèle
nosmp : forcer l’utilisation d’un seul processeur (j’en ai qu’un seul)
nomce : pas de vérification d’erreur matérielle (olé olé celui la)
quiet : pas de message d’information de la part du kernel