You are not logged in.

#1 2008-06-03 07:38:07

TreeMinds
Member
Registered: 2007-09-01
Posts: 35

udev startup load time doesnt appear anymore

I installed some packages (splashy etc) wich created a lot of pacsave files and messed up my system pretty much. But nothing couldnt handle.
Exept this: udev doesnt show the overal loading time anymore it skips to the next operation.
I checked /etc/start_udev script and I saw in the bottom

echo "udev startup is finished! - time = $(( `date +%s` - $starttime ))"
exit 0

which I think is the code for the loading time to show up but it is not executed somehow.
Can somethink like that can be fixed?
my /etc/start_udev script

#! /bin/sh
#
# start_udev
# script to initialize /dev by using udev.
#
# Modified for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
#
# Inspired by:
# 
# Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
#
# Released under the GPL v2 only.
#
# This needs to be run at the earliest possible point in the boot 
# process.
#
# Based on the udev init.d script
#
# Thanks go out to the Gentoo developers for proving 
# that this is possible to do.
#
# Yes, it's very verbose, feel free to turn off all of the echo calls,
# they were there to make me feel better that everything was working
# properly during development...
#

prog=udev
sysfs_dir=/sys
bin=/sbin/udev
udevd=/sbin/udevd
udev_root="/dev"

starttime=$(date +%s)


function trigger_builtin_events() {   
           list="$(echo /sys/class/tty/ttyS*/uevent)"   
           for i in $list; do   
               case "$i" in   
                   */class/uevent|*\**)   
                       continue   
                       ;;   
                   */class/tty/ttyS*)   
                       echo "add" > "$i"   
                       ;;   
               esac   
           done   
   }

function trigger_device_events() {
    /sbin/udevtrigger
}

function wait_for_queue() {
#    loop=20
#        while ! [ "$loop" -gt 0 -a -d /dev/.udev/queue ]; do
#                   sleep 0.1;
#                   loop=$(($loop - 1))
#        done
    /sbin/udevsettle
}

make_extra_nodes () {
    # there are a few things that sysfs does not export for us.
    # these things go here (and remember to remove them in 
    # remove_extra_nodes()
    #
    # Thanks to Gentoo for the initial list of these.
    ln -snf /proc/self/fd $udev_root/fd
    ln -snf /proc/self/fd/0 $udev_root/stdin
    ln -snf /proc/self/fd/1 $udev_root/stdout
    ln -snf /proc/self/fd/2 $udev_root/stderr
    ln -snf /proc/kcore $udev_root/core

    mkdir $udev_root/pts
    mkdir $udev_root/shm
}

udev_init  () {
# don't use udev if sysfs is not mounted.
if [ ! -d $sysfs_dir/block ]; then
    exit 1
fi

echo "mounting... ramfs at $udev_root"
mount -n -t ramfs none $udev_root

# propogate /udev from /sys
echo "Creating initial udev device nodes:"

#echo "making extra nodes"
make_extra_nodes

# check if udevd is already running
if [ `pidof -o %PPID /sbin/udevd` ]; then
    grep -v "/dev/shm" /etc/mtab | grep -v "/dev/pts" > /etc/mtab
    mount /dev/pts
    mount /dev/shm
else
    echo "start udev daemon"
    /sbin/udevd --daemon
fi
case "$(uname -r)" in
       2.6.[0-9]|2.6.[0-9][!0-9]*) ;;
       *)     if [ -f "/sys/class/tty/console/uevent" ]; then
            echo "Kernel >= 2.6.15 and supports uevents"
            # trigger the sorted events
            echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
            # catch events that are real fast
            mkdir -p /dev/.udev/queue
            trigger_builtin_events
        else
            # for older kernels without uevents will be removed when udevstart dies in udev
            echo "Kernel does not support uevents, you need a kernel >= 2.6.15!"
            exit 1
        fi 
    ;;
esac
}

udev_uevents () {
# configure all devices
trigger_device_events
# until we know how to do better, just wait for _all_ events to finish
wait_for_queue
}

if [ $# -eq 0 ]; then
udev_init
udev_uevents
fi

[ "$1" = "init" ] && udev_init
[ "$1" = "uevents" ] && udev_uevents

echo "udev startup is finished! - time = $(( `date +%s` - $starttime ))"
exit 0

edit: I forgot I'm using udev-119-1 (the latest in core)

Last edited by TreeMinds (2008-06-03 07:45:19)

Offline

#2 2008-06-03 07:53:20

bangkok_manouel
Member
From: indicates a starting point
Registered: 2005-02-07
Posts: 1,556

Re: udev startup load time doesnt appear anymore

Exept this: udev doesnt show the overal loading time anymore it skips to the next operation.

i think this is done by rc.sysinit which belongs to the initscript package. i do not use splashy but i can see it depends on initscripts-splash so that could be the reason.

Offline

#3 2008-06-03 11:57:49

TreeMinds
Member
Registered: 2007-09-01
Posts: 35

Re: udev startup load time doesnt appear anymore

Thanks a lot,
I uninstalled splashy and its initscripts-splash .
Reinstalled initscript and the loading time is back!
Maybe initscript-splash doesnt have a counter for that.

Last edited by TreeMinds (2008-06-03 11:59:29)

Offline

Board footer

Powered by FluxBB