Categories
electrónica linux

Curioso error hardware

sound blaster 128 pci

Desde hace ya unas semanas, tenía un problema hardware con un pentium III sobre una placa Qdi Advance 9 y una tarjeta de sonido Soundblaster Pci 128. El problema sí radicaba en que el ordenador y el sistema operativo reconocían perfectamente la tarjeta, pero a la hora de reproducir audio el volumen del mismo era muy bajo, tan bajo que con unos auriculares, y el sonido al máximo, la música se oía como un susurro.

Intenté reinstalar los drivers de sonido para la tarjeta bajándome los últimos archivos disponibles del proyecto alsa, pero no conseguí nada. Después me dispuse a buscar por internet algún problema similar, pero no tuve mucho éxito, hasta que encontré un antiguo hilo en un foro(más o menos del año 2000), en el cual alguien explicaba que tenía el volumen muy bajo, y alguien le respondía que, en algunas tarjetas de sonido, hay unos potenciómetros para ajustar el volumen, y debería revisarlo.

Hace ya años que los dispositivos que se instalan en los ordenadores de sobremesa no tiene nada que sea regulable (ya casi ni “jumpers”). Así que esa solución no me valía, pero me dió una idea que luego resultó acertada. ¿Quizá no le llegase corriente suficiente a la tarjeta de sonido, y por ello se oyera tan bajo?

Cambiar de ranura pci la tarjeta, por si era tema de mal contacto, no solucionó el problema. Así que lo único que se enchufa en la placa y proporciona corriente a la misma es un conector ATX.

conector ATX

Este conector suministra energía a toda la placa base, y los dispositivos enchufados a ella (tarjetas pci, usb, etc.) La cosa es, que si no estuviese bien conectado, el ordenador debería fallar más, o no encenderse, pero pese a ello me dispuse a comprobarlo.

Al parecer al enchufarlo por última vez (cuando monté la placa dentro de la caja de un PII) se movieron hacia atrás algunos conectores, más concretamente los de un extremo, de +5VDC y +12VDC. Después de apretarlos bien fuerte, y volver a conectarlos, ¡magia! ¡el sonido tiene un volumen normal!

Nunca habría pensado que un solo conector de todos los que tiene el ATX, pudiera afectar en un comportamiento tan curioso. De hecho hay conectadas más tarjetas pci(no de sonido, sino de red y otras), pero funcionaban perfectamente. Consejo, cuando tengas un problema hardware con el pc, comprueba TODAS las conexiones: tarjetas, cables de corriente, cables SATA e IDE, ram, etc. Nunca se sabe…

Categories
linux ubuntu

Herramientas de diagnóstico de disco duro en linux

El disco duro es un gran olvidado por los usuario de los ordenadores, tanto a la hora de comprarlos como a la de usarlos. Este dispositivo es el encargado de almacenar todos los datos de nuestro pc: archivos del sistema, archivos personales, descargas de internet, etc. La mayoría de las personas no hacen copias de seguridad de su sistema, y si la hacen, no la hacen con una periodicidad continua, sino cuando se acuerdan. Es por ello que el tener vigilada la salud de nuestro disco duro de forma automática puede evitarnos el susto de perder todos nuestros datos, fotos, videos, documentos y demás cosas de incalculable valor.En linux existen herramientas que nos permiten monitorizar el estado del disco duro, leyendo los datos S.M.A.R.T. y mostrándonos avisos cuando éste empiece a fallar. Para poder utilizar este sistema es necesario seguir los siguientes pasos:

1- Instalar las smartmontools

sudo aptitude install smartmontools

2- Comprobar si es compatible con nuestro disco duro

Primero necesitamos saber el descriptor de nuestro disco duro, para ello ejecutamos la siguiente orden:

pruebas@pruebas:~/linux$ sudo fdisk -l
Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pistas, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disk identifier: 0x824226f5
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 * 1 4878 39182503+ 7 HPFS/NTFS
/dev/hda2 4879 9728 38957625 f W95 Ext'd (LBA)
/dev/hda5 4879 8326 27696028+ 7 HPFS/NTFS
/dev/hda6 8448 9728 10289601 83 Linux
/dev/hda7 8327 8447 971901 82 Linux swap / Solaris

Las entradas de la tabla de particiones no están en el orden del disco
Esta nos mostrará todos los discos duros que tengamos y las particiones en ellos. En este caso vemos que solo hay un disco duro y su descriptor es “/dev/hda”. Pasaremos a comprobar si el programa smartmontools puede leer la información S.M.A.R.T. de nuestro disco duro. Ejecutamos lo siguiente:

sudo smartctl -a /dev/hda

El programa debería mostar un montón de información acerca del estado del disco duro, y entre esa información, la siguiente tabla:

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 066 061 006 Pre-fail Always - 154779836
3 Spin_Up_Time 0x0003 099 098 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 66
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 087 060 030 Pre-fail Always - 543379417
9 Power_On_Hours 0x0032 081 081 000 Old_age Always - 16966
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 378
194 Temperature_Celsius 0x0022 046 053 000 Old_age Always - 46
195 Hardware_ECC_Recovered 0x001a 066 061 000 Old_age Always - 154779836
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0

Esta es la información que se ha leído del disco, y nos sirve para comprobar que nuestro disco es compatible con la aplicación.

3- Instalar notificador de fallos; éste es un programa que nos alertará en caso de que se produzcan fallos en el disco duro, mostrando una ventana. Para ello ejecutamos:

sudo aptitude install smart-notifier

4- Configurar el demonio “smartd” para que se arranque al inicio del ordenador.
Abrimos el fichero /etc/defaults:

sudo gedit /etc/default/smartmontools

Descomentamos la linea que pone:

start_smartd=yes

5- (en ubuntu 9.04 esto ya no es necesario hacerlo, porque se modifica a la vez que se instala).Añadimos el ejecutable /usr/bin/smart-notifier para que se inicie con nuestra sesión de gnome. Vamos a Sistema>Preferencias>Sesiones y le damos al botón “Añadir”. Ahora cremos una entrada como la siguiente imagen:

Configuracion smart-notifier al inicio de sesión

Después de estos pasos, la siguiente vez que arranquemos el ordenador tendremos el demonio smartd monitorizando los discos duros, y el script smart-notifier nos alertará en el caso de que ocurra algún error.

De todos modos, si queremos comprobar el correcto funcionamiento de la aplicación podemos ejecutar una prueba. Para ello abrimos el fichero /etc/smartd.conf y cambiar la línea que contiene DEVICESCAN por la siguiente:

DEVICESCAN -m root -d sat -M test -M exec /usr/share/smartmontools/smartd-runner

Esta línea añade la opción “-M test”, la cual generará un error de prueba, y nos permitirá comprobar el buen funcionamiento del notificador. Ahora reiniciamos el demonio:

sudo /etc/init.d/smartmontools restart

Y nos debería de salir una ventana como la siguiente:

Notificación de pruebas de smart-notifier

Ahora que ya lo hemos probado tendremos que quitar la opción “-M test” del fichero /etc/smartd.conf que habíamos añadido antes.

Fuente: foros-ubuntu(inglés)

Categories
administración electrónica ubuntu

Comprobar el tamaño real de un mp4 o memoria usb

Con la moda de los mp3/mp4 existen multitud de modelos y marcas en el mercado para elegir. También está la opción de comprar por internet, incluso al extranjero, ahorrarse algunos euros. En mi caso me decidí a comprarle un mp4 por ebay para mi hermana. Tiempo después un amigo se compró otro parecido al decirle yo lo barato que me había salido, pero cual fue su sorpresa cuando descubrió que no podía copiar más de 1GB en el aparato, porque sino empezaba a tener un comportamiento “errático”(cuelgues, bloqueo del sistema, corrupción de archivos, duplicación…).

Las siguientes instrucciones son válidas tanto para comprobar el buen estado y tamaño de un mp4 como de una memoria usb.

  • Lo primero es copiar fuera de la memoria/mp4 todos los datos que tengamos almacenados, ya que se va a proceder al borrado del dispositivo completo.
  • Lo siguiente es asegurarnos de que el dispositivo está desmontado. Para ello podemos comprobarlo en “Lugares>Equipo” y haciendo clic derecho sobre el dispositivo. Si se muestra la opción de desmontar, procedemos a hacer clic sobre ella; si aparece la opción montar quiere decir que ya está desmontada.
  • Ahora miramos que dispositivo bajo el directorio /dev le corresponde a nuestra memoria usb/mp4. Para ello podemos hacer uso del comando:

sudo fdisk -l

Éste mostrará todas las unidades de almacenamiento del sistema, y su dispositivo de acceso. En mi caso se muestra lo siguiente:

Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pistas, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disk identifier: 0x824226f5

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 * 1 4878 39182503+ 7 HPFS/NTFS
/dev/hda2 4879 9728 38957625 f W95 Ext’d (LBA)
/dev/hda5 4879 8326 27696028+ 7 HPFS/NTFS
/dev/hda6 8448 9728 10289601 83 Linux
/dev/hda7 8327 8447 971901 82 Linux swap / Solaris

Las entradas de la tabla de particiones no están en el orden del disco

Disco /dev/sda: 2135 MB, 2135162880 bytes
255 cabezas, 63 sectores/pistas, 259 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disk identifier: 0x0d0c0b0a

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 259 2080386 b W95 FAT32

El último dispositivo es la memoria usb que quiero comprobar, y que contiene una partición en fat32.

  • Una vez conocida la ruta de acceso procedo a lanzar el siguiente comando. ¡ATENCIÓN! esto borrará TODOS los datos de la memoria usb/mp4.

sudo badblocks -vw /dev/sda

Este comando realiza varias escrituras de patrones de datos distintos sobre la memoria, y luego los intenta leer para comprobar que funciona correctamente. Más concretamente real iza 4 iteraciones con los siguients patrones: “0xaa, 0x55, 0xff, 0x00” en cada bloque del dispositivo.

  • Una vez haya acabado la comprobación, en el caso de ser correcta(sin fallos) debería de mostrarse lo siguiente:

Se están revisando los bloques malos en modo de lectura-escritura
Del bloque 0 al 2085120
Probando con el patrón 0xaa: done
Leyendo y comparando: done
Probando con el patrón 0x55: done
Leyendo y comparando: done
Probando con el patrón 0xff: done
Leyendo y comparando: done
Probando con el patrón 0x00: done
Leyendo y comparando: done
Paso terminado, se encontraron 0 bloques malos.

si en lugar de esto aparecen algunos números intercalados entre las pruebas, quiere decir que el dispositivo tiene sectores defectuosos(cuyo tratamiento explicaré en un post futuro)

  • Ahora que hemos comprobado la integridad de la memoria/mp4 es necesario crear un sistema de ficheros que nos permita escribir y leer datos. Lo más normal es crear un sistema de ficheros fat 32, que es compatible con windows y linux(se podría elegir otro sistema de ficheros, pero estos dispositivos vienen preformateados de fábrica en este sistema, por razones de compatibilidad, así que vamos a hacerlo igual). Para crearlo voy a hacer uso del programa gparted(sino está instalado: “sudo aptitude install gparted”):

sudo gparted /dev/sda

Se abrirá la aplicación y en ella veremos el espacio en el dispositivo sin particionar

gparted usb no partitions

Hacemos clic sobre los datos sin asignar y luego sobre el botón “Nueva”. Aparecerá un mensaje preguntando acerca de crear una nueva tabla de particiones; hacer clic sobre “Crear”

nueva tabla particiones

Pedirá confirmación de la operación. Hacer clic de nuevo sobre “Crear”

confirmacion tabla particiones

Hacemos clic de nuevo sobre el espacio sin particionar y luego sobre “Nueva”. Nos aparecerá un diálogo preguntando acerca del sistema de ficheros que deseamos crear, seleccionamos fat32 en el menú desplegable, y luego clic en el botón “Añadir”

gparted crear nuevo sistema de archivos

Ahora ya podemos ver como se ha marcado todo el espacio disponible como que se va a formatear en “fat32”. Para que se cree definitivamente la partición es necesario hacer clic sobre el botón “Aplicar”. Una vez haya terminado el proceso de formateo, debería de aparecer un diálogo de información similar a este:

gparted complete actions dialog

Ahora ya tenemos nuestra memoria/mp4 comprobado y listo para ser usado. Para empezar a usarlo simplemente es necesario montarlo de nuevo; la manera más rápido de hacerlo es desconectando el usb y volviéndolo a conectar.

Actualización 6/10/2009: también es posible crear un fichero de varios cientos de megas y copiarlo varias veces en el dispositivo. Luego se comprueba con el comando md5sum que todos los fichero copiados tienen el mismo hash y listo. Un ejemplo de como crear un fichero de 500 MiB:

dd if=/dev/urandom of=mifichero.dat bs=$(( 1024 * 1024 )) count=500

Fuente: administratosphere

Categories
linux ubuntu

Renombrar unidades en ubuntu

Nombres unidades

En el menú de ubuntu “Lugares” las particiones de disco aparecen con el nombre con el que están etiquetadas. Estas etiquetas se administran de forma distinta para cada tipo de sistema de ficheros, así que si se quiere tener el menú con nombres coherentes y no como “sda1” o similares, estos son los comandos para cambiarlas según el tipo:
(para ejecutarlos antes hay que desmontar las particiones)

  • fat32

$> cp /etc/mtools.conf ~/.mtoolsrc
$> echo mtools_skip_check=1 >>~/.mtoolsrc
$> sudo mlabel -i /dev/sda2 ::DATOS

(para poder usar este comando es necesario tener instalado el paquete mtools)

  • ntfs

$> sudo ntfslabel /dev/sda1 WINDOWS

(para poder usar este comando es necesario tener instalado el paquete ntfsprogs)

  • ext2, ext3

$> sudo e2label /dev/sda1 DESCARGAS

Información extraida de:
https://help.ubuntu.com/community/RenameUSBDrive

http://catrip.wordpress.com/2007/12/19/trucosolucion-renombrar-una-memoria-usb-en-ubuntu/

Categories
linux programación

Mono, C# y los iconos en la bandeja del sistema

No hace mucho me uní a un proyecto open source alojado en sourceforge. Dicho proyecto está escrito en c# y compilado para Mono. La verdad es que nunca había programado nada en dicho lenguaje así que estoy en un periodo de “aprendizaje”.

Una de las primeras cosas que hice en el proyecto fue actualizar el sistema usado para mostrar un icono en la bandeja del sistema. Al buscar información por internet, encontré un ejemplo (han actualizado el ejemplo a petición mía, en base a mi post :P) en la documentación de mono, pero que resultó ser el mismo sistema que ya se usaba en la aplicación y que estaba en desuso. En la lista de correo de mono me informaron de que existía una clase llamada StatusIcon, con la que fácilmente se podía crear un icono así que emplee esa finalmente. Y para que algún día pueda ser de utilidad a alguien, hago mi aportación poniendo un ejemplo de un “hola mundo” para mono con icono incluido:

using Gtk;
using Gdk;
using System;

class Hello {
  private static StatusIcon trayIcon;

  private static Gtk.Window window;

  // Método principal de la clase, que se ejecuta al invocar
  // la aplicación
  static void Main()

  {
    // Iniciliza Gtk+ para su funcionamiento
    Application.Init ();

    // Creación de una ventana con título
    window = new Gtk.Window ("Hola mundo");

    // Asociación del evento delete_event() cuando la ventana es cerrada
    window.DeleteEvent += delete_event;

    // Carga de la imagen del icono de la bandeja del sistema
    Pixbuf iconTray = new Pixbuf ("/tmp/iconoBandeja.png");

    // Creación del icono
    trayIcon = new StatusIcon(iconTray);
    // Activar la visibilidad del icono
    trayIcon.Visible = true;

    // Asociar al evento de clic sobre el icono el método OnTrayIconClicked
    trayIcon.Activate += OnTrayIconClicked;
    // Asociar al evento de clic derecho sobre el icono el método OnTrayPopup
    trayIcon.PopupMenu += OnTrayIconPopup;

    // Poner un tooltip al icono
    trayIcon.Tooltip = "icono hola mundo";

    // Mostrar la ventana
    window.ShowAll ();

    // Arranca el bucle principal
    Application.Run ();
  }

  static void OnTrayIconPopup (object o, EventArgs args) // handler for mouse click

  {
    // Crear menu
    Menu popupMenu = new Menu();
    // Crea un item en el menú con el texto 'Salir'

    ImageMenuItem menuItemQuit = new ImageMenuItem ("Salir");
    // Crea una imagen para el item del menu
    Gtk.Image appimg = new Gtk.Image(Stock.Quit, IconSize.Menu);

    // Asociar la imagen con el item
    menuItemQuit.Image = appimg;
    // Añadir el item al menu
    popupMenu.Add(menuItemQuit);

    // Asociar al evento de clic sobre el item el evento OnPopupClick
    menuItemQuit.Activated += OnPopupClick;
    // Hace visible el menu
    popupMenu.ShowAll();

    // Muestra el menu
    popupMenu.Popup();
}

  static void OnPopupClick(object o, EventArgs args)

  {
    // Termina la aplicación cuando el usuario pulsa el botón Salir
    Application.Quit();
  }

  static void OnTrayIconClicked(object sender, EventArgs a)
  {
    // Cambia el estado de la ventana de la aplicación entre visible y no visible

    if (window.Visible)
    {
      window.Visible = false;

    }
    else
    {
      window.Visible = true;

    }
  }

  static void delete_event (object obj, DeleteEventArgs args)

  {
    // Termina la aplicación cuando el usuario cierra la ventana
    Application.Quit ();
  }
}

Para compilar la aplicación:

mcs holaMundoIcono.cs -pkg:gtk-sharp-2.0

Y para ejecutarla:

./holaMundoIcono.exe

Categories
reflexión

Rentabilidad y audiencia en negocios web

Por todos es sabido que las cosas gratis no existen, y en internet los costes de las páginas web se pagan mayormente a base de anuncios. Sin embargo existen otro tipo de empresas cuyos beneficios vienen más directamente, por ejemplo, ebay. Ebay es un portal de subastas que hace dinero cobrando a los usuarios por poner artículos, y quedándose un porcentaje del precio final de los artículos vendidos.

Existía hasta hace no mucho tiempo una página creada en en 2005 llamada www.compraventa.com(enlazo a un archivo cacheado de 2005 para que se vea que no ha cambiado con la actualidad). En esta página los usuarios insertaban gratuitamente ofertas de artículos para vender, y cuyos anuncios duraban un tiempo determinado, tras el cual la página se ponía en contacto contigo para decirte que si querías tener el anuncio más tiempo, pagaras una cantidad de dinero. Tiempo más tarde esta página fue comprada por el grupo Anuntis Segundamano. A pesar de la compra la página no vario para nada en su funcionamiento, y todos los que hacíamos uso de ella vivíamos felices.

En septiembre de 2007 me entero a través de meneme.net que deciden cambiar la política de anuncios y cobrar por todos los que se pongan. En ese momento es cuando dejo de hacer ningún tipo de venta a través de su página, ya que comparada con otras alternativas gratis existentes o incluso ebay, resulta muy cara. La baza con la que cuentan es la gran referencia que había adquirido el nombre de la página en sí, convirtiéndose casi en un referente.

A pesar de todo lo anterior, eso no es motivo para un enfado/cabreo con la empresa, más bien se podría decir que es lo siguiente:

  • Al introducir www.compraventa.com en la barra del navegador, el servidor nos redirige a www.segundamo.es. Esto se puede ver como que potencian el nombre principal de la empresa en detrimiento del que tenía desde el principio. Me gustaría saber si estarán así hasta el final de los tiempos, o algún día usarán ese dominio para otros usos o lo venderán (no caeremos a breva :P)
  • Poco tiempo después de hacer todos los anuncios de pago empezaron a aparecer por la televisión y los periódicos anuncios de la página web. Esto demuestra que el negocio les va bien y que invierten en publicidad, pero ponen como dirección la principal: www.segundamano.es …me sigo preguntando lo mismo que en el punto anterior
  • A pesar de ingresar mucho dinero (o por lo menos eso parece) no hacen grandes modificaciones en el sitio web. Alguien me puede decir que eso es por mantener la simplicidad y usabilidad, pero no me lo trago, se pueden hacer cientos de mejoras tanto visibles como no (un rss sería un servicio interesante, por ejemplo)
  • Hasta particulares han sido capaces de hacer mejores diseños y páginas web que ellos, y como muestra un botón: www.casinuevo.net

Si siguen con la política actual y solo quieren llenarse los bolsillos, ojalá se les desmangue el chiringuito y alguien(o alguna empresa) cree un producto que gane renombre y les robe el pastel 😛