Archive for May 29th, 2007

Instalando Debian Etch en un Portatil Compaq nx6320

Tuesday, May 29th, 2007

Bueno, como parte de mi frustrada perdida de portatil; se me asignó para trabajar una portatil HP Compaq nx6320; dicho portatil es un Core Duo 2.16Ghz con 1Gb de RAM y tarjeta de video intel 945g … he decidido (por ser estandar de la empresa) instalarle Debian Etch pero agregandole ciertos "detalles" Phenobarbital que la haràn distinta del resto de los equipos.

Se procedió a instalar debian etch 4.0 (actual stable) aprovechando algunos repositorios locales como los de la ULA, Gulmer y uno interno de la institución.

La instalación procedio "casi" sin cambios, veremos por qué

Particionamiento:
Luego de un experimento sobre velocidades y rendimiento de los diferentes filesystems (experimento que proximamente publicaré en el blog) decidí cambiar el esquema básico por algo un poco "mas elaborado":
>df -hT
S.ficheros    Tipo  Tamaño Usado  Disp Uso% Montado en
/dev/sda1     ext2    450M   16M  410M   4% /boot
/dev/sda6      xfs    9,4G   63M  9,3G   1% /home
/dev/sda8     ext3    1,4G   35M  1,3G   3% /tmp
/dev/sda3      jfs    9,3G  1,4M  9,3G   1% /usr/local
/dev/sda9     ext3    1,9G  729M  1,1G  41% /var
/dev/sda5      jfs     19G  203M   19G   2% /var/lib

Observemos, ejemplo; que boot es ext2 (no necesita journaling y podemos montarla en modo ro (solo lectura)).
sda6 (home) es xfs, buenisimo en velocidad para archivos de distintos tamaños, su velocidad de montaje e indexación es sorprendente
sda8 (tmp) montada como ext3 con algunas opciones mas (nodev,nosuid,noexec,data=writeback) que permiten mejor velocidad de esa particion (y algo mas segura).
sda3 y 5 (var/lib y /usr/local) para archivos grandes, append de datos, manipulacion de registros y un journalist efectivo y ademas con bajo consumo de CPU, JFS es bueno para aplicaciones o para dataspaces de bases de datos como postgresql, mysql u openldap.

Instalaciones de paquetes iniciales:
>aptitude install gcc g++ build-essential libncurses5-dev libglade2-dev

Instalación de Kernel 2.6.21.3

Un equipo de estas características requiere un buen kernel, para ello descargamos el kernel 2.6.21.3:
>cd /usr/src
>wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.3.tar.bz2
>tar xvf linux-2.6.21.3.tar.bz2
>cd /usr/src/linux-2.6.21.3

Se que suena "extraño" querer compilar un kernel a la manera tradicional en un debian, pero me gusta:
Compilar el kernel 2.6.21.3
>make mrproper
>make oldconfig
>make gconfig (requiere gnome) ò make menuconfig (requiere ncurses)

solo verifiquemos que ALSA este activo y en sound > pci devices > intel HD (driver: snd_hda_intel)
lspci:
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)

Nota: no he tocado mucho la parte de networking (excepto que no tengo ni red de ATM ni WAN).

make all && make modules && make modules_install && make install
mkinitramfs -o /boot/initrd.img-2.6.21.3 /lib/modules/2.6.21.3

Entrada al grub:

Editar el grub para agregar lo siguiente:
title        Debian GNU/Linux, kernel 2.6.21-3-686
root        (hd0,0)
kernel        /vmlinuz-2.6.21.3 root=/dev/sda2 ro idebus=66 pci=routeirq pci=assign-busses
initrd        /initrd.img-2.6.21.3
savedefault

idebus mejora la velocidad de bus del ide/sata, que por defecto es 33

Reiniciamos y verificamos:
>uname -a
Linux lexotanil 2.6.21.3 #3 SMP PREEMPT Mon May 28 20:46:55 VET 2007 i686 GNU/Linux

Tarjeta inalambrica broadcom:
>aptitude install bcm43xx-fwcutter
ejecutar:
>rmmod bcm43xx
Verifiquen cuando se compilo el kernel que en device drivers > network drivers > Wireless se encuentra el modulo broadcom bcm43xx en modo M (modulo)
>modprobe bcm43xx

Observen que ahora ha iniciado correctamente el driver:
>dmesg
bcm43xx: Microcode rev 0×127, pl 0xe (2005-04-18  02:36:27)
bcm43xx: Radio turned on
bcm43xx: Radio enabled by hardware
bcm43xx: Chip initialized
bcm43xx: 32-bit DMA initialized
bcm43xx: Keys cleared
bcm43xx: Selected 802.11 core (phytype 2)
PM: Adding info for No Bus:hw_random
ADDRCONF(NETDEV_UP): eth2: link is not ready
bcm43xx: set security called, .level = 0, .enabled = 0, .encrypt = 0
SoftMAC: Open Authentication completed with 00:15:79:c3:d0:00
ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
eth2: no IPv6 routers present

Debian le ha colocado como alias el eth2 (y no wlan0 como en ndiswrapper).

y podemos revisar su status:
>iwconfig eth2
eth2      IEEE 802.11b/g  ESSID:"LANPRO"  Nickname:"Broadcom 4311"
          Mode:Managed  Frequency=2.437 GHz  Access Point: 00:14:78:C2:D9:00
          Bit Rate=24 Mb/s   Tx-Power=18 dBm
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality=90/100  Signal level=-42 dBm  Noise level=-71 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Adios a Ndiswrapper!!…

Frecuencia de la CPU:
Este equipo tiene 2 cores (nucleos) y podemos manipular la frecuencia de los mismos de manera independiente (obteniendo el mejor equilibrio potencia/ahorro de energia).

en el kernel, en la parte de POWER MANAGEMENT OPTIONS > CPU FRECUENCY SCALING
Activar:
CPU_FREQ > y
Default CPUFREQ Governor > performance
performance governor > y
los otros gobernadores, colocarlos en M
Observen que el modulo Intel Pentium 4 clock modulation (p4-clockmod) debe estar activo.

Luego, editamos en /etc/modules y agregamos:
>vim /etc/modules
p4-clockmod
cpufreq_conservative
cpufreq_ondemand
cpufreq_powersave
cpufreq_stats
cpufreq_userspace
acpi-cpufreq

Probando CPUFREQ:

para ello instalamos el siguiente paquete:
>apt-get install cpufrequtils

y ejecutamos
>cpufreq-set -c 0 -g ondemand && cpufreq-set -c 1 -g ondemand

Si deseamos que sea trabajable desde gnome:
>aptitude install gnome-cpufreq-applet (si no está instalado ya):

>cpufreq-selector –cpu=0 -g ondemand
>cpufreq-selector –cpu=1 -g userspace

y Cargamos los applets en cualquier lado de nuestra barra, sorpresa!, podemos cambiar la frecuencia de cada CPU de manera independiente!

beryl:

Quien no quiere tener beryl en estos dias? … bueno, este equipo viene con una intel 945G que trabaja montando el driver de xorg intel 810
>aptitude install xserver-xorg-video-i810
y en el kernel habiendo activado a i915 como Direct Rendering Manager.

sources de beryl:
editan su /etc/apt/sources.list y agregan estos repositorios de beryl:
deb http://debian.beryl-project.org/ etch main
deb-src http://debian.beryl-project.org/ etch main

agregan la llave gpg de dicho repositorio:
>wget http://debian.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -

Ahora si:
>aptitude update

e instalar:
>aptitude install libcairo2 libcairo2-dev libcairomm-1.0-0 libcairo-perl libmono-cairo1.0-cil python-cairo libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglu1-mesa libwxgtk2.4-1 libwxgtk2.6-0 mesa-common-dev mesa-utils libsvn1 libglitz1 libglitz-glx1 libxfont1 libfontenc1 libwnck-common libwnck18 libsvn1

>aptitude install libdrm2 libpng3 libpng12-0 libpng12-dev libxdamage1 libxcomposite1 x11proto-core-dev x11proto-composite-dev 11proto-damage-dev x11proto-fixes-dev x11proto-gl-dev x11proto-render-dev x11proto-randr-dev

y luego instalar beryl:
>beryl-core beryl-plugins-data beryl-plugins emerald beryl-settings beryl-manager beryl emerald-themes beryl-plugins-unsupported

Ahora editar el xorg.conf y modificar las siguientes secciones:

agregar:
Section "Extensions"
    Option "Composite" "Enable"
    Option "RENDER"    "Enable"
EndSection

agregar:
Section "ServerLayout"
Option "AIGLX"     "true"

La seccion device queda:
Section "Device"
    Identifier    "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
    Driver        "i810"
    BusID        "PCI:0:2:0"
    Option "RenderAccel" "true"
    Option “AllowGLXWithComposite” “true”
EndSection

Luego que todo está listo, reinician las X (CTRL+ALT+BACKSPACE) o simplemente reinicien el equipo.
Busquen en: Aplicaciones Gnome > Herramientas de Sistema > Beryl Manager

El Automáticamente cargará en modo Beryl, en su menú emergente pueden cambiar entre metacity (modo gnome por defecto) y beryl.

bluetooth:
Cada vez mas gente tiene equipos con bluetooth, celulares, camaras, ratones!, bueno, nuestro equipo puede "fungir" como un hub bluetooth para enviar y recibir archivos, conectarse a dispositivos, etc.

para ello instalamos:
>aptitude install libopenobex1 openobex-apps bluetooth

y configurar en el applet que emerge llamado "bluetooth manager":

recordemos que en /etc/bluetooth/hcid.conf podemos configurar el passkey de nuestro portatil, aunque por defecto es 1234
>vim /etc/bluetooth/hcid.conf

# Default PIN code for incoming connections
        passkey "1234";

en la seccion device he decidido cambiarle el nombre al dispositivo bluetooth:
# Default settings for HCI devices
device {
        # Local device name
        #   %d - device id
        #   %h - host name
        name "%h-%d";
por:
    name "lexotanil";

reinicio el servicio:
/etc/init.d/bluetooth restart

y verifico que el device esta activo:
>hcitool dev
Devices:
        hci0    00:16:41:C5:5D:10

fijense que el scan puede descubrir el bluetooth de mi celular:
>hcitool scan
Scanning …
        00:12:D1:1C:AB:FF       Jesuslara

Confirmo entonces que el bluetooth funciona.

Lectora SD/MMC:
lspci | grep Mass
Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)

La lectora es una texas instruments, aunque el driver sdhci (con algunos cambios) soporta estos device; el driver TI fue liberado hace poco e incorporado al kernel:

>lsmod | grep tifm

tifm_7xx1              10624  0
tifm_core              10368  1 tifm_7xx1

>modprobe sdhci

para probar si lee correctamente probamos con una mini-SD, una SD y una MMC (no tengo m-stick o una CF):
La mejor forma para probar un dispositivo es usando udevmonitor y esperar a que la lectora SD reaccione ante la inserciòn de un dispositivo:
>udevmonitor

Lo que nos muestra que un device ha sido detectado:
UEVENT[1180404391.828884] add@/devices/pci0000:00/0000:00:1e.0/0000:04:06.2/tifm_sd0:1
UDEV  [1180404391.828884] add@/devices/pci0000:00/0000:00:1e.0/0000:04:06.2/tifm_sd0:1

y luego es montado sin problemas.

GDesklets!

Como conclusión, con algo de esfuerzo hemos personalizado el equipo para que funcione optimamente y tenga los ultimos periquitos técnicos; como por ejemplo: Gdesklets!
>aptitude install gdesklets

En equipos previos a este (como mi Acer Travelmate C314) habia hecho funcionar gran parte del hardware; si me faltó algo por que funcionara, pueden indicarme y procederé a explicar su instalación (claro, si se puede).