# [boot]divers bugs au boot

## Kevin57

Bonjour à tous,

J'ai deux bugs qui apparaissent de manière assez aléatoire lors du boot et que je ne sais pas comment régler. 

1) Parfois le système bloque très vite, après avoir affiché la ligne 

```
 [ 0.028999] Booting Node 0, Processors #1
```

Je peux attendre 10 minutes et ça n'avance absolument pas. Je soupçonne un problème de kernel puisque ça s'affiche très tôt, avant qu'il ne commence à charger les deamons.

2) Le deuxième bug est assez récent mais revient très souvent. Il me semble qu'il survient après 

```
waiting for uevents to be processed
```

mais comme ça défile très vite je ne suis pas sûr à 100%. Quoi qu'il en soit, ensuite le système bloque à la ligne

```
[ 10.089193] sd 5:0:0:0: [sdf] Attached SCSI disk
```

Je ne sais absolument pas d'où viennent ces problèmes. Le deuxième apparait depuis hier, depuis que j'ai essayé d'accélérer le boot en modifiant le /etc/conf.d/rc de

```
RC_PARALLEL_STARTUP="no"
```

à 

```
RC_PARALLEL_STARTUP="yes"
```

Mais même en le remettant au niveau de départ, ça ne marche pas mieux...

Comme je ne sais pas du tout d'où viennent les problèmes, je ne sais pas quoi vous donner comme infos... Dans le doute, j'ajoute quelques infos :

```
kevin_gentoo@Kevin ~ $ emerge --info

Portage 2.1.8.3 (default/linux/x86/10.0, gcc-4.4.3, glibc-2.11-r1, 2.6.33-gentoo-r1 i686)

=================================================================

System uname: Linux-2.6.33-gentoo-r1-i686-Intel-R-_Core-TM-2_CPU_4400_@_2.00GHz-with-gentoo-2.0.1

Timestamp of tree: Tue, 20 Apr 2010 10:45:01 +0000

ccache version 2.4 [enabled]

app-shells/bash:     4.1_p5

dev-java/java-config: 2.1.10

dev-lang/python:     2.6.5-r1, 3.1.2-r2

dev-util/ccache:     2.4-r8

dev-util/cmake:      2.8.1-r1

sys-apps/baselayout: 2.0.1

sys-apps/openrc:     0.6.1-r1

sys-apps/sandbox:    2.2

sys-devel/autoconf:  2.13, 2.65

sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1

sys-devel/binutils:  2.20.1

sys-devel/gcc:       4.3.4, 4.4.3

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6b

virtual/os-headers:  2.6.33

ACCEPT_KEYWORDS="x86 ~x86"

ACCEPT_LICENSE="*"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -mtune=i686 -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-O2 -mtune=i686 -pipe"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--jobs=3 --load-average=5.0 --with-bdeps y"

FEATURES="assume-digests ccache distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="http://de-mirror.org/distro/gentoo/"

LANG="fr_FR.UTF-8"

LDFLAGS="-Wl,-O1"

LINGUAS="fr fr_FR"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/var/lib/layman/desktop-effects /usr/local/portage"

SYNC="rsync://rsync.fr.gentoo.org/gentoo-portage"

USE="X a52 aac acl alsa amr bash-completion berkdb bluetooth bzip2 cdda cdr cli consolekit cracklib crypt css cups cxx dbus djvu dri dvd dvdr encode ffmpeg fortran ftp gdbm gif gphoto2 gpm hal handbook iconv icq imap ipv6 jack java jpeg lcms mad mime mng modules mozilla mp3 mp4 mpeg msn mudflap mysql ncurses nls nptl nptlonly nsplugin ogg opencore-amr opengl openmp oscar pam pcre pdf perl php plasma png ppds pppd python quicktime raw readline reflection rss scanner seamonkey semantic-desktop session smp source speex spell spl sql ssl svg symlink sysfs tcpd tiff unicode usb v4l v4l2 vcd videos webkit wifi win32codecs x86 xcomposite xorg xscreensaver xvid yahoo zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="fr fr_FR" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 

Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
```

```
Kevin ~ # lsusb

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 002: ID 0644:0201 TEAC Corp. 

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 005 Device 002: ID 413c:2105 Dell Computer Corp. Model L100 Keyboard

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 007: ID 0bc2:2300 Seagate RSS LLC 

Bus 001 Device 006: ID 046d:089d Logitech, Inc. QuickCam E2500 series

Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB

Bus 001 Device 002: ID 07d1:3c07 D-Link System Wireless G DWA-110 Adapter

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 004 Device 002: ID 0461:4d15 Primax Electronics, Ltd Dell Optical Mouse

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 008 Device 005: ID 046d:c719 Logitech, Inc. 

Bus 008 Device 002: ID 046d:0b05 Logitech, Inc. 

Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 008 Device 003: ID 413c:8130 Dell Computer Corp. 

Bus 008 Device 004: ID 046d:c718 Logitech, Inc. 
```

```
Kevin ~ # lspci

00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 02)

00:01.0 PCI bridge: Intel Corporation 82G33/G31/P35/P31 Express PCI Express Root Port (rev 02)

00:19.0 Ethernet controller: Intel Corporation 82562V-2 10/100 Network Connection (rev 02)

00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)

00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02)

00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02)

00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02)

00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)

00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)

00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02)

00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02)

00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)

00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02)

00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller (rev 02)

00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)

00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA IDE Controller (rev 02)

01:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8300 GS] (rev a1)
```

```
Kevin ~ # rc-update show

                 swap |                                   boot        

              urandom |                                   boot        

                  xdm |                                        default

             hostname |                                   boot        

             netmount |                                        default

              modules |                                   boot        

             iptables |                                        default

            killprocs |                  shutdown                     

                 udev |                           sysinit             

            savecache |                  shutdown                     

               sysctl |                                   boot        

             bootmisc |                                   boot        

                 mtab |                                   boot        

                 root |                                   boot        

              hwclock |                                   boot        

                 fsck |                                   boot        

                 hald |                                        default

         termencoding |                                   boot        

                dmesg |                           sysinit             

              keymaps |                                   boot        

            syslog-ng |                  shutdown              default

                  mpd |                                        default

                 dbus |                                        default

          consolefont |                                   boot        

           localmount |                                   boot        

       udev-postmount |                                        default

                devfs |                           sysinit             

                cupsd |                                        default

            alsasound |                                   boot        

             mount-ro |                  shutdown                     

               procfs |                                   boot        

                local |        nonetwork                       default

            net.wlan0 |                                        default

               net.lo |                                   boot        
```

```
Kevin ~ # cat /etc/init.d/udev

#!/sbin/runscript

# Copyright 1999-2008 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

description="Run udevd and create the device-nodes"

[ -e /etc/udev/udev.conf ] && . /etc/udev/udev.conf

rc_coldplug=${rc_coldplug:-${RC_COLDPLUG:-YES}}

depend()

{

   if [ -f /etc/init.d/sysfs ]; then

      # require new enough openrc with sysinit being extra runlevel

      # on linux we just check if sysfs init-script exists

      # this is to silence out ugly warnings about not-existing sysfs script

      provide dev

      if yesno "${rc_device_tarball:-no}"; then

         need sysfs udev-mount udev-dev-tarball

      else

         need sysfs udev-mount

      fi

      before checkfs fsck

      # udev does not work inside vservers

      keyword novserver nolxc noopenvz

   fi

}

cleanup()

{

   # fail more gracely and not leave udevd running

   start-stop-daemon --stop --exec /sbin/udevd

   exit 1

}

disable_hotplug_agent()

{

   if [ -e /proc/sys/kernel/hotplug ]; then

      echo "" >/proc/sys/kernel/hotplug

   fi

}

root_link()

{

   /lib/udev/write_root_link_rule

}

rules_disable_switch()

{

   # this function disables rules files

   # by creating new files with the same name

   # in a temp rules directory with higher priority

   local f=/dev/.udev/rules.d/"$1" bname="$1" onoff="$2"

   if yesno "${onoff}"; then

      echo "# This file disables ${bname} due to /etc/conf.d/udev" \

         > "${f}"

   else

      rm -f "${f}"

   fi

}

# only called on openrc

is_service_enabled() {

   local svc="$1"

   [ ! -e "/etc/init.d/${svc}" ] && return 1

   [ -e "/etc/runlevels/${RC_BOOTLEVEL}/${svc}" ] && return 0

   [ -e "/etc/runlevels/${RC_DEFAULTLEVEL}/${svc}" ] && return 0

   return 1

}

check_openrc_net()

{

   local f=/dev/.udev/rules.d/90-network.rules

   is_service_enabled network || return 0

   # disable network hotplugging

   echo "# This file disables network hotplug events calling old-style openrc net scripts" >> "${f}"

   echo "# as we use new-style network init script /etc/init.d/network" >> "${f}"

}

start_udevd()

{

   # load unix domain sockets if built as module, Bug #221253

   if [ -e /proc/modules ] ; then

      modprobe -q unix 2>/dev/null

   fi

   ebegin "Starting udevd"

   start-stop-daemon --start --exec /sbin/udevd -- --daemon

   eend $?

}

# populate /dev with devices already found by the kernel

populate_dev()

{

   if get_bootparam "nocoldplug" ; then

      rc_coldplug="NO"

      ewarn "Skipping udev coldplug as requested in kernel cmdline"

   fi

   ebegin "Populating /dev with existing devices through uevents"

   if yesno "${rc_coldplug}"; then

      udevadm trigger

   else

      # Do not run any init-scripts, Bug #206518

      udevadm control --env do_not_run_plug_service=1

      # only create device nodes

      udevadm trigger --attr-match=dev

      # run persistent-net stuff, bug 191466

      udevadm trigger --subsystem-match=net

   fi

   eend $?

   # we can speed up booting under these conditions:

   #  * using devtmpfs so kernel creates device nodes for us

   #  * only using kernel created device nodes at boot (in /etc/fstab and elsewhere)

   #

   ebegin "Waiting for uevents to be processed"

   udevadm settle --timeout=${udev_settle_timeout:-60}

   eend $?

   udevadm control --env do_not_run_plug_service=

   return 0

}

# for debugging

start_udevmonitor()

{

   yesno "${udev_monitor:-no}" || return 0

   udevmonitor_log=/dev/.udev/udevmonitor.log

   udevmonitor_pid=/dev/.udev/udevmonitor.pid

   einfo "udev: Running udevadm monitor ${udev_monitor_opts} to get a log of all events"

   start-stop-daemon --start --stdout "${udevmonitor_log}" \

      --make-pidfile --pidfile "${udevmonitor_pid}" \

      --background --exec /sbin/udevadm -- monitor ${udev_monitor_opts}

}

stop_udevmonitor()

{

   yesno "${udev_monitor:-no}" || return 0

   if yesno "${udev_monitor_keep_running:-no}"; then

      ewarn "udev: udevmonitor is still running and writing into ${udevmonitor_log}"

   else

      einfo "udev: Stopping udevmonitor: Log is in ${udevmonitor_log}"

      start-stop-daemon --stop --pidfile "${udevmonitor_pid}" --exec /sbin/udevadm

   fi

}

display_hotplugged_services() {

   local svcfile= svc= services=

   for svcfile in "${RC_SVCDIR}"/hotplugged/*; do

      svc="${svcfile##*/}"

      [ -x "${svcfile}" ] || continue

      services="${services} ${svc}"

   done

   [ -n "${services}" ] && einfo "Device initiated services:${HILITE}${services}${NORMAL}"

}

check_persistent_net()

{

   # check if there are problems with persistent-net

   local syspath= devs= problem=false

   for syspath in /sys/class/net/*_rename*; do

      if [ -d "${syspath}" ]; then

         devs="${devs} ${syspath##*/}"

         problem=true

      fi

   done

   ${problem} || return 0

   eerror "UDEV: Your system has a problem assigning persistent names"

   eerror "to these network interfaces: ${devs}"

   einfo "Checking persistent-net rules:"

   # the sed-expression lists all duplicate lines

   # from the input, like "uniq -d" does, but uniq

   # is installed into /usr/bin and not available at boot.

   dups=$(

   RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'

   . /lib/udev/rule_generator.functions

   find_all_rules 'NAME=' '.*' | \

   tr ' ' '\n' | \

   sort | \

   sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'

   )

   if [ -n "${dups}" ]; then

      ewarn "The rules create multiple entries assigning these names:"

      eindent

      ewarn "${dups}"

      eoutdent

   else

      ewarn "Found no duplicate names in persistent-net rules,"

      ewarn "there must be some other problem!"

   fi

   return 1

}

check_udev_works()

{

   # should exist on every system, else udev failed

   if [ ! -e /dev/zero ]; then

      eerror "Assuming udev failed somewhere, as /dev/zero does not exist."

      return 1

   fi

   return 0

}

start()

{

   # do not run this on old baselayout where udev-addon gets loaded

   if [ ! -f /etc/init.d/sysfs ]; then

      eerror "The $SVCNAME init-script is written for baselayout-2!"

      eerror "Please do not use it with baselayout-1!".

      return 1

   fi

   check_openrc_net

   _start

   

   display_hotplugged_services

   return 0

}

_start()

{

   if [ ! -e /etc/runlevels/${RC_DEFAULTLEVEL:-default}/udev-postmount ]; then

      ewarn "You should add udev-postmount service to your default runlevel."

   fi

   root_link

   rules_disable_switch 75-persistent-net-generator.rules "${persistent_net_disable:-no}"

   rules_disable_switch 75-cd-aliases-generator.rules ${persistent_cd_disable:-no}

   

   disable_hotplug_agent

   start_udevd || cleanup

   start_udevmonitor

   populate_dev || cleanup

   check_persistent_net

   check_udev_works || cleanup

   stop_udevmonitor

   return 0

}

stop() {

   ebegin "Stopping udevd"

   start-stop-daemon --stop --exec /sbin/udevd

   eend $?

}
```

Merci d'avance pour votre aide, et s'il vous faut plus d'infos n'hésitez pas!

Kevin57

edit : je voulais ajouter le .config du kernel mais c'est un peu trop long, ça ne tient pas dans un message...

----------

## Picani

Alors là ...

Tu as essayé de tester le processeur, la mémoire et le disque ? Si tu sais pas quoi utiliser : http://www.ultimatebootcd.com/

----------

## Kevin57

Je viens de faire un Memtest86+ qui est revenu normal. Pour le reste, je ne sais pas quoi prendre, il y a beaucoup d'options et je ne trouve pas de documentation... Il me semble que pour le disque, ça dépend de la marque mais je ne sais pas de quelle marque il est, je sais juste que le PC vient de chez Dell...

----------

