Categoría: migracion

Algunos consejos para comprar un portátil

Como comenté voy a tratar de dar una serie de consejos a la hora de comprar un portátil e instalarle linux. La primera decisión a tomar a la hora de comprar un ordenador debe ser en que horquilla de precios vamos a movernos. Particularmente considero que cualquier portátil de entre 700 y 1000€ debería satisfacer las necesidades de la mayoría de la gente por un período de unos 4 años. Invertir más dinero no significa necesariamente que el portátil nos vaya a durar mucho más tiempo, sino que obtendremos algunas características adicionales o servicios de valor añadido proporcionados por el fabricante.

La segunda decisión es si vetamos alguna marca. Particularmente considero que existen una serie de marcas como Sony o Toshiba que ofrecen una confianza adicional, pero por el precio de una de estas marcas podemos comprar un portátil mucho más potente de otra. No me gusta hacer recomendaciones negativas porque no suelen ser muy objetivas pero por lo que he estado leyendo la única marca que en principio me desagrada es Asus. Es conveniente además considerar el comprarse un ordenador clónico. Franquicias como PCBOX ofrecen este servicio y suelen ser de buena calidad.

El siguiente punto a considerar es si queremos un portátil linux friendly. A día de hoy no suelen existir muchos problemas para conseguir drivers para cualquier hardware que funcionen en linux, pero algunos funcionan mejor que otros. Personalmente he optado por aquello fabricantes que sacan por si mismos drivers funcionales como una forma de premio por tratar de forma adecuada el software libre.

El último punto general es que uso le vamos a dar al portátil. Y este está muy relacionado con la pantalla. Si lo vamos a usar como un remplazo del de escritorio porque no tenemos sitio en casa y apenas lo vamos a mover podemos optar por uno con pantalla de 17». Si tenemos ordenador en casa y el trabajo y necesitamos algo muy movible para consultar el correo y trabajar durante viajes etc… podemos plantearnos uno con pantalla de entre 12» y 14». Para otros usos, moverlo a menudo pero tampoco estar cargando con él todavía lo mejor suele ser optar por una panorámica de 15.4». Es muy conveniente que antes de comprarlo pidamos ver el portátil encendido y juguemos con el brillo de la pantalla para comprobar lo buena que es.

Pasemos a considerar los aspectos más técnicos del asunto. Téngase en cuenta que mis comentarios son generalizaciones, seguro que los expertos en la materia se pondrían por las nubes, pero a la hora de la verdad poca gente encuentra diferencia entre un ordenador u otro.

Procesador: Es el cerebro del ordenador, pero no nos dejemos engañar por número extraños o vendedores desinformados. A día de hoy cualquier procesador que no ponga Celeron o Semprom será más que suficiente para nuestras necesidades. Es en general preferible gastar algo de dinero en más RAM que en un procesador mejor. Optar por un procesador de intel o por uno de AMD es en principio indiferente. Lo único que resaltaría es que todos los procesadores AMD Athlon permiten la virtualización por hardware mientras que sólo los intel con un número igual o superior a T5600 lo hacen. Si no vais a virtualizar esto os dará igual. Para comparar entre distintos procesadores podeis ver las características de los amd en esta página (usar la parte que pone «model number») o los intel en esta otra (usar la parte que pone «processor number»).

RAM: Es fácil, cuanta más mejor. A día de hoy 1GB obligatorio y 2GB recomendable. El rendimiento también mejora si es a 667MHz en lugar de a 533MHz

Disco Duro: A partir de 100GB es en general más que suficiente si no vamos bajar películas o música de forma compulsiva. Tengamos siempre presente cual es el uso que le vamos a dar al portátil y que los discos duros externos están baratos.

Peso: Si vamos a moverlo yo no cogería nada que en sus especificaciones pusiese más de 3kg (aunque fuese (3.01kg). 2.7kg más o menos puede ser una buena opción.

Wifi: A día de hoy todos los portátiles traen wifi, pero debemos ver que especificaciones cumplen. En principio todos cumplen la norma b/g (que es el wifi absolutamente mayoritario que hay en cafeterías, universidades, …) pero algunos cumplen también la norma a (suelen nombrarse como a/b/g). Que cumpla la 802.11a (nombre oficial) no lo consideraría como algo limitante pero si interesante. Por otro lado podemos preguntar al vendedor que tarjeta wireless lleva para comprobar si existen drivers nativos para linux, podemos emularlos con ndiswrapper o no va. Si es una intel funcionará perfectamente.

Tarjeta Gráfica: A no ser que seamos muy jugones cualquiera vale. A día de hoy tanto las gráficas intel como las nvidia funcionan correctamente en linux (incluida la aceleración 3d). Las ati aún no están al nivel apropiado pero están haciendo esfuerzos en el camino correcto, tal vez en 6 meses si sean una opción a considerar. De todas formas cuidado con las nvidia porque no todas tienen soporte en linux, aquí está la lista de tarjetas soportadas por el último driver. Con la tarjeta más sencilla de intel la GMA 950 yo no he tenido ningún problema y los efectos gráficos en 3d en linux han funcionado sin que haya hecho nada.

Puertos, conectividad y otras cosillas.

  • Todos los portátiles traen puertos USB y tarjeta de red. La mayoría incluyen también modem (aunque yo no me preocuparía si no lo trajera).
  • Algunos traen Firewire (IEEE1394) pero tampoco es muy habitual que lo vayamos a necesitar, podemos pasar de ello.
  • Todos traen también salida para un monitor externo (para conectar un proyector por ejemplo). A mi particularmente me gusta que traigan salida de s-video porque de este modo se puede enchufar el ordenador a la televisión muy fácilmente y usarlo a modo de dvd portátil por ejemplo.
  • La nueva moda es incluir lectores de tarjetas pero yo no lo veo mucha utilidad.
  • Cuidado si necesitáis disquetera porque la mayoría ya no trae dentro del portátil (aunque si existen dispositivos externos)
  • Bluetooth/Infrarojos. Puede ser útil si tienes un móvil que lo tenga para descargar imágenes y otras cosillas del móvil. En caso contrario tampoco le veo mucha utilidad (ratones y teclados inalámbricos suelen traer su propio adaptador. En todo caso tampoco debería ser un factor limitante a la hora de la compra puesto que hay dispositivos USB que dan conectividad bluetooth por alrededor de 20€.
  • Webcam. Si no somos fanáticos de las videoconferencias no es necesario, generalmente no haremos una videoconferencia desde un lugar público por lo que tampoco nos importará mucho comprar una externa. (También alrededor de 25€)
  • Si vamos a usar el ordenador de forma más o menos fija, podría ser muy útil que tuviera puertos PS2 para conectarles un teclado y un ratón externo (Si va a ser ocasional con los USB es suficiente)

Batería: No comento nada, porque es difícil dar un criterio sobre esto, y lo cierto es que hoy en día hay enchufes en prácticamente cualquier sitio donde necesitemos usar un portátil.

Si llegado el momento final tenéis dudas entre varios podéis inclinaros por los fabricantes más responsables en temas medio ambientales.Otras recomendaciones, opiniones, críticas y preguntas en los comentarios :)

Actualización: 14 de Mayo de 2016. Si tienes dudas de cuando comprarlo dicen que la mejor fecha es verano.

Cacharro nuevo

Este entrada es sólo para contar que ya tengo un cacharrito nuevo, comprado gracias a Uniporta, una subvención de la Xunta de Galicia gestionada a través de las universidades gallegas, que este año está mucho mejor planteada que en ocasiones anteriores. Para que la subvención fuera todavía mejor sólo faltarían dos cosas desde mi punto de vista:

  • Que la cuantía de la ayuda fuera en función de la renta familiar y la nota académica ponderada por la media de la carrera (ya sabemos que hay carreras donde la nota media es más alta que en otras)
  • Que se pudiese adquirir el portátil sin ningún sistema operativo instalado. Este es poco factible porque habría que convencer a los fabricantes (no valdría con los distribuidores) o bien comprar clónico, pero sería un avance muy positivo en cuando a neutralidad tecnológica.

En los próximos días seguramente subiré algunas fotillos y comentaré algunas cosillas sobre al ardúo proceso de escoger un portátil «linux friendly», además de como desinstalar un software que no voy a usar e instalar el que realmente quiero.. Espero no saturar demasiado a mis lectores menos tecnófilos.

Instalar driver para D-Link DSL200 en Ubuntu 7.04

El principal problema que puedes encontrarte en un sistema operativo es tener algún dispositivo hardware para el que no existan drivers, es decir que los programas de tu ordenador no puedan usar el cacharro que te has comprado. Yo soy un insatisfecho cliente de ONO, para conectarme por ADSL uso el modem usb d-link dsl 200 b1, que sólo viene con drivers para sistemas privativos. Por suerte en el activo mundo del software libre alguien se ha preocupado de programar un driver llamado eciadsl válido para una gran cantidad de modem adsl por usb.

Como la instalación del citado driver puede dar algún que otro quebradero de cabeza, voy a tratar de hacer una pequeña guia de los pasos que he seguido yo para poder conectarme a internet, particularizando para mi modem con ONO desde una Ubuntu Feisty (v 7.04)

  1. Comprobar que nuestro modem está soportado por el driver en esta página
  2. Comprobar que cumplimos los prerequisitos en cuanto a los paquetes que tenemos instalados. No voy a comentar nada de este paso porque deberían cumplirse para cualquier distribución moderna.
  3. En la sección de downloads de la página podemos ver que archivo descargar en función de nuestro kernel y si tendremos que parchearlo. En general para distros seminuevas nos bajaremos el archivo eciadsl-usermode-0.11.tar.gz sin más.

    Si nuestro kernel es superior a la versión 2.6.18 (como sucede con Ubuntu Feisty el driver por defecto no funciona. Debemos parchearlo con el synch.patch o bajarnos esta versión del driver ya parcheada:eciadsl-usermode-0.11-synch.patch.tar.bz2 (descargable desde el hilo 2.6.18 kernel problem del foro de eciadsl
    Para conocer la versión de nuestro kernel empleamos el comando uname -r

  4. El resto de pasos deben hacerse desde un terminal e identificados como root. Podemos hacer esto anteponiendo la orden sudo a cada uno de los comandos que aparecen aquí o directamente escribiendo su root en el terminal (a partir de ese momento se ejecutan todos los comandos como root.

    En Ubuntu no funciona automaticamente lo de hacer su root para solucionarlo: Sistema -> Administración -> Gestión de Usuarios y Grupos -> y cambiar la clave de root (que por defecto es la de nuestro usuario habitual)
    Con esto ya deberia funcionar.

  5. Descomprimimos el archivo y en el directorio donde lo hayamos hecho tecleamos las siguientes instrucciones (Doy por hecho que estamos usando el archivo ya parcheado):
    ./configure
    make
    make install

    Si tenemos el ubuntu de serie es probable que el configure falle con el siguiente error C compiler cannot create executables. Esto puede ser debido a varias cosas pero seguramente lo solucionaremos instalando algunos paquetes. Para ello introducimos el CD de Ubuntu. Después vamos a Sistema -> Administración -> Gestor de paquetes Synaptic.
    Buscamos el paquete build-essential. Tras unos instantes nos dirá que se necesitan instalar varios paquetes más, aceptamos y después le damos a Aplicar
    Con esto ya deberiamos poder crear los ejecutables tecleando los comandos anteriores.

  6. A continuación debemos descargar el fichero eciadsl-synch_bin.tar.bz2 también disponible en la sección de downloads y descomprimirlo en el directorio /etc/eciadsl. Este archivo contiene los archivos de sincronización .bin (son las información que necesita el modem para conectarse con el proveedor en la etapa en que uno de los leds parpadea)
  7. El siguiente paso es comprobar que tenemos el módulo dabusb deshabilitado. Para curarnos en salud lo que debemos hacer es (tras arrancar el ordenador con el modem desconectado)
    • Si existe el fichero /etc/hotplug/blacklist editarlo y añadir una línea con la palabra dabusb
    • Si no existe el fichero mencionado teclearemos en un terminal eciadsl-remove-dabusb

    A continuación podremos volver a conectar el modem.

  8. Toca configurar el driver. Para ello podemos emplear el comando eciadsl-config-tk(en modo gráfico) o eciadsl-config-text(en modo texto). Si tenemos el ubuntu de serie es poco probable que venga instalado tcl/tk necesario para usar el modo de configuración gráfico de modo que tendremos que emplear el modo texto.

    Si nos toca usar el modo texto y usamos ubuntu es probable que nos encontremos con más problemas. Si aparece algún error a la hora de introducir los datos (especialmente con la clave de conexión) puede ser porque la shell que usemos sea distinta a la que enlaza /bin/sh. En la configuración por defecto de mi Ubuntu 7.04 usa una shell bash pero /bin/sh apunta a una shell dash.

    Podemos ver cual es nuestra shell mediante echo $SHELL y este valor debería coincidir con el que haya en ls -l /bin/sh. Si no es así debemos cambiarlo. Esto podría variar de unos sistemas a otros pero en general será algo así como: ln -fs /bin/bash /bin/sh.

    Tras configurar el driver si queremos podemos volver /bin/sh a su estado original o dejarlo así. Para deshacer el cambio. Si cuando hicimos ls -l /bin/sh apuntaba a una shell que no fuera dash esa es la que debemos emplear en lugar de /bin/dash: ln -fs /bin/dash /bin/sh

    Cuando ejecutemos eciadsl-config-text tendremos que seguir (aproximadamente) los siguientes pasos.
    1. Configure all your settings
    2. Introducir el nombre de usuario que nos haya dado nuestro proveedor de acceso a internet
    La clave que nos hayan dado. (si no sabemos alguno de estos tendremos que llamar al servicio de atención al cliente)
    3. Seleccionamos nuestro proveedor. Si no aparece en la lista podemos seleccionar el 58 que es other con lo cual después tendremos que introducir a mano nuestro servidor DNS o bien seleccionar uno cualquiera de nuestro propio país que en general debería funcionar correctamente.
    4. Damos intro dos veces para aceptar los DNS por defecto (o escribimos los que queramos)
    5.VPI suele ser 8. VCI suele ser 35 (al menos estos son valores correctos para ONO en Pontevedra.
    6. A continuación seleccionamos nuestro modem.
    7. Después 5 intros aceptando los valores por defecto.
    8. A continuación vienen varias opciones que son dependientes del proveedor. En mi caso funciona escogiendo todas las opciones por defecto hasta que pregunta si nuestro proveedor usa DHCP que en mi caso es No y si usas IP estática que en general también será No. El fichero de sincronización que uso es gs7470_synch04.bin

    Aunque es probable que nos valgan varios ficheros de sincronización .bin distintos si cuando estemos conectando pone Synchronization successful y luego Couldn’t get channel number: Input/output error debemos probar otros ficheros. También podemos probar otros ficheros si notamos problemas de desconexiones o la sincronización es lenta. En el propio foro de soporte de eciadsl uno de los desarrolladores comenta que no conocen exactamente el protocolo de sincronización y que en caso de errores es conveniente probar otros ficheros. Para ello, debemos ejecutar eciadsl-config-text y seleccionar la opción 3 para escoger un nuevo fichero de la lista. A continuación podemos volver a ejecutar eciadsl-start para comprobar si hay mejoras.
    A la hora de probar un nuevo fichero lo mejor es apagar y encender el ordenador (no reiniciar) aunque desconectando y conectando el modem unos instantes después debería ser suficiente.

  9. Si todo ha ido bien ya deberíamos poder conectarnos a internet para ello tecleamos eciadsl-start y cruzamos los dedos.
Actualización: El proceso para escribir este post no fue lineal ya que no conseguí hacer funcionar el driver a la primera. Una de las cosas que probé fue a desinstalar el paquete restricted-manager pero no creo que sea necesario, aunque si estas desesperado quítalo. También deberías probar la versión vcs del driver, distintos ficheros .bin, a cambiar el kernel… En todo caso no desesperes en el foro de eciadsl hay multitud de mensajes y seguro que alguno se ajusta a tu problema. ¡Suerte!

Cambiar permisos de forma recursiva y selectiva

Por culpa de un modem con drivers propietarios (y mi ineptitud para instalar unos libres) llevaba unos 6 meses usando Windows. En otro artículo hablaré de mi odisea particular con los drivers, pero en este quiero hablar de uno de los problemas que nos asaltan cuando migramos de sistema operativo, traspasar los datos que tengamos almacenados en el antiguo sistema al nuevo.

Cambiar de Windows a Linux implica cambiar de sistema de ficheros. Si somos un poco meticulosos enseguida nos damos cuenta de que no vale simplemente con copiar y pegar puesto que los permisos de los ficheros que hayamos copiado quedaran descolocados. El esquema de permisos será algo como esto -r-xr-xr-x, es decir, sin permisos para poder modificar los ficheros ya creados y todos con la posibilidad de ser ejecutados. Además todos los usuarios del sistema pueden leer los datos del resto de usuario, con los peligros de seguridad que ello conlleva.

Migrar entre sistemas Unix (o entre distintas distribuciones de GNU/Linux) no nos dará esta clase de problemas a no ser que no copiemos los datos de una partición del disco duro a otra, sino que lo que hagamos sea hacer una copia de los ficheros a DVD y de ahí de nuevo al disco duro. En este caso, también aplicable a cuando hacemos copias de seguridad, lo más sencillo es empaquetar nuestros datos en un archivo comprimido mediante la utilidad tar pasándole las opciones adecuadas en la línea de comandos para indicarle que preserve los permisos originales de los ficheros.

Para crear la copia.
$tar --create --bzip2 --file=copia.tar.bz2 /home/fran/Documentos

Para restaurarla
$tar --extract --bzip2 --atime-preserve --same-permissions --file=copia.tar.bz2

Las opciones aquí empleadas y más información pueden encontrarse como siempre en la ayuda del programa
$man tar

Lo que pretendía explicar era de todas formas otra cosa. En el momento en que tenemos los ficheros copiados y con los permisos establecidos de manera no adecuada debemos tirar del comando chmod para cambiarlos. Para cambiar de manera recursiva los permisos de todos los ficheros y directorios a partir del que elijamos usaremos:
$chmod -R 0777

El probema es que chmod no discrimina tipos de archivo, estaremos asignando los mismos permisos a directorios, documentos de texto, ficheros que nos gustaria que fuesen de solo lectura como fotos, etc. La solución nos la da el comando find. Las posibilidades del comando find son muy amplias aunque para nuestro objetivo expongo aquí las más interesantes:

  • -type d : Devuelve los nombres de los directorios
  • ! : Niega la siguiente expresión. Así, ! -type d Devuelve los nombres de los ficheros no directorios
  • -iname patron : Devuelve los nombres de ficheros (sin distinguir mayúsculas y minúsculas) que coinciden con un determinado patrón, podemos usar los comodines * y ?
  • -iregex patron : Como el anterior pero patrón es una expresión regular.
  • -exec comando {} ; : Ejecuta el comando comando. {} Representa los nombres de archivo devueltos por find, es decir que ejecutamos el comando para cada fichero devuelto por find. ; Es usado por la shell para reconocer el final del comando.

Así para el caso más habitual en que deseamos otorgar permisos de lectura, escritura y ejecución para directorios, y de lectura y escritura para el resto de archivos (y ninguno para el resto de usuarios) los comandos serían:
find directorio -type d -exec chmod 0700 {} ;
find directorio ! -type d -exec chmod 0600 {} ;

Para aquellos con pocas ganas de jugar con los comandos, he escrito un pequeño script. Para ejecutarlo sólo hay que copiar el código y guardarlo en un fichero de texto de nombre cambiar_permisos.sh (por ejemplo). Abrir una consola y escribir:
$sh cambiar_permisos.sh directorio
En el script se distinguen tres tipos de archivos:

  • ficheros con las extensiones .*pdf .*jpg .*jpeg .*bmp .*png .*gif .*avi .*mpg .*mpeg .*mp3 .*ogg a los que se asignan los permisos 0400
  • directorios, a los que se asignan los permisos 0700
  • resto de ficheros, a los que se asignan los permisos 0600


#!/bin/sh

# Francisco Puga Alonso.
# 10/03/2007 v 0.2

# Este software se distribuye sin ninguna garantía.
# El autor no se hace responsable de los posibles daños de su uso
# Este software pertenece al dominio público
# Para consultar la ayuda del script ejecute ./cambiar_permisos -h

# Este script cambia los permisos de los ficheros y directorios a partir del
# directario de entrada que nosotros le indiquemos. A la hora de cambiar los
# permisos, asigna permisos separados a directorios, ficheros de sólo lectura
# y resto de ficheros. Si quiere saber que se consideran ficheros de sólo
# ejecute ./cambiar_permisos -h o consulte el valor de la variable EXT_READ

# Se comprueba que el directorio origen existe, pero no comprueba que tengamos
# los permisos adecuados para cambiarlos


#Ficheros considerados de sólo lectura.
EXT_READ=".*pdf .*jpg .*jpeg .*bmp .*png .*gif .*avi .*mpg .*mpeg .*mp3 .*ogg"
#EXT_REGEX contiene la expresión regular que identificará estos ficheros
EXT_REGEX=".*pdf|.*jpg|.*jpeg|.*bmp|.*png|.*gif|.*avi|.*mpg|.*mpeg|.*mp3|.*ogg"

#Permisos por defecto aplicados a los distintos tipos de fichero considerados
PDIRS="0700"
PREAD="0400"
POTHERS="0600"
DIR="/dev/null"


ayuda() {
#Imprime la información de ayuda
echo "Usage: $0 [-d ] [-r ] [-o ]"
echo "-d :: Permisos aplicados a directorios y subdirectorios. Por defecto 0700"
echo -e "-r :: Permisos aplicados a los siguientes formatos de archivo "
echo -e "(Por defecto 0400):n$EXT_READ"
echo "-o :: Permisos aplicados al resto de ficheros. Por defecto 0600"
echo "-h :: Imprime esta ayuda"
exit
}


if [ $# = "0" ] ; then
echo "Debe especificar un directorio. Use . para referirse al directorio actual"
ayuda $0

else
if ! [ -d $1 ] ; then
echo "El primer parametro debe ser un directorio"
ayuda $0
else DIR="$1"
fi

shift

while (( $# )) ; do
case $1 in
-d ) PDIRS="$1";;
-r ) PREAD="$1";;
-o ) POTHERS="$1";;
-h ) ayuda $0 ;;
* ) echo "Opción Incorrecta" ; ayuda $0 ;;
esac
shift
done
fi


find "$DIR" -mount -type d -exec chmod "$PDIRS" {} ;
find "$DIR" -mount ! -type d -and -iregex "$EXT_NOW" -exec chmod "$PREAD" {} ;
find "$DIR" -mount ! -type d -and ! -iregex "$EXT_NOW" -exec chmod "$POTHERS" {} ;

El código no me ha quedado demasiado bien maquetado pero aún tengo que mejorar mi CSS. Para la realización de este script me he inspirado en este post de Javier Sancho