You are not logged in.

#1 2009-04-06 14:27:17

Fackamato
Member
Registered: 2006-03-31
Posts: 579

2.6.29 brings 'fastboot' kernel parameter

http://lwn.net/Articles/314808/
http://www.youtube.com/watch?v=s7NxCM8ryF8

fastboot entered kernel 2.6.29, it acts as a kernel parameter so append it to your grub kernel line. What it does (if I'm not mistaken) is it initializes scsi and ata devices asynchronous, which helps to speed up boot. I myself use a heavily customized kernel so this doesn't make much difference to me (none at all I think, will verify later), but you people with stock 2.6.29-ARCH could perhaps try it and report back? smile

Offline

#2 2009-04-06 14:53:00

iusedtohaveaneeepc
Member
From: Turin, Italy
Registered: 2009-04-04
Posts: 25

Re: 2.6.29 brings 'fastboot' kernel parameter

Oh finally. I don't know if finit-arc + fastboot kernel patched with sreadahead will improve the boot time.

Offline

#3 2009-04-06 14:57:03

JGC
Developer
Registered: 2003-12-03
Posts: 1,664

Re: 2.6.29 brings 'fastboot' kernel parameter

This won't work because our initramfs image can't cope with the fact that udevsettle returns before devices are done initializing.

Offline

#4 2009-04-06 15:48:25

Fackamato
Member
Registered: 2006-03-31
Posts: 579

Re: 2.6.29 brings 'fastboot' kernel parameter

JGC wrote:

This won't work because our initramfs image can't cope with the fact that udevsettle returns before devices are done initializing.

Ack, so I guess it's only for people who has the relevant modules (for root fs) built-in then.

Offline

#5 2009-04-06 16:32:39

ChoK
Member
From: France
Registered: 2008-10-01
Posts: 346

Re: 2.6.29 brings 'fastboot' kernel parameter

fastboot is too fast for the kernel26.img, I just tested, it tried to load my root partition /dev/disk/by-uuid/*** before udev had the time to populate the devices, resulting in boot failure. I'll test around with /dev/sda* instead.



Edit : still the same boot failure, recommending me to add rootdelay=8 to the boot options

Last edited by ChoK (2009-04-06 16:39:46)


Ah, good taste! What a dreadful thing! Taste is the enemy of creativeness.
Picasso
Perfection is reached, not when there is no longer anything to add, but when there is no longer anything to take away.
Saint Exupéry

Offline

#6 2009-04-06 19:05:39

Dieter@be
Forum Fellow
From: Belgium
Registered: 2006-11-05
Posts: 2,001
Website

Re: 2.6.29 brings 'fastboot' kernel parameter

Hey it's amazing how many people are posting arch linux videos on youtube.


< Daenyth> and he works prolifically
4 8 15 16 23 42

Offline

#7 2009-04-10 20:00:04

Wansfell
Member
Registered: 2009-03-27
Posts: 6

Re: 2.6.29 brings 'fastboot' kernel parameter

I have compiled all drivers needed to boot my system into the kernel, and don't use initramfs.
fastboot gave me approximately 1.7 seconds faster boot time on kernel 2.6.29 according to bootchart.

Offline

#8 2009-04-10 20:10:04

Fackamato
Member
Registered: 2006-03-31
Posts: 579

Re: 2.6.29 brings 'fastboot' kernel parameter

Dieter@be wrote:

Hey it's amazing how many people are posting arch linux videos on youtube.

Yes. big_smile

http://www.youtube.com/watch?v=mzqSjAoQvxM

Offline

#9 2009-04-11 01:52:52

koch
Member
From: Germany
Registered: 2008-01-26
Posts: 369

Re: 2.6.29 brings 'fastboot' kernel parameter

configs please smile

Offline

#10 2009-04-11 01:59:42

Fackamato
Member
Registered: 2006-03-31
Posts: 579

Re: 2.6.29 brings 'fastboot' kernel parameter

koch wrote:

configs please smile

edit: Here are some.

No initramfs so posting mkinitcpio.conf is useless. I have compiled in all the modules needed to mount root, into the kernel.

rc.sysinit

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

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

echo " "
printhl "Arch Linux - fast rc.sysinit script"
printsep


# STEP 1 - 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


# STEP 2 - make static sda nodes for start udevadm --settle in background
/bin/mknod /dev/sda b 8 0
/bin/mknod /dev/sda1 b 8 1
/bin/mknod /dev/sda2 b 8 2
#/bin/mknod /dev/sda3 b 8 3
#/bin/mknod /dev/sda4 b 8 4
#...5...6..etc..(from your fdisk -l)


# STEP 3 - copy static device nodes to /dev
/bin/cp -a /lib/udev/devices/* /dev/


# STEP 4 - enable rtc access
# /sbin/modprobe rtc-cmos >/dev/null 2>&1
#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


# STEP 5 - 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 thermal"
#        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


# STEP 6 - set hardware clock for fs check
{
# 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
#if [ -f /etc/localtime ]; then
#    /sbin/hwclock $HWCLOCK_PARAMS --noadjfile
#fi
} &

echo > /proc/sys/kernel/hotplug


# STEP 7 - start udevadm trigger and udevd in background
{
if [ -x /sbin/udevadm -a -d /sys/block ]; then
    stat_busy "Starting UDev Daemon"
    /sbin/udevd --daemon
    /sbin/udevadm trigger &
    stat_done
else
    status "Using static /dev filesystem" true
fi
} &


# STEP 8 - start udevadm settle in background
/sbin/udevadm settle &


# STEP 9 - make lo 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
} &


# STEP 10 - mounting root read-only
status "Mounting Root Read-only" /bin/mount -n -o remount,ro / &

# STEP 11 - filesystem check
FORCEFSCK=
[ -f /forcefsck ] && FORCEFSCK="-- -f"
NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk"
fsck_reboot() {
    echo "Automatic reboot in progress..."
    /bin/umount -a
    /bin/mount -n -o remount,ro /
    /sbin/reboot -f
    exit 0
}
if [ -x /sbin/fsck ]; then
    stat_busy "Checking Filesystems"
    FSCK_OUT=/dev/stdout
    FSCK_ERR=/dev/null
    /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >$FSCK_OUT 2>$FSCK_ERR
    fsckret=$?
    if [ ${fsckret} -gt 1 ]; then
        stat_fail
    fi
    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
        fsck_reboot
    fi
    if [ ${fsckret} -gt 1 -a ${fsckret} -ne 32 ]; then
        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
        fsck_reboot
    fi
    stat_done
fi


# STEP 12 - remount root and mount local file system
stat_busy "Mounting Local Filesystems"
/bin/mount -n -o remount,rw /
/bin/rm -f /etc/mtab*
/bin/mount -o remount,rw /
if [ -e /proc/mounts ]; then
    /bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab
fi
/bin/mount -a -t $NETFS
stat_done


# STEP 13 - activating swap partition
status "Activating Swap" /sbin/swapon -a &


# STEP 14 - set urandom
{
RANDOM_SEED=/var/lib/misc/random-seed
if [ -f $RANDOM_SEED ]; then
    stat_busy "Initializing Random Seed"
    /bin/cat $RANDOM_SEED > /dev/urandom
    stat_done
fi
} &


# STEP 15 - removing temp files
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
/bin/chmod 0664 /var/run/utmp
/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix
/bin/mkdir /tmp/.X11-unix && /bin/chmod 1777 /tmp/.X11-unix
stat_done


# STEP 16 - set rc.conf hostname
if [ "$HOSTNAME" != "" ]; then
    status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME &
fi


# STEP 17 - load modules depends
# status "Updating Module Dependencies" /sbin/depmod -A &


# STEP 18 - set lang
{
: >/etc/profile.d/locale.sh
/bin/chmod 755 /etc/profile.d/locale.sh
[ -z "$LOCALE" ] && LOCALE="it_IT@euro"
stat_busy "Setting Locale: $LOCALE"
echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh
stat_done
} &


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

fstab

# <file system>        <dir>        <type>    <options>    <dump>    <pass>

none            /dev/pts    devpts    defaults    0    0
none            /dev/shm    tmpfs    defaults    0    0

UUID=3cdd02eb-7cdf-4772-bd6a-ed4a791a0e0e    /    ext4    defaults,noatime,noload,nobh    0    1
# UUID=3cdd02eb-7cdf-4772-bd6a-ed4a791a0e0e    /    ext4    noatime,nouser_xattr,noload,barrier=0    0    1
# UUID=3cdd02eb-7cdf-4772-bd6a-ed4a791a0e0e    /    ext4    noload,noatime,rw,barrier=0,nobh,commit=15,nouser_xattr    0    1
UUID=C2B45209B451FFF9    /media/windows    ntfs-3g    rw,users,exec,noatime    0    0

/suspendfile   none   swap   sw   0   0

grub's menu.lst

# (4) Arch Linux patchy
title  Arch Linux patchy
root   (hd0,1)
kernel /boot/vmlinuz26-patchy root=/dev/sda2 ro elevator=deadline quiet resume=swap:/dev/sda2:0x728000 fastboot vga=868
savedefault

Last edited by Fackamato (2009-04-11 02:04:04)

Offline

#11 2009-04-12 01:21:36

koch
Member
From: Germany
Registered: 2008-01-26
Posts: 369

Re: 2.6.29 brings 'fastboot' kernel parameter

thank you

Offline

#12 2010-09-26 10:03:58

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,597
Website

Re: 2.6.29 brings 'fastboot' kernel parameter

@Fackamato - what did you use to make that youtube video?  I like the text comments.


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#13 2010-09-26 10:30:03

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: 2.6.29 brings 'fastboot' kernel parameter

graysky: necrobumping and offtopic?

An email would be more appropriate.

Closing


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

Board footer

Powered by FluxBB