martes, 10 de febrero de 2009

Dell T5400 con Fedora 4

Mas de una vez me he topado con las complicaciones de instalar en un maquina con harware "reciente" alguna distribucion de Linux tambien reciente, suelen no identificarse correctamente todo el hardware, pero es mas que nada por que aun no sale el modulo adecuado ;)


Sin embargo, ayer me tope con el problema de instalar en hardware reciente un Fedora Core 4 :-S

Aqui las caracteristicas generales de la maquina en cuestion Workstation Dell Precision T5400:

- 8G RAM
- Procesador Dual QuadCore
- Disco Duro SAS
- Tarjeta de Red Broadcom Ethernet NIC NetXtreme 5754
- Tarjeta de video Nvidia Quadro FX 3700


La historia de como superar esa instalacion....

La instalacion la pense hacer por DVD, hice el boot desde el dvdrom, pero resulto el siguiente mensaje de error:

vfs cannot open root device null or unknowblock

y varios mensajes despues de un kernel panic :-0

Busque en la red y alguien comento que debi hacerlo asi:

1) boot desde dvdrom
2) En el prompt de boot:

boot: lo que sea

Esto mandara un mensaje de error debido a que no se encuentra dicha imagen "lo que sea"

2) nuevamente en el prompt:

boot: linux media check

Asi se supera el mensaje de error anterior, pero resulto que no detectaba la unidad de dvdrom y aparecio el clasico mensaje:

"Unable to find any devices of the type needed for this installation type. Would you like to manually select your driver or use a driver disk? "


En la pantalla aparece las opciones para cargar el modulo adecuado para dicha unidad, probe varios, pero la verdad ninguno funciono. Asi que opte por cambiar el medio de instalacion, empiezo con dvdrom y a la hora de seleccionar el medio opte por hacerlo desde disco duro.

Para instalar desde disco duro, simplemente copie la imagen iso en una parte del disco duro diferente a la particion donde instalare, recuerdo que debe ser ext2, ext3 o fat para que pueda ser usada. Todo va bien hasta que trata de hacer la instalacion con ambiente grafico :(

No es reconocida la tarjeta grafica; asi que en lugar de usar en el prompt de boot linux media check use linux text, claro aun usando el dvd para hacer boot y el disco duro para la instalacion.

Asi por fin termina la instalacion basica. Pero resulta que no funciona la tarjeta grafica y tampoco la de red 8o|

Para la tarjeta grafica:

1) bajo el driver del sitio de nvidia
2) compilo el driver
3) modifico el archivo /etc/X11/xorg.conf

Para la tarjeta de red:

1) bajo el driver del sitio de broadcom http://www.broadcom.com/support/ethernet_nic/netxtreme_desktop.php

2) unzip linux-3.92n.zip
3) rpm -ivh tg3-3.92n-1.src.rpm
4) cd /usr/src/redhat/SPECS/
5) rpmbuild -bb SPECS/tg3.spec
6) como marco el siguiente error:

error: conflicting types for ’skb_header_cloned’ include /linux/skbuff.h:398: error: previous definition of ’skb_header_cloned’ was here RPM build errors:


vi /usr/src/kernels/2.6.11-1.1369_FC4smp-x86_64/include/linux/skbuff.h

hay que comentar las siguientes lineas:

/** static inline int skb_header_cloned(const struct sk_buff *skb)
*{
* int dataref;
*
* if (!skb->cloned)
* return 0;
*
* dataref = atomic_read(&skb_shinfo(skb)->dataref);
* dataref = (dataref & SKB_DATAREF_MASK) - (dataref >> SKB_DATAREF_SHIFT);
* return dataref != 1;
*}



7) rpmbuild -bb SPECS/tg3.spec
8) rpm -Uvh RPMS/x86_64/tg3-3.92n-1.x86_64.rpm
9) insmod /lib/modules/2.6.11-1.1369_FC4smp/kernel/drivers/net/tg3.ko
10) ifconfig eth0 XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX
11) vi /etc/resolv.conf
12) ping google.com


Listo!!!!


PD: Quiza este post nunca le sea util a alguien, pero me da mucho gusto poder decir que esto fue prueba superada ;)

jueves, 29 de enero de 2009

Script en bash para renombrar archivos...

Ultimamente ha sido muy comun cambiar secuencia de archivos, ya sea en el nombre o bien en el numero de la secuencia, asi que aqui el borrador del script en bash que haga eso ;)


#!/bin/bash

nombre=$1
inicio=$2
ext=$ext


for file in ` ls *.$ext`
do
if [ -e $nombre.$i.$ext ]
then
echo El $nombre.$i.$ext existe, cuidado puede sobreescribirse
else
echo mv $file $nombre.$i.$ext
mv $file $nombre.$i.$ext
i=` expr $i + 1 `
fi
done

miércoles, 21 de enero de 2009

Recuperando el Grub....

He tenido que recuperar el grub de una maquina con 2 discos SATA y 6 SO diferentes, se que hay muchas ligas a respecto; pero aqui esta una mas :P


1) usar un LiveCD
2) mount /dev/sdaX /mnt
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc

3) chroot /mnt

4) grub-install /dev/sdaX

o

grub;
grub> find /boot/grub/stage1
grub> root (hdX,Y)
grub> setup (hd0)
grub> quit

5) shutdown -r now

Una vez que se tenga el grub instalado, el meter todas las opciones en el menu no deberia ser complicado.

miércoles, 7 de enero de 2009

Trucos con historial de bash ....

Limpiando cualquier rastro en el archivo de historial de bash.

Adicionar al ~/.bashrc las siguientes alias :

alias exit=’history -c && clear && exit’
alias logout='history -c && clear && logout'

Guardar los comandos ejecutados sin importar si hay varias terminales abiertas

Adicionar al ~/.bashrc

shopt -s histappend
PROMPT_COMMAND=`history -a`

Algunas variables del Bash

HISTSIZE Limita el número de instrucciones que tendra el archivo historico de comandos (almacenado en la variable $HISTFILE, normalmente es .bash_history). Su valor default es 500.

HISTFILE Nombre del archivo donde se guardara el historial.

HOSTNAME El nombre del host actual ( similar a uname -n).

LANG Usada para determinar el idioma.

LOGNAME Almacena el nombre de login.

MAILCHECK La frecuencia en segundos con que el Shell verificara correo en los archivos indicados por las variables $MAILPATH o $MAIL.

PATH Rutas que se usaran para localizar archivos.

PS1 Es el prompt principal.

PS2 Prompt de continuacion, es aquel signo que aparece despues de un cuando un comando no ha finalizado.

PWD Ruta completa del directorio actual ( similar a pwd ).

BASH_VERSION Imprime la version de bash

HISTCMD Imprime el numero en el indice del historial del comando actual.

HOSTTYPE Imprime el tipo de sistema en el que se esta ejecutando. Ejemplo de salida: i486, x86_64

OLDPWD El directorio anterior al actual ( similar a cd - ).

PPID EL PID del padre del proceso de shell. Es de solo lectura este valor.

UID EL UID del usuario, es de solo lectura esta variable.

HOME La ruta del directorio HOME del usuario (similar a cd )

IFS El separador interno. El valor default es ‘‘’’

TMOUT El tiempo que esperara el comando read antes de dar por terminada.

TMPDIR Ruta que tendra bash para generar archivos temporales necesarios para la ejecucion de comandos. No tiene un valor por default.

viernes, 26 de diciembre de 2008

Estructura de postfix...

La imagen clasica de las relaciones procesos-tablas del postfix ...


miércoles, 10 de diciembre de 2008

Amavis + postfix

Cuando se tiene un esquema de gateway de correo con postfix, en ocasiones es aconsejable que el nodo interno de correo no haga nuevamente un analisis con amavis.

1) El gateway analiza con spamassassin y clamav utilizando amavis-new

2) En nodo interno de correo en el archivo de configuracion main.cf

smtpd_recipient_restrictions
check_client_access cidr:/etc/postfix/filter.cidr


El contenido de filter.cidr es:

x.x.x.x OK # Ip del gateway de correo
x.x.x.x OK
0.0.0.0/0 FILTER smtp-amavis:[127.0.0.1]:10024