Topic: Finit-arc... acelarando el inicio de Arch!!!

Siempre me ha gustado que mi S.O sea veloz en todo y obviamente eso incluye el proceso de inicio (BootUp)...

Con Archlinux se puede mejorar bastante esa velocidad, arreglando un poco el archivo /etc/rc.sysinit, los tipicos consejos sobre Udev, etc, etc...

Pero con <a href="http://bbs.archlinux.org/viewtopic.php?id=69086">este post</a> del foro oficial de ArchLinux esa velocidad si que se consigue...

Finit-arc es una reimplementacion de fast-init hecho para la eeepc, puedes encontrar ese paquete en <a href="http://aur.archlinux.org/packages.php?ID=25159">AUR</a>

Para instalarlo:

 $ yaourt -S finit-arc

Y ahora viene el tunning del sistema!!

Primero haz un backup de tu /etc/rc.sysinit y luego crea uno nuevo con el siguiente texto

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

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

echo " "
printhl "Arch Linux - Speedup boot"
printsep

#**************************** WARNING ******************************
# If you're using initramfs for your kernel, uncomment steps 5 and 17
# To improve boot speed it's recommendend to make a static kernel
# without modules and without initramfs.
#
# MAKE STEP 2
# Type in a term from root: ls -l /dev | grep sda
# you'll receive the list of /dev/sda devices
# make your /dev/sda devices in step 2 like the example
#*******************************************************************

# 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 "\" 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/rm /var/log/dmesg.log &
fi
/bin/dmesg > /var/log/dmesg.log &

Luego edita tu /boot/grub/menu.lst agregando una entrada para utilizar finit

#(0) Arch Linux
title Arch Linux SpeedBoot
kernel /boot/vmlinuz26 root=/dev/sda2 ro vga=791 splash resume=/dev/sda1 init=/sbin/finit-arc
initrd /boot/kernel26.img

Ojo!!! finit no funciona con los UUID de los discos por lo que debes cambiar tambien tu archivo /etc/fstab para que monte los discos como /dev/sdaX (X es el numero de tu disco)

No olvides darle permisos de ejecución a tu nuevo /etc/rc.sysinit

Finalmente edita el archivo /etc/finit.conf (este es el mio)

##Set user on "login_manager" if you want access
##in a console login manager or GDM,KDM
#user login_manager

##mountdevices before udev (DONT REMOVE IT!)
mountdev

##modules that you want load
#module intel_agp
#module agpgart

##filesystem device that you want check
check /dev/sda2
check /dev/sda3 

##hostname
host arch_msdark

##startx command
startx /bin/bash --login -c /usr/bin/startx

y el archivo /usr/sbin/services.sh

#!/bin/sh

#Starts udev events
/sbin/udevd --daemon &>/dev/null &amp;
/sbin/udevadm trigger &>/dev/null &amp;
/sbin/udevadm settle &>/dev/null &amp;

#Make swap (not for ssd)
/sbin/swapon -a &

#Starting background daemons
/etc/rc.d/syslog-ng start &>/dev/null &
/etc/rc.d/hal start &>/dev/null &
/etc/rc.d/laptop-mode start &>/dev/null &
/etc/rc.d/alsa start &>/dev/null &
/etc/rc.d/wicd start &>/dev/null &
/etc/rc.d/fam start &>/dev/null &
/etc/rc.d/klogd start &>/dev/null &
/etc/rc.d/crond start &>/dev/null &

Y listo!!! reinicia y veras como mejoras la velocidad!!!

Saludos!!!

Last edited by msdark (2009-04-15 17:08:48)

Matías Hernández (msdark)
Estudiante Ingeniería Civil Informática
www.msdark.archlinux.cl
ArchLinux User -  ArchLinux-CL - Wiki Admin

Re: Finit-arc... acelarando el inicio de Arch!!!

Interesante, pero creo que arch al iniciar ya es rapido.

Re: Finit-arc... acelarando el inicio de Arch!!!

holas, lo probe y inicia mucho mas rapido, una pregunta
como puedo hacer que slim se inicie automaticamente, probe poniendolo como demonio pero demora mucho en inciar, y el demonio network no me inicia. eso saludos.
muy buen aporte

Last edited by xabz (2009-04-10 20:36:19)

Re: Finit-arc... acelarando el inicio de Arch!!!

Yo te recomiendo editar el archivo /etc/inittab. Es el método histórico en UNIX.
De hecho el archivo en Arch viene con las líneas necesarias comentadas.

Dale una mirada y te vas a dar cuenta enseguida de lo que hay que hacer.

En cualquier caso en
http://wiki.archlinux.org/index.php/Add … on_startup

está explicado el tema paso a paso.

Saludos,
--
Nildevice.

Last edited by nildevice (2009-04-12 09:06:37)

Re: Finit-arc... acelarando el inicio de Arch!!!

Interesante smile!

Un detalle, al pegar tus archivos de configuracion se te pasaron unas: &amp; y  &gt; en vez de solo & y >.

En cuanto lo pruebe les cuento cuanto tiempo bajo el booteo smile.

Saludos!

Re: Finit-arc... acelarando el inicio de Arch!!!

Aqui esta mi bootchart....
http://img87.imageshack.us/img87/7127/bootchartv.png

Matías Hernández (msdark)
Estudiante Ingeniería Civil Informática
www.msdark.archlinux.cl
ArchLinux User -  ArchLinux-CL - Wiki Admin

Re: Finit-arc... acelarando el inicio de Arch!!!

Una consulta, no entiendo lo de editar el  /etc/fstab , qué discos son los que tengo que cambiar?, aquí dejo mi fstab:


#
# /etc/fstab: static file system information
#
# <file system>        <dir>         <type>    <options>          <dump> <pass>
none                   /dev/pts      devpts    defaults            0      0
none                   /dev/shm      tmpfs     defaults            0      0

#/dev/cdrom             /media/cd   auto    ro,user,noauto,unhide   0      0
#/dev/dvd               /media/dvd  auto    ro,user,noauto,unhide   0      0
#/dev/fd0               /media/fl   auto    user,noauto             0      0

none /proc/bus/usb  usbfs  auto,busgid=108,busmode=0775,devgid=108,devmode=0664  0  0
UUID=80ae3d03-e0c8-4105-9f0e-4fcd728e8c56 / ext4 defaults 0 1
UUID=96ed5f44-b218-43db-a719-3fcf31cbc02e /home ext4 defaults 0 1
UUID=d07659c2-7bc5-48c7-a590-775efffa5a2a swap swap defaults 0 0

Bernardo Arancibia Araos
UTFSM-JMC // Archlinux User

Re: Finit-arc... acelarando el inicio de Arch!!!

mmm tienes que cambiar

Artanix wrote:

UUID=80ae3d03-e0c8-4105-9f0e-4fcd728e8c56 / ext4 defaults 0 1
UUID=96ed5f44-b218-43db-a719-3fcf31cbc02e /home ext4 defaults 0 1
UUID=d07659c2-7bc5-48c7-a590-775efffa5a2a swap swap defaults 0 0

por  algo tipo

/dev/sdaX / ext4 defaults 0 1
/dev/sdaX /home ext4 defaults 0 1
/deb/sdaX swap swap defaults 0 0

segun cuales sean tus particiones.
Saludos

Re: Finit-arc... acelarando el inicio de Arch!!!

Gracias maestro por responder ràpidamente, supuse bien entonces, habìa hecho como me dices. Funciona muy ràpido, pero tengo un gran problema. Luego de bootear, y logearme como root, voy a echar a andar gdm ( /etc/rc.d/gdm start) inicia la gràfica pero me bloquea el teclado y el mouse. Alguna idea de por què sucede eso?


Otra cosa es que tambièn en modo consola no me reconoce la localizaciòn del teclado.

Last edited by Artanix (2009-04-16 16:29:43)

Bernardo Arancibia Araos
UTFSM-JMC // Archlinux User

Re: Finit-arc... acelarando el inicio de Arch!!!

holas, lo la localizacion del teclado en consola, ami tampoco me funciona, talves Msdark (el autor del tema) sepa como solucionarlo.
mmm lo otro, ami igual me paso una ves, no estoy seguro pero creo que es asi
en /usr/sbin/services.sh cambia

#Starting background daemons
/etc/rc.d/syslog-ng start  &>/dev/null &
/etc/rc.d/hal start  &>/dev/null &
/etc/rc.d/network start &>/dev/null &
/etc/rc.d/cpufreq start &>/dev/null &

por

#Starting background daemons
/etc/rc.d/syslog-ng start 
/etc/rc.d/hal start
/etc/rc.d/network start &>/dev/null &
/etc/rc.d/cpufreq start &>/dev/null &

asi hal debiese iniciar bien antes de ke se inicien los demas demonios, no estoy seguro si esa es la solucion pero prueba, syslog-ng no estoy seguro si es necesario dejarlo asi tambien, (yo lo tengo asi).
espero te sirva. Saludos

Re: Finit-arc... acelarando el inicio de Arch!!!

Perfecto, como decía "rfernand" en los datos que entregaba "msdark" se le pasaron unas &amp; y &gt; con lo que me causaba ese error. Edité y funcionó de inmediato.  Muchas gracias xabz por tu paciencia. Una última consulta, cómo añadieron bootchartd al init del GRUB, yo lo añadí y me dio un montón de FAILS. Este es mi menu.lst sin bootchartd.

kernel /boot/vmlinuz26 root=/dev/sda2 ro vga=791 init=/sbin/finit-arc

Antes en el init tenía /sbin/bootchartd , cómo podría tener ahora finit-arc y el anterior juntos?

Bernardo Arancibia Araos
UTFSM-JMC // Archlinux User

Re: Finit-arc... acelarando el inicio de Arch!!!

holas denuevo jejej, anduve buscando como hacer eso y mira
en /sbin/bootchartd cambia la linea

init="/sbin/init"

por

init=/sbin/finit-arc

y despues en menu.lst pones el init como

init=/sbin/bootchartd

mmm tambien  en /usr/sbin/services.sh pon al final

/sbin/bootchartd stop

ahi deviese funcionar.
mi bootchart
http://img258.imageshack.us/img258/8521/bootchart.png
Saludos

Last edited by xabz (2009-04-20 21:41:14)

Re: Finit-arc... acelarando el inicio de Arch!!!

Estaba a punto de probar el finit arc, pero me surgió una duda respecto del services.sh:
¿No que ese trabajo de iniciar los demonios es trabajo del /etc/rc.conf? ¿Qué va a pasar con ese archivo?
Además si quieres iniciar los demonios en background, bastaba con anteponerle un "@" al nombre del demonio en el rc.conf.

Gracias por el aporte pero quiero estar completamente seguro de lo que edito antes de probarlo.
Saludos.

Linux User #434458

Re: Finit-arc... acelarando el inicio de Arch!!!

el services.sh es un archivo que te agrega finit-arc que hace la misma funcion de rc.conf respecto a los demonios... pero por alguna extraña razon el desarrollador lo puso asi... mira en el thread oficial para ver si tienes una respuesta mas acertada xD

Matías Hernández (msdark)
Estudiante Ingeniería Civil Informática
www.msdark.archlinux.cl
ArchLinux User -  ArchLinux-CL - Wiki Admin

Re: Finit-arc... acelarando el inicio de Arch!!!

Pues ése es el problema. Instalé finit-arc y no encontré ningún archivo con ese nombre, tuve que crearlo yo ¬o¬
Bueno ahí estaba viendo el post oficial que me manda al foro de Archlinux Italia xDDDD

Linux User #434458

Re: Finit-arc... acelarando el inicio de Arch!!!

cambio la version y los archivos de finit-arc ahora los daemons y los modulos los carga desde rc.conf. El runlevel lo puedes cambiar en /etc/finittab y puedes agregar comandos al incio de arch o al apagar en /usr/sbin/start-services.sh y en /usr/sbin/stop-services.sh
lo de rc.sysinit, fstab y grub sigue igual.
Saludos

Re: Finit-arc... acelarando el inicio de Arch!!!

a mi al Official XD, XD

Solo puedo decir Impresionante!

de 45 Segundos a 15 Segundos la wea La raja!

Es la raja , todo funca bien, no automonta la Swap pero parece que es por la parti Ntfs que crea conflictos

Re: Finit-arc... acelarando el inicio de Arch!!!

deberia automontar la swap, fijate en services.sh o start-services.sh (segun que version estes usando, en la ultima es start-services.sh) si esta

/sbin/swapon -a &

se supone con eso debiese andar, sino lo ace o es problema del fstab, o de la particion. Saludos

Re: Finit-arc... acelarando el inicio de Arch!!!

xuxa yo tengo la ultima segun AUR  y exactamente el qlo lo tenia como services.sh como decia aca asi que encontre recien el otro y hice un copiar y pegar de mi Services asi que reinicio si posteo es que esta vivo todavia mi arch y no e tenio de modificar el boot XD

esta vivo XD pero sigo sin poder montar

mi Fstab

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>

/dev/sda3    /    ext4    defaults    0    1
none    /dev/pts    devpts    defaults    0    0
none    /dev/shm    tmpfs    defaults    0    0
/dev/sda4    swap    swap    defaults    0    0

#/dev/cdrom    /media/cd    auto    ro,user,noauto,unhide    0    0
#/dev/dvd    /media/dvd    auto    ro,user,noauto,unhide    0    0
#/dev/fd0    /media/fl    auto    user,noauto    0    0

Last edited by Dark2.0 (2009-05-01 23:41:22)

Re: Finit-arc... acelarando el inicio de Arch!!!

podrias instalar gparted y activar el intercambio desde ai. es raro que no se monte automaticamente, talves tenga algun error la particion. una ves me paso eso, no se montaba al iniciar y la intente montar con gparted y me tiro un error asique borre la particion y la volvi a crear y se soluciono

Re: Finit-arc... acelarando el inicio de Arch!!!

le monto desde Gparted y estoy pensando hacerme un inicio de swapon .sh y dejarle gksu y que ponga la contraseña root cuando inicie el pc

Re: Finit-arc... acelarando el inicio de Arch!!!

lo probé pero no resultó, el sistema da un problema de detección de hardware (disco duro, mouse o teclado) y luego no inicia, se queda pegado antes de entrar al kdm sad

supongo que se deben editar algunas cosas en la configuración de los archivos aquí mostrados para que funcione este mètodo en mi pc tongue

gracias ^__^

Re: Finit-arc... acelarando el inicio de Arch!!!

zuargo wrote:

lo probé pero no resultó, el sistema da un problema de detección de hardware (disco duro, mouse o teclado) y luego no inicia, se queda pegado antes de entrar al kdm sad

supongo que se deben editar algunas cosas en la configuración de los archivos aquí mostrados para que funcione este mètodo en mi pc tongue

gracias ^__^

finit-arc esta desmantenido
prueba quick initt (buscalo en los foros oficiales en "comunity contributios", ya que este esta siendo mantenido actualmente

Re: Finit-arc... acelarando el inicio de Arch!!!

¿te refieres a que está desmantenido en AUR o el proyecto en si?
probaré ese tal quick initt gracias tongue

Re: Finit-arc... acelarando el inicio de Arch!!!

el proyecto en si
y obiamente tb en aur