Centos 7 con overclocking y turbo en raspberry
By: Date: febrero 14, 2020 Categories: Consultoria y Manuales

La actual imagen de Centos 7 ejecutándose en una Raspberry 4, no se ejecuta a su máxima velocidad, mas bien se mantiene gobernada a máximo de 800Mhz, cuando el CPU de forma nativa puede llegar a 1.5 Ghz

¿ Por que ?

Primero por que no trae un archivo config.txt en la partición de /boot, supongo que esto lo hacen para que los usuarios puedan usar la raspberry incluso sin disipadores, con el puro CPU desnudo y funciona bien. Sin embargo con un disipador mas un ventilador para extraer el aire caliente ya no es necesario mantener gobernado el CPU y se puede llegar a los 1.5 Ghz, incluso se le puede aplicar overcloking llegando a 2.0Ghz

¿ Diferencia entre turbo y overcloking ?


Cuando activamos turbo el CPU se libera y llega a los 1.5Ghz que de hecho son su velocidad máxima en la especificación, en el caso del Centos 7 dando el doble de frecuencias de reloj. Cuando activamos el overcloking se supera la velocidad de reloj , el CPU podrá llegar pero requerirá mas voltaje y por supuesto debe tener la mejor forma de deshacerse del calor, si el raspberry logra eliminar el excedente de calor sin problemas llegara a los 2.0Ghz, aunque yo he visto ejemplos de configuración de 2.1Ghz


¿ Como se activa y que es el archivo config.txt ?


A diferencia de un PC que se puede acceder a la configuración firmware bios o efi con presionar una tecla al inicio, en un raspberry no hay esto. Sin embargo si podemos manipular los valores default del firmware usando el archivo de configuración, básicamente config.txt en la partición /boot es leído al a iniciar la raspberry y antes de cargar el kernel y es aquí donde aplicaremos el turbo o el overclocking, incluso ambos


¿ que hay que hacer ?


1 crear el archivo /boot/config.txt o editarlo en caso de estar ya disponible, como la partición boot esta en vfat puede ser montada en Windows y editada con el bloc de notas aunque recominedo el Notepad++, si lo haces desde GNU/Linux puedes sin problemas usar vi si te sientes muy hombre, o nano como los princesos
2 el archivo se divide en secciones por corchetes, como una memoria SD podría ser colocada en diferentes raspberry, se puede configurar el arranque dependiendo sobre que placa de raspberry estemos, ejemplo de corchetes.

[all]	Todos los modelos
[pi1]	Modelo A, Modelo B, Compute Module
[pi2]	Modelo 2B (Con procesador BCM2836 o BCM2837)
[pi3]	Modelo 3B, Modelo 3B+, Modelo 3A+, Compute Module 3
[pi3+]	Modelo 3A+, Modelo 3B+
[pi4]	Modelo 4B
[pi0]	Modelo Zero, Modelo Zero W, Modelo Zero WH
[pi0w]	Modelo Zero W, Modelo Zero WH

force_turbo o Turbo

1 Por default el parámetro force_turbo esta en 0, simplemente hay que pasarlo a 1
2 Usare all por que solo tengo una raspberry 4 aunque igual podría hacerlo en su sección pi4

[all]
force_turbo=1

Overclocking

1 El overclocking se hace introduciendo los parámetros de voltaje y frecuencia de reloj para sobrescribir los originales.

[all]
over_voltage=4
arm_freq=2000
gpu_freq=600
** Podria poner un force_turbo previo a la línea de over_voltage pero mas vale que se tenga un buen disipador de calor

¿ Como saber la temperatura o velocidad de reloj ?

Liberar el CPU con turbo o aplicar overcloking hará que el CPU se caliente, este no debería pasar de 80 grados centígrados o empezara a hacer thermal throttling, que básicamente es ralentizará el CPU hasta que la temperatura baje, sin embargo si el calor no puede disiparse mas rápido de lo que se genera el CPU simplemente se bloqueara para evitar daños

En cualquier Linux es posible saber la temperatura del CPU y su velocidad del reloj con los archivos que hay en /proc, solo hay que escribir un script que los lea y los traduzca a números chicos. El script es el siguiente

#! /bin/bash
temp=`cat /sys/class/thermal/thermal_zone0/temp`
freq=`cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq`
echo $((temp / 1000)) " C"
echo $((freq / 1000)) " Mhz"

La salida es similar a la siguiente:

[root@rberry ~]# freqtemp
53  C
1500  Mhz

** con watch se puede ver la salida actualizada cada segundo si se ejecuta de la siguiente forma

watch -n 1 -x ScriptDeTemperatura

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *