Bueno empecemos:
Optimizar y Acelerar Archlinux
Si bien archlinux corre bastante bien puede ser optimizado el boot y algunas cosillas para que corra de 10:
- Desactivar o Eliminar KDM o GDM, o sustituirlos por Enter o Slim:
KDM y GDM son algo pesados, si no nos gusta el login por terminal aunque es mas recomendable, por estabilidad, podemos hacerlo mas bonito gracias a este post en los forums de arch y agregar que inicie X al poner nuestro user y pass y que quede algo así:
Pero si quieren algo mas gráfico esta Enter o Slim que son muy ligeros y soportan temas:
yaourt -S Enter
yaourt -S Slim
Los podemos agregar a los demonios (/etc/rc.conf) o en el innitab (/etc/innitab).
pasar demonios al background
para esto solo editamos el /etc/rc.conf y los demonios que no sean esenciales del arranque los podemos pasar al background agregándoles un “@” de la siguiente manera:
DAEMONS=(syslog-ng hal fbsĺash @alsa @timidity++ @wicd @cpufreq @vboxdrv @laptop-mode @network @cups @bluetooth @hplip)
Quick-init
Con esta maravilla reduciremos nuestro tiempo de boot casi a la mitad o mas, lo que hace es optimizar el arranque.
Yaourt -S quick-init
Quick-init nos pide modificar el /etc/qinit.sysinit
y pegar lo que nos dice ahí en “#past it here”
algo parecido a esto:
/bin/mknod -m 660 /dev/sda1 b 8 1
/bin/mknod -m 660 /dev/sda2 b 8 2
/bin/mknod -m 660 /dev/sda3 b 8 3
/bin/mknod -m 660 /dev/sda4 b 8 4
/bin/mknod -m 660 /dev/sda5 b 8 5
/bin/mknod -m 660 /dev/sda6 b 8 6
/bin/mknod -m 660 /dev/sda7 b 8 7
También quick-init modifica el innitab por lo que si tenemos nuestro login ahí hay que volverlo agregar como antes, des-comentándolo, esto suponiendo que uso Slim :
#You can use rc.local instead runlevel 5
#x:5:respawn:/usr/bin/xdm -nodaemon
#x:5:respawn:/usr/sbin/gdm -nodaemon
#x:5:respawn:/usr/bin/kdm -nodaemon
x:5:respawn:/usr/bin/slim >& /dev/null
#x:5:respawn:/bin/su YOURUSER -l -c “/bin/bash –login -c xinit >/dev/null 2>&1″
Prelink
Esta herramienta lo que hace es optimizar e linkeo hacia las aplicaciones usadas según las librerías, por lo que les hace “prekinkeo”, es fácil y sencillo de hacer, cada vez que cambien las librerías es recomendable hacerlo:
yaourt -S prelink
después de instalado, simplemente hacemos:
prelink –all
y voila !
Preload
un demonio que se encarga de monitorizar las aplicaciones que mas usamos e intentar tenerlas “preparadas” para su uso. (al primer boot tal vez ni llegue al login gráfico o se tarde mucho, pero después del tercer boot corre super bien, notaran la diferencia .
# powerpill -S preload
Lo agregamos al rc.conf (no lo pongan en el background) y ya esta (pruebenlo con o sin preload, si hay cambios negativos solo quitenlo, si no dejenlo).
/etc/rc.sysinit
Aquí quitamos cosas que nunca usamos como: LVM (si solo tienen un disco duro, desactívenlo, pero si tiene 2 discos duros cada uno con un Os distinto que vayan relacionados no lo hagan, si tienen varios Os en un HD y en otro información que vaya interrelacionada no hay problema.) RAID para leer aparatos encriptados:
#!/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
# 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 --hctosys --localtime --directisa --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 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
# run udev uevents
if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then
stat_busy "Loading UDev uevents"
/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
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 -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
/bin/rm -f /etc/localtime
/bin/cp "/usr/share/zoneinfo/Europe/Brussels" /etc/localtime
/sbin/hwclock --hctosys --localtime --directisa
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
#status "Updating Module Dependencies" /sbin/depmod -A &
status "Setting Hostname: Pinguin" /bin/hostname "Pinguin" &
# 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: en_US"
echo "export LANG=en_US" >>/etc/profile.d/locale.sh
stat_done
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
status "Loading Keyboard Map: be-latin1" /bin/loadkeys -q -u "be-latin1" &
# 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
CUSTOM KERNEL COMPILATION
Si han compilado antes, seguramente no notaron gran diferencia esto es por que seguramente lo dejaron igual el ICE kernel para eso hay que hacerlo custom, antes esto era algo difícil de hacer, ahora gracias a ABS es sencillo: http://wiki.archlinux.org/index.php/Custom_Kernel_Compilation_with_ABS (muy recomendable).
Con todos estos pasos optimizaremos de manera muy notable nuestro Archlinux yo pase de un boot de 17 seg a uno entre 7 y 10 seg :) y una muy buena de optimización del sistema, que se siente al trabajar con el.
PIMP GRUB 2:
Este es un vil e indiscriminado copy pasteo del blog archxz.wordpress.com que hizo un maravilloso trabajo con grub2. Seguramente ya habran visto a los ubunteros con algun post de cambiarle el fondo al grub 2 XDDDD, pero no lo explotan de la manera hecha por archxz [copy paste mode: on]:
Buenas, hoy instalaremos grub2 gráfico en nuestro archlinux, el grub que dicen vendrá en ubuntu karmic y que en arch se puede utilizar hace mas de 7 meses, supongo estarán ya familiarizados con grub (el gestor de arranque), si alguna ves an usa suse habrán notado que el grub que utiliza es mas gráfico, bueno hace tiempo instale el grub tipo suse, pero no me resulto muy agradable, era un poco feo por decirlo, entonces seguí buscando y encontré un post en archlinux.org donde se explicaba como instalar grub2 gráfico, en ese tiempo era un poco mas complicado, pero funcionaba, yo lo utilizo desde hace mas de 6 meses, y funciona muy bien, la instalación no es para nada complicada y es sencillo crear temas, yo he hecho 6 temas los cuales pueden encontrar en AUR.
Comencemos, primero haremos una copia de seguridad de nuestra configuración de grub, esto lo hacemos con:
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.backup
Si utilizamos grub2 lo haremos con:
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
Ahora desintalamos grub
yaourt -R grub
Instalamos grub2-gfxmenu-overlay desde aur
yaourt -S grub2-gfxmenu-overlay
Instalamos grub2-gfxmenu desde aur
yaourt -S grub2-gfxmenu
Ahora editamos la configuración de grub, para adaptarla a nuestro pc, editamos /boot/grub/grub.cfg y pegamos las entradas del respaldo que hicimos, teniendo en cuenta que las particiones comienzan de 1 no de 0, por lo tanto si antes era (hd0,0) ahora sera (hd0,1), quedando de esta forma con el mismo numero que la partición, por lo que para “/dev/sda3″ deberá quedar como “(hd0,3)”. Mi grub.cfg como ejemplo.
Y por ultimo instalamos grub con
grub-install /dev/sda # O donde instalemos nuestro grub
Si todo a salido bien, tendremos nuestro grub2 gráfico funcionando, pueden usar los temas que hice (esta en aur), instalándolos con yaourt con grub2-theme-NOMBREDELTEMA, y agregando la linea
set theme=”/boot/grub/themes/NOMBREDELTEMA/theme.txt”
A su grub.cfg









Los temas tienen los nombres de los wallpaper los cuales no son de mi autoria, y están las url de cada una en el theme.txt de cada tema. Pueden encontrar todos aquí. Los nueve temas están diseñados para una resolución de 1024×768, así que su grub.cfg debe quedar con esa resolución, las imágenes están en 1280×800 porque esa es la resolución de mi pantalla, igualmente tengo configurado grub en 1024×768.
Si tienen algún error al compilar pueden instalar los paquetes precompilados, agregando al final de /etc/pacman.conf lo siguiente para i686.
[archfox]
Server = http://hateanthem.dreamhosters.com/arch/i686
Y para x86_64
[archfox]
Server = http://hateanthem.dreamhosters.com/arch/x86_64
E instalándolo con pacman
pacman -Sy grub2-gfxmenu-overlay grub2-gfxmenu
Esto ultimo gracias a FrozenFox del foro de archlinux.org
Instalación en otras distros
He visto que muchos buscan como instalarlo en ubuntu, no es lo primordial de la entrada por eso no esta al comienzo.
Primero deben desintalar grub, luego escriben en una consola
wget http://grub.gibibit.com/files/overlay_2009-07-19.tar.gz
tar -xf overlay_2009-07-19.tar.gz
cd overlay_2009-07-19
sudo cp -Rf * /
Y luego
wget http://grub.gibibit.com/files/gsoc08_r876.tar.bz2
tar -xjf gsoc08_r876.tar.bz2
cd gsoc08_r876
mkdir build
cd build
sh ../configure --prefix=/usr --bindir=/bin --sbindir=/sbin \
--mandir=/usr/share/man --infodir=/usr/share/info \
--sysconfdir=/etc
make
sudo make install
Las dos lineas siguientes a “sh ../configure …” deben pegarse juntas en un terminal como si las tres fuesen solo una. Finalmente instalan grub con
grub-install /dev/sda # O donde instalen grub
Luego configurar, como se indicaba antes.
Grub en otra partición
En instalaciones de archlinux, en donde esta el /boot separado del directorio raíz, se debe quitar el /boot a todo, incluyendo los temas, las fuentes y las entradas de grub. Ademas debemos tener cuidado en las entradas, por ejemplo suponiendo que
/dev/sda2 es /boot
/dev/sda3 es /
Nuestra entrada en grub quedara de esta forma
# Entry 0 - Arch Linux
menuentry "Arch Linux" --class "arch" {
set root=(hd0,2)
linux /vmlinuz26 root=/dev/sda3 ro
initrd /kernel26.img
}
Siendo la linea “set root=(hd0,2)” referida a la partición /boot y la linea “linux /vmlinuz26 root=/dev/sda3 ro” a la partición de el directorio raíz.
Problemas de resolución en tarjetas intel
Si tienen algún problema de resolución con tarjetas gráficas intel, pueden compilar desde AUR grub2-915resolution sin instalarlo y luego copiar el archivo 915resolution.mod que estará en $pkgdir/usr/lib/grub/i386-grub/ a /boot/grub/, después se debe editar el grub.cfg y agrega las lineas
insmod 915resolution
915resolution 34 1024 600
El 1024 600 depende de nuestra resolución de pantalla, ademas debe coincidir con la resolución de la linea “set gfxmode=1024×600″.
Espero les sea útil, no es algo primordial, pero hace que se vea mejor el inicio de nuestro arch. Saludos y hasta la próxima.
PD: Tres temas nuevos, aún no han sido agregados a aur, pero cuando así sea lo pondré acá.
[copy paste mode off]
Splash screen en archlinux:

Si bien algunos no les gusta ver tantas letras al bootear y quieren algo mas gráfico pero ligero y a la vez con muchas posibilidades y fácil de instalar esta fbsplash:
yaourt -S fbsplash
después podremos los initscripts:
yaourt -S initscripts-extras-fbsplash
ahora podremos algunos themes. En aur hay unos muy buenos, ahora los agregaremos al /etc/conf.d/fbsplash maso-menos de la siguiente manera:
SPLASH_THEMES=”arch-black arch-banner-icons arch-banner-noicons”
Agregamos fbsplash a los demonios en el /etc/rc.conf:
DAEMONS=(… hal fbsplash ...)
Ahora para que arranque con nuestro arch, lo agregaremos a los HOOKS del /etc/mkinitcpio.conf :
HOOKS=(base udev fbsplash …)
Ahora configuramos el grub de la siguiente manera, que después de decir lo de kernel =nuestro kernel en el caso de grub 1 , lo agregamos y en el caso de grub2 después de la linea linux=kernel, más o menos asi:
Grub2 :
linux /boot/vmlinuz26-pae root=/dev/sda4 ro ACPI_VIDEO=y VIDEO_OUTPUT_CONTROL=y logo.nologo quiet console=tty1 vga=792 splash=silent,theme:arch-banner-icons,fadein,fadeout
Grub 1:
kernel = /boot/vmlinuz26-pae root=/dev/sda4 ro ACPI_VIDEO=y VIDEO_OUTPUT_CONTROL=y logo.nologo quiet console=tty1 vga=792 splash=silent,theme:arch-banner-icons,fadein,fadeout
y después agregamos la imagen al kernel deseado:
mkinitcpio -p kernel26
En mi caso tengo otro kernel (kernel-pae) sacado de AUR por lo que iría así:
mkinitcpio -p kernel26-pae
Y listo! En arch, también podemos poner plymouth o usplash pero no los explicare :P .
Otras cosas interesantes:
Bluethoot en arch: http://archxz.wordpress.com/2009/09/09/bluetooth/
Impresoras en arch: http://jfibergran.wordpress.com/2009/04/30/configurar-impresoras-en-arch-linux/
Optimizar Rankimirrors de pacman: http://cyb3rpunk.wordpress.com/2009/11/17/rankmirrors-optimiza-mirrorlist/
Agregare mas después :P











Vamos... sabemos que quieres comentar algo ;)