domingo, 30 de septiembre de 2012

Instalando Ubuntu en Vostro 3500 (parte 2)

Hace año y medio escribí una entrada en el blog explicando los problemas que había tenido con la instalación de Ubuntu Maverick en mi Dell Vostro 3500. Por los comentarios que tuve, parece que había bastante gente con los mismos problemas que yo (y que tambien me ayudaron a arreglar mis problemas), así que ahora que hace unos meses que actualicé a Ubuntu Precise (12.04), llegó el momento de actualizar la entrada.

Tarjeta gráfica


Como comenté en entrada anterior, este portátil tiene una tarjeta híbrida que no está soportada en ubuntu por defecto. Hace algo más de un año probé Bumblebee, pero estaba bastante verde, me dio muchos problemas y acabé por desinstalarlo. En cambio ahora es un proyecto bastante estable y llevo utilizándolo varios meses sin ningún problema.


Usando Bumblebee, por una parte, se consigue una mejor gestión del consumo de energía desactivando la tarjeta cuando no se usa (lo que se nota bastante trabajando con batería) y por otra permite activarla manualmente ejecutando las aplicaciones desde consola anteponiendo el comando optirun


He leído en pcworld y en phoronix que nvidia ha empezado a trabajar en un driver para este tipo de tarjetas, pero todavía no hay fechas, así que por ahora la mejor opción sin duda es Bumblebee.



HDMI

He probado a conectar el portátil a la tele con un cable HDMI y detecta la tele, pero no se ve el vídeo (con un cable VGA funciona sin problema). 

No he investigado el problema, así que no se si es un problema de configuración o si realmente no se puede.

Lector de huellas

El lector de huellas integrado (VFS300) todavía no está soportado. Hay un error abierto en launchpad desde hace bastante tiempo y en el comentario #51 hay un paquete que añade soporte para este lector.


Ejecutando las instrucciones del comentario en la configuración del usuario se puede activar su uso.  Pero me he encontrado varios problemas. El primero es que no va muy fino (la mayoría de las veces me da error al reconocer la huella) y el segundo es que al hacer login vuelve a pedir la contraseña para desbloquear el keyring (el keyring es donde ubuntu guarda las contraseñas, p.e. las de las wifis).


En la descripción del PPA oficial de fprint está muy bien explicado que es el keyring y como desactivar que pida contraseña (sección 'Note on keyrings and passwordless login') aunque esta última parte no la he probado.


Volviendo a launchpad, en el último comentario de final de agosto, pone que el bug ya está corregido, pero todavía no está aplicado en la versión de ubuntu. En resumen, seguiré con el lector desactivado por ahora hasta que esté mejor integrado.

La última versión de fprint ya incluye el soporte para el lector, así que instalándolo según las instrucciones, ya se puede usar sin problemas, aunque con las limitaciones que he comentado antes.




Unity


Otro de los grandes cambios al actualizar ubuntu fue cambiar gnome por unity, al principio es todo un poco raro, pero a la que llevas un tiempo usándolo se nota la mejora, queda bastante más espacio libre en la pantalla al tener los menús integrados en la barra superior y no tener la barra inferior de aplicaciones y a la que te acostumbras a buscar las aplicaciones por nombre (pulsando la tecla windows) es mucho más cómodo que la búsqueda por menú de gnome.


Con Unity desaparecen todos los indicadores del menú superior (por ejemplo el icono de skype), pero se pueden activar fácilmente tal y como explican en webupd8 ejecutando desde consola
gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"

Otro problema para mi era no tener los applets de gnome, que usaba varios. Los que me he instalado son:

System Load Indicator para tener monitorizado el uso de memoría, cpu y carga del sistema
sudo add-apt-repository ppa:indicator-multiload/stable-daily
sudo apt-get update
sudo apt-get install indicator-multiload
Jupiter para la gestión automática del consumo cuando se trabaja con batería. Tiene más opciones, pero no las uso normalmente
sudo add-apt-repository ppa:webupd8team/jupitersudo apt-get update
sudo apt-get install jupiter
Hardware Sensors Indicators para tener monitorizar los sensores, principalmente el de temperatura
sudo add-apt-repository ppa:alexmurray/indicator-sensors
sudo apt-get update
sudo apt-get install indicator-sensors
Previamente a instalar esta última aplicación ejecuté xsensors que detecta los sensores disponibles y instala los módulos necesarios para los sensores detectados.
sudo apt-get install xsensors
sudo sensors-detect

En AskUbuntu hay una lista bastante completa de applets.

Ventilador

El ventilador ya no se puede gestionar como en gnome usando las alarmas de sensors applets, así que he optado por la solución que me propuso samsagax en mi post anterior, gracias de nuevo!

La solución consiste en installar i8kutils y arrancar el módulo (para que arranque automáticamente al reiniciar se debe añadir i8k en /etc/modules)
sudo apt-get i8kutils
sudo modprobe i8k
Una vez instalado, editamos el fichero .i8kmon en el home del usuario, con los umbrales de temperatura adecuados para nuestra instalación (en man i8kmon los explica perfectamente)
more ~/.i8kmon 
set config(0) {{- 0}  -1  55  -1  60}
set config(1) {{- 1}  50  65  55  70}
set config(2) {{- 1}  50  65  55  70}
set config(3) {{- 2}  60 128  65 128}

Si no se configura tiene unos valores por defecto de temperatura, que en mi caso creo que son demasiado altos. Tambien se puede configurar en /etc/default/i8kmon. aunque prefiero la opción de ponerlo en mi home, ya que tengo particiones separadas para home y / y si formateo / no pierdo la configuración.

Y ya solo queda arrancarlo (-a para que controle la velocidad del ventilador a parte de monitorizar y -d para que arranque en modo demonio)
i8kmon -a -d


Bueno, pues por ahora esto es todo respecto a mi configuración. Como en la entrada anterior, iré actualizando a medida que vaya descubriendo nuevas configuraciones....




viernes, 15 de junio de 2012

Euruko 2012 - Impresiones

Para no perder la tradición, de nuevo he estado en Euruko, este año en Amsterdam.

Aprovechando que hemos puesto en común las impresiones en ASPgems (agradecido porque de nuevo me financió este año el viaje) y que acaban de publicar los vídeos en vimeo, es el momento de reflexionar un poco sobre la conferencia.

La verdad es que este año me ha decepcionado un poco. Es una conferencia a la que he ido ya varias veces y la tenía un poco idealizada, como una conferencia pequeña, en la que siempre me sorprendían las conferencias, con multitud de aplicaciones curiosas de ruby fuera del mundo web que es el que conozco y uso habitualmente.

Pero este año me encontré con una conferencia multitudinaria, demasiado rígida, en la que preferían cortar las preguntas antes de retrasar cinco minutos la siguiente charla, demasiado 'enterprise' (el señor jruby contando la maravillas de su producto, idem el señor rubinius, ...) y sin nada que me sorprendiera especialmente.


Espero que el año que viene en Atenas le vuelvan a dar el toque de frescura que ha perdido.

A pesar de que parece muy negativo todo lo que he puesto, porque tenía unas espectativas demasiado altas, la conferencia ha sido interesante y ha habido unas cuantas charlas recomendables. Si me tuviera que quedar con cinco elegiría:

Bruno Aguirre - The Future is Dead: Long live the Past, filosofando un poco sobre programación
Mitchell Hashimoto - Building a Ruby Library, the Parts No One Talks About dando buenos consejos sobre como hacer una librería en ruby
Roy Tomeij - The Joy of Front-End, A Journey with Bob Ross con más interesantes consejos, en este caso de front-end
Sean Cribbs - A Case of Accidental Concurrency planteando un problema real de concurrencia y el proceso de resolución
Martin Rehfeld - Ruby & Erlang, At Scale with Style aunque no fue de las mejores charlas, siempre es interesante ver como resuelven en wooga sus problemas de escalabilidad


Nos vemos en Atenas :)

jueves, 25 de agosto de 2011

Borrando imágenes no usadas en un proyecto Rails

Para acabar el rediseño de un proyecto, estoy en la fase final de limpieza de código y me he encontrado que habían muchísimas imágenes antiguas que ya no se utilizan

En lugar de ir buscando una por una si se usaba, que me iba a llevar demasiado tiempo, he hecho un script en ruby que busca las imágenes no usadas y las borra de subversión:


images = Dir.glob('public/images/*')

images.each do |image|
  unless File.directory?(image)
    puts "Checking #{image}..."
    if IO.popen("ack-grep -1 -G '(app|public)' --ruby --html --css #{File.basename(image)}").eof?
      IO.popen("svn delete #{image}")
      puts " Deleted"
    end
  end
end

Es tan simple como buscar todas las imágenes del directorio images y aplicar sobre cada una de ellas un ack-grep que me busca en ficheros de ruby (.rb, .erb), html y css de los directorios app y public. El párametro -1 hace que al encontrar el primer resultado deje de buscar, con lo que conseguimos que vaya un poco más rápido.

Luego, sobre cada una de las imágenes no usadas hace un svn delete y ya solo nos queda revisar la lista de borrados para asegurarnos de todo ha ido bien y un commit al repo.

La modificación para que busque tambien en subdirectorios de images sería  usar 'public/images/**' como parametro en Dir.glob y igual de simple sería cambiarlo para que use git, cambiando la llamada del segundo IO.popen

Pues nada, aquí dejo el gist con el script para quien le pueda ser de utilidad.



viernes, 17 de junio de 2011

Euruko 2011 - Impresiones

Manteniendo la tradicción de contar mis impresiones de las conferencias a las que asisto, le toca el turno a Euruko, que fue en Berlín a final de Mayo (ya me vale tardar casi 3 semanas en escribirlo...)

Este año me han gustado bastante las charlas, más que el año pasado. De todas formas Euruko es una conferencia que nunca defrauda.

La organización fue magnífica, con una sala impresionante, la wi-fi más rápida y la pantalla más grande que nunca he visto en una conferencia. Y litros y litros de Club Mate para recuperarnos de las largas noches berlinesas.

Por criticarles algo, el infierno que supuso conseguir un ticket para asistir, y en la sala de conferencias se les olvidó que existe mundo aparte de los mac. La única forma de conectar un portátil era con DVI, y más de uno tuvo que hacer su lighting talk sólo hablada sin poder proyectarla.

Eso si, ese olvido nos proporcionó en una ligthing talk una extraña pareja en el escenario: un MacBook Air y Javi Ramírez :p

Por destacar 3 charlas:

* Para mi la estrella sin duda de este año fue Paolo Perotta y su magnífica charla sobre method missing

* Karel Minařík hablando sobre ElasticSearch y su gema Tire , que ahora mismo creo que son la mejor alternativa para usar Lucene desde ruby (los que esteis usando Solr vale la pena echarle un vistazo)

* Tambien destacaría la charla de wooga sobre escalar juegos en Facebook, con muy buenos consejos, y lo mejor, todos apoyados en datos reales y su experiencia.

Que destaque esas tres no quiere decir que fueran lo único interesante, y igual si lo escribiera dentro de unos meses eligiría otras. Hubo mucha variedad de temas, filosofía sobre patrones de diseño, eventos, concurrencia, javascript, procesado de imagen....

En definitiva, vale la pena dedicarle unas horitas a ver los vídeos cuando se publiquen.

Por último, parece que Arduino y Adhearsion se han hecho un hueco en muchas conferencias por la variedad de temática que ofrecen respecto al resto de charlas. Y de nuevo por criticar algo, al final todas las charlas que he visto de esos dos temas son muy parecidas, y me producen un sentimiento encontrado de 'como molan' y 'otro año más más de lo mismo'.

Agradecerle a ASPgems que me financiara el viaje y la estancia y nos vemos en Amsterdam en la última Euruko antes del fin del mundo....

sábado, 2 de abril de 2011

Instalando Ubuntu en Vostro 3500


Actualización 10/12: He creado una entrada complementaria a ésta explicando las novedades en la instalación en Ubuntu 12.04 
http://diec123.blogspot.com.es/2012/09/instalando-ubuntu-en-vostro-3500-parte-2.html


Hace un par de meses cambié mi Dell Inspiron 6400, al que después de 4 años ya le tocaba descansar un poco, por un Dell Vostro 3500. Iba a poner un link a las especificaciones, pero veo que ya no lo venden y ahora está el Dell 3550, que es muy similar pero la tarjeta gráfica en lugar de ser nVidia GeForce es una ATI Radeon.

Lo primero que hice al encenderlo despues de ver que funcionaba con el Windows 7 de serie, fue instalar Ubuntu 10.10.

Tengo un par de compañeros de oficina que tienen ubuntu 32bits en este mismo ordenador, pero yo he probado con el de 64bits a ver que tal funciona.


Estos son los problemas que me he encontrado con el portátil:

Wi-Fi
La wi-fi conecta sin problemas, pero la conexión a internet no va todo lo rápida que debería ir (conectando directamente por cable al router me da 50Mbps y por wi-fi nunca me daba más de 7 o 8 Mbps). Además iwconfig siempre me daba como Bit Rate 1Mbps, así que me puse a investigar un poco...


Según las especificaciones del ordenador es una Dell Wireless 1501 (802.11b/g/n), pero según donde miraba me decía que es una Broadcom 4727 o una Broadcom 4313

$ dmesg | grep Wireless
[    8.954673] eth1: Broadcom BCM4727 802.11 Hybrid Wireless Controller 5.60.48.36

$ lspci -nn| grep Network
12:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g LP-PHY [14e4:4727] (rev 01)


En la web de Broadcom aclaré ese lío de nombres, la respuesta está en el readme.txt del driver. Dell 1501 es el nombre que le da Dell a la tarjeta, que realmente es una Broadcom 4313 y el 4727 es el vendor id. Al ejecutar lspci con la opción -nn muestra el id del fabricante (14e4) y de la tarjeta (4727).


En ese mismo readme.txt en la sección 'what's new' hay varios cambios que afectan a esta tarjeta que no están en el driver que instala ubuntu por defecto, así que me descargué el driver, compilé y instalé siguiendo las instrucciones.

Con el nuevo driver ha subido bastante la velocidad de conexión y iwconfig ya da la velocidad de conexión real. Problema resuelto.


Tarjeta gráfica

Este ordenador lleva una tarjeta gráfica híbrida, por lo que parece cuando hace falta poca potencia gráfica o en modo de bajo consumo utiliza sólo la tarjeta integrada y cuando se necesita toda la potencia utiliza la nVidia.

$ lspci |grep VGA
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 18)
01:00.0 VGA compatible controller: nVidia Corporation GT218 [GeForce 310M] (rev a2)



pero el driver de nVidia no se lleva bien con ubuntu, y al instalarlo se queda frito el entorno gráfico

Hay un error abierto en launchpad

https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers/+bug/643895

Pero los últimos drivers siguen sin funcionar bien, así que seguiremos esperando....

Además da un error de la tarjeta integrada al arrancar:

$ dmesg |grep intel
...
[    7.382308] intel ips 0000:00:1f.6: failed to get i915 symbols, graphics turbo disabled
...

Y tambien hay un error abierto en launchpad que dicen en los comentarios que se soluciona con la última versión del kernel

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/651104

Y para acabar de liarla, hay algún error más en el log de arranque

$ dmesg |grep Graphics
[   12.717458] agpgart-intel 0000:00:00.0: Intel HD Graphics Chipset
[   13.011187] [drm] MTRR allocation failed.  Graphics performance may suffer.

Así que por ahora he decidido no darle más vueltas a la tarjeta y esperar a ver si se soluciona. Será por todos estos problemas por lo que han cambiado de nVidia a ATI en el nuevo modelo???


Lector de huellas

Tiene integrado un lector de huellas que en windows funciona sin problemas, pero que ubuntu no lo reconoce:

$ lsusb
Bus 001 Device 004: ID 138a:0008 DigitalPersona, Inc



Actualizando la lista de Ids, al menos se entera de que es un lector de huellas

$ sudo update-usbids
$ lsusb
Bus 001 Device 004: ID 138a:0008 Validity Sensors, Inc. VFS300 Fingeprint Reader


Instalé fingerprint-gui desde ppa a ver si lo reconoce

$ sudo add-apt-repository ppa:fingerprint/fingerprint-gui
$ sudo apt-get install fingerprint-gui

pero no reconoce el lector, y de nuevo en launchpad encontramos otro error abierto


https://bugs.launchpad.net/ubuntu/+source/linux/+bug/285089

Por lo que dicen, parcheando y compilando la última versión de libfprint funciona, pero todavía no lo he probado.



Ventilador
Otro problema que me he encontrado es el ventilador, que una vez que arranca, ya no para nunca. No es un ruido insoportable y en un ambiente de oficina ni se nota, pero estando en casa si que se nota.

Con Dellfand se puede modificar la velocidad del ventilador en función de la temperatura, que parece que tiene 3 estados (parado, velocidad lenta y velocidad rápida).

Al ejecutarlo detecta la temperatura y la velocidad del ventilador, pero no es capaz de actualizarla. En el ejemplo intenta actualizar del estado 2 al 0 pero le da error

$ sudo ./dellfand 0 5 45 50 55
Fan 0 Status 2->0 Speed 138000 CPU Temp 42C
dellfand: warning: set fan 0 status to 0 last cycle, it's now 2 (BIOS interference ?)
Fan 0 Status 2->0 Speed 138000 CPU Temp 42C
Fan 0 Status 2->0 Speed 138000 CPU Temp 45C


Así que conviviremos con el ventilador por ahora...

He encontrado muchas quejas por foros, pero ninguna solución. Gracias a Mr. Anónimo (ver comentarios) he resuelto el problema


Se debe instalar i8kutils (la descripción del paquete es 'utilities for Dell Inspiron and Latitude laptops' pero funciona sin problemas en mi Vostro), y i8kfan nos va a permitir cambiar la velocidad del ventilador.

Para que funcione hay que cargar el módulo (y añadirlo en /etc/modules para que lo cargue al arrancar)

sudo modprobe i8k

i8kfan admite 2 parámetros (para controlar 2 ventiladores), como este ordenador sólo tiene un ventilador, le pasamos -1 en el primer parámetro y en el segundo parámetro la velocidad (0, 1 o 2), aunque el 0 no funciona y en pocos segundos pasa al 2 (parece que la bios no permite pararlo).

i8kfan -1 1

Y por último añadimos un par de alarmas en el sensors applet tal y como está explicado perfectamente en los comentarios.

Actualización 07-08-2011:  samsagax explica en los comentarios como monitorizar automáticamente con i8kmon sin necesidad de definir las alarmas. Gracias!



En resumen podría parecer que es un desastre de ordenador, igual es que soy muy sufrido, pero la verdad es que estoy bastante contento con él y seguiré comprando Dell a pesar de todos estos problemas :)