jueves, 29 de mayo de 2014

controlling cpu temperature with bash scripting

As I said before in a previous post, my favourite linux flavour is gentoo. Gentoo is a good distribution but as many others have some problem implicit in their own philosophy.

All their packets have to be compiled and this is a problem in terms of heating. I mean, if you pc is a very old laptop with one of its fan broken, compiling could be a dangerous task.

Some time my cpu have reached 80 ºC, even though my cpu claim that the critical point is 95 ºC I dont want to test it.

Therefore, in order to keep my cpu cold I make a-very-easy-to-understand script that modulates the cpu frequency.

Firstly, you have to know if your cpu is giving its temperature to the operative system.

ls /sys/devices/virtual/thermal/thermal_zone0/

and you have to see something like this:


This means that you have at least one thermal_zone that normaly is given by ACPI as in my case it is. If you read the content of the file temp, you will be able to see the cpu's temperature in milidegrees.

Secondly, you have to know if you have an active linux module that let you modulate the cpu's frequency with the userspace governor. In my case I'm using p4-clockmod as a frequency modulator. As you can read in several places this driver do not change your cpu at all because speedstep technology is not available in old pentium 4 processor. However this driver halt the cpu several times per seconds in order to emulate a frequency modulation. There are diferents drivers like acpi-cpufreq, as you can imagine this driver let you use the acpi p-states that are available in most of the new cpu that you can buy nowadays.

Let's try to change the cpu speed

You have to know at what frequencys are your proccesor able to run.

sudo cpupower frequency-info


Now you can try to change the cpu frequency.




Now you can try to read my code:

#!/bin/bash

#licenced with gpl-v3
clear

while true
do
   sleep 5
   temp=`cat /sys/devices/virtual/thermal/thermal_zone0/temp`
   echo $temp
   if(($temp <= 70000)); then
      cpupower frequency-set -f 1600MHz
      echo "cpupower frequency-set -f 1600MHz"
   else
      cpupower frequency-set -f 200MHz
      echo "cpupower frequency-set -f 200MHz"
   fi

   
done


example of execution:



Yeah man but.... why are you doing this if there are a good driver called intel-thermal-daemon?

man, i don't know, in gentoo it is not available in the main portage so I want to try by myself.

If you are using ubuntu you can try this driver with
sudo apt-get install thermald

If i were you, I'll definitely try thermald before my shit.

There are a lots of miss spellings a grammar mistakes, I will correct them when I learn proper english.

See you in my next post. (maybe I'm am my only reader)

jueves, 9 de enero de 2014

tutorial: Desactivando ipv6 (y SLAAC) a lo gomero

Tuve un compañero de universidad que por nivel de frikismo vaticinó que sería el típico que gastase sus tardes de invierno en casa compilando el kernel de linux. Por supuesto yo lo negué y dije que jamás sería tan friki como para compilar por mi cuenta el kernel.

Bueno, pues va siendo hora de reconocer mi nivel de frikismo. SI, lo acepto, me gusta linux y me gusta el open source, me gusta compilar el kernel desde que hace un mes aprendí a hacerlo.
He conseguido disminuir el tiempo de carga de mi portátil en 10 segundos y eso que el pobre tiene ya 9 años que en escala humana serían como 99.

La historia comienza cuando este verano quise investigar cuales distribuciones de linux son optimizadas para ordenadores viejos. Empecé probando lubuntu, es de las mejores ya que incorpora el escritorio LXDE que no ocupa nada literalmente. El siguiente paso fue buscar distribuciones más difíciles como puede ser archlinux que tienen la flexibilidad de personalizar los demonios que quieres que carguen al principio etc...
Pero la distribución por antonomasia es GENTOO LINUX y a continuación explicaré el porqué de escribirlo en mayúsculas.

Gentoo es una distribución en que todos los paquetes o programas DEBEN de ser compilados, para ello el instalador te proporciona un gcc y poco más, pero resulta que al contrario que pueda parecer es sumamente sencillo de utilizar.
Dispone del gestor de paquetes emerge, el cual como cualquier otro, detecta dependencias y las descarga y compila, todo ello sin uno tener que escribir ningún comando mágico en la consola.

Las ventajas son tremendas dado que uno controla las optimizaciones independientes de la máquina que hace gcc e incluso puede decirle si tu procesador tiene el repertorio SSE o SSE2 como es mi caso.
Esto resulta en un código especial para tu procesador lo cual es sumamente positivo, dado que un programa determinado irá más rápido en determinadas circunstancias.

Después de este prologo un tanto largo no voy a continuar con la explicación de porqué es necesario desactivar SLAAC en un entorno en que ipv4 es suficiente, sino iré directamente al grano.
Para quien quiera informarse del tema seguir el siguiente enlace:
http://www.elladodelmal.com/2013/03/evil-foca-ataque-slaac-1-de-4.html

Como bien dice el título del post, va a ser una solución gomera, es decir... a lo bruto. ¿Para qué quiero desactivar ipv6 si siempre puedo no incluirla en la pila de protocolos?

Sabiendo compilar el kernel y no perdiéndose entre tantas opciones de configuración, es sumamente sencillo deshacerse de ipv6 de una vez por todas.

Antes de empezar decir que este tutorial está hecho para gentoo linux, pero quien tenga ubuntu que se mire el manual de como compilar el kernel:
https://help.ubuntu.com/community/Kernel/Compile

Nos vamos a la carpeta donde está el fuente:
cd /usr/src/linux


tecleamos make menuconfig
o sudo make menuconfig si no tenemos permisos de administrador:


nos aparecerá una pantalla bien bonita hecha con ncurses:



Nos dirigimos a:
Network Supporting -> Networking Options -> The IPv6 Protocol

y escribimos la N de no para decir que no lo queremos en el kernel ni como modulo.




le damos a exit y esto hará que se guarde el config en .config


lo unico que queda es lo normal en estos casos


  1. hacer make
  2. ir a arch/x86/boot/bzimage y copiarla a /boot
  3. luego hacer make modules_install para compilar los modulos..
  4. luego como opcional hacer una imagen inicial de ram initramfs... "genkernel --install initramfs"
  5. y por ultimo decirle al bootloader que hay un nuevo kernel listo "grub2-mkconfig -o /boot/grub/grub.cfg"


y reiniciar....

ESO es to, eso es to, eso es tooodoo amigos.

Hemos borrado de un plumazo un protocolo de red de la pila, fácil, sencillo y para toda la familia!

En un capitulo posterior discutiremos cuales son las desventajas de tener los drivers compilados en módulos y cuales son las ventajas de incorporarlos dentro del kernel. JIJIJIJIJI soy friki!

domingo, 24 de noviembre de 2013

Españoles Google Reader ha muerto, larga vida a Play Kiosko.

Antes de nada disculparme por no haber posteado desde hace dos semanas pero me he dado cuenta que esbribir un post semanal es mucho más complicado de lo que en principio uno puede pensar.
Aprovecho para anunciar que la periodicidad cambia de semanal a mensual.

A continuación pondré un sencillo tutorial de como añadir el feed rss de mi blog a la nueva aplicación de google.

Play Kiosko es la conjunción de Play Revistas junto con currents y además incorpora un lector de rss. Se observa claramente el esfuerzo por parte de google para aunar todas sus aplicaciones en un tipo de interfaz mucho más homogéneo orientado a la salida de su último móvil Nexus.

Se observa claramente como en la esquina superior izquierda tenemos el botón típico para mostrar el menú, con lo que nos queda un poco inútil el botón físico de menú característicos de los móviles android.



Menú Principal de Play Kiosko

Una vez accedemos a la sección de noticias personalizadas observamos el botón de búsqueda en la esquina superior derecha (con lo que de nuevo el botón físico de búsqueda queda un poco inútil) y realizamos una búsqueda por palabras o directamente poniendo la url del xml del feed rss.

Mis feeds favoritos


escribimos la dirección url de nuestro blog preferido y lo añadimos

Resultados de búsqueda


Ponemos la característica de que guarde en el móvil para leer las noticias más adelante.
Guardar en dispositivo


Y como último paso, disfrutar de nuestro blog preferido en nuestro móvil o tableta.
Feed RSS parseado y bien presentado.

domingo, 10 de noviembre de 2013

Ambidextro II

Pasa una semana más y no tengo ningunas ganas de escribir en mi blog, así que saco de mi chistera un nuevo post de relleno.

Esta pregunta tiene historia porque me vine a dar cuenta después de tantos años comprando en sainsbury (supermercado) el pasado verano.

Resulta que me fijo en la fila de cajas y casualmente habían varios clientes pagando al mismo tiempo que yo y gracias a mi capacidad de pensar en cosas inútiles todo el tiempo me di cuenta de algo que para mi pasaba desapercibido.

Con que mano coges la cartera y con cual sacas dinero?

A) Mantengo la cartera con la mano derecha y saco dinero de ella con la izquierda.
B) Mantengo la cartera con la mano izquierda y saco dinero de ella con la derecha.
C) Hago uso de la tecnología contactless y no tengo que sacar nada de la cartera. (Sal de mi blog ya)

Como pista he de adelantar que a las personas que he preguntado, la mayoría de zurdas responden A y la mayoría de diestras responden B.

En este caso, parece ser que soy zurdo y mi respuesta es la A.

Como es habitual, sus respuestas en comentarios.

sábado, 2 de noviembre de 2013

Ambidextro I

Como no tengo ganas de llevar al día un blog, iniciaré una serie de post dedicados única y exclusivamente a rellenar huecos en mi blog.

Esta serie de post van dedicados (a mi mismo lógicamente) a socavar información a mis lectores haciendo una encuesta sobre acciones comunes de la vida diaria. El objetivo es comprobar si yo soy más diestro con la diestra o más diestro con la siniestra.

La primera persona que se dio cuenta de esta condición no fue otra que mi madre. Ella llegó a la conclusión que uso la mano derecha para las actividades de cierta habilidad y precisión, en cambio uso la izquierda para las actividades de fuerza y potencia.
Un ejemplo de esto anterior es que soy zurdo para jugar al fútbol pero sin embargo soy diestro para escribir.

Lo que quiero corroborar con estos post, es simplemente si mi madre tiene razón o simplemente yo decido por una mano o por otra sin ningún tipo de lógica o simplemente por minimizar el gasto energético mecánico.

Pregunta a los lectores:
Supón que vas a un mcdonald y te dan tu bebida con su tapita transparente...
¿Con qué mano destapas la tapita de tu bebida?

Posibles respuestas:
A) bebo con la pajita (sal ya de este blog, no has entendido nada del post)
B) uso la derecha para sostener el vaso y la izquierda para destapar.
C) tenía la bebida en mi mano derecha pero me tengo que cambiar el vaso de mano para poder seguir usando la derecha para destapar la tapa.
D) siempre sostengo la bebida con la zurda y destapo con la derecha.

redoble de tambores......

Mi respuesta es la B (sostener la bebida necesita la precisión de la derecha y abrir cosas necesita fuerza)
Dejad vuestras respuestas en los comentarios...

lunes, 28 de octubre de 2013

Regalo al revés

Coincidiendo con mi cumpleaños iniciaré una idea que llevo rumiando por lo visto desde el año 2007. Escribir un diario con mis pensamientos para que queden registrados allí donde google tenga su CPD.

En esta entrada no voy a explicar los detalles de quién o cuales son mis motivaciones que me han llevado a escribir estas líneas, eso lo haré en un post posterior, valga la redundancia.

Atendiendo al título de la entrada, uno puede darse cuenta de por donde van a ir los tiros. Como todo buen blog que se precie el master debe de dar regalos a sus lectores con el fin de aumentar la fidelidad de los lectores. Pues bien, ni tiene por intención aumentar el número de lectores, puesto que esto pretende ser un diario para mí, ni va a ser un regalo a cualquier persona.

Normalmente cuando se hace un regalo, normalmente tanto la persona como la fecha están predefinidas y lo único variable es el regalo en sí.
En este caso, lo predefinido es el regalo y la persona, la variable es la fecha que tanto pudo ser enviado a su destinatario hoy como el día en que lo adquirí allá por septiembre.

A continuación la descripción del regalo:
En sí mismo es una contradicción de los términos, es un libro sin palabras, es un libro que no las necesita.
Es un libro ilustrado, del mismo tipo que leíamos todos antes de ser escolarizados, el pollitio pio, la vaca mu, la vogue oh la la.

Es una recopilación de ilustraciones que han sido portada en la revista vogue durante toda su historia.

Y sí, la persona destinataria de este regalo eres tú y nunca serás una variable, eres una constante en mi vida.