<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Raspberry PI &#8211; El Cornijal de Linux</title>
	<atom:link href="https://linuxete.duckdns.org/category/raspberry-pi/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxete.duckdns.org</link>
	<description>Un blog sobre Linux</description>
	<lastBuildDate>Sun, 15 Mar 2026 08:54:23 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>El misterio de la pantalla negra en Raspberry Pi 5: ¿Culpa del NVMe?</title>
		<link>https://linuxete.duckdns.org/el-misterio-de-la-pantalla-negra-en-raspberry-pi-5-culpa-del-nvme/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=el-misterio-de-la-pantalla-negra-en-raspberry-pi-5-culpa-del-nvme</link>
					<comments>https://linuxete.duckdns.org/el-misterio-de-la-pantalla-negra-en-raspberry-pi-5-culpa-del-nvme/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 18:47:43 +0000</pubDate>
				<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[cmdline.txt]]></category>
		<category><![CDATA[Debian 13]]></category>
		<category><![CDATA[EEPROM]]></category>
		<category><![CDATA[HDMI Fix]]></category>
		<category><![CDATA[lightdm]]></category>
		<category><![CDATA[No signal]]></category>
		<category><![CDATA[NVMe]]></category>
		<category><![CDATA[Pantalla Negra]]></category>
		<category><![CDATA[PCIe Gen 3]]></category>
		<category><![CDATA[Raspberry Pi 5]]></category>
		<category><![CDATA[Raspberry Pi OS]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=4047</guid>

					<description><![CDATA[Hasta hace unos días, mi vida tecnológica con la nueva Raspberry Pi 5 era un remanso de paz. Tenía conectado un disco SSD de 2,5 pulgadas y todo funcionaba como la seda. Pero, como nos pasa a todos los que nos gusta «cacharrear», decidí dar el salto a la máxima velocidad y actualicé a un [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Hasta hace unos días, mi vida tecnológica con la nueva <strong>Raspberry Pi 5</strong> era un remanso de paz. Tenía conectado un disco SSD de 2,5 pulgadas y todo funcionaba como la seda. Pero, como nos pasa a todos los que nos gusta «cacharrear», decidí dar el salto a la máxima velocidad y actualicé a un <strong>disco SSD NVMe</strong>. Ahí es donde empezaron los sudores fríos.</p>



<p>De repente, cada vez que reiniciaba el sistema, la Pi arrancaba pero con la <strong>pantalla más negra que los huevos de un burro</strong>. Al principio, el pánico: pensé que el sistema se colgaba y no arrancaba. Cambié el HAT, probé otro disco NVMe, compré cables HDMI nuevos e incluso reinstalé el sistema operativo varias veces. ¿El resultado? El mismo vacío oscuro.</p>



<p>Sin embargo, al entrar por <strong>SSH</strong> desde mi teléfono, descubrí la verdad: la Pi estaba vivita y coleando, con el sistema totalmente cargado y funcionando de fondo. El problema no era que la Pi no arrancara, ¡era que no quería hablar con mi monitor!</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Nota: Para que el sistema arranque de forma normal quita el cable de alimentación y tras 5 segundos vuelve a conectar.</p>
</blockquote>



<h3 class="wp-block-heading">¿Por qué el NVMe «rompe» el vídeo al reiniciar?</h3>



<p>Si te está pasando lo mismo, no te vuelvas loco cambiando hardware. La explicación de por qué con una tarjeta SD o un SSD lento todo iba bien y con el NVMe oficial falla, se resume en estos tres factores:</p>



<ul class="wp-block-list">
<li><strong>Tu Raspberry Pi ahora es «demasiado rápida»:</strong> Imagina que el arranque es una conversación. Con la SD, la Pi tardaba 30 segundos; al monitor le daba tiempo a despertarse y tomarse un café. Con el NVMe, el sistema carga en 5 segundos. La Pi lanza la señal de vídeo tan rápido que el monitor aún está «desperezándose» del reinicio. Cuando el monitor quiere mirar, la Pi ya ha dejado de llamar a la puerta y ambos se quedan esperando en silencio.</li>



<li><strong>Interferencias y «ruido» eléctrico:</strong> El bus PCIe donde va tu NVMe funciona a frecuencias altísimas que generan ondas electromagnéticas. Como los puertos micro-HDMI están pegados al conector PCIe en la Pi 5, ese «ruido» puede ensuciar la señal. Si el cable no es de excelente calidad, la Pi no recibe los datos del monitor (EDID) y, por seguridad, apaga la salida.</li>



<li><strong>El reinicio «suave» vs «fuerte»:</strong> Al reiniciar desde el escritorio, el driver de vídeo a veces no se cierra correctamente antes de que el rapidísimo NVMe vuelva a cargar todo. Esto deja a la gráfica en un estado de confusión total.</li>
</ul>



<p><strong>En resumen:</strong> Es como si tu Raspberry Pi fuera ahora un coche de carreras. Arranca tan rápido que sale del garaje antes de que la puerta (tu monitor) termine de abrirse.</p>



<p>A continuación, te explico los pasos exactos para decirle a tu Pi: <em>«Espera un segundo antes de salir y, aunque veas la puerta cerrada, empuja, que se abrirá»</em>.</p>



<h3 class="wp-block-heading">El cambio imprescindible (De Wayland a X11)</h3>



<p>Por defecto, la Raspberry Pi 5 utiliza <strong>Wayland</strong>. Sin embargo, Wayland todavía tiene problemas para gestionar el «Screen Blanking» (que la pantalla se apague sola tras un tiempo sin uso).</p>



<p>Si quieres que tu monitor descanse y que los comandos que vamos a usar funcionen, debemos volver al servidor gráfico <strong>X11</strong>.</p>



<h4 class="wp-block-heading">¿Cómo cambiar a X11?</h4>



<ol start="1" class="wp-block-list">
<li>Abre una terminal y escribe: <code>sudo raspi-config</code></li>



<li>Ve a <strong>6 Advanced Options</strong>.</li>



<li>Busca <strong>A6 Wayland</strong>.</li>



<li>Selecciona <strong>W1 X11</strong> (o el que indique que desactiva Wayland).</li>



<li>Dale a <strong>Finish</strong> y acepta el <strong>Reboot</strong> (reiniciar).</li>
</ol>



<p><em>Ahora que estamos en X11, todos los comandos de ahorro de energía y gestión de pantalla funcionarán como un reloj.</em></p>



<h2 class="wp-block-heading">Parte 1: El «Seguro de Vida» (Configurar SSH)</h2>



<p>Antes de meterle mano a la configuración interna, necesitamos una forma de hablar con la Raspberry Pi cuando la pantalla está en negro. Para eso usamos el <strong>SSH (Secure Shell)</strong>. Si puedes entrar por SSH desde tu móvil o tu PC mientras la pantalla está oscura, ¡felicidades!, tu Pi no está muerta, solo está «tímida» con el monitor.</p>



<h3 class="wp-block-heading">1. ¿Cómo saber si el SSH está activo?</h3>



<p>Si tienes la suerte de que la pantalla ha encendido o estás configurándola por primera vez, abre una terminal y comprueba el estado del servicio:</p>



<pre class="wp-block-code"><code>sudo systemctl status ssh
</code></pre>



<h4 class="wp-block-heading">Caso A: El servicio funciona correctamente</h4>



<p>Si ves un mensaje en verde que dice <strong><code>active (running)</code></strong>, todo está perfecto. Ya puedes acceder remotamente.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Ojo:</strong> En mi caso veréis que uso el puerto <strong>22299</strong>, pero por defecto en vuestra Pi será el <strong>22</strong>.</p>
</blockquote>



<pre class="wp-block-code"><code>● ssh.service - OpenBSD Secure Shell server
     Active: active (running) since Sat 2026-03-14 15:15:56 CET; 3h 28min ago
     ...
     mar 14 15:15:56 pi5-2 sshd&#91;1006]: Server listening on 0.0.0.0 port 22299.
</code></pre>



<h4 class="wp-block-heading">Caso B: El servicio está apagado o muerto</h4>



<p>Si por el contrario ves que dice <strong><code>inactive (dead)</code></strong>, significa que estás «ciego» si la pantalla falla. Tienes que activarlo obligatoriamente.</p>



<pre class="wp-block-code"><code>○ ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (...; disabled; ...)
     Active: inactive (dead)
</code></pre>



<h3 class="wp-block-heading">2. Cómo activar e iniciar el SSH</h3>



<p>Para que el SSH se encienda solo cada vez que arranques la Pi (muy importante para nuestro problema), ejecuta estos dos comandos:</p>



<p><strong>Primero: Habilitar el inicio automático</strong></p>



<pre class="wp-block-code"><code>sudo systemctl enable ssh</code></pre>



<p><em>Verás que el sistema crea unos «symlinks» (accesos directos internos), eso indica que ahora arrancará siempre con el sistema.</em></p>



<p><strong>Segundo: Arrancar el servicio ahora mismo</strong></p>



<pre class="wp-block-code"><code>sudo systemctl start ssh</code></pre>



<h2 class="wp-block-heading">Parte 2: El diagnóstico definitivo (¿Monitor o Sistema?)</h2>



<p>Una vez que tengas SSH, la próxima vez que reinicies y la pantalla se quede <strong>«más negra que los huevos de un burro»</strong>, no entres en pánico. Conéctate desde tu móvil y lanza este comando:</p>



<pre class="wp-block-code"><code>kmsprint</code></pre>



<ul class="wp-block-list">
<li><strong>Si ves <code>HDMI-A-1 (connected)</code> </strong>nos confirma que <strong>la Raspberry Pi sí detecta el monitor</strong>, pero la señal de vídeo no se está «dibujando»</li>



<li><strong>Si quieres forzar el encendido desde el móvil</strong>, pega esto en la terminal de tu móvil:</li>
</ul>



<pre class="wp-block-code"><code>export DISPLAY=:0
xset dpms force on</code></pre>



<p>Si esto no enciende tu monitor, ejecuta:</p>



<pre class="wp-block-code"><code><code>sudo systemctl restart lightdm</code></code></pre>



<p><em>(Esto cerrará tus apps abiertas, pero debería forzar al monitor a recibir señal).</em></p>



<p>En mi caso, reiniciar lightdm encendió mi monitor. </p>



<p>El hecho de que al reiniciar <code>lightdm</code> la pantalla se encienda es la <strong>prueba definitiva</strong>: el sistema operativo arranca bien, el hardware funciona y el disco NVMe está perfecto.</p>



<h2 class="wp-block-heading">Parte 3: La Solución Definitiva (La «D» Mágica)</h2>



<p>Si has confirmado que por SSH todo funciona pero el HDMI se queda frito, vamos a aplicar la medicina. Editamos el archivo de configuración del arranque:</p>



<pre class="wp-block-code"><code>sudo nano /boot/firmware/cmdline.txt</code></pre>



<p>Ve al final de la única línea que hay, añade un espacio y escribe:</p>



<p><code>video=HDMI-A-1:1920x1080@60D</code></p>



<p><strong>¿Por qué la D?</strong> Porque le dice a la Pi: <em>«Envía señal Digital sí o sí, no preguntes al monitor si está listo, ¡dispara!»</em>.</p>



<h3 class="wp-block-heading">Un último ajuste en la EEPROM</h3>



<p>Para que el disco NVMe y el vídeo se lleven bien eléctricamente en la Raspberry Pi 5, te recomiendo este cambio final:</p>



<pre class="wp-block-code"><code>sudo rpi-eeprom-config --edit</code></pre>



<p>Añade o cambia estas líneas:</p>



<ul class="wp-block-list">
<li><code>POWER_OFF_ON_HALT=1</code></li>



<li><code>HDMI_DELAY=1</code></li>
</ul>



<p>Este paso es como ajustar el «reloj interno» y la gestión eléctrica de la placa base de tu Raspberry Pi 5. Es el ajuste que soluciona el conflicto físico entre el disco NVMe y el puerto HDMI.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><strong><code>POWER_OFF_ON_HALT=1</code></strong>: Fuerza un reinicio eléctrico completo. Evita que el disco «atonté» a la salida de vídeo.</li>



<li><strong><code>HDMI_DELAY=1</code></strong>: Le da un segundo de ventaja al monitor para que esté listo antes de que la Pi empiece a enviar imágenes.</li>
</ul>
</blockquote>



<p>¡Y listo! Con esto habrás pasado de tener un pisapapeles caro a una <strong>Raspberry Pi 5 con NVMe</strong> que vuela y que no se achica ante ningún reinicio.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/el-misterio-de-la-pantalla-negra-en-raspberry-pi-5-culpa-del-nvme/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo diagnosticar y optimizar un duro SSD o HDD</title>
		<link>https://linuxete.duckdns.org/como-diagnosticar-y-optimizar-un-ssd-usb-en-raspberry-pi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-diagnosticar-y-optimizar-un-ssd-usb-en-raspberry-pi</link>
					<comments>https://linuxete.duckdns.org/como-diagnosticar-y-optimizar-un-ssd-usb-en-raspberry-pi/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 22:12:12 +0000</pubDate>
				<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[hdparm]]></category>
		<category><![CDATA[raspberry-pi]]></category>
		<category><![CDATA[rendimiento-ssd]]></category>
		<category><![CDATA[salud-ssd]]></category>
		<category><![CDATA[smartctl]]></category>
		<category><![CDATA[uasp]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=4000</guid>

					<description><![CDATA[En mi último post hablé de cómo usar una Raspberry Pi Zero para monitorizar un SAI Salicru con NUT y Telegram, evitando esos molestos unsafe shutdowns que tanto dañan los SSD o las SD cards. Todo empezó curioseando en webs de segunda mano. Ya sabéis cómo va: vendedores que aseguran que el disco está en [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>En mi último post hablé de cómo usar una Raspberry Pi Zero para monitorizar un SAI Salicru con NUT y Telegram, evitando esos molestos <em>unsafe shutdowns</em> que tanto dañan los SSD o las SD cards.</p>



<p>Todo empezó curioseando en webs de segunda mano. Ya sabéis cómo va: vendedores que aseguran que el disco está en perfectas condiciones e incluso adjuntan capturas de pantalla de tests de salud. Pero, ¿os fiáis? Yo prefiero hacer las pruebas por mi cuenta y salir de dudas. En Wallapop, por ejemplo, tienes 48 horas para revisar el producto, así que hay tiempo de sobra para comprobar la verdad.</p>



<p>En esta ocasión, voy a testear un <strong>SSD Kingston A400 de 240GB</strong> conectado por USB 3.0 a mi <strong>Raspberry Pi 5</strong>. Mi objetivo: saber si está sano, si es rápido y si está bien configurado.</p>



<p>Hoy os cuento el proceso paso a paso: desde identificar el adaptador USB-SATA hasta medir la velocidad real y consultar la salud interna con SMART. Estos comandos son oro puro si usas el SSD para boot, un NAS casero o backups, y quieres exprimir tu Pi sin sorpresas.</p>



<h3 class="wp-block-heading">¿Por qué molestarse en hacer esto?</h3>



<ul class="wp-block-list">
<li><strong>Saber si tu SSD (o HDD) está sano</strong>: Evitas perder datos por fallos silenciosos (bad blocks, sectores reasignados, desgaste excesivo).</li>



<li><strong>Medir rendimiento real</strong>: Muchos enclosures USB baratos limitan a 30-50 MB/s o caen a USB 2.0. Con UASP bien configurado, un SSD SATA puede volar a 300-400 MB/s en Pi 5.</li>



<li><strong>Detectar problemas de hardware</strong>: Chipset malo (Realtek vs ASMedia), alimentación inestable, cables defectuosos o quirks del kernel.</li>



<li><strong>Beneficios prácticos</strong>: Boot mucho más rápido que microSD, menos corrupción de filesystem, alertas tempranas si la vida del SSD baja, y tranquilidad total (sobre todo si usas el Pi 24/7).</li>
</ul>



<h3 class="wp-block-heading">1. Lista todos los dispositivos USB conectados.</h3>



<p>En mi caso:</p>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>lsusb</strong>
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 04d9:0006 Holtek Semiconductor, Inc. Wired Keyboard (78/79 key) &#91;RPI Wired Keyboard 5]
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
<mark style="background-color:#fcb900" class="has-inline-color">Bus 004 Device 002: ID 14b0:0206 StarTech.com Ltd.  SA400S37240G</mark></code></pre>



<p><br>→ Identifica el VID:PID del adaptador (14b0:0206 es StarTech con chipset ASMedia ASM105x, de los mejores). Si ves Realtek (0bda:xxxx), ojo, pueden ser más problemáticos.</p>



<h3 class="wp-block-heading">2. Muestra el árbol USB con drivers y velocidades.</h3>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>lsusb -t</strong>
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/2p, 480M
    |__ Port 002: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 001: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 001: Dev 003, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 002: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/2p, 480M
/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
   <mark style="background-color:#fcb900" class="has-inline-color"> |__ Port 001: Dev 002, If 0, Class=Mass Storage, Driver=uas, 5000M</mark></code></pre>



<p><strong>Velocidades de transferencia:</strong> Al final de cada línea verás algo como <code>5000M</code> (5 Gbps/USB 3.0), <code>480M</code> (480 Mbps/USB 2.0) o incluso <code>10G</code> (USB 3.1 Gen 2).<br><strong>Drivers (Controladores):</strong> Te indica qué driver está gestionando el dispositivo (por ejemplo, <code>usb-storage</code> o el deseado <code>uas</code> para mayor velocidad en SSDs).</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>¡UASP activo! Esto es lo que queremos: bajo uso CPU, mejor rendimiento secuencial. Si ves «usb-storage» en vez de «uas», es más lento y usa más CPU.</p>
</blockquote>



<h3 class="wp-block-heading">3. Identifica el disco.</h3>



<p>«Antes de tocar nada, necesitamos saber quién es quién. Usamos <strong>lsblk</strong> para ver de forma clara el modelo y tamaño de nuestros discos, y <strong>fdisk</strong> para confirmar los detalles técnicos y sectores del sistema. Es el primer paso para no equivocarnos de unidad al formatear o testear.»</p>



<p><strong><code>lsblk -o NAME,SIZE,TYPE,MODEL</code> (El DNI del disco)</strong></p>



<p><code>lsblk</code> significa <em>List Block Devices</em>. Es la forma más limpia y moderna de ver qué tienes conectado.</p>



<ul class="wp-block-list">
<li><strong>¿Para qué sirve?</strong> Para identificar rápidamente qué letra tiene tu disco (<code>sda</code>, <code>sdb</code>, etc.) y qué particiones hay dentro.</li>



<li><strong>¿Qué significan las opciones?</strong> Con <code>-o</code> le pedimos que solo nos muestre lo que nos interesa:
<ul class="wp-block-list">
<li><strong>NAME:</strong> El nombre técnico (ej. <code>sda</code>).</li>



<li><strong>SIZE:</strong> Cuánto espacio tiene.</li>



<li><strong>TYPE:</strong> Si es un disco entero (<code>disk</code>) o una partición (<code>part</code>).</li>



<li><strong>MODEL:</strong> La marca y modelo real (aquí es donde verás si tu SSD es un Kingston, un Samsung, etc.).</li>
</ul>
</li>



<li><strong>Ventaja:</strong> No necesita permisos de superusuario (<code>sudo</code>) y la salida es muy fácil de leer.</li>
</ul>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>lsblk -o NAME,SIZE,TYPE,MODEL</strong>
NAME     SIZE TYPE MODEL
loop0      2G loop 
<mark style="background-color:#fcb900" class="has-inline-color">sda    223,6G disk KINGSTON SA400S37240G</mark>
├─sda1   512M part 
└─sda2 223,1G part 
zram0      2G disk </code></pre>



<p><strong><code>sudo fdisk -l | grep -i disk</code> (La Radiografía técnica)</strong></p>



<p><code>fdisk</code> es una herramienta clásica y potente para manejar tablas de particiones.</p>



<ul class="wp-block-list">
<li><strong>¿Para qué sirve?</strong> Muestra detalles mucho más técnicos que <code>lsblk</code>, como el número exacto de sectores, el identificador del disco y el tamaño en bytes exactos.</li>



<li><strong>¿Por qué usamos el <code>grep -i disk</code>?</strong> Si lanzas <code>sudo fdisk -l</code> a secas, te saldrá una lista larguísima de todas las particiones, sectores de inicio, fin, etc. Al filtrar con <code>grep</code>, le decimos: «Solo enséñame las líneas que resuman la información de los discos físicos».</li>



<li><strong>Ventaja:</strong> Te da el tamaño exacto en bytes (útil para clonar discos) y te confirma si el disco tiene un esquema de particiones válido (GPT o DOS).</li>
</ul>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>sudo fdisk -l | grep -i disk</strong>
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram2: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram3: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram4: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram5: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram6: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram7: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram8: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram9: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram10: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram11: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram12: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram13: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram14: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/loop0: 2 GiB, 2147483648 bytes, 4194304 sectors
<mark style="background-color:#fcb900" class="has-inline-color">Disk /dev/sda: 223,57 GiB, 240057409536 bytes, 468862128 sectors
Disk model:  SA400S37240G   
Disklabel type: dos
Disk identifier: 0xc7a2c28e</mark>
Disk /dev/zram0: 2 GiB, 2147483648 bytes, 524288 sectors
</code></pre>



<p>Esto confirma que /dev/sda es mi SSD (no la SD de boot ni zram).</p>



<h3 class="wp-block-heading">4<strong>. Instalar herramientas</strong>.</h3>



<pre class="wp-block-code"><code>   sudo apt update
   sudo apt install hdparm smartmontools</code></pre>



<p>Las herramientas necesarias para la monitorio son:<br><code><strong>- hdparm</strong></code> para tests de velocidad<br><code><strong>- smartmontools </strong></code>para SMART (salud del disco).</p>



<h3 class="wp-block-heading">5. El Autodiagnóstico: Obligando al SSD a decir la verdad</h3>



<p>A veces, un vendedor de segunda mano puede haber «reseteado» los contadores SMART o simplemente el disco aún no ha registrado un fallo que acaba de ocurrir. Para eso usamos el <strong>Short Self-Test</strong>.</p>



<p>Ejecuta este comando para iniciar un chequeo instantáneo:</p>



<pre class="wp-block-code"><code>sudo smartctl -t short -d sat /dev/sda</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Nota:</strong> Este comando no te dará el resultado al instante. Solo le da la orden al disco y te devuelve el control de la terminal. Es como pedir cita en el médico: la orden está dada, pero el examen lleva su tiempo (normalmente 1 o 2 minutos).</p>
</blockquote>



<p>Este comando es una buena opción para mirar los atributos, porque obliga al disco a trabajar en ese momento. Si hay un fallo físico inminente, el test se detendrá y te avisará. Es la forma más rápida de saber si el SSD que tienes en las manos es fiable.</p>



<p><strong>¿Cómo sé si ha terminado?</strong> Tienes que consultar el log después de que pase ese tiempo usando el comando: </p>



<pre class="wp-block-code"><code><code>sudo smartctl -l selftest -d sat /dev/sda</code></code></pre>



<p>Este comando arroja sobre mi disco la siguiente información:</p>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>sudo smartctl -l selftest -d sat /dev/sda</strong>
smartctl 7.4 2023-08-01 r5530 &#91;aarch64-linux-6.12.62+rpt-rpi-2712] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      9098         -

</code></pre>



<p>¿<strong>Cómo leer el log de autodiagnóstico? (Self-test)</strong></p>



<p>Esto es lo que debes mirar:</p>



<ul class="wp-block-list">
<li><strong>Status: «Completed without error»</strong>. Esta es la clave. Significa que el disco ha analizado sus componentes internos, la electrónica y la superficie de las celdas de memoria y <strong>no ha encontrado fallos físicos</strong>.</li>



<li><strong>Remaining: «00%»</strong>. Indica que el test ha terminado por completo, si hay otro valor, espera y lanza el comando otra vez para ver si terminó.</li>



<li><strong>LifeTime(hours): «9098»</strong>. Es el momento exacto en la vida del disco en el que se hizo el test.</li>



<li><strong>LBA_of_first_error: «-«</strong>. Si aquí aparece un número, es la dirección del sector donde el disco ha fallado. Al aparecer un guion, confirmamos que el disco está limpio.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Ese comando tiene dos variantes de test:<br><code><strong>- short</strong></code>: Tarda 1-2 minutos y revisa lo más crítico.<br><code>- <strong>long</strong></code>: Puede tardar 1 hora o más porque lee <strong>cada una</strong> de las celdas del disco. Para una compra de Wallapop, con el <code>short</code> suele ser suficiente, pero si el disco es muy grande y tienes tiempo, el <code>long</code> es la seguridad total.</p>
</blockquote>



<h4 class="wp-block-heading">5.1 Test de velocidad de escritura. (Test de Estrés)</h4>



<p><code>hdparm</code> mide lectura, pero los SSD fallan al <strong>escribir</strong>. Crea un archivo de prueba de 1GB para ver si la velocidad se mantiene estable:</p>



<pre class="wp-block-code"><code>dd if=/dev/zero of=./testfile bs=1G count=1 oflag=dsync</code></pre>



<ul class="wp-block-list">
<li><strong>Resultado OK:</strong> Velocidad constante (ej. 200-350 MB/s para SATA).</li>



<li><strong>Resultado sospechoso:</strong> Si empieza rápido y cae de golpe a <strong>15-20 MB/s</strong>, las celdas están muy castigadas.</li>
</ul>



<p>Para mi caso:</p>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>dd if=/dev/zero of=./testfile bs=1G count=1 oflag=dsync</strong>
1+0 records in
1+0 records out
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 4,03518 s, 266 MB/s</code></pre>



<p>Resultado es <strong>excelente! </strong>, esos <strong>266 MB/s</strong> de escritura real (y con el flag <code>dsync</code>, que fuerza a que el dato se escriba físicamente antes de terminar) confirman que tu SSD y tu adaptador USB están trabajando a un nivel de rendimiento altísimo para una Raspberry Pi.</p>



<p>Para un SSD SATA conectado por USB en una Raspberry Pi, es prácticamente el límite de lo que el hardware puede dar. Tienes un conjunto de disco y controladora muy sólido.</p>



<h4 class="wp-block-heading">5.2 Test de velocidad de lectura real (sin caché)</h4>



<p>Mi resultado:</p>



<pre class="wp-block-code"><code>   vigilante@raspberrypi:~ $ <strong>sudo hdparm -t /dev/sda</strong>

/dev/sda:
 Timing buffered disk reads: 1026 MB in  3.02 seconds = 339.63 MB/sec</code></pre>



<p>¡Brutal! para un SSD SATA en USB 3.0 en Pi 5. El Kingston A400 nativo hace ~500 MB/s, pero con overhead USB + enclosure, 340 MB/s es top. Si sale &lt;100 MB/s → problema (cable, chipset, alimentación, o sin UASP).</p>



<h3 class="wp-block-heading">6. ¿Soporta TRIM?</h3>



<p>Si compras un pack de SSD + Carcasa USB, necesitas saber si el conjunto permite el comando <strong>TRIM</strong>. </p>



<p>El soporte de TRIM depende tanto del disco como del adaptador usb-to-sata. Si uno de ellos no es compatible, el otro tampoco lo será.</p>



<p>Compruébalo así:</p>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>lsblk --discard</strong>
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
loop0         0        4K       4G         0
sda           0        0B       0B         0
├─sda1        0        0B       0B         0
└─sda2        0        0B       0B         0
zram0         0       16K       2T         0
</code></pre>



<p>Fíjate en las columnas <code>DISC-ALN</code> y <code>DISC-MAX</code>. <strong>Si aparecen ceros</strong>, el adaptador USB no es compatible con TRIM o el SSD es muy antiguo. En una Pi, esto es clave para que el sistema no se degrade.</p>



<p>Sin TRIM, la Raspberry Pi no podrá decirle al SSD qué bloques están libres, y con el tiempo el disco se volverá lento como una tortuga.</p>



<h3 class="wp-block-heading">7. Muestra TODA la info SMART.</h3>



<p>A veces compras un disco en Aliexpress o en tiendas de segunda mano, te venden un «Samsung 870» metido en una carcasa genérica, pero dentro hay un disco chino de marca blanca.</p>



<p>Existe un comando con dos variantes que nos dará una rápida o extensa información del disco</p>



<p><code>sudo smartctl -i -d sat /dev/sda</code> (Información de identidad)</p>



<p>La <code>-i</code> viene de <strong>Info</strong>.</p>



<ul class="wp-block-list">
<li><strong>Qué hace:</strong> Solo te dice <strong>qué es</strong> el disco.</li>



<li><strong>Qué verás:</strong> Marca, modelo, número de serie, versión del firmware y si el SMART está activado o no.</li>



<li><strong>Cuándo usarlo:</strong> Cuando solo quieres confirmar que el disco que te han vendido es el modelo real y no un «cambiazo» (lo que hablábamos de Wallapop).</li>
</ul>



<p><code>sudo smartctl -a -d sat /dev/sda</code> (Análisis total)</p>



<p>La <code>-a</code> viene de <strong>All</strong> (Todo).</p>



<ul class="wp-block-list">
<li><strong>Qué hace:</strong> Muestra <strong>todo</strong> lo que el disco sabe de sí mismo. Incluye la información de la <code>-i</code>, pero añade lo más importante:
<ul class="wp-block-list">
<li><strong>Atributos SMART:</strong> Los contadores de vida, horas de encendido, errores de lectura y los famosos sectores reasignados (ID 05/196).</li>



<li><strong>Resumen de Salud:</strong> El veredicto «PASSED» o «FAILED».</li>



<li><strong>Estadísticas de temperatura:</strong> Mínimas y máximas históricas.</li>
</ul>
</li>



<li><strong>Cuándo usarlo:</strong> Siempre que quieras diagnosticar o saber si el disco está sano.</li>
</ul>



<p>Este comando nos dará un rápido resumen de la identidad real del disco:</p>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>sudo smartctl -i -d sat /dev/sda</strong>
smartctl 7.4 2023-08-01 r5530 &#91;aarch64-linux-6.12.62+rpt-rpi-2712] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Phison Driven SSDs
Device Model:     <mark style="background-color:#7bdcb5" class="has-inline-color">KINGSTON SA400S37240G</mark>
Serial Number:    60026B7785211E3B
LU WWN Device Id: 5 0026b7 785211e3b
Firmware Version: SBFKB1H5
User Capacity:    240.057.409.536 bytes &#91;240 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
TRIM Command:     Available
Device is:        In smartctl database 7.3/5528
ATA Version is:   ACS-3 T13/2161-D revision 4
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri Mar 13 18:05:54 2026 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
</code></pre>



<p>Mira donde pone <strong>Device Model</strong>. Si el vendedor dice que es un Kingston y el comando dice «Netac» o «KingSpec», te están intentando engañar.</p>



<p>Si vas a quedar con alguien de Wallapop, llévate tu Raspberry Pi, un PowerBank y estos comandos anotados. En 5 minutos sabrás si el SSD es una ganga o una estafa.</p>



<p>Veamos la información completa del disco (salud interna):</p>



<pre class="wp-block-code"><code>vigilante@raspberrypi:~ $ <strong>sudo smartctl -a -d sat /dev/sda</strong>
smartctl 7.4 2023-08-01 r5530 &#91;aarch64-linux-6.12.62+rpt-rpi-2712] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Phison Driven SSDs
Device Model:     KINGSTON SA400S37240G
Serial Number:    60026B7785211E3B
LU WWN Device Id: 5 0026b7 785211e3b
Firmware Version: SBFKB1H5
User Capacity:    240.057.409.536 bytes &#91;240 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
TRIM Command:     Available
Device is:        In smartctl database 7.3/5528
ATA Version is:   ACS-3 T13/2161-D revision 4
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Mon Mar  9 19:15:15 2026 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: <mark style="background-color:#7bdcb5" class="has-inline-color">PASSED</mark>

General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever 
					been run.
Total time to complete Offline 
data collection: 		(65535) seconds.
Offline data collection
capabilities: 			 (0x11) SMART execute Offline immediate.
					No Auto Offline data collection support.
					Suspend Offline collection upon new
					command.
					No Offline surface scan supported.
					Self-test supported.
					No Conveyance Self-test supported.
					No Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine 
recommended polling time: 	 (   1) minutes.
Extended self-test routine
recommended polling time: 	 (   2) minutes.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x0032   100   100   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       <mark style="background-color:#7bdcb5" class="has-inline-color">9090</mark>
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       154
148 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       0
149 Unknown_Attribute       0x0000   100   100   000    Old_age   Offline      -       0
167 Write_Protect_Mode      0x0000   100   100   000    Old_age   Offline      -       0
168 SATA_Phy_Error_Count    0x0012   100   100   000    Old_age   Always       -       0
169 Bad_Block_Rate          0x0000   100   100   000    Old_age   Offline      -       17
170 Bad_Blk_Ct_Lat/Erl      0x0000   100   100   010    Old_age   Offline      -       0/12
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
173 MaxAvgErase_Ct          0x0000   100   100   000    Old_age   Offline      -       67 (Average 51)
181 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
182 Erase_Fail_Count        0x0000   100   100   000    Old_age   Offline      -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
192 Unsafe_Shutdown_Count   0x0012   100   100   000    Old_age   Always       -       <mark style="background-color:#7bdcb5" class="has-inline-color">149</mark>
194 Temperature_Celsius     0x0022   024   048   000    Old_age   Always       -       <mark style="background-color:#7bdcb5" class="has-inline-color">24</mark> (Min/Max 17/48)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       <mark style="background-color:#7bdcb5" class="has-inline-color">0</mark>
199 SATA_CRC_Error_Count    0x0032   100   100   000    Old_age   Always       -       0
218 CRC_Error_Count         0x0032   100   100   000    Old_age   Always       -       0
231 SSD_Life_Left           0x0000   094   094   000    Old_age   Offline      -       <mark style="background-color:#7bdcb5" class="has-inline-color">94</mark>
233 Flash_Writes_GiB        0x0032   100   100   000    Old_age   Always       -       7476
241 Lifetime_Writes_GiB     0x0032   100   100   000    Old_age   Always       -       <mark style="background-color:#7bdcb5" class="has-inline-color">4094</mark>
242 Lifetime_Reads_GiB      0x0032   100   100   000    Old_age   Always       -       11006
244 Average_Erase_Count     0x0000   100   100   000    Old_age   Offline      -       51
245 Max_Erase_Count         0x0000   100   100   000    Old_age   Offline      -       67
246 Total_Erase_Count       0x0000   100   100   000    Old_age   Offline      -       392144

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  &#91;To run self-tests, use: smartctl -t]

Selective Self-tests/Logging not supported

The above only provides legacy SMART information - try 'smartctl -x' for more

</code></pre>



<p>Lo más interesante de mi disco</p>



<ul class="wp-block-list">
<li><strong>Overall-health self-assessment test result: PASSED</strong> → Perfecto.</li>



<li>9 &#8211; <strong>Power_On_Hours: 9090</strong> (~1 año encendido).</li>



<li>192 &#8211; <strong>Unsafe_Shutdown_Count: 149</strong> → Apagados bruscos (lo solucioné con el SAI + NUT del post anterior).</li>



<li>196 &#8211; <strong>Reallocated_Event_Count: 0</strong> → Ningún sector malo reasignado.</li>



<li>231 &#8211; <strong>SSD_Life_Left: 94%</strong> → Aún le queda 94% de vida (TBW ~80 TB, yo ~4 TB escritos).</li>



<li>194 &#8211; <strong>Temperature_Celsius: 24 (Max 48)</strong> → Fresco.</li>



<li>169 &#8211; <strong>Bad_Block_Rate : 17</strong> → indica el porcentaje de bloques que salieron defectuosos de fábrica o se han marcado como malos.</li>



<li>241 &#8211; <strong>Lifetime_Writes_GiB: 4094</strong> (~4.1 TB escritos). El bridge USB (StarTech) pasa SMART completo → gran ventaja vs enclosures baratos que lo truncan.</li>
</ul>



<h3 class="wp-block-heading">¿Qué aprendí y recomendaciones?</h3>



<ul class="wp-block-list">
<li>Mi combo <strong>Kingston A400 240GB + enclosure StarTech (ASMedia UAS)</strong> es ganador: rápido, estable, SMART full y salud excelente.</li>



<li>Si usas SSD USB en Pi → <strong>prioriza chipsets ASMedia</strong> (ASM1153/1053), evita Realtek baratos si puedes.</li>



<li>Alimentación: Usa powered hub o fuente externa para HDD/SSD grandes.</li>



<li>Monitorea periódicamente: Pon un cron mensual con <code>smartctl -a</code> y alerta por Telegram si vida &lt;80% o temp &gt;55°C.</li>



<li>Beneficio final: Boot Pi en 10-15s vs 30-60s en microSD, apps más fluidas, menos corrupción, y sabes exactamente cómo está tu hardware.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> El aviso de «Sectores Reasignados»<br>Dependiendo de la marca de tu SSD, este valor puede llamarse de varias formas. Es el contador de sectores que han muerto y que el disco ha tenido que sustituir por otros de «reserva»:<br><strong>En la mayoría (Samsung, Crucial, etc):</strong> Busca el <strong>ID 05</strong> (<em>Reallocated Sector Count</em>).<br><strong>En discos como el mío (Kingston/Phison):</strong> Busca el <strong>ID 196</strong> (<em>Reallocated Event Count</em>).<br><strong>Lo importante:</strong> En la columna <code>RAW_VALUE</code>, el número debe ser <strong>0</strong>. Si ves un 10, un 50 o un 100, ese disco está empezando a morir físicamente. ¡No lo compres!</li>



<li>El <strong>ID 169 (Bad_Block_Rate)</strong>. Este es otro chivato muy bueno, Mi valor es <code>17</code>. En muchos SSD de gama media/baja, esto indica el porcentaje de bloques que salieron defectuosos de fábrica o se han marcado como malos. Mientras el <strong>ID 196</strong> esté en <strong>0</strong>, el disco ha gestionado bien esos fallos, pero si ese número sube de repente, mala señal.</li>
</ul>



<p>Si estás montando un NAS, media center o server casero con Raspberry Pi, <strong>haz estos tests YA</strong>. Te ahorras disgustos y descubres si tu setup vuela o cojea.</p>



<p>¿Has probado boot desde SSD USB? ¿Qué velocidades te salen? ¡Cuéntame en comentarios! <br><br>Próximo post: script para alertas automáticas de SMART por Telegram.</p>



<p>¡Un saludo, linuxetes! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/como-diagnosticar-y-optimizar-un-ssd-usb-en-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Control inteligente de la refrigeración de mi Raspberry Pi 4.</title>
		<link>https://linuxete.duckdns.org/control-inteligente-de-la-refrigeracion-de-mi-raspberry-pi-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=control-inteligente-de-la-refrigeracion-de-mi-raspberry-pi-4</link>
					<comments>https://linuxete.duckdns.org/control-inteligente-de-la-refrigeracion-de-mi-raspberry-pi-4/#comments</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Sat, 10 Jan 2026 19:03:53 +0000</pubDate>
				<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[control ventilador raspberry]]></category>
		<category><![CDATA[fan raspberry pi 4]]></category>
		<category><![CDATA[ventilador raspberry]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=3666</guid>

					<description><![CDATA[La Raspberry Pi 4, si la dejas trabajar duro, puede ponerse mas caliente que un «Amego Segarro» en una feria. Su procesador puede alcanzar temperaturas que activan el thermal throttling, reduciendo su velocidad para no «derretirse». Es fundamental entender que el procesador empieza a reducir su velocidad automáticamente cuando llega a los 80°C &#8211; 85°C [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="1000" height="1000" src="https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_.jpg" alt="" class="wp-image-1235" style="width:328px;height:auto" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_.jpg 1000w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-300x300.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-150x150.jpg 150w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-768x768.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>La <strong>Raspberry Pi 4</strong>, si la dejas trabajar duro, puede ponerse mas caliente que un «Amego Segarro» en una feria. Su procesador puede alcanzar temperaturas que activan el <em>thermal throttling</em>, reduciendo su velocidad para no «derretirse». Es fundamental entender que el procesador empieza a reducir su velocidad automáticamente cuando llega a los <strong>80°C &#8211; 85°C</strong> para protegerse.</p>



<p>Muchos optan por conectar un ventilador directamente a los pines de 5V, lo cual funciona, pero tiene dos grandes problemas: el ruido constante (¡parece un avión despegando!) y el desgaste innecesario del motor.</p>



<p>En esta entrada, vamos a hacer algo mucho más elegante y profesional. Vamos a configurar un <strong>sistema de control por PWM (Modulación por Ancho de Pulsos)</strong> utilizando el tercer cable de nuestro ventilador. ¿Qué conseguiremos con esto?</p>



<ul class="wp-block-list">
<li><strong>Silencio absoluto:</strong> El ventilador solo girará lo necesario.</li>



<li><strong>Inteligencia térmica:</strong> Crearemos un script en Python que «lee» la mente (y la temperatura) de la CPU.</li>



<li><strong>Automatización total:</strong> Configuraremos un servicio en Linux para que el control sea eterno y arranque solo.</li>



<li><strong>Protección de hardware:</strong> Evitaremos forzar los pines de la placa con una configuración segura.</li>
</ul>



<p>Si quieres que tu Pi 4 esté siempre fresca sin sacrificar tus oídos, ¡acompáñame en este tutorial!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Conexión del ventilador</h2>



<p>Un ventilador PWM (Modulación por Ancho de Pulsos) se compone de 3 cables, esto significa que no solo puedes encenderlo o apagarlo, sino que puedes regular su velocidad (por ejemplo, que gire al 40% si está a 45°C y al 100% si llega a 60°C).</p>



<p>La función de cada cable es:</p>



<ol start="1" class="wp-block-list">
<li><strong>Rojo</strong> a un pin de <strong>5V</strong> positivo. (Pin 2 o 4). Aquí toma la fuerza.</li>



<li><strong>Negro</strong> a un pin <strong>GND</strong> negativo. (Pin 6).</li>



<li><strong>Azul</strong>  (PWM) por ejemplo, pin 18  (GPIO 24).</li>
</ol>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="1280" height="721" src="https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29.jpg" alt="" class="wp-image-1238" style="aspect-ratio:1.775316412833578;width:510px;height:auto" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29.jpg 1280w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29-300x169.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29-1024x577.jpg 1024w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29-768x433.jpg 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></figure>



<p>Como se ve en la imagen anterior, <strong>No, se necesita resistencia</strong>, ya que el cable azul solo recibe una «señal» de control de muy baja intensidad (lógica), el procesador de la Raspberry no sufre. El transistor ya viene integrado dentro del propio ventilador para gestionar esa señal.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Nota: Algunos ventiladores baratos de 3 cables no soportan PWM por el tercer cable (a veces el tercer cable es solo un sensor de revoluciones, no de control). <br>&#8211; <strong>Si el ventilador baja de velocidad:</strong> ¡Perfecto! Todo funciona.<br><strong>&#8211; Si el ventilador solo está encendido o apagado:</strong> Significa que tu cable azul es un sensor «Tacho» y no admite control de velocidad. En ese caso, el script funcionará a todo o nada. (ON/OFF).</p>
</blockquote>



<h2 class="wp-block-heading">El script.</h2>



<p>Con este script, tu Raspberry Pi 4 tendrá un comportamiento idéntico al ventilador de un ordenador portátil moderno. Este no solo enciende o apaga, sino que hace que el ventilador «susurre» cuando hay poca temperatura y «sople» fuerte solo cuando es necesario.</p>



<p>Script<strong> (Edición PWM)</strong></p>



<p>Copia y pega el siguiente script en un archivo llamado fanGuard.py</p>



<pre class="wp-block-code"><code>nano fanGuard.py</code></pre>



<pre class="wp-block-code"><code>#!/usr/bin/python3
import RPi.GPIO as GPIO
import time
import subprocess
import sys
from datetime import datetime

# ==========================================
# CONFIGURACIÓN PROPORCIONAL PRO
# ==========================================
PIN_FAN        = 18
FRECUENCIA     = 100
ESPERA         = 3

TEMP_ARRANQUE  = 50
TEMP_MAXIMA    = 65
TEMP_PARADA    = 39
POTENCIA_MIN   = 40
# ==========================================

def obtener_temp_maxima():
    try:
        with open("/sys/class/thermal/thermal_zone0/temp", "r") as f:
            temp_cpu = float(f.read()) / 1000

        salida_gpu = subprocess.check_output(&#91;"vcgencmd", "measure_temp"]).decode("utf-8")
        temp_gpu = float(salida_gpu.replace("temp=", "").replace("'C\n", ""))

        return max(temp_cpu, temp_gpu)
    except Exception:
        return 55.0

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN_FAN, GPIO.OUT)
pwm = GPIO.PWM(PIN_FAN, FRECUENCIA)
pwm.start(0)

ventilador_activo = False

print("=============================================")
print("  FAN GUARD PRO: CPU + GPU MONITOR  ")
print(f"  Arranque: {TEMP_ARRANQUE}C | Parada: {TEMP_PARADA}C")
print("=============================================")

try:
    while True:
        temp = obtener_temp_maxima()
        ahora = datetime.now().strftime("%H:%M:%S")
        nivel = 0

        if temp &gt;= TEMP_ARRANQUE:
            ventilador_activo = True
        elif temp &lt;= TEMP_PARADA:
            ventilador_activo = False

        if ventilador_activo:
            if temp &gt;= TEMP_MAXIMA:
                nivel = 100
            elif temp &lt;= TEMP_ARRANQUE:
                nivel = POTENCIA_MIN
            else:
                dif_temp = temp - TEMP_ARRANQUE
                rango_temp = TEMP_MAXIMA - TEMP_ARRANQUE
                rango_potencia = 100 - POTENCIA_MIN
                nivel = int(POTENCIA_MIN + (dif_temp * rango_potencia / rango_temp))
        else:
            nivel = 0

        pwm.ChangeDutyCycle(min(max(nivel, 0), 100))

        # Usamos carácteres ASCII compatibles con todas las terminales
        estado = "&#91;ON]" if ventilador_activo else "&#91;OFF]"
        barra = "#" * (nivel // 10) + "-" * (10 - (nivel // 10))

        print(f"&#91;{ahora}] {estado} Temp: {temp:.1f}C | Potencia: &#91;{barra}] {nivel}%")

        time.sleep(ESPERA)

except KeyboardInterrupt:
    print("\nDeteniendo servicio...")
finally:
    pwm.stop()
    GPIO.cleanup()


</code></pre>



<p>Guarda el documento con <code>Ctrl + o</code> y sal con <code>Ctrl + x</code></p>



<p>No olvides hacerlo ejecutable con:</p>



<pre class="wp-block-code"><code>chmod +x fanGuard.py</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Ciclo de funcionamiento.(Configuración 50°C &#8211; 65°C)</h3>



<ol start="1" class="wp-block-list">
<li><strong>Zona de Silencio Total (Hasta 50°C):</strong> El ventilador está en <strong>0% (Apagado)</strong>. Gracias a tu torre de refrigeración, la Raspberry se mantendrá aquí la mayor parte del tiempo (sobre los 45°C-47°C).</li>



<li><strong>El Despertar (A los 50°C):</strong> En cuanto el sensor (CPU o GPU) toca los <strong>50.0°C</strong>, el ventilador arranca directamente al <strong>40% de potencia</strong>. Esto asegura que el aire fluya con fuerza suficiente por las aletas del Ice Tower desde el primer segundo.</li>



<li><strong>Zona Dinámica Proporcional (De 50°C a 65°C):</strong> El script escala la velocidad de forma lineal:
<ul class="wp-block-list">
<li><strong>50°C</strong> &#8212;&#8212;&#8212;&#8212;&#8212;&gt; <strong>40%</strong> (Arranque mínimo).</li>



<li><strong>57.5°C</strong> &#8212;&#8212;&#8212;&#8212;-&gt; <strong>70%</strong> aprox. (Punto medio).</li>



<li><strong>65°C</strong> &#8212;&#8212;&#8212;&#8212;&#8212;&gt; <strong>100%</strong> (Potencia máxima).</li>
</ul>
</li>



<li><strong>La Bajada con Histéresis (El camino de vuelta):</strong> * Si el ventilador está encendido y la temperatura baja de 50°C, <strong>no se apaga</strong>.
<ul class="wp-block-list">
<li>Se mantiene soplando al <strong>40%</strong> de forma constante mientras baja por los 48°C, 45°C&#8230;.</li>



<li>Solo cuando el sensor marca <strong>39°C o menos</strong>, el ventilador se detiene por completo.</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading">¿Por qué este cambio es mejor para tu caso?</h3>



<p>Con estos margenes de temperaturas, tenemos un margén de maniobra para no castigar en exceso al ventilador, por lo que:</p>



<ul class="wp-block-list">
<li><strong>Evitas el desgaste:</strong> El ventilador gira lo necesario, reduciendo horas de funcionamiento y evitando desgaste del mismo.</li>



<li><strong>Aprovechas el cobre:</strong> Dejas que el disipador trabaje de forma pasiva hasta su límite razonable.</li>



<li><strong>Enfriamiento real:</strong> Cuando arranca a 50°C, lo hace con la misión de bajar hasta los 39°C, asegurando que la placa se quede realmente fresca antes de volver a apagarse.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Tabla resumen de revoluciones (ejemplo estimado):</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>Temperatura</strong></td><td><strong>Estado</strong></td><td><strong>Potencia PWM</strong></td><td><strong>Ruido Estimado</strong></td></tr></thead><tbody><tr><td><strong>38°C</strong></td><td>Bajando</td><td>0% (Apagado)</td><td>Silencio total</td></tr><tr><td><strong>46°C</strong></td><td>Subiendo</td><td>0% (Apagado)</td><td>Silencio total</td></tr><tr><td><strong>50°C</strong></td><td><strong>Arranca</strong></td><td><strong>40%</strong></td><td>Susurro suave</td></tr><tr><td><strong>52°C</strong></td><td>Estable</td><td>68%</td><td>Flujo de aire constante</td></tr><tr><td><strong>60°C</strong></td><td>Alerta</td><td>100%</td><td>Máximo soplado</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">¿Cómo saber si los porcentajes son correctos para TU ventilador?</h3>



<p>Cada ventilador es un mundo. Si notas que al 40% hace un ruido eléctrico pero no gira, puedes subir la variable <code>POTENCIA_MIN</code> a <strong>50</strong>. Si por el contrario gira muy fuerte desde el principio, puedes bajarla a <strong>30</strong>.</p>



<p>Para alargar la vida útil de los componentes y mantener el máximo rendimiento, lo ideal es mantenerla <strong>por debajo de los 60°C</strong> en carga de trabajo.</p>



<h3 class="wp-block-heading">Crear el archivo del servicio</h3>



<p>Para hacerlo «eterno» con <code>systemd</code>, tenemos que seguir unos pasos específicos. Es vital que el servicio se ejecute como <strong>root</strong> (para tener permisos sobre los GPIO) y que gestione bien el apagado, evitando que el ventilador no se quede «silbando» cuando detengas la Raspberry.</p>



<p>Abre el editor para crear el archivo de configuración del sistema:</p>



<pre class="wp-block-code"><code>sudo nano /etc/systemd/system/fanguard.service</code></pre>



<h3 class="wp-block-heading">3. Pegar la configuración del servicio</h3>



<p>Copia y pega este bloque tal cual, sustituyendo tu_usuario, por el tuyo propio de la ruta en <code>ExecStart</code>):</p>



<pre class="wp-block-code"><code>&#91;Unit]
Description=Control Inteligente de Ventilador PWM con Histeresis
After=multi-user.target

&#91;Service]
Type=simple
User=root
ExecStart=/usr/bin/python3 -u /home/<mark style="background-color:#7bdcb5" class="has-inline-color">tu_usuario</mark>/fanguard.py
Restart=always
RestartSec=10
# Esto asegura que los prints del script se vean en el log del sistema
StandardOutput=inherit
StandardError=inherit

&#91;Install]
WantedBy=multi-user.target
</code></pre>



<h3 class="wp-block-heading">4. Activar el «Modo Eterno»</h3>



<p>Ahora ejecuta estos comandos en orden para que el sistema reconozca el nuevo servicio y lo arranque:</p>



<ol start="1" class="wp-block-list">
<li><strong>Recargar el sistema:</strong><br><code>sudo systemctl daemon-reload</code></li>



<li><strong>Activar el inicio automático al arrancar:</strong><br><code>sudo systemctl enable fanguard.service</code></li>



<li><strong>Iniciar el ventilador ahora mismo:</strong><br><code>sudo systemctl start fanguard.service</code></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">¿Cómo puedes vigilar tu ventilador ahora?</h3>



<p>Como el script ahora corre de fondo («eterno»), ya no verás la barrita de carga directamente en la pantalla, pero puedes «espiarlo» con estos comandos:</p>



<ul class="wp-block-list">
<li><strong>Para ver si está vivo y la temperatura actual:</strong><br><code>sudo systemctl status fanguard.service</code></li>



<li><strong>Para ver el funcionamiento en tiempo real (ver los logs):</strong><br><code>journalctl -u fanguard.service -f</code></li>



<li><strong>Si quieres detenerlo para hacer cambios en el script:</strong><br><code>sudo systemctl stop fanguard.service </code><br><em>(Al detenerlo, gracias al bloque <code>finally</code> de tu script, el ventilador se apagará completamente).</em></li>
</ul>



<p>¡Listo! Ya tienes un sistema de refrigeración de grado industrial en tu Raspberry Pi 4.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/control-inteligente-de-la-refrigeracion-de-mi-raspberry-pi-4/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo actualizar el firmware de la Raspberry Pi</title>
		<link>https://linuxete.duckdns.org/como-actualizar-el-firmware-de-la-raspberry-pi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-actualizar-el-firmware-de-la-raspberry-pi</link>
					<comments>https://linuxete.duckdns.org/como-actualizar-el-firmware-de-la-raspberry-pi/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Sat, 14 Jun 2025 08:46:27 +0000</pubDate>
				<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[firmware raspberry]]></category>
		<category><![CDATA[update Raspberry]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=2772</guid>

					<description><![CDATA[Mantener el firmware de tu Raspberry Pi actualizado garantiza que funcione de manera óptima, sea segura y compatible con el software y hardware más recientes. A continuación te explico como tener tu Pi actualizada a la última versión Verificar el firmware instalado. El primer comando que debemos conocer es: Cuando se ejecuta sin ningún argumento [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Mantener el firmware de tu Raspberry Pi actualizado garantiza que funcione de manera óptima, sea segura y compatible con el software y hardware más recientes.</p>



<p>A continuación te explico como tener tu Pi actualizada a la última versión</p>



<h3 class="wp-block-heading">Verificar el firmware instalado.</h3>



<p>El primer comando que debemos conocer es:</p>



<pre class="wp-block-code"><code>sudo rpi-eeprom-update</code></pre>



<p>Cuando se ejecuta sin ningún argumento adicional, este comando muestra el estado actual del firmware del bootloader (cargador de arranque) de la EEPROM. Te indicará la versión actual del bootloader instalado en tu Pi y si hay una versión más reciente disponible. Por sí solo, no instala ninguna actualización, simplemente te informa sobre lo que hay. El bootloader es un pequeño programa almacenado en una memoria no volátil (EEPROM) que se encarga de iniciar la Raspberry Pi antes de que el sistema operativo se cargue desde la tarjeta SD, SSD o NVMe.</p>



<p>Ejemplo de salida de este comando.</p>



<pre class="wp-block-code"><code>raspberry@pi5:~
$ <strong>sudo rpi-eeprom-update</strong>
*** UPDATE AVAILABLE ***

Run "sudo rpi-eeprom-update -a" to install this update now.

To configure the bootloader update policy run "sudo raspi-config"

BOOTLOADER: update available
   CURRENT: jue 08 may 2025 14:13:17 UTC (1746713597)
    LATEST: lun 09 jun 2025 09:30:52 UTC (1749461452)
   RELEASE: latest (/usr/lib/firmware/raspberrypi/bootloader-2712/latest)
            Use raspi-config to change the release.
</code></pre>



<p>En la salida anterior vemos que tenemos una actualización disponible  *** UPDATE AVAILABLE ***, la «actual o CURRENT» del jueves 08 de mayo y la «última o LATEST» de Lunes 09 junio.</p>



<h3 class="wp-block-heading">Instalar la última versión del firmware.</h3>



<p>El segundo comando a conocer es:</p>



<pre class="wp-block-code"><code>sudo rpi-eeprom-update -a</code></pre>



<p>Es el mismo comando rpi-eeprom-update, pero con el argumento -a (de «automatic» o «apply»). Este comando instala automáticamente la última versión disponible del firmware del bootloader de la EEPROM. Si hay una actualización pendiente (como se vería con sudo rpi-eeprom-update), este comando la descargará y la preparará para ser escrita en la EEPROM.</p>



<p>Después de la actualización, esta no se aplica inmediatamente, si no, que debes reiniciar tu Raspberry Pi (sudo reboot) para que los cambios en el bootloader surtan efecto.</p>



<p>La versión que se instala proviene de los repositorios de paquetes de Raspberry Pi OS (generalmente la versión «stable» o «default», a menos que lo hayas configurado de otra manera en /etc/default/rpi-eeprom-update o a través de raspi-config).</p>



<p>Ejemplo de salida de este comando.</p>



<pre class="wp-block-code"><code>raspberry@pi5:~
$ <strong>sudo rpi-eeprom-update -a</strong>
*** PREPARING EEPROM UPDATES ***

BOOTLOADER: update available
   CURRENT: jue 08 may 2025 14:13:17 UTC (1746713597)
    LATEST: lun 09 jun 2025 09:30:52 UTC (1749461452)
   RELEASE: latest (/usr/lib/firmware/raspberrypi/bootloader-2712/latest)
            Use raspi-config to change the release.
   CURRENT: jue 08 may 2025 14:13:17 UTC (1746713597)
    UPDATE: lun 09 jun 2025 09:30:52 UTC (1749461452)
    BOOTFS: /boot/firmware
'/tmp/tmp.tU0oG2Yfdp' -&gt; '/boot/firmware/pieeprom.upd'

UPDATING bootloader. This could take up to a minute. Please wait

*** Do not disconnect the power until the update is complete ***

If a problem occurs then the Raspberry Pi Imager may be used to create
a bootloader rescue SD card image which restores the default bootloader image.

flashrom -p linux_spi:dev=/dev/spidev10.0,spispeed=16000 -w /boot/firmware/pieeprom.upd
Verifying update
VERIFY: SUCCESS
UPDATE SUCCESSFUL
</code></pre>



<p>Ahora para que los cambios tengan efecto reinicia tu Raspberry:</p>



<pre class="wp-block-code"><code>sudo reboot</code></pre>



<p>Una vez que reinicies tu Raspberry, verifica el resultado:</p>



<pre class="wp-block-code"><code>sudo rpi-eeprom-update</code></pre>



<p>Como puedes ver, los cambios se han aplicado.</p>



<pre class="wp-block-code"><code>raspberry@pi5:~
$ sudo rpi-eeprom-update
BOOTLOADER: up to date
   CURRENT: lun 09 jun 2025 09:30:52 UTC (1749461452)
    LATEST: lun 09 jun 2025 09:30:52 UTC (1749461452)
   RELEASE: latest (/usr/lib/firmware/raspberrypi/bootloader-2712/latest)
            Use raspi-config to change the release.
</code></pre>



<p>Ahora, tanto la CURRENT (actual) como la LATEST (última) están igualadas.</p>



<h3 class="wp-block-heading">Actualiza tu sistema a la última (no recomendable)</h3>



<p>*** A partir de aquí actúa con precaución ***</p>



<p>Existe un tercer comando, el cual es el siguiente:</p>



<pre class="wp-block-code"><code>sudo rpi-update</code></pre>



<p>Este comando se utiliza para actualizar el firmware del sistema (VideoCore), el kernel de Linux y los módulos asociados que residen en la tarjeta SD/SSD/NVMe de tu Raspberry Pi. Este comando, descarga las últimas versiones del kernel, los módulos del kernel, los archivos del árbol de dispositivos (device tree files) y el firmware de VideoCore (la GPU integrada) directamente desde el repositorio de GitHub de Raspberry Pi.<br><br><strong>Nota: <em>Es importante destacar que rpi-update suele descargar las versiones más recientes y a menudo experimentales o «bleeding-edge» del firmware y el kernel. Esto significa que puede incluir características nuevas, pero también podría introducir inestabilidad o errores.</em><br></strong><br>Generalmente no se recomienda para la mayoría de los usuarios en entornos de producción o donde la estabilidad es crítica. La forma estándar y más segura de mantener el kernel y el firmware del sistema actualizados es a través de <code>sudo apt update</code> y <code>sudo apt full-upgrade</code>, ya que estos comandos obtienen versiones estables y probadas a través de los repositorios de paquetes de Debian/Raspberry Pi OS.</p>



<p>Úsalo si, estás resolviendo un problema específico que se sabe que se soluciona en una versión muy reciente que aún no está en los repositorios estables de apt, o necesitas probar nuevas caracteristicas o versiones beta del firmware/kernel, o para un caso de uso muy especifico.</p>



<p>Siempre debes reiniciar después de usar sudo rpi-update para que los nuevos componentes del kernel y firmware se carguen.</p>



<p>La siguiente salida muestra un ejemplo de actualización con rpi-update.</p>



<pre class="wp-block-code"><code>raspberry@pi5:~
$ <strong>sudo rpi-update</strong>
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
FW_REV:e172b71336f17d6149dd3d6e21f2f7ac14dbeb35
BOOTLOADER_REV:df532a02dc332274e55aa25f8a0637c0922da898
 *** We're running for the first time
 *** Backing up files (this will take a few minutes)
 *** Remove old firmware backup
 *** Backing up firmware
 *** Remove old modules backup
 *** Backing up modules 6.12.25+rpt-rpi-2712
WANT_32BIT:0 WANT_64BIT:1 WANT_64BIT_RT:0 WANT_PI4:1 WANT_PI5:1
##############################################################
WARNING: This update bumps to rpi-6.12.y linux tree
See discussions at:
https:&#47;&#47;forums.raspberrypi.com/viewtopic.php?t=379745
##############################################################
Would you like to proceed? (y/N)
Downloading bootloader tools
Downloading bootloader images
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  154M  100  154M    0     0  34.5M      0  0:00:04  0:00:04 --:--:-- 40.8M
*** PREPARING EEPROM UPDATES ***

BOOTLOADER: update available
   CURRENT: jue 08 may 2025 14:13:17 UTC (1746713597)
    LATEST: lun 09 jun 2025 09:30:52 UTC (1749461452)
   RELEASE: latest (/usr/lib/firmware/raspberrypi/bootloader-2712/latest)
            Use raspi-config to change the release.
   CURRENT: jue 08 may 2025 14:13:17 UTC (1746713597)
    UPDATE: lun 09 jun 2025 09:30:52 UTC (1749461452)
    BOOTFS: /boot/firmware
'/tmp/tmp.WxoM2hMLrw' -&gt; '/boot/firmware/pieeprom.upd'

UPDATING bootloader. This could take up to a minute. Please wait

*** Do not disconnect the power until the update is complete ***

If a problem occurs then the Raspberry Pi Imager may be used to create
a bootloader rescue SD card image which restores the default bootloader image.

flashrom -p linux_spi:dev=/dev/spidev10.0,spispeed=16000 -w /boot/firmware/pieeprom.upd
Verifying update
VERIFY: SUCCESS
UPDATE SUCCESSFUL
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 6.12.32-v8-16k+
 *** depmod 6.12.32-v8+
 *** Updating VideoCore libraries
 *** Running ldconfig
 *** Storing current firmware revision
 *** Deleting downloaded files
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully updated to e172b71336f17d6149dd3d6e21f2f7ac14dbeb35
 *** A reboot is needed to activate the new firmware</code></pre>



<h3 class="wp-block-heading">Tabla Comparativa Resumida:</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Característica</th><th><code>sudo rpi-eeprom-update</code></th><th><code>sudo rpi-eeprom-update -a</code></th><th><code>sudo rpi-update</code></th></tr><tr><td><strong>Qué actualiza</strong></td><td>N/A (solo muestra)</td><td><strong>Bootloader EEPROM</strong></td><td><strong>Firmware VideoCore, Kernel Linux</strong></td></tr><tr><td><strong>Ubicación</strong></td><td>N/A</td><td>EEPROM de la Raspberry Pi</td><td>En SD o SSD (partición <code>boot</code>)</td></tr><tr><td><strong>Modelos</strong></td><td>Pi 4, Pi 5, etc.</td><td>Pi 4, Pi 5, etc.</td><td>Todas las Raspberry Pi</td></tr><tr><td><strong>Estabilidad</strong></td><td>N/A</td><td>Versiones estables (por defecto)</td><td>Versiones experimentales/beta</td></tr><tr><td><strong>Requiere Reinicio</strong></td><td>No</td><td>Sí (para aplicar la actualización)</td><td>Sí (para cargar el nuevo kernel/firmware)</td></tr><tr><td><strong>Recomendación</strong></td><td>Para verificar estado</td><td>Para actualizar el bootloader (Pi 4/5+)</td><td>Solo para usos específicos/pruebas</td></tr></tbody></table></figure>



<p>En resumen:</p>



<ul class="wp-block-list">
<li>Utiliza <code><strong>sudo apt update</strong></code> y <code><strong>sudo apt full-upgrade</strong></code> para la mayoría de las actualizaciones generales del sistema operativo, incluyendo el kernel y el firmware de VideoCore en sus versiones estables. </li>



<li>Si tienes una Raspberry Pi 4 o 5, usa <code><strong>sudo rpi-eeprom-update -a</strong></code> (seguido de un reinicio) para asegurarte de que el bootloader de la EEPROM esté también actualizado. </li>



<li>Evita <code><strong>sudo rpi-update</strong></code> a menos que sepas exactamente por qué lo necesitas.</li>
</ul>



<h3 class="wp-block-heading">Revertir rpi-update.</h3>



<p><strong>1. Reinstalar el kernel y el bootloader estables:</strong></p>



<p>Para revertir <code>sudo rpi-update</code>, debes reinstalar las versiones del kernel y el bootloader que están disponibles en los repositorios estables de tu distribución (MX Linux en este caso).</p>



<p>Abre una terminal y ejecuta los siguientes comandos:</p>



<pre class="wp-block-code"><code>sudo apt update</code></pre>



<p>Con esto actulizas la lista de paquetes disponibles.</p>



<pre class="wp-block-code"><code>sudo apt install --reinstall raspi-firmware</code></pre>



<p>Este comando reinstala los paquetes del firmware (microcódigo) esencial para el funcionamiento de la Raspberry Pi, incluyendo partes del kernel y otros componentes de bajo nivel necesarios para que el hardware funcione correctamente. Esto sobrescribe la actualizació de <code>rpi-update</code> con la versión estable del repositorio de MX Linux.</p>



<p>Después de ejecutar estos comandos, reinicia tu Raspberry Pi:</p>



<pre class="wp-block-code"><code>sudo reboot</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/como-actualizar-el-firmware-de-la-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo arrancar una Raspberry Pi 4 desde un USB 3.0</title>
		<link>https://linuxete.duckdns.org/arranque-raspberry-pi-4-desde-un-usb-3-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=arranque-raspberry-pi-4-desde-un-usb-3-0</link>
					<comments>https://linuxete.duckdns.org/arranque-raspberry-pi-4-desde-un-usb-3-0/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Fri, 15 Nov 2024 16:43:10 +0000</pubDate>
				<category><![CDATA[disco]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[arranque raspberry usb3]]></category>
		<category><![CDATA[boot pi4 usb3]]></category>
		<category><![CDATA[Pi4 usb3]]></category>
		<category><![CDATA[Raspberry usb 3.0]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=2016</guid>

					<description><![CDATA[Una Raspberry PI 4 puede arrarcar perfectamente desde un usb 3.0, el problema de no hacerlo, será casi seguro de tu adaptador SATA-USB Los chips puente USB a SATA de JMicron, a veces pueden causar problemas con la Raspberry Pi, especialmente al usarla como dispositivo de arranque. Estos problemas pueden incluir fallos de arranque, desconexión [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Una Raspberry PI 4 puede arrarcar perfectamente desde un usb 3.0, el problema de no hacerlo, será casi seguro de tu adaptador SATA-USB</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="266" height="190" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/sata-usb.jpeg" alt="" class="wp-image-2831"/><figcaption class="wp-element-caption">Adaptador SATA-USB.3</figcaption></figure>



<p>Los chips puente USB a SATA de JMicron, a veces pueden causar problemas con la Raspberry Pi, especialmente al usarla como dispositivo de arranque. Estos problemas pueden incluir fallos de arranque, desconexión tras un reinicio o bajo rendimiento.</p>



<p>Si el chip es un <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color"><strong>JMicron Technology Corp</strong>.</mark>, lo mejor es que lo reemplaces por otro como <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color"><strong>ASMedia Technology Inc. </strong></mark></p>



<p>Con el comando lsusb puedes saber que chip lleva tu adaptador.</p>



<pre class="wp-block-code"><code>raspberry@pi4:~
$ <strong>lsusb</strong>
Bus 004 Device 002: ID 152d:0578 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color"><strong>JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s</strong></mark>
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</code></pre>



<p>La salida nos devuelve el chip <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color"><strong>JMicron Technology Corp.</strong></mark>, que es el que debemos evitar en la Pi4.</p>



<pre class="wp-block-code"><code>Raspberry@pi4:~
$ <strong>lsusb</strong>
Bus 002 Device 002: ID 174c:55aa <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color"><strong>ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge</strong></mark>
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</code></pre>



<p>En este caso, la salida al comando es el chip <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color"><strong>ASMedia Technology Inc.</strong></mark> compatible con Pi4</p>



<p>Aunque podemos hacer que arranque siguiendo esta guía, no será posible activar el TRIM por ser incompatible con este chip.</p>



<p>Asegúrate de tener la última versión del firmware de tu Pi4 de este forma:</p>



<pre class="wp-block-code"><code>sudo rpi-eeprom-update</code></pre>



<p>Cómo resultado nos dará:</p>



<pre class="wp-block-code"><code>Raspberry@pi4:~<br>$ <strong>sudo rpi-eeprom-update</strong><br>&#91;sudo] contraseña para Raspberry:<br>BOOTLOADER: up to date<br>CURRENT: vie 16 may 2025 10:34:04 UTC (1747391644)<br>LATEST: vie 16 may 2025 10:34:04 UTC (1747391644)<br>RELEASE: latest (/usr/lib/firmware/raspberrypi/bootloader-2711/latest)<br>Use raspi-config to change the release.<br><br>VL805_FW: Using bootloader EEPROM<br>VL805: up to date<br>CURRENT: 000138c0<br>LATEST: 000138c0</code></pre>



<p>En la salida anterior vemos que tenemos el último firmware hasta la fecha de este manual.</p>



<p>Si tuvieses que actualizar el firmware tan solo deberás escribir en una terminal:</p>



<pre class="wp-block-code"><code>sudo rpi-eeprom-update -a</code></pre>



<p>Una vez terminada la acualización, deberás reiniciar el sistema.</p>



<p>Antes de seguir con esto, lo mejor es que compres un adaptador compatible para solucionar este problema, pero si no fuese posible, a continuación te explico como usar el puerto usb-3 para conectar tu disco SSD.</p>



<h3 class="wp-block-heading">Ahora sí, comenzamos &#8230;.</h3>



<p>Desde que tengo la Raspberry Pi 5, apenas uso la Pi 4, pero estoy descubriendo nuevas cosas que ya me hubieran gustado saber hace tiempo, como que <a href="https://linuxete.duckdns.org/activar-trim-en-una-raspberry-pi-arrancada-por-un-ssd-externo/">Trim</a> no viene activado por defecto, o como aumentar la velocidad de transmision arrancando mi SSD desde un usb 3.0.</p>



<p>Yo empecé a usar Raspberry a partir de la versión 4, siempre usaba el puerto 2.0 para arrancar mi SSD, nunca me funcionó desde el 3.0, pensé que sería incompatible, pero al parecer es un tipo de error que tiene el <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color">chipset Jmicron</mark></strong>.</p>



<p>En estos caso, la solución pasa por desactivar el protocolo <code><strong>UAS</strong></code> del disco agregando «peculiaridades USB» y hacer que funcione como almacenamiento masivo USB.</p>



<p><code><strong>UAS</strong></code> es un protocolo de transporte mejorado en comparación con el almacenamiento masivo USB, todas las unidades UAS deben admitir almacenamiento masivo como opción de respaldo. Se le puede indicar al kernel que ignore la interfaz UAS de un dispositivo y solo use almacenamiento masivo: el controlador de almacenamiento usb tiene una opción de peculiaridades (quirks) para este propósito. Como UAS está integrado en el kernel para permitir que el sistema de archivos raíz se instale en un SSD, el quirk debe ir en cmdline.txt como un parámetro de módulo. Este parámetro coincide con el ID del proveedor USB (vid), el ID del producto (pid) y superpone los quirks especificados que deshabilitan funciones específicas para este dispositivo.</p>



<h3 class="wp-block-heading">Test de velocidad</h3>



<p>Vamos a comprobar a que velocidad circula nuestro disco SSD conectado a un puerto usb-2.0</p>



<p>Busca la aplicacion Raspberry Pi Diagnostics, si no la tienes instalada la puedes instalar con:</p>



<pre class="wp-block-code"><code><strong>sudo apt install agnostics</strong></code></pre>



<p>Ejecutala pulsando en <code><mark style="background-color:var(--ast-global-color-7)" class="has-inline-color">Run Tests</mark></code>, cuando termine, pulsa en <code><mark style="background-color:var(--ast-global-color-7)" class="has-inline-color">Show Log</mark></code>.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="610" height="428" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-21-18-14.png" alt="" class="wp-image-2035" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-21-18-14.png 610w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-21-18-14-300x210.png 300w" sizes="auto, (max-width: 610px) 100vw, 610px" /></figure>



<p>Observa la línea que dice <code><mark style="background-color:var(--ast-global-color-7)" class="has-inline-color">Secuencial write speed</mark></code>, dando un resultado de 30815 KB/sec, muy por encima del valor objetivo a superar de 10.000 KB/sec, pero no suficiente para aprovechar al máximo la velocidad de nuestro disco.</p>



<p>Personalmente el puerto usb-2.0 me ha dado muchos problemas, sobre todo con perdidas de datos, mi aMule fué testigo de ello. También, las velocidades de subida y bajada estaban limitadas por el puerto usb más que por la velocidad de la línea.</p>



<h3 class="wp-block-heading">Comprueba el driver de tu disco.</h3>



<p>Para ver que drive usa nuestro disco, en una terminal escribe:</p>



<pre class="wp-block-code"><code>lsusb -t</code></pre>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="663" height="305" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-20-30.png" alt="" class="wp-image-2046" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-20-30.png 663w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-20-30-300x138.png 300w" sizes="auto, (max-width: 663px) 100vw, 663px" /></figure>



<p>En la imagen anterior, vemos que <code><strong>UAS</strong></code> está activo y eso nos perjudica, así que vamos a cambiar esto.</p>



<p>En Raspberry Pi 4, <code><strong>UAS</strong></code> viene activado de forma predeterminada.</p>



<h3 class="wp-block-heading">Usando usb-3.0</h3>



<p>Para poder arrancar nuestro disco SSD desde el puerto usb-3.0, debemos de hacer una serie de cambios que os detallo a continuación:</p>



<p>Ejecuta un <code><strong>lsusb</strong></code> para comprobar el chipset de tu disco:</p>



<pre class="wp-block-code"><code>Raspberry@pi4:~
$ <strong>lsusb</strong>
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#fa0202" class="has-inline-color">152d:0578</mark></strong> <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-1-color"><strong>JMicron</strong></mark> Technology Corp. / <strong><em><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color">JMicron </mark></em></strong>USA Technology Corp. JMS578 SATA 6Gb/s
Bus 001 Device 006: ID 058f:6387 Alcor Micro Corp. Flash Drive
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</code></pre>



<p>Aunque el idVendor y el idProduct lo hemos visto con el comando anterior, vamos a buscarlo mas exactamente.</p>



<p>Ejecuta el siguiente comando en la terminal:</p>



<pre class="wp-block-code"><code>Raspberry@pi4:~
$ <strong>sudo dmesg | grep idVendor</strong>
&#91; 2.277689] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.06
&#91; 2.279024] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.06
&#91; 2.687621] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
&#91; 3.180114] usb 1-1.4: New USB device found, <strong>idVendor</strong>=<strong><mark style="background-color:rgba(0, 0, 0, 0);color:#fa0000" class="has-inline-color">152d</mark></strong>, <strong>idProduct</strong>=<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color"><strong>0578</strong></mark>, bcdDevice= 2.09
&#91; 5085.543847] usb 1-1.1: New USB device found, idVendor=058f, idProduct=6387, bcdDevice= 1.00
&#91; 5181.556491] usb 1-1.2: New USB device found, idVendor=058f, idProduct=6387, bcdDevice= 1.00
&#91; 5365.901603] usb 1-1.1: New USB device found, idVendor=058f, idProduct=6387, bcdDevice= 1.00</code></pre>



<p>El resultado de <strong>idVendor</strong>=<strong><mark style="background-color:rgba(0, 0, 0, 0);color:#fa0000" class="has-inline-color">152d</mark></strong>, <strong>idProduct</strong>=<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color"><strong>0578</strong></mark>, coinicide con el disco JMicron, resultado del comando <code>lsusb</code>.</p>



<p>Vamos a editar el archivo cmdline.txt desde la terminal:</p>



<pre class="wp-block-code"><code><strong>sudo nano /boot/firmware/cmdline.txt </strong></code></pre>



<p>Al comienzo de la línea de parámetros, agrega el texto:</p>



<pre class="wp-block-code"><code><strong>usb-storage.quirks=<mark style="background-color:rgba(0, 0, 0, 0);color:#fa0000" class="has-inline-color">152d</mark>:<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">0578</mark>:u</strong></code></pre>



<p>Cambia <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#fa0000" class="has-inline-color">152d</mark></strong>:<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color"><strong>0578</strong></mark> por el tuyo propio.</p>



<p>Esto quedaría de la siguiente manera:</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="848" height="521" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-03-17-14-23.png" alt="" class="wp-image-2018" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-03-17-14-23.png 848w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-03-17-14-23-300x184.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-03-17-14-23-768x472.png 768w" sizes="auto, (max-width: 848px) 100vw, 848px" /></figure>



<p>Guarda con la combinación de tedclas Crtl + O y sal de la aplicación con Crtl + X</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Nota: Ten cuidado con este cambio, como te equivoques el sistema no te arrancará.</p>
</blockquote>



<p>Para verificar que ha funcionado:</p>



<ul class="wp-block-list">
<li>Apaga tu Raspberry.</li>



<li>Cambia de tu puerto usb-2 a un puerto usb-3.</li>



<li>Enciende tu Raspberry.</li>
</ul>



<p>Si el sistema inicia, es una muy buena señal.</p>



<h3 class="wp-block-heading">Comprueba el Driver de tu disco.</h3>



<p>Para ver que driver usa nuestro disco ahora, en una terminal escribe:</p>



<pre class="wp-block-code"><code><strong>lsusb -t</strong></code></pre>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="715" height="266" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-36-22.png" alt="" class="wp-image-2048" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-36-22.png 715w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-36-22-300x112.png 300w" sizes="auto, (max-width: 715px) 100vw, 715px" /></figure>



<p>Como puedes ver ahora nuestro disco usa el Driver=usb-storage en lugar del Driver=uas</p>



<h3 class="wp-block-heading">Comprueba el Quirk (peculiaridad) de tu disco.</h3>



<p>Para verificar que el quirk se haya aplicado correctamente, ejecuta</p>



<pre class="wp-block-code"><code> dmesg | grep usb-storage</code></pre>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="917" height="375" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-38-42.png" alt="" class="wp-image-2049" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-38-42.png 917w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-38-42-300x123.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-15-17-38-42-768x314.png 768w" sizes="auto, (max-width: 917px) 100vw, 917px" /></figure>



<p>Verifica que el <strong>VID</strong> y el <strong>PID</strong> son los de nuestro disco y tienen el quirk aplicado</p>



<h3 class="wp-block-heading">Test de velocidad</h3>



<p>Repetimos el anterior test de velocidad, vuelve a seguir los pasos descritos anteriormente, pero claro, esta vez desde el puerto usb-3.0</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="610" height="422" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-21-14-21.png" alt="" class="wp-image-2037" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-21-14-21.png 610w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-21-14-21-300x208.png 300w" sizes="auto, (max-width: 610px) 100vw, 610px" /></figure>



<p>Ahora la velocidad es de 140.109 KB/sec, muy superior a la anterior de 30.815 KB/sec</p>



<p>Por último, a modo de ejemplo os dejo el test de mi <code><strong>Raspberry Pi 5,</strong></code> que sin hacer nada de lo anteriormente explicado, arrancando perfectamente desde los puertos usb-3.0</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="733" height="422" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-23-52-41.png" alt="" class="wp-image-2043" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-23-52-41.png 733w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-14-23-52-41-300x173.png 300w" sizes="auto, (max-width: 733px) 100vw, 733px" /></figure>



<p>Visto en <a href="https://forums.raspberrypi.com/viewtopic.php?f=28&amp;t=245931">https://forums.raspberrypi.com/viewtopic.php?f=28&amp;t=245931</a></p>



<h3 class="wp-block-heading">Resumiendo.</h3>



<p>Evita usar el chipset de JMicron en la Pi4, así te ahorrarás todo este proceso de poder arrancar desde un USB-3, así como tener la compatibilidad completa para activar el TRIM.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/arranque-raspberry-pi-4-desde-un-usb-3-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar pines GPIO en Ubuntu 24.10</title>
		<link>https://linuxete.duckdns.org/instalar-ubuntu-24-10-en-raspberry-pi-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalar-ubuntu-24-10-en-raspberry-pi-4</link>
					<comments>https://linuxete.duckdns.org/instalar-ubuntu-24-10-en-raspberry-pi-4/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 21:56:29 +0000</pubDate>
				<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[fan raspberry pi 4]]></category>
		<category><![CDATA[temperatura raspberry]]></category>
		<category><![CDATA[Ubuntu raspberry]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=1992</guid>

					<description><![CDATA[Ubuntu visualmente está muy bien, pero no corre, más bien se arrastra bajo una Raspberry Pi 4. Es el sistema operativo que no debes instalar en este tipo de placa. Supongo que se deberá al escritorio Gnome, ya que también probé Armbian con el mismo escritorio y se movía como un zombie de la serie [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>Ubuntu</strong> visualmente está muy bien, pero no corre, más bien se  arrastra bajo una <strong>Raspberry Pi 4</strong>. Es el sistema operativo que no debes instalar en este tipo de placa. Supongo que se deberá al escritorio <strong>Gnome</strong>, ya que también probé <a href="https://www.armbian.com/rpi4b/"><strong>Armbian</strong></a> con el mismo escritorio y se movía como un zombie de la serie <strong>The Walking Dead</strong>.</p>



<p>Al parecer, Ubuntu corre bien en la Raspberry Pi 5, como puedes ver en YouTube, en un video de <strong>Computadoras y Sensores </strong> <a href="https://www.youtube.com/watch?v=5o_YnqwBnv0">Ubuntu en Raspberry Pi 5 para USO DIARIO ¿a la altura?</a>. Yo no hare la prueba de instalarlo en mi Pi 5, ya que es la responsable de hacer funcionar el blog en el que te encuentras leyendo estas líneas.</p>



<p>La versión que he elegido a sido la nueva 24.10, incompatible con las funciones de <strong>raspi-config</strong>, imposible de instalar el <strong>VNC</strong> compatible con <strong>RealVNC</strong>, no trae instalado el software que gestiona los pines <strong>GPIO</strong>. En algún que otro reinicio se queda con la pantalla en negro y no arranca.</p>



<p>Aprovecho para decirte que el mejor sistema que he probado hasta ahora para Raspberry es <a href="https://mxlinux.org/download-links/" target="_blank" rel="noreferrer noopener">MX-23_rpi_respin</a>,, incluso mejor que el oficial <a href="https://www.raspberrypi.com/software/">Raspberry Pi Os</a>.</p>



<h3 class="wp-block-heading">La instalación</h3>



<p>La instalación se hace como cualquiera de las imágenes para Raspberry, con el programa <strong>Raspberry Pi Imager</strong>. Es muy sencilla, tan solo sigue los pasos y responde a las preguntas que se van formulando. </p>



<p>El sitio de Ubuntu tiene un manual muy detallado de como hacer la instalacion. <a href="https://discourse.ubuntu.com/t/how-to-install-ubuntu-desktop-on-raspberry-pi-4/18925/1">Cómo instalar Ubuntu Desktop en Raspberry Pi 4</a></p>



<h3 class="wp-block-heading">Actualizaciones.</h3>



<p>Todo terminar de instalar tu sistema deberás de buscar actualizaciones e instalarlas. En una terminal homologada escribe:</p>



<pre class="wp-block-code"><code>sudo apt update &amp;&amp; sudo apt -y full-upgrade</code></pre>



<p>Y para actualizar los snap</p>



<pre class="wp-block-code"><code><code>sudo snap refresh</code></code></pre>



<h3 class="wp-block-heading">Ventilador</h3>



<p>Con Ubuntu instalado, vas a necesitar de un ventilador para la CPU, de hecho, este se conecta mas veces al consumir mas recursos que otros sistemas como Mx LInux</p>



<figure class="wp-block-image aligncenter size-medium"><img loading="lazy" decoding="async" width="300" height="300" src="https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-300x300.jpg" alt="" class="wp-image-1235" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-300x300.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-150x150.jpg 150w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-768x768.jpg 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_.jpg 1000w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption class="wp-element-caption">Ventilador de 3 pines 3Voltios</figcaption></figure>



<p>El ventilador va conectado a los pines GPIO, pero el software que los controla no viene instalado en ninguna versión de Ubuntu.</p>



<p>Para controlar los pines vamos a instalar <code>lgpio</code>. En una terminal pega lo siguiente:</p>



<pre class="wp-block-code"><code>sudo apt install python3-rpi-lgpio python3-lgpio liblgpio1 liblgpio-dev</code></pre>



<p>Tambien agrega tu usuario al grupo dialout</p>



<pre class="wp-block-code"><code>sudo usermod -a -G dialout tu_usuario</code></pre>



<p>Con esto ya puedes ejecutar el script de Python que necesitas para controlar el ventilador de tu cpu.</p>



<p>Sigue en <a href="https://linuxete.duckdns.org/ventilador-para-raspberry-pi-4/">Ventilador para Raspberry Pi 4</a> y aprende como refrigerar tu Raspberry Pi 4</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/instalar-ubuntu-24-10-en-raspberry-pi-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como saltarse el bloqueo a sitios web.</title>
		<link>https://linuxete.duckdns.org/dns-over-https-en-una-raspberry-pi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dns-over-https-en-una-raspberry-pi</link>
					<comments>https://linuxete.duckdns.org/dns-over-https-en-una-raspberry-pi/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Sat, 05 Oct 2024 21:24:24 +0000</pubDate>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[Red]]></category>
		<category><![CDATA[bloqueo Movistar]]></category>
		<category><![CDATA[Cloudflare]]></category>
		<category><![CDATA[dns over https]]></category>
		<category><![CDATA[Encrypted Client Hello]]></category>
		<category><![CDATA[laliga]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=1883</guid>

					<description><![CDATA[¿Tu operadora te está impidiendo acceder a ciertas páginas que necesitas visitar? ¿Quieres ver el fútbol gratis pero solo con fines didácticos? ¿Tienes por ahí una Raspberry guardada a la que no sabes qué uso darle? Si es así, sácala porque esto se va a poner más caliente que la siderúrgica gay de los Simpsons. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>¿Tu operadora te está impidiendo acceder a ciertas páginas que necesitas visitar? ¿Quieres ver el fútbol gratis pero solo con fines didácticos? ¿Tienes por ahí una Raspberry guardada a la que no sabes qué uso darle? Si es así, sácala porque esto se va a poner más caliente que la siderúrgica gay de los Simpsons.</p>



<p>El otro día, visitando la web de <strong>meneame.net</strong>, ví un artículo sobre, «<a href="https://www.meneame.net/go/link/3985625">LaLiga recibe la peor noticia. Cloudflare ha reactivado ECH a lo grande y eso hace las webs imbloqueables</a>«, y claro, me puse triste por Laliga y me fuí a llorar a un ricón.</p>



<p>La vuelta de ECH (Encrypted Client Hello) es una muy mala noticia para las operadoras, administración y entidades de gestión de derechos, ya que les hace inviable meter el hocico en el tráfico generado por los usuarios. A las operadoras les complica la gestión de los recursos de su red y al resto de entidades les deja sin posibilidad de hacer efectivas las órdenes de bloqueo, que en su mayoría están respaldadas por órganos judiciales.</p>



<p>DNS over HTTPS es una mejora importante en términos de privacidad ya que los gobiernos y/o ISP no podrán aplicar restricciones ni filtrar el contenido que visitan los ciudadanos. Por este motivo algunos gobiernos, como el británico, están haciendo todo lo posible para que no se adopte este protocolo.</p>



<p>A partir de aquí haz un minuto de silencio por tu operadora, entidad de gestión de derechos de autor, gobierno corrupto de tu país (sea cual se al tuyo) etc etc</p>



<h2 class="wp-block-heading">Pi-hole.</h2>



<p>Obviamente tendremos que tener instalado y configurado Pi-hole en nuestra Raspberry Pi.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="856" src="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-11-31-51-1024x856.png" alt="" class="wp-image-1922" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-11-31-51-1024x856.png 1024w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-11-31-51-300x251.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-11-31-51-768x642.png 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-11-31-51.png 1242w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Para configurar Pi-Hole puedes seguir las instrucciones que encontrarás en el siguiente enlace: <a href="https://linuxete.duckdns.org/que-hacer-despues-de-instalar-pi-hole/">Que hacer déspues de instalar pi-hole</a></p>



<h2 class="wp-block-heading">Instalar y configurar DNS OVER HTTPS en Raspberry.</h2>



<p>Si activamos <strong>DNS OVER HTTPS</strong> en un navegador, como por ejemplo Firefox o Chrome, únicamente tendremos DNS over HTTPS en el navegador, pero si queremos disponer de DNS sobre HTTPS en la totalidad de nuestras peticiones, recomiendo instalar el cliente DNS de Cloudflare en una Raspberry Pi. De este modo la Raspberry Pi actuará como cliente DNS de la totalidad de equipos que configuremos en nuestra red local. </p>



<h3 class="wp-block-heading">Instalar el demonio Cloudflared en la Raspberry Pi</h3>



<p>Cloudflared será el encargado de resolver la totalidad de peticiones DNS sobre HTTPS. El cliente está disponible para Windows, MacOS y Linux. En nuestro caso, será Linux y lo instalaremos en una Raspberry Pi del siguiente modo.</p>



<p>Ve a la web de desarrolladores de Cloudflare y elige el tipo de paquete y arquitectura que vas a usar en la instalación. <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/">Cloudflare Docs</a></p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="702" height="424" src="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-07-54-02.png" alt="" class="wp-image-1914" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-07-54-02.png 702w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-06-07-54-02-300x181.png 300w" sizes="auto, (max-width: 702px) 100vw, 702px" /></figure>



<p>Si no tienes claro que paquete usar y la arquitectura de tu Raspberry Pi, te recomiendo añadir el repositorio e instalar desde ahí, así la instalación escogerá el paquete adecuado para tu equipo.</p>



<h4 class="wp-block-heading">Instalación desde repositorio</h4>



<p>Aquí te dejo las instrucciones para Debian 12 Bookworm. </p>



<p><a href="https://pkg.cloudflare.com/" target="_blank" rel="noreferrer noopener">Cloudflare Package Repository</a></p>



<p>Abre una terminal y ve ejecutando las siguientes líneas.</p>



<p><strong>Nota</strong>: En el primer apartado (# <code>Add cloudflare gpg key)</code> no veo necesario crear la carpeta <code>keyrings</code> y aplicarle los permisos 0755 ya que la carpeta ya está creada en el sistema y tiene esos mismos permisos. Compruébalo antes y si es así, empieza por donde dice curl &#8211; &#8230;&#8230; (te resalto en negrita las líneas que he usado yo)</p>



<pre class="wp-block-code"><code>Debian Bookworm

# Add cloudflare gpg key
sudo mkdir -p --mode=0755 /usr/share/keyrings
<strong>curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg &gt;/dev/null</strong>

# Add this repo to your apt repositories
<strong>echo 'deb &#91;signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared bookworm main' | sudo tee /etc/apt/sources.list.d/cloudflared.list</strong>

# install cloudflared
<strong>sudo apt-get update &amp;&amp; sudo apt-get install cloudflared</strong>
</code></pre>



<p>Una vez que está instalado sin errores, comprueba la versión que tienes instalada.</p>



<pre class="wp-block-code"><code>cloudflared -v</code></pre>



<p>En mi caso el resultado obtenido ha sido el siguiente:</p>



<pre class="wp-block-code"><code>cloudflared version 2024.9.1 (built 2024-09-10-1730 UTC)</code></pre>



<h3 class="wp-block-heading">Crear un usuario para Cloudflared</h3>



<p>Crearemos un usuario con nombre cloudflared. El usuario no tendrá partición home ni tendrá acceso a la Shell de Linux. Para ello ejecutaremos el siguiente comando en la terminal:</p>



<pre class="wp-block-code"><code>sudo useradd -s /usr/sbin/nologin -r -M cloudflared</code></pre>



<h3 class="wp-block-heading">Configurar el demonio Cloudflared DNS</h3>



<p>El siguiente paso consistirá en generar el archivo de configuración de Cloudflared. Para ello ejecutamos el siguiente comando en la terminal:</p>



<pre class="wp-block-code"><code>sudo nano /etc/default/cloudflared</code></pre>



<p>Una vez se abra el editor de textos nano pegaremos el siguiente código:</p>



<pre class="wp-block-code"><code># Commandline args for cloudflared
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query</code></pre>



<p>Seguidamente tendremos que guardar los cambios realizados y cerrar el fichero. En el fichero de configuración hemos definido que tendremos un proxy local escuchando en el puerto 5053. Todas las peticiones DNS se dirigirán al puerto 5053 y serán resueltas por los servidores DNS de Cloudflare mediante protocolo DNS over HTTPS.</p>



<p>Finalmente cambiaremos de usuario y grupo al archivo binario y al archivo de configuración de Cloudflared. Para ello ejecutaremos los siguientes comandos en la terminal:</p>



<pre class="wp-block-code"><code>sudo chown cloudflared:cloudflared /etc/default/cloudflared</code></pre>



<pre class="wp-block-code"><code>sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared</code></pre>



<h3 class="wp-block-heading">Crear un servicio de Systemd para Cloudflare</h3>



<p>Para gestionar el servicio Cloudflare deberemos crear un servicio de systemd. Para ello ejecutaremos el siguiente comando en la terminal:</p>



<pre class="wp-block-code"><code>sudo nano /lib/systemd/system/cloudflared.service</code></pre>



<p>Cuando se abra el editor de texto nano pegaremos el siguiente código:</p>



<pre class="wp-block-code"><code>&#91;Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target

&#91;Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/default/cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

&#91;Install]
WantedBy=multi-user.target</code></pre>



<p>A continuación guardaremos los cambios y cerraremos el fichero. </p>



<p>Seguidamente ejecutaremos el siguiente comando para que Cloudflare se inicie de forma automática cada vez reiniciemos la Raspberry Pi.</p>



<pre class="wp-block-code"><code>sudo systemctl enable cloudflared</code></pre>



<p>Finalmente arrancaremos el servicio ejecutando el siguiente comando en la terminal:</p>



<pre class="wp-block-code"><code>sudo systemctl start cloudflared</code></pre>



<p>Para comprobar que el servicio se haya levantado de forma correcta puedes ejecutar el siguiente comando:</p>



<pre class="wp-block-code"><code>sudo systemctl status cloudflared</code></pre>



<h3 class="wp-block-heading">Verificar que Cloudflare está funcionando correctamente</h3>



<p>Para comprobar que Cloudflare funciona de forma adecuada ejecutaremos el siguiente comando en la terminal:</p>



<pre class="wp-block-code"><code>dig @127.0.0.1 -p 5053 google.com</code></pre>



<p>Si obtienes un resultado parecido al siguiente, puedes estar seguro que todo lo realizado hasta el momento funciona correctamente.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="750" height="626" src="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-19-38-10.png" alt="" class="wp-image-1886" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-19-38-10.png 750w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-19-38-10-300x250.png 300w" sizes="auto, (max-width: 750px) 100vw, 750px" /></figure>



<h2 class="wp-block-heading">Configurar Pi-Hole para que pueda usar DNS over HTTPS</h2>



<p>Para que Pi-hole pueda utilizar el cliente DNS over HTTPS de Cloudflare deberemos realizar lo siguiente:</p>



<ol class="wp-block-list">
<li>Accedemos al panel de administración de Pi-hole.</li>



<li>Clicamos en la Opción Settings.</li>



<li>A continuación clicamos en la pestaña DNS.</li>



<li>Destildamos absolutamente todos los DNS que tengamos activados.</li>



<li>Tildamos el campo Custom 1 (IPv4) y en el mismo campo pegamos <strong>127.0.0.1#5053</strong></li>
</ol>



<p></p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="759" src="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-22-13-13-1024x759.png" alt="" class="wp-image-1888" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-22-13-13-1024x759.png 1024w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-22-13-13-300x222.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-22-13-13-768x569.png 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-22-13-13.png 1245w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Finalmente presionamos en el botón <strong>SAVE</strong> para que se hagan efectivos los cambios.</p>



<h2 class="wp-block-heading">CONCLUSIONES Y FUNCIONAMIENTO</h2>



<p>Para ver si todo está correcto entra en esta página de cloudflare.</p>



<p><a href="https://www.cloudflare.com/es-es/ssl/encrypted-sni/#results">https://www.cloudflare.com/es-es/ssl/encrypted-sni/#results</a></p>



<p>Te llevará a la web de comprobación de resultados</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="719" height="592" src="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-03-43.png" alt="" class="wp-image-1898" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-03-43.png 719w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-03-43-300x247.png 300w" sizes="auto, (max-width: 719px) 100vw, 719px" /></figure>



<p>Pincha sobre <strong>Comprobar mi navegador</strong> y el resultado tiene que dar como la siguiente imagen.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="507" src="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-04-12-1024x507.png" alt="" class="wp-image-1899" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-04-12-1024x507.png 1024w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-04-12-300x148.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-04-12-768x380.png 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/10/Captura-desde-2024-10-05-23-04-12.png 1196w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Los cuatro apartados <strong>DNS seguro</strong>, <strong>DNSSEC</strong>, <strong>TLS 1.3</strong> y <strong>Secure SNI</strong> están marcados como favorables.</p>



<p>El funcionamiento de DNS over HTTPS supone una mejora importante en términos de seguridad ya que la totalidad de peticiones DNS están cifradas, por lo que nadie, excepto Cloudflare, tendrá acceso a tu historial de navegación. Y ahora dirás, -¡claro, es que Cloudflare si puede ver mis datos de navegación!- a lo que yo te responderé -¡claro y antes esto era el coño de la Bernarda, en el que cualquiera ( tu operadora, gobierno, entidades de gestión etc) si podían verlos!-</p>



<p>Cloudflare promete que no guardará ningún historial durante más de 24 horas y que no asociará la dirección IP a un origen. A pesar de esto, todo el mundo sabe que del dicho al hecho, hay un buen trecho. Fíjate en Telegram, que tampoco iba a ceder nuestros datos, y cuando a <strong>Pável Dúrov</strong> (El multimillonario que afirma no poseer propiedades de lujo, aviones o yates) pero que le gusta viajar más que a un tonto un lápiz, a visto que se quedaba en tierra  &#8230;&#8230;&#8230;&#8230;&#8230;. ¡<a href="https://www.expresiones-espanolas.com/2017/01/cantar-la-traviata.html">a cantado la traviata</a>!</p>



<h2 class="wp-block-heading" id="tw-target-text-feminine">Misceláneas</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Este documento se ha realizado a través de los siguientes articulos</p>



<p><a href="https://www.flopy.es/dns-sobre-https-doh/">https://www.flopy.es/dns-sobre-https-doh/</a></p>



<p><a href="https://geekland.eu/dns-over-https-doh-pi-hole/">https://geekland.eu/dns-over-https-doh-pi-hole/</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Te recomiendo estos articulos</p>



<p><a href="https://bandaancha.eu/articulos/laliga-recibe-peor-noticia-cloudflare-11098">https://bandaancha.eu/articulos/laliga-recibe-peor-noticia-cloudflare-11098</a></p>



<p><a href="https://bandaancha.eu/articulos/como-activar-ech-chrome-acceder-webs-10689">https://bandaancha.eu/articulos/como-activar-ech-chrome-acceder-webs-10689</a></p>
</blockquote>



<p></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/dns-over-https-en-una-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ventilador para Raspberry Pi 4</title>
		<link>https://linuxete.duckdns.org/ventilador-para-raspberry-pi-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ventilador-para-raspberry-pi-4</link>
					<comments>https://linuxete.duckdns.org/ventilador-para-raspberry-pi-4/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Tue, 09 Apr 2024 13:48:13 +0000</pubDate>
				<category><![CDATA[raspberry]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[control ventilador raspberry]]></category>
		<category><![CDATA[fan raspberry pi 4]]></category>
		<category><![CDATA[ventilador raspberry]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=1233</guid>

					<description><![CDATA[Existe un nueva entrada actualizada, puedes verla aquí Raspberry Pi 4 tiene una conexión para ventilador configurada de fábrica al PIN 8 (GPIO 14) que se activa a partir de 60ºC. Aunque el fabricante nos dice que ese rango de temperaturas es correcto, a mi me parece demasiado alto. Por ello he creado un script [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-medium"><img loading="lazy" decoding="async" width="300" height="300" src="https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-300x300.jpg" alt="" class="wp-image-1235" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-300x300.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-150x150.jpg 150w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_-768x768.jpg 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/51nl7x3rx-S._SL1000_.jpg 1000w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure>



<h2 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0);color:#cf2e2e" class="has-inline-color">Existe un nueva entrada actualizada, puedes verla <a href="https://linuxete.duckdns.org/control-inteligente-de-la-refrigeracion-de-mi-raspberry-pi-4/">aquí</a></mark></h2>



<p>Raspberry Pi 4 tiene una conexión para ventilador configurada de fábrica al PIN 8 (GPIO 14) que se activa a partir de 60ºC. Aunque el fabricante nos dice que ese rango de temperaturas es correcto, a mi me parece demasiado alto. Por ello he creado un script en Python con el cual podemos decir a qué temperatura queremos poner en marcha el ventilador.</p>



<p>Necesitamos un ventilador de 3 pines, que cuente con un cable <mark style="background-color:rgba(0, 0, 0, 0);color:#f70000" class="has-inline-color">rojo 5V positivo</mark>, negro para negativo y <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-ast-global-color-0-color">azul para el control de velocidad</mark>. </p>



<p>El funcionamiento es simple, rojo y negro se conectan a 5 voltios de la Raspberry y azul a un pin de nuestra elección para activar o desactivar el ventilador.</p>



<p>En este script, conectaremos el cable azul al pin 18, al cual daremos valor <strong>HIGH</strong> o<strong> LOW</strong>, dependiendo de los valores de temperatura que asignemos. </p>



<p>Este tipo de ventilador usa el modo <strong>PWM</strong> o ancho de pulso para regular el voltaje y así la velocidad de rotación del ventilador, pero eso lo veremos en otro script.</p>



<p>La ejecución del programa es la siguiente: </p>



<ul class="wp-block-list">
<li>Temperatura igual o superior a 45 grados activa el ventilador.</li>



<li>Entre 44 y 39 grados el ventilador se mantiene activo.</li>



<li>El ventilador se para al bajar de 39 grados.</li>



<li>El ventilador se mantiene apagado hasta que la temperatura sea igual o superior a 45 grados.</li>
</ul>



<p>Eres libre de usar el rango de temperaturas que más te interesen, modifica los valores en el programa.</p>



<p>Este script espera a ejecutar el bucle cada 5 segundos a fin de no cargar los núcleos del procesador y con ello subir artificialmente la temperatura.</p>



<p>Aquí tenemos el código.</p>



<pre class="wp-block-code"><code>#!/usr/bin/python3
# https://linuxete.duckdns.org/
# https://chapuboot.blogspot.com/
# Importa la librería de control de GPIO de la Raspberry
import RPi.GPIO as GPIO

# Importa  la función sleep del módulo time
import time 

#Desactivar advertencias (warnings)
GPIO.setwarnings(False)

#Modo de identificación de GPIO
GPIO.setmode(GPIO.BOARD)

# Configurar pin 18 como salida
GPIO.setup(18, GPIO.OUT)

# Inicializamos pin 18 apagado con False, con True el programa inicia con el ventilador en marcha hasta meterse en el bucle While.
GPIO.output(18, False)

# Función Lectura de temperatura
def get_cpu_temp():
    temperatura = open( "/sys/class/thermal/thermal_zone0/temp" )
    cpu_temp = temperatura.read()
    temperatura.close()
    return float(cpu_temp)/1000

#bucle infinito
while True:
    time.sleep(5) #espera a ejecutar el bucle cada 5 segundos.
    print(get_cpu_temp())
    if get_cpu_temp() &gt;= 45:
        GPIO.output(18, GPIO.HIGH)
    elif get_cpu_temp() &lt;= 44 and get_cpu_temp() &gt;= 40:
        continue
    elif get_cpu_temp() &lt; 39:
        GPIO.output(18, GPIO.LOW)
      
</code></pre>



<p>Abre una terminal y escribe:</p>



<pre class="wp-block-code"><code>nano ventilador.py</code></pre>



<p>Copia, pega el código anterior y guarda pulsando las teclas <strong>Crtl + o</strong> y sal con <strong>Crtl + x</strong></p>



<p>Ahora, dale permisos de ejecución con:</p>



<pre class="wp-block-code"><code>chmod +x ventilador.py</code></pre>



<p>Programa la ejecución del programa al inicio con cron, escribe en la terminal:</p>



<pre class="wp-block-code"><code>crontab -e</code></pre>



<p>Al final del texto, pega el siguiente código:</p>



<pre class="wp-block-code"><code>@reboot /usr/bin/python3 /home/<s>tu_usuario</s>/ventilador.py</code></pre>



<p>Sustituye «tu_usuario» por el tuyo propio.</p>



<p>Guarda con <strong>Crtl + o</strong> y cierra con <strong>Ctrl +x</strong></p>



<p>Ahora cada vez que se encienda tu Raspberry el programa se ejecutará al inicio.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="859" height="237" src="https://linuxete.duckdns.org/wp-content/uploads/2024/04/Seleccion_084.png" alt="" class="wp-image-1244" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/04/Seleccion_084.png 859w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/Seleccion_084-300x83.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/Seleccion_084-768x212.png 768w" sizes="auto, (max-width: 859px) 100vw, 859px" /><figcaption class="wp-element-caption">Script ejecutándose y con procesadores trabajando al mínimo.</figcaption></figure>



<p>Ventiladores disponibles 40 mm y 3 pines</p>



<ul class="wp-block-list">
<li><a href="https://www.amazon.es/GeeekPi-ventiladores-Raspberry-ventilador-silencioso/dp/B092ZF995F/ref=sr_1_9?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;crid=MY9S3IFWTKIL&amp;dib=eyJ2IjoiMSJ9.Zhk--RnJ5CPpg-4zZbURIPUU9uS90NeVFTT8PnK9jQn9P1cpXPe1ztcUF3cw6nT7cN980_nv9x-xz3Dheev-sUt6sjzLc1JpJz-XfoicfrtBjoNzofm2GwKLyx_YlMklILeYaCYydAB5Hy_WpG8yLcxg9ezQp2L9dNfZSTF_KjgrGiT6H7OekH3TgJ88Qs-i0TyMGZ-HiH1NH4_ErO0aUIytTxXbArf8W_LIS01azUMEPMBakUImPJOfi_8FmPVl4tFbKmIGgVBVfMHJvFw6KpleHo8ftNGcQDY9Kb1oe0M.SA-SxqGdkXfRa7S3F1ctwBeaFVAduelK27pjpgtTwAY&amp;dib_tag=se&amp;keywords=raspberry%2Bpi%2B4%2Bventilador%2B3%2Bpines&amp;qid=1712521517&amp;sprefix=raspberry%2Bpi%2B4%2Bventilador%2B3%2Bpines%2Caps%2C100&amp;sr=8-9&amp;th=1" target="_blank" rel="noreferrer noopener nofollow">GeeekPi 2PCS Raspberry Pi 4 PWM Controllable</a></li>



<li><a href="https://www.tiendatec.es/raspberry-pi/accesorios/1980-disipador-integral-con-ventilador-controlado-por-software-pwm-8472496029216.html" target="_blank" rel="noreferrer noopener nofollow">Tiendatec</a></li>



<li><a href="https://es.aliexpress.com/item/1005002518918026.html#nav-specification" target="_blank" rel="noreferrer noopener nofollow">Ventilador PWM, 5V, 3 pines, 40 mm</a></li>



<li><a href="https://www.amazon.es/GeeekPi-Raspberry-Cooling-Tower-Heatsink/dp/B0B9R7WWCG/ref=pd_ci_mcx_pspc_dp_d_2_i_1?pd_rd_w=kyuTE&amp;content-id=amzn1.sym.f11fe75a-7397-412e-9b90-7e09bf6f5c14&amp;pf_rd_p=f11fe75a-7397-412e-9b90-7e09bf6f5c14&amp;pf_rd_r=QEK2R12TZRYFTFTBGR2J&amp;pd_rd_wg=db2YX&amp;pd_rd_r=da453921-dc82-4721-9df6-5c8c7d5d70f9&amp;pd_rd_i=B0B9R7WWCG" target="_blank" rel="noreferrer noopener nofollow">GeeekPi Raspberry Pi Cooling Fan</a> el que estoy usando en mi Raspberry.</li>
</ul>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="577" src="https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29-1024x577.jpg" alt="" class="wp-image-1238" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29-1024x577.jpg 1024w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29-300x169.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29-768x433.jpg 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/photo_2024-04-07_10-39-29.jpg 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">GeeekPi Raspberry Pi Cooling Fan de 3 pines al pin 18 (GPIO 24)</figcaption></figure>



<p>Esquema de los pines GPIO</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="588" src="https://linuxete.duckdns.org/wp-content/uploads/2024/04/pasted-image-0-1024x588.png" alt="" class="wp-image-1246" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/04/pasted-image-0-1024x588.png 1024w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/pasted-image-0-300x172.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/pasted-image-0-768x441.png 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/pasted-image-0-1536x882.png 1536w, https://linuxete.duckdns.org/wp-content/uploads/2024/04/pasted-image-0.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Esquema de los pines GPIO</figcaption></figure>



<p>Comprueba que funciona y  mantén tu Raspberry mas fresca que una lechuga. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/ventilador-para-raspberry-pi-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar botón de encendido Raspberry Pi 4</title>
		<link>https://linuxete.duckdns.org/instalar-boton-de-encendido-raspberry-pi-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalar-boton-de-encendido-raspberry-pi-4</link>
					<comments>https://linuxete.duckdns.org/instalar-boton-de-encendido-raspberry-pi-4/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Sun, 10 Mar 2024 18:52:55 +0000</pubDate>
				<category><![CDATA[raspberry]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[apagado raspberry pi]]></category>
		<category><![CDATA[button raspberry pi 4]]></category>
		<category><![CDATA[encendido raspberry pi]]></category>
		<category><![CDATA[pulsador raspberry pi 4]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=1138</guid>

					<description><![CDATA[Mi raspberry Pi 4 no se lleva muy bien con los cortes repentinos de corriente, acaba por corromper los datos del disco SSD y cuando arranca ¡Que si quieres arroz Catalina! se me ponen los pelos como escarpias. Por eso, aparte de tenerla conectada a una línea de S.A.I o U.P.S, le he instalado un [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Mi raspberry Pi 4 no se lleva muy bien con los cortes repentinos de corriente, acaba por corromper los datos del disco SSD y cuando arranca ¡Que si quieres arroz Catalina! se me ponen los pelos como escarpias. Por eso, aparte de tenerla conectada a una línea de S.A.I o U.P.S, le he instalado un botón de encendido/apagado.</p>



<p>Vamos a ver cómo habilitar la funcionalidad del botón de encendido en la Raspberry Pi 4</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="800" height="800" src="https://linuxete.duckdns.org/wp-content/uploads/2024/03/the-terrapi-ng-including-a-power-button.jpg" alt="" class="wp-image-1146" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/03/the-terrapi-ng-including-a-power-button.jpg 800w, https://linuxete.duckdns.org/wp-content/uploads/2024/03/the-terrapi-ng-including-a-power-button-300x300.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/03/the-terrapi-ng-including-a-power-button-150x150.jpg 150w, https://linuxete.duckdns.org/wp-content/uploads/2024/03/the-terrapi-ng-including-a-power-button-768x768.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>Conecta los dos pines del pulsador en PIN 5 (GPIO 3) y 6 (masa) &#8211; la polaridad es irrelevante.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="800" height="600" src="https://linuxete.duckdns.org/wp-content/uploads/2024/03/gpio.jpg" alt="" class="wp-image-1140" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/03/gpio.jpg 800w, https://linuxete.duckdns.org/wp-content/uploads/2024/03/gpio-300x225.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/03/gpio-768x576.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Pinouts GPIO</figcaption></figure>



<p>En este momento estoy usando como sistema operativo <a href="https://sourceforge.net/projects/mx-linux/files/Final/Xfce/mx23.2_rpi_respin_arm64.zip/download">MX-23.2_rpi_respin</a> basada en Debian 12, ya que me parece más estable que la última versión oficial de Raspberry Pi Os, también basada en Debian 12.</p>



<p>  A continuación, abre el archivo /boot/firmware/config.txt con cualquier editor de texto, si usas la versión oficial puede ser que varíe la ubicación de ese archivo.</p>



<pre class="wp-block-code"><code>sudo nano /boot/firmware/config.txt</code></pre>



<p>Añade la siguiente línea en la parte inferior:</p>



<pre class="wp-block-code"><code>dtoverlay=gpio-shutdown</code></pre>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="901" height="551" src="https://linuxete.duckdns.org/wp-content/uploads/2024/03/Seleccion_038.png" alt="" class="wp-image-1142" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/03/Seleccion_038.png 901w, https://linuxete.duckdns.org/wp-content/uploads/2024/03/Seleccion_038-300x183.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/03/Seleccion_038-768x470.png 768w" sizes="auto, (max-width: 901px) 100vw, 901px" /></figure>



<p></p>



<p>Reinicia tu Raspberry Pi 4 y ¡listo!</p>



<p>¡Ahora al pulsar el botón, si nuestra Pi está encendida, se apagará y si estaba apagada, se encenderá!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/instalar-boton-de-encendido-raspberry-pi-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
