You are not logged in.

#51 2008-06-06 09:42:12

robmaloy
Member
From: Germany
Registered: 2008-05-14
Posts: 263

Re: Speedup boot

i'd like to have a combination of a small ssd for the OS (because SSDs are so damn expensive)
and a large hdd for files

and that inside a laptop

anyone ever seen such thing?


☃ Snowman ☃

Offline

#52 2008-06-06 09:44:16

_Marco_
Member
Registered: 2008-04-21
Posts: 242

Re: Speedup boot

@robmaloy
previous post:
actually I'm trying too to configure a minimal kernel for my acer aspire 5672wmli and it is really hard to know what you have to leave and what you can remove, I don't know for your question sincerely
please tell us what you discovered tongue

for latest post:
I suppose that using an SSD card as partition for /boot and using a standard hard disk for the other tasks would be the best,
I heard of something like this some time ago...

Last edited by _Marco_ (2008-06-06 09:48:14)

Offline

#53 2008-06-06 10:22:42

robmaloy
Member
From: Germany
Registered: 2008-05-14
Posts: 263

Re: Speedup boot

still bad performance (according to benchmarks, maybe they lie?)

maybe my cpu likes the generic settings better than the pIII-coppermine ones

i think i'll keep the stock kernel cpu settings and just throw out drivers/build harddisk stuff in to boot without initrd.


☃ Snowman ☃

Offline

#54 2008-06-06 11:07:21

krigun
Member
From: Norway
Registered: 2005-06-06
Posts: 122
Website

Re: Speedup boot

_Marco_ wrote:

I think that the asus eeepc use a SSD so the archers (and they are a lot) benefit of this
http://bbs.archlinux.org/viewtopic.php?id=39375

Well, yes, it is an SSD, but I meant a faster than your-average-harddrive SSD. I would think that 100+MB/s read speeds would do wonders for the boot time.

From an EEE review:

For those interested in the speed of the 4GB SSD, hdparm benchmarks the SSD buffered read speed at 21.78 MB/sec.

Offline

#55 2008-06-06 18:18:59

czar
Member
Registered: 2008-03-08
Posts: 115

Re: Speedup boot

yeah i'm on an EEE right now. I get around 28 MB/sec in with hdparm so its nothing to write home about. Those quick ones would sure do a hell of a lot tho smile

Offline

#56 2008-06-07 21:30:01

pfreire
Member
From: Portugal
Registered: 2008-05-12
Posts: 29

Re: Speedup boot

To help in identifying the hardware, I've uploaded my buildscript for autokernconf, a nice utility to do some tedious tasks... then you need to change the default config to contain the discovered config.auto.
http://aur.archlinux.org/packages.php?ID=17373

how it works:
1 - sh kdetect.sh (file kdetect.list will be generated, needed for the next script)
2 - sh autokernconf.sh (file config.auto will be generated and includes the detected hardware)

this is only to help with the detection, it will need some attention when merging to your .config file.

I hope this helps someone...

Offline

#57 2008-06-07 21:46:26

_Marco_
Member
Registered: 2008-04-21
Posts: 242

Re: Speedup boot

pfreire, this is EXACTLY what I was searching, thank you very much smile

Offline

#58 2008-06-07 22:39:41

X/ax
Member
From: Oost vlaanderen, Belgium
Registered: 2008-01-13
Posts: 275
Website

Re: Speedup boot

pfreire wrote:

To help in identifying the hardware, I've uploaded my buildscript for autokernconf, a nice utility to do some tedious tasks... then you need to change the default config to contain the discovered config.auto.
http://aur.archlinux.org/packages.php?ID=17373

how it works:
1 - sh kdetect.sh (file kdetect.list will be generated, needed for the next script)
2 - sh autokernconf.sh (file config.auto will be generated and includes the detected hardware)

this is only to help with the detection, it will need some attention when merging to your .config file.

I hope this helps someone...

Very nice thing indeed, gonna test it in a minute myself - after the kernel panic from my last attempt, I'm thinking I did something wrong... >.>
I'll post a review of anything that went wrong while using the script for detection ^^


My coding blog (or an attempt at it)
Archer start page (or an attempt at it)

Offline

#59 2008-06-07 23:51:55

pfreire
Member
From: Portugal
Registered: 2008-05-12
Posts: 29

Re: Speedup boot

It's only an helper script, it saves you a lot of searches when building the kernel. I usually start with a working .config file, for instance from the official archlinux kernel, then I change it according config.auto file (it contains duplicates and unknown entries but it sure identifies a lot of not so evident hardware) - this is in my opinion the safest and easier way.

I've also uploaded a buildscript for a tool to compare diferent values of config kernel files (uses qt4):
http://aur.archlinux.org/packages.php?ID=17395

Last edited by pfreire (2008-06-08 18:11:16)

Offline

#60 2008-06-09 01:53:36

pfreire
Member
From: Portugal
Registered: 2008-05-12
Posts: 29

Re: Speedup boot

Well, I'm running my system without initrd (although I can still activate it) and this is the best boot time so far I can get on this laptop: 19s

Any idea on how can I reduce the constant initial 7s wait until the init scripts? Maybe with lilo and the compact option the kernel loads faster?
bootchartyy5.th.png

Offline

#61 2008-06-11 16:51:31

fancris3
Member
Registered: 2007-03-18
Posts: 67

Offline

#62 2008-06-11 18:30:53

pfreire
Member
From: Portugal
Registered: 2008-05-12
Posts: 29

Re: Speedup boot

not really if you take the hardware into account... hey I have an old laptop and I'm quite happy with it... smile

Offline

#63 2008-06-15 20:55:20

Mimi
Member
From: Germany
Registered: 2008-06-06
Posts: 39

Re: Speedup boot

I didn't want to compile the kernel, so i followed these instructions:
http://wiki.archlinux.org/index.php/Fas … the_kernel

16s to xdm, with Pentium M 1,4GH.

bootcharton4.th.png

Mimi


It is what you make it. Even if you don't know what to make it.

Offline

#64 2008-06-21 23:41:39

senjin
Member
Registered: 2006-09-15
Posts: 180
Website

Re: Speedup boot

Very interesting!

I don't understand one thing: how do I know which modules I need to load in mkinitcpio.conf in order to be able to leave only "base" in HOOKS?

Offline

#65 2008-06-22 05:29:20

Mimi
Member
From: Germany
Registered: 2008-06-06
Posts: 39

Re: Speedup boot

Trial and error?
I think "mkinitcpio -M" is useful, but you don't need all of them.


It is what you make it. Even if you don't know what to make it.

Offline

#66 2008-06-22 09:24:45

senjin
Member
Registered: 2006-09-15
Posts: 180
Website

Re: Speedup boot

Works! I took all modules that are in "mkinitcpio -M" except those that are not in the "lsmod". There is a few seconds improvement in boot time. Thanks!

Offline

#67 2008-06-22 12:37:46

fancris3
Member
Registered: 2007-03-18
Posts: 67

Re: Speedup boot

9 sec , just for fun .
default kernel , mkinitcpio , udev and 99,99% default initscripts
_bootchart.png
of course , default code , not configuration file smile

Offline

#68 2008-06-22 16:57:27

schivmeister
Developer/TU
From: Singapore
Registered: 2007-05-17
Posts: 971
Website

Re: Speedup boot

You don't actually need all modules laid out by -M. You just need those that are sufficient to load the root device; the hard disk and fs. For me it's just ahci, ata_piix, srmod, jfs.

Yes. it's actually an idea I've been trying to put into action. I just need an ExpressCard CompactFlash adapter, the SSD ones are too expensive for the benefit.

Last edited by schivmeister (2008-06-22 16:59:46)


I need real, proper pen and paper for this.

Offline

#69 2008-11-27 10:58:58

bruce
Member
Registered: 2008-11-27
Posts: 57

Re: Speedup boot

bootcharthu3.th.png

10 seconds?

don't know what the big init hold up early on is though :-S

tweaked rc.sysinit a ton,
custom kernel (using help from autokernconf.sh for laziness tongue )
changed inittab to once instead of wait, been mentioned before i'm quite sure.
got rid of network daemon cause i realised its a laptop and i'm never in the same network for more than one boot...

rc.sysinit:

#!/bin/bash
#
# /etc/rc.sysinit
#

. /etc/rc.conf
. /etc/rc.d/functions

echo " "
printhl "Arch Linux\n"
printhl "${C_H2}http://www.archlinux.org"
printhl "Copyright 2002-2007 Judd Vinet"
printhl "Copyright 2007-2008 Aaron Griffin"
printhl "Distributed under the GNU General Public License (GPL)"
printsep

# mount /proc, /sys and our RAM /dev
/bin/mount -n -t ramfs none /dev
/bin/mount -n -t proc none /proc
/bin/mount -n -t sysfs none /sys

# Create our default nodes that minilogd may need
/bin/mknod /dev/null c 1 3
/bin/mknod /dev/zero c 1 5
/bin/mknod /dev/console c 5 1

# More initial /dev setup that udev doesn't do
/bin/ln -snf /proc/self/fd /dev/fd
/bin/ln -snf /proc/self/fd/0 /dev/stdin
/bin/ln -snf /proc/self/fd/1 /dev/stdout
/bin/ln -snf /proc/self/fd/2 /dev/stderr
/bin/ln -snf /proc/kcore /dev/core
/bin/mkdir /dev/pts
/bin/mkdir /dev/shm

# start up our mini logger until syslog takes over
/sbin/minilogd &

# anything more serious than KERN_WARNING goes to the console
# 'verbose' cmdline parameter enables more messages
if /bin/grep -q " verbose" /proc/cmdline; then
    /bin/dmesg -n 8
else
    /bin/dmesg -n 3
fi

# enable rtc access
/sbin/modprobe rtc-cmos >/dev/null 2>&1 &
RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null); RTC_MAJOR="${RTC_MAJOR%% *}"
if [ -n "$RTC_MAJOR" ]; then
    /bin/mkdir /dev/misc/
    /bin/mknod /dev/misc/rtc0 c $RTC_MAJOR 0
    /bin/ln -s /dev/misc/rtc0 /dev/rtc
fi

HWCLOCK_PARAMS="--hctosys"
#if [ "$HARDWARECLOCK" = "UTC" ]; then
#    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
#else
    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
#fi
if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then
    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa"
fi

# Set clock early to fix some bugs with filesystem checks
# Clock is set again later to match rc.conf
if [ -f /etc/localtime ]; then
    /sbin/hwclock $HWCLOCK_PARAMS --noadjfile
fi

echo > /proc/sys/kernel/hotplug

if [ -x /sbin/udevadm -a -d /sys/block ]; then
    # We have udev and /sys appears to be mounted, use UDev
    stat_busy "Starting UDev Daemon"
    /sbin/udevd --daemon
    /sbin/udevadm trigger &
    udevstart="$(/bin/date +%s%0N)"
    stat_done
else
    # Static /dev, our last resort
    status "Using static /dev filesystem" true
fi

# Load modules from the MODULES array defined in rc.conf
if ! [ "$load_modules" = "off" ]; then
    if [ -f /proc/modules ]; then
        stat_busy "Loading Modules"
        for mod in "${MODULES[@]}"; do
            if [ "$mod" = "${mod#!}" ]; then
                /sbin/modprobe $mod  &
            fi
        done
        stat_done
    fi
    if [ -d /proc/acpi ]; then
        stat_busy "Loading standard ACPI modules"
        ACPI_MODULES="ac battery button fan processor theral"
        k="$(echo $BLACKLIST ${MOD_BLACKLIST[@]} | /bin/sed 's|-|_|g')"
        j="$(echo ${MODULES[@]} | /bin/sed 's|-|_|g')"
        #add disabled MODULES (!) to blacklist - much requested feature
        for m in ${j}; do
                [ "$m" != "${m#!}" ] && k="${k} ${m#!}"
        done
        # add disablemodules= from commandline to blacklist
        k="${k} $(echo ${disablemodules} | /bin/sed 's|-|_|g' | /bin/sed 's|,| |g')"
        for n in ${ACPI_MODULES}; do
            if ! echo ${k} | /bin/grep "\<$n\>" 2>&1 >/dev/null; then
                /sbin/modprobe $n > /dev/null 2>&1 &
            fi
        done
        stat_done
    fi
fi

# run udev uevents
if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then
    stat_busy "Loading UDev uevents"
#    udevstart="$(/bin/date +%s%0N)"
    /sbin/udevadm settle &
    stat_done
    udevend="$(/bin/date +%s%0N)"
    printhl "   UDev uevent processing time: $((($udevend-$udevstart)/1000000))ms"
fi

# bring up the loopback interface
if [ -d /sys/class/net/lo ]; then
    stat_busy "Bringing up loopback interface"
    /sbin/ifconfig lo 127.0.0.1 up &
    if [ $? -ne 0 ]; then
        stat_fail
    else
        stat_done
    fi
fi

# If necessary, find md devices and manually assemble RAID arrays
#if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ]; then
#    # udev won't create these md nodes, so we do it ourselves
#    for dev in $(/bin/grep ^ARRAY /etc/mdadm.conf | /bin/awk '{print $2}'); do
#        path=$(echo $dev | /bin/sed 's|/[^/]*$||')
#        node=$(echo $dev | /bin/sed "s|^$path/||")
#        minor=$(echo $node | /bin/sed 's|^[^0-9]*||')
#        [ ! -e $path/$node ] && /bin/mknod $path/$node b 9 $minor
#    done
#    status "Activating RAID arrays" /sbin/mdadm --assemble --scan
#fi

#if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
#    if [ -x /sbin/lvm -a -d /sys/block ]; then
#        # Kernel 2.6.x, LVM2 groups
#        /sbin/modprobe -q dm-mod 2>/dev/null
#        stat_busy "Activating LVM2 groups"
#        /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
#        /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
#        if [ $? -ne 0 ]; then
#            stat_fail
#        else
#            stat_done
#        fi
#    fi
#fi

# Set up non-root encrypted partition mappings
#if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then
#    /sbin/modprobe -q dm-mod 2>/dev/null
#    stat_busy "Unlocking encrypted volumes:"
#    csfailed=0
#    CS=/sbin/cryptsetup.static
#    do_crypt() {
#        if [ $# -ge 3 ]; then
#            cname="$1"
#            csrc="$2"
#            cpass="$3"
#            shift 3
#            copts="$*"
#            stat_append "${cname}.."
#            # For some fun reason, the parameter ordering varies for
#            # LUKS and non-LUKS devices.  Joy.
#            if [ "${cpass}" = "SWAP" ]; then
#                # This is DANGEROUS! The only possible safety check
#                # is to not proceed in case we find a LUKS device
#                # This may cause dataloss if it is not used carefully
#                if $CS isLuks $csrc 2>/dev/null; then
#                    false
#                else
#                    $CS -d /dev/urandom $copts create $cname $csrc >/dev/null
#                    if [ $? -eq 0 ]; then
#                        stat_append "creating swapspace.."
#                        /sbin/mkswap -L $cname /dev/mapper/$cname >/dev/null
#                    fi
#                fi
#            elif [ "${cpass}" = "ASK" ]; then
#                printf "\nOpening '${cname}' volume:\n"
#
#                if $CS isLuks $csrc 2>/dev/null; then
#                    $CS $copts luksOpen $csrc $cname < /dev/console
#                else
#                    $CS $copts create $cname $csrc < /dev/console
#                fi
#            elif [ "${cpass:0:1}" != "/" ]; then
#                if $CS isLuks $csrc 2>/dev/null; then
#                    echo "$cpass" | $CS $copts luksOpen $csrc $cname >/dev/null
#                else
#                    echo "$cpass" | $CS $copts create $cname $csrc >/dev/null
#                fi
#            else
#                if $CS isLuks $csrc 2>/dev/null; then
#                    $CS -d $cpass $copts luksOpen $csrc $cname >/dev/null
#                else
#                    $CS -d $cpass $copts create $cname $csrc >/dev/null
#                fi
#            fi
#            if [ $? -ne 0 ]; then
#                csfailed=1
#                stat_append "failed "
#            else
#                stat_append "ok "
#            fi
#        fi
#    }
#    while read line; do
#        eval do_crypt "$line"
#    done </etc/crypttab
#    if [ $csfailed -eq 0 ]; then
#        stat_done
#    else
#        stat_fail
#    fi
#    # Maybe someone has LVM on an encrypted block device
#    if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
#        if [ -x /sbin/lvm -a -d /sys/block ]; then
#            /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
#            /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
#        fi
#    fi
#fi

status "Mounting Root Read-only" /bin/mount -n -o remount,ro /

FORCEFSCK=
[ -f /forcefsck ] && FORCEFSCK="-- -f"
NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk"

if [ -x /sbin/fsck ]; then
    stat_busy "Checking Filesystems"
    if /bin/grep -qw quiet /proc/cmdline; then
        /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >/dev/null 2>&1
    else
        /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK 2>/dev/null
    fi
    fsckret=$?
    if [ ${fsckret} -gt 1 ]; then
        stat_fail
        if [ $((${fsckret}&2)) -eq 2 ]; then
            echo
            echo "********************** REBOOT REQUIRED *********************"
            echo "*                                                          *"
            echo "* The system will be rebooted automatically in 15 seconds. *"
            echo "*                                                          *"
            echo "************************************************************"
            echo
            /bin/sleep 15
        else
            echo
            echo "*****************  FILESYSTEM CHECK FAILED  ****************"
            echo "*                                                          *"
            echo "*  Please repair manually and reboot. Note that the root   *"
            echo "*  file system is currently mounted read-only. To remount  *"
            echo "*  it read-write type: mount -n -o remount,rw /            *"
            echo "*  When you exit the maintenance shell the system will     *"
            echo "*  reboot automatically.                                   *"
            echo "*                                                          *"
            echo "************************************************************"
            echo
            /sbin/sulogin -p
        fi
        echo "Automatic reboot in progress..."
        /bin/umount -a
        /bin/mount -n -o remount,ro /
        /sbin/reboot -f
        exit 0
    fi
    stat_done
fi

stat_busy "Mounting Local Filesystems"
/bin/mount -n -o remount,rw /
/bin/rm -f /etc/mtab*
# make sure / gets written to /etc/mtab
/bin/mount -o remount,rw /
# Write /proc, /sys and /dev to /etc/mtab
if [ -e /proc/mounts ]; then
    /bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab
fi
# now mount all the local filesystems
/bin/mount -F -a -t $NETFS
stat_done

status "Activating Swap" /sbin/swapon -a &

stat_busy "Configuring System Clock"
if [ ! -f /var/lib/hwclock/adjtime ]; then
    echo "0.0 0 0.0" > /var/lib/hwclock/adjtime
fi
if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
    /bin/rm -f /etc/localtime
    /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
fi

/sbin/hwclock $HWCLOCK_PARAMS &
stat_done

if [ -f /var/run/random-seed ]; then
    stat_busy "Initializing Random Seed"
    /bin/cat /var/run/random-seed >/dev/urandom &
    stat_done
fi

stat_busy "Removing Leftover Files"
/bin/rm -f /etc/nologin &>/dev/null
/bin/rm -f /etc/shutdownpid &>/dev/null
/bin/rm -f /var/lock/* &>/dev/null
/bin/rm -rf /tmp/* /tmp/.* &>/dev/null
/bin/rm -f /forcefsck &>/dev/null
(cd /var/run && /usr/bin/find . ! -type d -exec /bin/rm -f -- {} \; )
: > /var/run/utmp
# Keep {x,k,g}dm happy with xorg
/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix
/bin/mkdir /tmp/.X11-unix && /bin/chmod 1777 /tmp/.X11-unix
stat_done

#status "Updating Shared Library Links" /sbin/ldconfig

if [ "$HOSTNAME" != "" ]; then
    status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME &
fi

# Set the NIS domain name, if necessary
#[ -f /etc/conf.d/nisdomainname ] && . /etc/conf.d/nisdomainname
#if [ "$NISDOMAINNAME" != "" ]; then
#    status "Setting NIS Domain Name: $NISDOMAINNAME" /bin/nisdomainname $NISDOMAINNAME
#fi
if ! /bin/grep -q " nomoduleupdate" /proc/cmdline; then

    status "Updating Module Dependencies" /sbin/depmod -A &
fi
# Flush old locale settings
: >/etc/profile.d/locale.sh
/bin/chmod 755 /etc/profile.d/locale.sh
# Set user defined locale
[ -z "$LOCALE" ] && LOCALE="en_US"
stat_busy "Setting Locale: $LOCALE"
echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh
stat_done

if echo "$LOCALE" | /bin/grep -qi utf ; then
    stat_busy "Setting Consoles to UTF-8 mode"
    # UTF-8 consoles are default since 2.6.24 kernel
    # this code is needed not only for older kernels,
    # but also when user has set vt.default_utf8=0 but LOCALE is *.UTF-8.
    for i in $(/usr/bin/seq 0 63); do
        usr/bin/kbd_mode -u < /dev/vc/${i}
        printf "\e%%G" > /dev/vc/${i}
    done
    # the $CONSOLE check helps us avoid this when running scripts from cron
    echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%G"; fi' >>/etc/profile.d/locale.sh
    stat_done
    [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q -u $KEYMAP
else
    stat_busy "Setting Consoles to legacy mode"
    # make non-UTF-8 consoles work on 2.6.24 and newer kernels
    for i in $(/usr/bin/seq 0 63); do
        /usr/bin/kbd_mode -a < /dev/vc/${i}
        printf "\e%%@" > /dev/vc/${i}
    done
    # the $CONSOLE check helps us avoid this when running scripts from cron
    echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%@"; fi' >>/etc/profile.d/locale.sh
    stat_done
    [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP
fi

if [ -n "$CONSOLEFONT" ]; then
    stat_busy "Loading Console Font: $CONSOLEFONT"
    #CONSOLEMAP in UTF-8 shouldn't be used
    if [ -n "$CONSOLEMAP" ] && echo "$LOCALE" | /bin/grep -qi utf ; then
        CONSOLEMAP=""
    fi
    for i in $(/usr/bin/seq 0 63); do
        if [ -n "$CONSOLEMAP" ]; then
            /usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1
        else
            /usr/bin/setfont $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1
        fi
    done
    if [ $? -ne 0 ]; then
        stat_fail
    else
        for i in $(/usr/bin/seq 0 63); do
            printf "\e(K" > /dev/vc/${i}
        done
        # the $CONSOLE check helps us avoid this when running scripts from cron
        echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e(K"; fi' >>/etc/profile.d/locale.sh
        stat_done
    fi
fi

# Adding persistent network/cdrom generated rules
if [ -f "/dev/.udev/tmp-rules--70-persistent-cd.rules" ]; then
    stat_busy "Adding persistent cdrom udev rules"
    /bin/cat /dev/.udev/tmp-rules--70-persistent-cd.rules >> /etc/udev/rules.d/70-persistent-cd.rules
    stat_done
fi
if [ -f "/dev/.udev/tmp-rules--70-persistent-net.rules" ]; then
    stat_busy "Adding persistent network udev rules"
    /bin/cat /dev/.udev/tmp-rules--70-persistent-net.rules >> /etc/udev/rules.d/70-persistent-net.rules
    stat_done
fi

# Save our dmesg output from this boot
if [ -f /var/log/dmesg.log ]; then
    /bin/rm /var/log/dmesg.log
fi
/bin/dmesg > /var/log/dmesg.log &

# End of file
# vim: set ts=2 noet:

all i can remember that i've done for the moment.
anyone know exactly what it is that the kernel's upto before bootchart starts?
i know i get a ata1: softreset failed (device not ready) as the very first line, even when passing quite...
all in good fun big_smile

oh, and only things not built in:

Module                  Size  Used by
ipv6                  305512  10 
usb_storage           104960  0 
powernow_k8            15300  1 
snd_pcm_oss            44096  0 
snd_mixer_oss          17792  1 snd_pcm_oss
rtc_cmos               11960  0 
rtc_core               19972  1 rtc_cmos
rtc_lib                 3904  1 rtc_core

oh, and i'm not recommending my rc.sysinit, its probably doing something brutal it shouldn't, try at buyers risk tongue

Last edited by bruce (2008-11-27 11:00:42)

Offline

#70 2008-11-27 11:22:01

bruce
Member
Registered: 2008-11-27
Posts: 57

Re: Speedup boot

well... i've figured out what its doing (look up bootchat.pl from the 2.6.28rc kernels, works with at least 2.6.27 as well... )

outputrw9.th.png

no just got to figure out wtf it means tongue

Offline

Board footer

Powered by FluxBB