domingo, 14 de julio de 2013

Rom GingerCerecilla para GT-S5570I o "Pop Plus"

Tengo 3 tlf de este modelo en casa desde hace un año o así... y siempre nos han dado problemas de cobertura y cortes durante las llamadas.
He probado a actualizar el terminal de todas las maneras posibles y siempre me pasaba lo mismo... tenía que hacer varias veces la misma llamada para poder terminar la conversación.

Bueno, visto que ninguna Rom modificada me iba bien, ya que todas están portadas desde el GT-S5360 que no es el mini, si no el "Samsung Galaxy Y", tomé la iniciativa de crear una ROM a partir de una Rom-stock nueva, la ultima versión disponible a fecha de hoy para el gt-S5570i. (que no llega por OTA sin entender el motivo y que aparentemente tiene corregido el problema con los cuelgues en llamadas) y de paso quitar toda la porquería de los operadores y cosas de samsung, como el Swype que ocupa 12 Mb y no usa casi nadie....

Mi trabajo me ha costado pero hoy os dejo todos los pasos para terner esta rom, que es la última Rom Stok libre de España modificada por mi.

Muy importante, no me hago responsable de los resultados ni bricks (fallos) que podáis tener durante su instalación.
El proceso de flashear un terminal siempre es arriesgado, haganlo bajo su propia responsabilidad.

Dicho esto, os pongo las características:

Características de la última versión:


Rom base:

Modelo: GT-S5570i
Lugar: España

Version: Android 2.3.6
Product Code: PHE
PDA: S5570IXXMC1
CSC: S5570IOXXLK3
MODEM: S5570IXXMC1

BOOTLOADER:S5570IXXKL2_REV03.tar.md5

Modificaciones iniciales:

- Solucionado los problemas de cobertura (sin servicio) y cuelgues en llamadas  
- Rooteada con superSu
- Busybox añadido.
- Soporte para /init.d
- Alineamiento zip (Optimiza el rendimiento)
- Deoxeada (Optimiza el rendimiento)
- Link2SD para poder mover programas a la tarjeta SD
- Eliminados programas inútiles a mi parecer.... si los hechas de menos los instalas desde el PlayStore ;)
- He dejado todos los idiomas por accesibilidad a otros paises a esta CustomRom.
- CSC configurado como FOP (Sin operador)
- Añadido compatibilidad con Bootanimation.zip
- Añadido más sonidos de alarma y tonos de llamadas
- Animaciones e iconos modificadas.
- Launcher sustituido por ADW
- Añadido el Recovery CWM permanentemente. (NUEVO desde la versión 0.6)
- Añadido Editor "nano" para la terminal y/o adb en modo desarrollo.(NUEVO desde la versión 0.6)
- Mejorado el rendimiento de la RAM. (NUEVO desde la versión 0.6)
- Transparencias en la barra de estado. (NUEVO desde la versión 0.6)
- Menú extendido para el botón power, ahora permite nuevas opciones, como reiniciar, cunmutar datos y capturar la pantalla.
- 6 Estilos nuevos de bloqueo de pantalla y 14 conmutadores entre ellos linterna.
- Nuevo menú extendido en "Ajustes" con los "Ajustes GingerCerecilla".
- Cortafuegos DroidWall para controlar que aplicaciones puede acceder a Internet.
- Totalmente traducido al español y con diccionarios XT9 incluidos. (No vivo sin ellos XD)

Kernel Cerecilla-0.3 (NUEVO):
- Soporte para EXT4.
- Soporte para Swap.
- Soporte para /proc/config.gz .
- Añadido varios Governadores de CPU, ahorra energía. (Gracias al parche de KUNEO)
- Soporte para STATS de CPU. (Gacias al parche de KUNEO)
- Soporte para IPTABLES


Agradecimientos:

Gracias al diseñador web Diego Altamirano por sacar tiempo para crear el audio personalizado de encendido y ayudarme a procesar imágenes para el bootanimation de encendido y apagado.

Gracias a sicopat de xda por recopilar información que me fue util para crear el menú extendido con algo de imaginación por mi parte:
http://forum.xda-developers.com/showthread.php?t=1169443

Gracias a los archivos y explicaciones de ocoot para añadir el menú de capturar pantalla:
http://forum.xda-developers.com/showthread.php?t=2350724

Gracias a pratyush.creed por su tutorial para añadir los locks screen:
http://forum.xda-developers.com/showthread.php?t=1746628

Gracias a saqib nazm por su guía de como integrar aplicaciones al menú:
http://forum.xda-developers.com/showthread.php?t=2341389

Gracias a lidroid por todos sus aportes en xda y por el tutorial para la barra de estado con la solución para la linterna incluido.
http://forum.xda-developers.com/showthread.php?t=1289896


Recomendación de instalación:

Este MOD está hecho sobre la versión de android 2.3.6, en concreto sobre la revisión para nuestro GT-5570i con número S5570IXXMC1, así que se debe flashear el tlf con esta versión mediante odín. Si tienes una versión superior no aconsejo instalar GingerCerecilla, en tal caso contáctenme si siguen interesados y tal vez podamos adaptarlo todo a su ROM y así todos disfrutaríamos de una versión más moderna de Android.

IMPORTANTE: Desde la versión 0.6 en adelante de Ginger-Cerecilla es obligatorio usar el nuevo archivo pit modificado por mi, dentro de la carpeta ODIN, más abajo la aclaración!

- Descargar Odin3_v1.84+pit-modded_by_Scorpyo82.zip
- Descargar versión base S5570IXXMC1 

Antes de empezar, aclarar que para usar  "odin" es necesario que tengamos los drivers de de Samsung en nuestro PC, y la forma más rápida y segura de obtener los drivers es instalando KIES de Samsung, una vez instalado no lo usaremos, ya que solo nos interesa que nos instale los drivers.
Si no queréis KIES en vuestro PC podéis eliminarlo más tarde depués de flashear el tlf y comprobar que todo está correcto.

Instrucciones para el flasheo de la Rom Stock


1.- Arrancar  Odin3_v1.84 y cargar los archivos descargados de la siguiente forma:

PIT: Este archivo está dentro de la carpeta de Odin, sirve para particionar la memoria interna del tlf. Para versiones de Ginger-Cerecilla inferiores a la 0.6 podemos usar el pit original, que es el "tassve_0623.pit", pero para las versiones iguales o superiores a 0.6 es imprescindible usar el "tassve_0623-moded_by_Scorpyo.pit" que es el que he modificado para poder acoger la permanencia de CWM, ojo con esto o no arrancará el tlf y habrá que volver a empezar.

BOOTLOADER: DefaultCalDataWithBoot_S5570IXXKL2_REV03.tar.md5

PDA: PDA_S5570I_XXMC1.tar.md5

PHONE: MODEM_S5570I_XXMC1.tar.md5

CSC: CSC_S5570I_OXXLK3.tar.md5

Nota: Si no vais a usar el pit original, recomiendo borrarlo para evitar confusiones.

-Marcar las opciones "Re-Partition", "Auto Reboot" y "F. Reset Time"
  

2.- Apagar el teléfono.

3.- Encender el tlf en modo Download (power + home + Bajar Volumen) y pulsar volumen arriba para confirmar la entrada.


4.- Conectar el tlf y observar que aparezca ADD en odin, entonces presionar en start y se empezará a Flashear el tlf con los archivos descargados, esperar a que el tlf se reinicie solo. ¡No desconectarlo mientras está flasheando! (Tardará  cosa de un minuto)

Ya teneis la versión stock actualizada... ahora vamos a modificarla...


Instalando GingerCerecilla

1.-Preparaicón de tarjeta SD:

1.1.- Descargar pop_plus_CWM y colocar en la tarjeta SD
1.2.- Descargar la rom Ginger-Cerecilla_v0.6 final y colocar en la tarjeta SD
1.3.- Introducir la tarjeta SD en el movil

2. Instalación en el teléfono:


2.1.- Encender el tlf en modo recovery, (botón power + home + Subir Volumen) usar la opción "Apply update from sdcar"
2.3.- Elegir el archivo "pop_plus_CWM"
2.4.- En el nuevo recovery hacer  Wipe Data, Wipe cache, y Wipe Davilk Cache (en el menú Avanced)
2.5.- Volver al menú principal y elegir "Install zip from sd"
2.6.- Elegir la opción "choose zip from sdcard" y elegir el arhivo Rom Ginger-Cerecilla_vX.X

Listo!
El primer encendido tardará algo, pero es normal porque se está generando la caché para acelerar el arranque la próxima vez que inicie el tlf, solo lo hará la primara vez.

Para particionar la tarjeta SD y usar Link2SD y así mover aplicaciones a la tarjeta sigan este link:
http://pc-citos.blogspot.com.es/2013/09/particionar-tarjeta-sd-con-cwm-para.html

Algunas imágenes:

















Aquí os dejo a petición vuestra un video muy cutre a mi parecer de mi configuración actual en la versión 0.6 con kernel propio, disculpad pero no he podido grabarlo mejor (no tengo ninguna cámara de calidad para hacerlo)


Bueno, eso es todo, espero vuestros comentarios y recomendaciones para mejorar la experiencia de usuario con nuestro GT-S5570i 

Un saludo.

Nota: Todas las versiones de GingerCerecilla tienen al pie de descarga el número de verificación MD5 correspondiente, esto es por si tenéis dudas de la integridad del archivo zip descargado.



10-10-13 

Versión 0.7.1

Esta es la última versión disponible de GingerCerecilla.
La diferencia entre esta y la 0.7 es que aquí he quitado más porquería.
Se ha eliminado fotaclient.apk, widgetEmail y otras que cargan en memoria.
El resultado ha de ser mejor que en versiones anteriores.
OTA preparado pero no está habilitado por falta de corregir un probema con la apk encargada para eso. Estoy en contacto con un desarrollador para que nos ayude a adaptar el código y poder usarlo con CWM.

Archivo: GingerCerecilla_v07.1

MD5: ec95461e3e26808f88374998816f204e

Cambios:
- Kernel Cerecilla V0.3+fix01 incluido.
- Basura eliminada.
- Más ram libre.
- OTA Preconfigurado pero inactivo.

----------------------------------------


04-9-13 

Versión 0.6


¡Ahora con kernel modificado! 
Compilado por mi mismo y para nuestro teléfono, desde el código fuente más reciente de Samsung, nada de kernels portados de otros dispositivos que dan fallos.
Con este kernel ahora funcionan aplicaciones como DroidWall (Un cortafuegos que ya está incluida en la rom) y otros programas de control de CPU para ahorrar batería, como (No-Frills CPU Control)


- No-Frills CPU Control
- DroidWall
- Añadido el Recovery de CWM permanentemente
- Añadido ADW Launcher (Gracias a CyanogenMod)
- Añadido transparencias a SystemUI.apk (Barra de estado)
- Configurada el tono de llamada por defecto tras el primer reinicio, (en versiones anteriores iniciaba en silencio), seguro que más de uno le saldrá una sonrisa al oir el tono de llamada.
- La mayoría de las aplicaciones de sistema están actualizadas a la fecha.
- Se han eliminado aplicaciones de sistema que no son necesarias.
- Se ha eliminado el control DRM que según opino, es un abuso de control.
- Se han convertido aplicaciones de sistema en aplicaciones de usuario.
- Añadido nuevo reproductor de vídeo con soporte para reproducir gran cantidad de formatos.
- Añadido Es File Explorer 
- Añadido Shell Bash 4.1. Agradecimientos a gdanko de XDA por compilarlo.
- Añadido soporte para autocompletación de Bash y configuración. Gracias a CyanogenMod
- Añadido Editor "nano" para la terminal y/o adb en modo desarrollo. (Por depurar, no guarda los archivos).
- Añadido un navegador muy bueno y rápido, llamado "Maxthon Navegador Web"
- Mejorado el rendimiento de la RAM.
- Sustituido el kernel por uno modificado y compilado por mi desde el código fuente de Samsung. (Nada de codigo portado de otros teléfonos que solo dan errores....)
- Añadido soporte para varios de los tipos de  gobernador de CPU en el kernel.
- Añadido soporte para estadísticas de CPU en el kernel. (Gracias al parche de irfanbagus del foro de XDA http://forum.xda-developers.com/showthread.php?t=1572030
- Añadido soporte para SWAP en el kernel.
- Añadido soporte para EXT4 en el kernel.
- Añadido soporte para iptables en el kernel .
- Añadido soporte para /proc/config.gz en el kernel  (no sé porque otros no activan esto, ayuda a los desarrolladores).


Nota: Instalar sobre Rom Base, sustituyendo el archivo pit original por el modificado por mi para modificar las particiones internas del tlf. Hacer wipes e instalar desde CWM

Recomendación: Para mejorar la expericencia de usuario desactivar en ajustes de ADW el Rebote (ponerlo a cero) a nuestro tlf le cuesta mucho el efecto de rebote si tenemos las transisiones de escritorio habilitadas. 
Si no te interesa tener ADW como launcher instala desde recovery este paquete:
adw-del.zip
MD5: c2004d2d9e0439de65ed939a97a3490b 


Archivo: Ginger-Cerecilla_v06 final 
MD5: a94dd4ecf8bb6029d396e23f9ad72dff

Cambios:
- Desbloqueo mediante tecla home (recomendado en comentarios)
-Modificado el kernel por uno compilado para nuestro tlf por mi mismo.
- Soporte para varios de los tipos de  gobernador de CPU
- Soporte para estadísticas de CPU
- Soporte para Ext4
- Soporte para Swap
- Soporte para IP-TABLES
- Soporte para /proc/config.gz 

Update: KernelCerecilla+recovery_v0.3 (Corregido gobernadores) 
Nota: No usar la frecuencia de 156 MHz para la CPU, es demasiado baja
y he oído que el movil se cuelga a tan baja potencia de lo lento que va.
MD5: 816ccf763f535b68cec019181a5e9bfc


Archivo: KernelCerecilla+rec_v0.3+fix_01.zip
- El recovery ahora hace backups de la
 partición "boot" (pero no las restaura)
-El recovery reconoce la partición "sd-ext" y la formatea en Ext4

MD5: 48d2289c4ef4e5a1412e373f0c0e6591


Archivo: update1v0.6.zip
-Menú extendido en el botón de encendido:
- Activar/Desactivar silencio
- Activar/desactivar Datos
- Activar/desactivar Modo avión
- Apagar
- Reinicar
- Reiniciar en recovery
- Capturar pantalla
MD5: 5578527b2cd64f359241e1362541b628


Archivo: update2v0.6.zip
- Creado menú de ajustes cerecilla 
- Aplicaciones integradas en "Ajustes Cerecilla"
- Nuevos estilos de bloqueo de pantalla
-  14 nuevos conmutadores en la barra de estado
- Tenemos linterna! (Bueno, pantalla en blanco pero algo es algo)
- Actualización de programas

Notas antes de instalación:
Hacer wipe de todas las "cache" (solo cache)
 Desinstalar las siguientes aplicaciones o actualizaciones:
CPUSpy.apk  > Desinstalar si la tienes
DroidWall.apk > Desinstalar actualizaciones
LidroidParts.apk > Desinstalar si la tienes
Link2SD.apk > Desinstalar actualizaciones
No-frillsCPUControl.apk > Desinstalar actualizaciones
QuickPanelSettings.apk > Desinstalar si la tienes
SuperSU.apk > Desinstalar actualizaciones

Después flashear desde recovery.

MD5: 9329ac6b0ad276a1f89fcb46c58bf551



Archivo: update3v0.6.zip
-Algunas apartados que faltaban por traducir
tras la última actualización.
MD5: 240e03fdcba5469ba812f57fd1c87703



Archivo: update4v0.6.zip
-Pequeña mejora en el comuntador de datos.
-Se ha purgado un poco el sistema borrando basura.
-Todas las apk del sistema están ahora bajo la misma firma

Instalación:
Hacer copia de seguridad (Por si las moscas)
Hacer todos los wipes e instalar.
Si entra en bootloop, hay que hacer un factory reset o restaurar el backup.
(No he podido meter el servicio OTA aún)

MD5: caa35c4c79b8ea14b33e75e80ffbbfda


Archivo: fix-reloj.zip
-Traigo el reloj de vuelta.... parece que se perdió en el camino
tras la última actualización XD,
Siento las molestias
MD5: a542fcaeb275d13c9decea714e3ab53e


Archivo: update1v0.7.zip

MD5: 3be0e1a01a0bcdd22b63dff77dfdf12f
Cambios:
- Basura eliminada.
- Más ram libre.
- OTA Preconfigurado pero inactivo.

Esta es la última actualización en este apartado.
 Las siguientes actualizaciones serán las destinadas 
a la versión 0.7.1 (por el cambio de versión).


----------------------------------------

21-7-13
Versión 0.5 (Descontinuada)

- Todas las aplicaciones de sistema están actualizadas a la fecha.
- Se han añadido modificaciones en la animación de apagado.

Nota: Instalar desde recovery

Archivo: Ginger-Cerecilla_v0.5 (Modificado 22/09/20013)
MD5: 4905d5ba74f7f8ad6c2a9e590217042b

Archivo: Update1v0.5.zip
-Corregido instalación busybox
MD5: 4905d5ba74f7f8ad6c2a9e590217042b

Archivo: Update2v0.5.zip
-Modificada la barra de estado como en la versión 0.6
MD5: 8056e5aa8b61214b4d12359b8f017f37

Archivo: Udate3v0.5.zip
-Se sustituye el kernel original por el Cerecilla_0.2
con más características que el original.
MD5: 8056e5aa8b61214b4d12359b8f017f37


Archivo: Udate4v0.5.zip
-Nuevo Kernel Cerecilla_0.3
-Corregido problema de gobernadores
MD5: 729b4597f596559b576a033a4413873c

Parche para instalar ADW en lugar del launcher original:
Archivo: add-adw.zip
MD5: 88614f2e5255f41e8bfa2f98a6ada724


Archivo: update5v0.5.zip
-Menú extendido en el botón de encendido:
- Activar/Desactivar silencio
- Activar/desactivar Datos
- Activar/desactivar Modo avión
- Apagar
- Reinicar
- Reiniciar en recovery
- Capturar pantalla
MD5: ba054d551c60ae8270ec721773d9c380


Archivo: update6v0.5.zip
- Creado menú de ajustes cerecilla 
- Aplicaciones integradas en "Ajustes Cerecilla"
- Nuevos estilos de bloqueo de pantalla
-  14 nuevos conmutadores en la barra de estado
- Tenemos linterna! (Bueno, pantalla en blanco pero algo es algo)
- Actualización de programas

Notas antes de instalación:
Hacer wipe de todas las "cache" (solo cache)
 Desinstalar las siguientes aplicaciones o actualizaciones:
CPUSpy.apk  > Desinstalar si la tienes
DroidWall.apk > Desinstalar si la tienes
LidroidParts.apk > Desinstalar si la tienes
Link2SD.apk > Desinstalar actualizaciones
No-frillsCPUControl.apk > Desinstalar si la tienes
QuickPanelSettings.apk > Desinstalar si la tienes
SuperSU.apk > Desinstalar actualizaciones

Después flashear desde recovery.

MD5: 13e82d5bfbfebea7e94920f8907afd76


Archivo: update7v0.5.zip
-Algunas apartados que faltaban por traducir
tras la última actualización.
MD5:ed5ad4dd39c37e519a458a0354083a81


Archivo: update8v0.5.zip
-Pequeña mejora en el comuntador de datos.
-Se ha purgado un poco el sistema borrando basura.
-Todas las apk del sistema están ahora bajo la misma firma
-Se ha activado el botón HOME para desbloquear
Modificada la versión, ahora será la 0.5.9
(Si saco actualizaciones seguirán siendo en este apartado)

Instalación:
Hacer copia de seguridad (Por si las moscas)
Hacer todos los wipes e instalar.
Si entra en bootloop, hay que hacer un factory reset o restaurar el backup.
(No voy a meter el servicio ota)

MD5: f34d5d71bf09edb1f1af67d0efaf7c72


Archivo: fix-reloj.zip
-Traigo el reloj de vuelta.... parece que se perdió en el camino
tras la última actualización XD,
Siento las molestias
MD5: a542fcaeb275d13c9decea714e3ab53e
---------------------------------------- 

20-7-13

Versión 0.4 (Descontinuada)

- Todas las actualizaciones de la v0.3 en un solo paquete.

Nota: Es posible su instalación sobre la versión anterior, pero borrará las aplicaciones de usuario.

MD5: ee85bc5e267c7cf7fbfdc20854ce5fc3

21-7-13
1ª Actualización para Ginger-Cerecilla_v0.4
- Corregido un problema con carpeta duplicada en "/data"
Archivo: update1v0.4
MD5: c8bf64df1f8cdb9de3d18dc93b32f87a

----------------------------------------

15-7-13 

Versión 0.3 (Desconitnuada)

- Corregido un pequeño problema con la carga del booanimation.zip (No se mostraba correctamente) 
- Añadido un bootanimation de Ginger-Cerecilla
- Añadido un poweron.ogg distinto. (Por Diego Altamirano)


Archivo: Ginger-Cerecilla_v0.3
MD5: 9ed614ab71fc3ce0cb1871fb3c98d62a 

16-7-13 
1ª Actualización para Ginger-Cerecilla_v0.3- Sustituidos los efectos de ventanas por "Rudolf"
- Sustituido icono de batería entre otros.

Nota: Instalar desde recovery, no hace falta hacer wipes.

Archivo: update1v0.3
MD5:  ee293fbb1ecb3f76018e1239514e28b2

20-7-13
 2ª Actualización para Ginger-Cerecilla_v0.3

- Añadido fondos de pantalla nuevos y eliminados los del sistema
- Cambiado el fondo para pantalla de bloqueo por "Default"
- Esta actualización deja la Rom al nivel de la v0.4 con lo cual se ha modificado el archivo de versión. (Compruébalo en "Acerca del teléfono" en el menú "Ajustes")

Nota: Instalar desde recovery, no hace falta hacer wipes.

Archivo: update2v0.3
MD5: 04177647581df27b785e72511e6c501a


20-7-13
3ª Actualización para Ginger-Cerecilla_v0.3 (que tras la actualización anterior aparece como v0.4)

- Corregido un problema con carpeta duplicada en "/data"

Nota: Instalar desde recovery, no hace falta hacer wipes.

Archivo: update3v0.3
MD5: c8bf64df1f8cdb9de3d18dc93b32f87a

---------------------------------------- 

14-7-13

Versión 0.2

- Segunda versión de prueba

Archivo: Archivo eliminado

----------------------------------------  

13-7-13

Versión 0.1

- Primera versión de prueba

Archivo: Este archivo no se subió a la nuve 

----------------------------------------  

miércoles, 8 de mayo de 2013

Aumenta el tiempo de batería en tu portatil


Un problema muy común en todos los portátiles con sistemas Linux es que la batería dura un asalto.

Por ejemplo, mi batería debería durar unas 3 horas, pero no dura más de 1 hora y media.

Esto es en su mayor parte por culpa de la gráfica y los ventiladores de esta, disco duro y procesador, que trabajan a máxima potencia aunque estemos en modo batería y ya le hayamos puesto en configuración que sea más conservador con la energía de los dispositivos.

En su parte, la culpa la tiene los kernels inmediatamente inferiores a la 3.8 (ya que esta está parcheada) que tienen un problema con el consumo. En la 3.9 ya está totalmente corregido.

Pero además puede ser que no tengamos activados las opciones de energía en el núcleo.

Hoy quiero explicar a todos como he conseguido resolver el problema en LMDE (Linux Mint Debian Edition)

Para empezar diré que yo he compilado un kernel nuevo, la 3.9, para que tenga las opciones mínimas necesarias que usará el programa que vamos a necesitar.

Explicación de compilación del Kernel con sus opciones mínimas:
http://pc-citos.blogspot.com.es/2013/05/compilar-el-ultimo-kernel-disponible-en.html



Instalar lo necesario

El programa que necesitamos se llama "laptop-mode-tools" pero también instalaremos "powertop" para ver el consumo real del equipo.

scorpyomint@pc-citomint ~ $ sudo apt-get install laptop-mode-tools powertop

Con eso tenemos instalado los programas.

Laptop-mode-tools usará los eventos ACPI para identificar el estado de conexión y desconexión de batería, la retroiluminación de pantalla..... el estado de la CPU, uso de disco duro...

Uso de powertop
El uso de powertop es para ir comprobando el efecto que causa en la energía de consumo los cambios que vayamos haciendo.

Simplemente abrir una terminal y escribir:
scorpyomint@pc-citomint ~ $ sudo powertop


Configuración de laptop-mode-tools

Lo primero que tenemos que hacer es parar el demonio de laptop porque tras la instalación se inicia.
scorpyomint@pc-citomint ~ $ sudo service laptop-mode stop

En el archivo "/etc/laptop-mode/laptop-mode.conf" está la configuración inicial que usa el demonio.

A partir de ahora, para editar los archivos, ya que algunos son muy largos podemos usar "pluma" o "gedit", este último para distribuciones con Gnome, en este caso lo abro con nano.

scorpyomint@pc-citomint ~ $ sudo nano /etc/laptop-mode/laptop-mode.conf

Habría que modificar ciertos valores, pero lo más importante es asegurarse las siguientes variables está en "1" es decir, activado:

ENABLE_LAPTOP_MODE_TOOLS=1
ENABLE_LAPTOP_MODE_ON_BATTERY=1

Si seguimos avanzando en el archivo de configuración veremos todos los módulos (scripts) que controlan la energía de algún elemento "descrito en su nombre".
Como veréis todos están comentados (Con una "#" delante), lo que hará que no las tome en consideración y no use esos scripts, sin embargo, al final hay una opción que está activada y hará que use los script de manera automática.

#
# Enable all simple zero-configuration auto modules
# This option enables all simple modules (listed below) without requiring
# the user to enable each module individually
#
# List of modules which can be automatically enabled with this setting are:
#
# ac97-powersave
# cpufreq
# dpms-standby
# eee-superhe
# ethernet
# exec-commands
# hal-polling
# hdparm
# intel-hda-powersave
# intel-sata-powermgmt
# nmi-watchdog
# runtime-pm
# sched-mc-power-savings
# sched-smt-power-savings
# terminal-blanking
# usb-autosuspend
# wireless-ipw-power
# wireless-iwl-power
# wireless-power
#
# Set this to 1 to enable all simple zero-configuration auto modules listed above.
#
# NOTE: You can explicitly enable/disable any of the above modules by changing their
# values in the individual settings file
#
ENABLE_AUTO_MODULES=1

Eso significa que usará  los módulos que hay en /etc/laptop-mode/conf.d/ de manera automática según el estado y eventos que proporcione el PC.

Podemos guardar el archivo y cerrarlo.



Configuración de la retroiluminación:

Una de las cosas  que más consume es la retroiluminación de la pantalla (no confundir con el brillo de los colores)


Si vuestro PC no baja el brillo de la pantalla de forma automática podemos empezar a modificando el archivo  "/etc/laptop-mode/conf.d/lcd-brightness.conf

Pero antes habría que desactivar algunas cosas que entran en conflicto desde mi punto de vista con la aplicación.

Tenemos que ir a las opciones de energía del portátil pinchando sobre el icono de batería y dando a "Preferencias", pinchar en la pestaña "reducir brillo de "


Dejar desactivado los siguientes valores:

-Reducir la velocidad de retoación de los discos cuando sea posible.
-Reducir el brillo de fondo
-Atenuar la pantalla cuando está inactiva.

Aceptamos.

Ahora toca averiguar cual es la retroiluminación máxima que soporta vuestra pantalla.

Para verlo hacemos un:
scorpyomint@pc-citomint ~ $ cat /sys/class/backlight/acpi_video0/max_brightness


A mi me arroja el valor "7"

Así que ya sé, que mi valor máximo de retroiluminación de pantalla es 7 y el mínimo será 1.

Para comprobar si lo que vamos a hacer a continuación funcionará, debemos hacer un pequeño test a ver si la retroiluminación de la pantalla cambia con la siguiente orden:

Ponemos el brillo al máximo (en mi caso el 7 es el valor máximo):


scorpyomint@pc-citomint ~ $ sudo echo "7" > /sys/class/backlight/acpi_video0/brightness

Y luego hacemos al revez, lo bajamos:

scorpyomint@pc-citomint ~ $ sudo echo "2" > /sys/class/backlight/acpi_video0/brightness

Si eso ha funcionado, ya podemos configurar el script para que lo haga de forma automática cada vez que saquemos el cable del portátil y estemos trabajando en modo batería.

scorpyomint@pc-citomint ~ $ sudo pluma /etc/laptop-mode/conf.d/lcd-brightness.conf

Dejar la configuración de la siguiente manera:

-Para que se active este escript:
CONTROL_BRIGHTNESS=1

-Valor para la retroiluminación en modo batería, yo le puse un "2":
BATT_BRIGHTNESS_COMMAND="echo 2"

-Valor  para el retroiluminación en modo portatil con el cable, yo lo puse al máximo que me permite:
LM_AC_BRIGHTNESS_COMMAND="echo 7"

-Valor  para el retroiluminación en modo "no portatil" con el cable, yo lo puse al máximo que me permite:
NOLM_AC_BRIGHTNESS_COMMAND="echo 7"

-Archivo que debe modificar para poder corregir el valor del brillo.
BRIGHTNESS_OUTPUT="/sys/class/backlight/acpi_video0/brightness"

Bueno, con eso ya hemos arreglado el problema del brillo.

Para comprobarlo solo tenemos que guardar, arrancar el demonio laptop y comprobar enchufando y desenchufando el portatil de la toma de corriente.

scorpyomint@pc-citomint ~ $ sudo service laptop-mode start



Configurando el consumo de la tarjeta gráfica

 La siguiente información solo lo he probado con tarjetas Ati, y no sé como resultará en tarjetas de otro tipo.
 
Primero tenemos que ver el consumo actual de la tarjeta, para verlo tenemos que ser root:

scorpyomint@pc-citomint ~ $ sudo su

Una vez logueados como root miramos el consumo actual con:

pc-citomint scorpyomint #  cat /sys/kernel/debug/dri/0/radeon_pm_info
Si la carpeta debug está vacía hay que montarla:

pc-citomint scorpyomint # mount -t debugfs none /sys/kernel/debug

Y ahora que está montado probamos de nuevo...
 
Yo obtengo lo siguiente:
default engine clock: 680000 kHz
current engine clock: 678370 kHz
default memory clock: 800000 kHz
current memory clock: 796500 kHz
voltage: 1200 mV
PCIE lanes: 16

Ahora comprobaremos cual es el estado de agresividad de la tarjeta:

pc-citomint scorpyomint # cat /sys/class/drm/card0/device/power_profile
default

Como veis yo lo tengo "por defecto" pero podemos cambiar los valores entre los siguientes:

"default" > Por defecto.
"hight" > Maxima potencia
"mid" > Potencia equilibrada bajo demanda (no siempre funciona)
"low" > La menor potencia admitida.
Para modificar el valor, por ejemplo al mínimo, podemos hacerlo así:
pc-citomint scorpyomint # echo "low"> /sys/class/drm/card0/device/power_profile


Ahora si volvemos a comprobar los valores de la tarjeta veremos como ha respondido:
pc-citomint scorpyomint # cat /sys/kernel/debug/dri/0/radeon_pm_info
default engine clock: 680000 kHz
current engine clock: 219370 kHz
default memory clock: 800000 kHz
current memory clock: 299250 kHz
voltage: 950 mV
PCIE lanes: 16
Fijaros como los valors han cambiado, ahora muestra los "current" mucho más bajos que los estandares "default".
Además, el voltaje es inferior, con lo que se ahorra energía, y como se calienta menos, el ventilador no salta, y por tanto consume aún menos.

Ahora toca la parte de hacer que se ejecute el comando colocando el perfil de "low" cada vez que el portátil esté en modo batería y que lo restablezca a "default" cuando está conectado a la corriente.

Primero paramos el demonio para evitar problemas:
pc-citomint scorpyomint # service laptop-mode stop

Y ahora a modificar el archivo que compete:

pc-citomint scorpyomint # pluma /etc/laptop-mode/conf.d/exec-commands.conf

Modificamos las primeras líneas de comando de esto:

BATT_EXEC_COMMAND_0="" # Enable power saving feature 0 here
LM_AC_EXEC_COMMAND_0="" # Enable power saving feature 0 here
NOLM_AC_EXEC_COMMAND_0="" # Disable power saving feature 0 here

A esto otro:

BATT_EXEC_COMMAND_0="echo low > /sys/class/drm/card0/device/power_profile"
LM_AC_EXEC_COMMAND_0="" # Enable power saving feature 0 here
NOLM_AC_EXEC_COMMAND_0="echo default > /sys/class/drm/card0/device/power_profile"

De esta manera cuando esté en modo batería pondrá la tarjeta en "low" y cuando esté con la corriente la pondrá en "default"

Reiniciamos el demonio:
pc-citomint scorpyomint # service laptop-mode start

Y cerramos la seción de root:
pc-citomint scorpyomint # exit



Velocidad de reloj CPU   

Otro de los scripts que podemos modificar es el de la velocidad de reloj de la CPU.

Antes de nada, podemos comprobar en que estado están las CPU en modo batería y en modo AC (conectado a la corriente) con el siguiente comando filtramos la salida de "cpufreq-info" para ver el estado de cada cpu.

scorpyomint@pc-citomint ~ $ sudo cpufreq-info | grep "The governor" | nl
     1                      The governor "ondemand" may decide which speed to use
     2                      The governor "ondemand" may decide which speed to use
     3                      The governor "ondemand" may decide which speed to use
     4                      The governor "ondemand" may decide which speed to use

Como veis, mis procesadores están bajo demanda "ondemand" cuando está conectado a la corriente.
Pero resulta, que estando en modo batería están exactamente igual, es decir, en el archivo de configuración de laptop está configurado así para los dos estados.... cosa que no quiero y voy a cambiar.
Paso a explicar:

Abrimos una terminal y abrimos el script así: 
scorpyomint@pc-citomint ~ $ sudo pluma /etc/laptop-mode/conf.d/cpufreq.conf

Ahora buscamos el apartado en el que pone esto:
BATT_CPU_MAXFREQ=fastest
BATT_CPU_MINFREQ=slowest
BATT_CPU_GOVERNOR=ondemand

Las dos primeras líneas son para la velocidad máxima y mínima de trabajo, así está configurada como la más rápida y la mas lenta permitidas.

Pero el valor de "GOVERNOR" es la forma de controlar las CPU y en este caso, si os fijáis está bajo demanda "ondemand"

Así que lo pongo en "powersave", trabajando de esta forma a la velocidad mínima permitida, sin posibilidad de escalar la velocidad.

BATT_CPU_MAXFREQ=fastest
BATT_CPU_MINFREQ=slowest
BATT_CPU_GOVERNOR=powersave

Algunos de los valores permitidos son:

-performance
El regulador de rendimiento esta empotrado en el núcleo y hace que las UCP funcionen a la máxima velocidad de reloj

-ondemand (por defecto)
Incrementa o decrementa lavelocidad de las CPU dependiendo de la carga de trabajo.
-conservative
Es como ondemand, con la diferencia de que es más conservador (los cambios de velocidad son más suaves)

-powersave
Hace que la CPU vaya a la velodidad mímina especificada en la linea con el valor del mínimo. (BATT_CPU_MINFREQ=slowest), en este caso el valor mínimo soportado.

Ponéis el que os parezca tanto para modo batería como para modo AC y luego guardáis.

Y probáis de nuevo a conecta y desconectar el cable comprobando el antes y el después con el comando anterior:



Con cable:

scorpyomint@pc-citomint ~ $ sudo cpufreq-info | grep "The governor" | nl
     1                      The governor "ondemand" may decide which speed to use
     2                      The governor "ondemand" may decide which speed to use
     3                      The governor "ondemand" may decide which speed to use
     4                      The governor "ondemand" may decide which speed to use
 
 
 
 Sin cable:
scorpyomint@pc-citomint ~ $ sudo cpufreq-info | grep "The governor" | nl
     1                      The governor "powersave" may decide which speed to use
     2                      The governor "powersave" may decide which speed to use
     3                      The governor "powersave" may decide which speed to use
     4                      The governor "powersave" may decide which speed to use
-----------

Creo, que esto es lo más importante, pero podéis revisar el resto de los scripts para comprobar sus opciones para ver en que más se puede mejorar.

Siempre podemos añadir más cosas, como que quite los efectos de escritorio y los retorne al conectar el cable, apague el bluetooth, la tarjeta de red... etc etc.

Así ha quedado más o menos mi sistema:



Un saludo y ya me contáis.

LMDE No regresa de hibernación

Si habéis probado a entrar en modo hibernación, muchos os habrá ocurrido que el equipo no regresa de hibernación, si no que directamente arranca de nuevo como si nada.

Al parecer, la hibernación la hace correctamente (La hace hacia la Swap, si no tenéis Swap no se si será posible), pero luego cuando el pc inicia no busca en la partición de la Swap para ver si el equipo estaba hibernado, en lugar de eso arranca el pc de modo habitual.

Para corregir esto hay que añadir un parámetro a la linea de arracque de grub de manera que busque si el pc está en estado de Hibernación y que, si es así, proceda a restaurar el PC con los datos de la Swap

Para empezar tenemos que averiguar la UUID de nuestra partición Swap

Podéis sacarla facilmente con este comando:
sudo blkid | grep swap

Con eso obtendréis una línea parecida a esta:
/dev/sda6: UUID="20fa525c-0de7-4ffe-a014-9974b68036bc" TYPE="swap"

Esto indica que en la partición /dev/sda6 está la swap y que el número UUID es el "20fa525c-0de7-4ffe-a014-9974b68036bc"

Copiad ese número que lo vamos a usar ahora.

Ahora toca hacer que grub añada una orden a sus entradas actuales y futuras.

sudo nano /etc/default/grub

Buscas la linea  10 apximadamente y verás algo como:
GRUB_CMDLINE_LINUX=""


Entre las comillas tenéis que añadir la orden "resume=UUID=" seguida del UUID que antes hemos copiado, quedando de esta forma en mi caso:

GRUB_CMDLINE_LINUX="resume=UUID=20fa525c-0de7-4ffe-a014-9974b68036bc"

 Nota: Para pegar en la terminal se usa Ctrl+shif+v  o también botón derecho y pegar.

Para guardar presionas Ctrl+o y presionas enter para guardar con el mismo nombre.
Para salir presionas Ctrl+x

Ahora toca actualizar:
sudo update-grub

Y ahora ya puedes probar a ver si funciona.

Un saludo.

Fuente de información: http://www.taringa.net/posts/linux/12940433/Habilitar-hibernacion-en-Linux-Mint-y-Debian.html

domingo, 5 de mayo de 2013

Compilar el último Kernel disponible en LMDE

Muchos de nosotros nos hemos encontrado con problemas a la hora de usar ciertas funcionalidades en nuestros sistemas Linux porque en el núcleo del sistema (Kernel) que estemos usando, estas funcionalidades están deshabilitadas por defecto para nuestra distribución...

Estas cosas suelen hacerlas los desarrolladores de las distribuciones para llegar al máximo público posible, ya que estos no usan los mismos dispositivos ni las mismas características de hardware... así que tienen que encontrar un equilibrio donde a veces no solo tienen que activar soporte para cientos de tipos de hardware... sino que en otras ocasiones tienen que desactivar funciones que entran en conflicto con otros dispositivos o equipos sacrificando estas mejoras para mantener el equilibrio anteriormente mencionado.

La solución pasa por parchear el Kernel o compilar uno nuevo para ajustarlo a nuestras necesidades.


En esta ocasión intentaré explicar como he compilado mi Kernel para obtener compatibilidad con laptop-mode-tools que se encarga de administrar la energía a partir de la obtención de eventos ACPI generados por el Portátil, cosa que en mi núcleo por lo que sea viene desactivado... y no tiene soporte para ACPI.

Preparativos

Ya que nos ponemos manos a la obra lo mejor es que nos descargamos el último Kernel disponible, ¿no?

Claro que si, pero el último estable, para no meter la pata.

Todos los núcleos de Linux hasta la fecha están en https://www.kernel.org/

Una vez descargado, (que será un archivo comprimido) lo normal para estos menesteres es descomprimir el código en /usr/src/

Obteniendo una carpeta con el nombre de kernel descargado.

Para hacerlo abrid una terminal.
Situaros en la ruta especificada:

cd /usr/src

Una vez allí copiáis el archivo descargado en mi caso es "linux-3.9.tar.xz":
sudo cp /home/tu-usuario/lugar-de-descarga/linux-3.9.tar.xz ./

Ya tenemos una copia en la ruta en la que nos encontramos, ahora toca descomprimirlo.
Este tipo de arvhivo, relativamente nuevo en Kernel.org se descomprime con:
sudo tar -Jxvf linux-3.9.tar.xz

Para poder hacerlo tendréis que tener instalado el paquete xz-utils, si no lo tenéis podéis instalarlo con:
sudo apt-get install xz-utils

Una vez descomprimido, encontraremos en la ruta en la cual nos encontramos una carpeta con el nombre que tiene el archivo comprimido pero sin la extensión ".tar.xz" donde deberemos entrar para continuar.

En mi caso:

cd linux-3.9

Lo lógico es que las fuentes de configuración estén limpias puesto que deben estar preparadas para su uso, pero si es la segunda vez que intentas compilar, lo mejor es que elimines los rastros de configuraciones antiguas.

make mrproper

Nota:  Regla mnemotécnica.....  notese que el comando dice "mr proper" el mítico producto de limpiezas de baños.... así que sería "hacer limpieza con mr proper" (hora se llama Don Limpio... jajajjaa que cutre... pero bueno)

Ahora toca configurar el núcleo de Linux, pero claro.... sería una ardua y compleja tarea dejar todo con la configuración de tu Kernel actual y añadir (o eliminar) después las configuraciones extra que necesites....

La solución es cargar la configuración actual y usarla como base. (Los nuevos kernels lo hacen de manera automática al abrir el configurador)

Como ya he dicho arriba, esto que a continuación se detalla en los nuevos kernels ya se hace de forma automática al abrir por primera vez el configurador del núcleo, por eso este apartado no es necesario que lo hagáis si estáis compilando un núcleo nuevo, pero por si queréis saber como hacerlo a mano.... o poner una config de un núcleo antiguo que funcionaba mejor... etc, etc allá va la explicación:

Cuando se instala un kernel, el archivo de configuración que se usó para compilarlo se copia en la carpeta /boot/ con un nombre que comienza con "config-" y seguido del numero de versión y arquitectura del kernel al que hace referencia.

Así que solo queda localizarlo, pegarlo en la caperta actual y usarla como base...

ls -al /boot/
config-3.2.0-4-amd64  initrd.img-3.2.0-4-amd64  System.map-3.2.0-4-amd64
extlinux              memtest86+.bin            vmlinuz-3.2.0-4-amd64
grub                  memtest86+_multiboot.bin  vmlinuz-3.9.0



En mi caso el archivo que busco es el config-3.2.0-4-amd64

Lo copiamos a la carpeta en la que nos encontramos con el nombre que debe tener para poder cargarlo correctamente... y posteriormente compilarlo.

sudo cp /boot/config-3.2.0-4-amd64 ./.config





Añadiendo o quitando funcionalidades

Con eso ya está todo listo.

Podríamos empezar a compilar el núcleo ya, sin mayores problemas, pero la cuestión es que tenemos un núcleo nuevo, si,  pero con las opciones como el viejo.. hay que entrar a la configuración del kernel que estamos construyendo y añadir o eliminar lo que no queramos.
En mi caso, lo compilé añadiendo estas opciones mínimas que recomiendan en la página de gentoo para hacer funcionar correctamente el "laptop-mode-tools":

General setup --->
  [*] Configure standard kernel features (expert users) --->

Power management and ACPI options --->
  [*] Run-time PM core functionality
  [*] ACPI (Advanced Configuration and Power Interface) Support --->
    <*> AC Adapter
    <*> Battery
    -*- Button
    -*- Video
    <*> Fan
    <*> Processor
    <*> Thermal Zone
    [*] Power Management Timer Support

  [*] CPU Frequency scaling --->
    [*] CPU Frequency scaling
    <*>   'performance' governor
    <*>   'powersave' governor
    <*>   'userspace' governor
    <*>   'ondemand' governor
    <*>   'conservative' governor
    <*> ACPI Processor P-States driver
 
Fuente de información: http://www.gentoo.org/doc/es/power-management-guide.xml
Recomendada su lectura si queréis instalar laptop-mode-tools



Para entrar en la configuración hay que escribir:
sudo make menuconfig

Hay mas modos de edición, pero esta es la más cómoda y la menos problemática desde mi punto de vista, ya que las otras opciones requieren o bien más conocimiento y experiencia o bien dependen  de otros paquetes para mostrar ventanas...
Mencionadas por orden serían estas dos:

sudo make config        >>> Se necesita experiencia ya que nos harán muchas preguntas de hardware.

sudo make xconfig      >>> Se necesitan dependencias por regla general para poder mostrar ventanas.

Con esto ya estamos dentro del configurador, y veremos opciones marcadas así:
 [*]  >>> Opción activada dentro del Kernel
 [M]  >>> Opción disponible mediante Módulo fuera del Kernel
 [ ]  >>> Opción no soportada (Para impedir su uso tanto internamente como usando un módulo)

De esta manera tendremos que ir marcando o desmarcando opciones con la barra espaciadora para poder configurar nuestro Kernel a medida.

Nota: Yo personalmente, desmarco esta opción para eliminar peso del kernel generado:

Kernel hacking  --->
[ ] Compile the kernel with debug info

Una vez terminado de configurar, guardamos los cambios y salimos. (O salimos y nos preguntará si queremos guardar antes de salir, respondemos que sí)


Compilando el nuevo Kernel

Ahora ya estamos listos para compilar nuestro nuevo Kernel.
Antiguamente había que dar unos pocos pasos más para terminar, pero hoy tenemos mas flexibilidad para compilar el Kernel usando la herramienta kernel-package
Para instalarla solo tenemos que teclear:

sudo apt-get install kernel-package

Ahora ya podemos compilar el kernel:
make-kpkg clean
make-kpkg --initrd kernel_image kernel_headers


Nota: si tenemos varios procesadores podemos pasarle el parámetro "-j X" donde la X es el número de procesadores que queremos que use para compilar, acortando así el tiempo de compilado, ejemplo:
make-kpkg -j 4 --initrd kernel_image kernel_headers

Mi micro es un Intel core I3 y este tiene un procesador de doble núcleo que pueden operar como si fuesen otros dos... , así que en teoría tengo 4 procesadores. (de hecho, Linux lo ve así aunque 2 de los procesadores no son reales)

Con eso creamos dos paquetes .deb en el directorio superior, es decir en /usr/src/ que serán para instalar el kernel y sus headers que sirven para compilar otros módulos como los privativos de AMD, madwifin, VMware etc...

Ahora toca esperar.... esperar y esperar a que termine de compilarse el núcleo nuevo.

Una vez haya terminado de compilar, podemos subir al directorio superior y comprobar que paquetes nuevos hay:

cd ..
ls

Con eso vemos la lista de paquetes y podremos ver los nuevos paquetes .deb

Para instalarlos:
sudo dpkg -i archivo1.deb archivo2.deb

En mi caso:
sudo dpkg -i linux-image-3.9.0_3.9.0-10.00.Custom_amd64.deb linux-headers-3.9.0_3.9.0-10.00.Custom_amd64.deb

Aunque los nombres sean largos (cosa que podemos arreglar renombrandolos) no lo serán en la entrada del grub, así que tranquilos.

Listo, ya podemos reiniciar y usar nuestro nuevo kernel, si no funcionase aún podremos usar el antiguo y ver que pasó.

Un saludo.

Este documento se ha confeccionado obteniendo información de diversas fuentes, entre ellas: http://mogaal.com/articulos/kernel-a-la-debian.html