Página 1 de 1

¿Qué distribución para una Pi Zero W?

Publicado: 27 Dic 2020, 18:15
por ariznaf
Le hemos regadado a mi hijo una Pi Zero w para que haga sus pinitos en programación física.

Le he instalado la distribución standar de raspberry pi, la completa.

Pero la verdad estoy muy decepcionado.

El rendimiento es paupérrimo.
Desarrollar direcatamente en la Pi Zero utilizando la interface gráfica conectándola a una panatalla por HDMI es desesperante. Todo va lento como el caracol.

Para mi lo ideal sería hacer el desarrollo en remoto usando Windows 10 y vscode depurando en remoto los programas que se ejecutan en la Pi Zero.
Pero no lo he conseguido (he abierto un hilo preguntando cómo hacer eso, puesto que el método que encontré por ahí para la raspberry pi no funciona en la Zero: viewtopic.php?f=39&t=15934).

¿Es posible que el problema es que he instalado una distribución para la Pi que no va bien en la Pi Zero?
¿Hay alguna distribución específica para la Pi Zero, más ligera?

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 27 Dic 2020, 19:32
por egrueda
El problema es que has comprado una pi zero y no es la mejor opción para usarlo como estación de trabajo

La Pi Zero es lo que es...

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 27 Dic 2020, 21:20
por ariznaf
Gracias por tu respuesta.

Es que realmente no quiero una estación de trabajo.

Me explico: lo que pretendo es usar la pi zero (o la raspberry) como dispositivo para aprender sobre los aspectos básicos de programación física y sobre otras cosas como MQTT, etc.
También buscaba que fuera lo más pequeñito y bolsillero posible (además de barata).

Ordenador ya tiene y mucho más potente que lo que pueda ser una pi zero o una raspberry.

No veo ni mucho menos ideal hacer el desarrollo usando la pi, ambas limitados en muchos aspectos.
Lo normal sería programarla de forma remota, programando en tu ordenador y mandando el código a la pi/pi Zero y depurando de forma remota.

Ya me diréis cómo vas a programar o desarrollar en un cacharro que tarda segundos en actualizar la pantalla. Me parece un fiasco, si sólo hay la posibilidad de programar usando la interface gráfica del OS de raspbian.

En teoría se puede hacer con el VSCode (creo que también con otros) usando SSH para hacer la comunicación entre el PC y la raspberry pi.

Lo malo es que con la Pi Zero no funciona porque la arquitectura arm6 no está soportada por el paquete de vscode que tienes que instalar.

He visto otras opciones para usar python como es usar ptvsd (o su sucesor debugpy) pero no he conseguido ponerlo a funcionar.

El Raspbian en la pi Zero W es absolutamente inmanejable, y deberían advertirlo con letras mayúsculas, y no venderlo como que sí corre raspbian, porque no es así, se queda colgado a la primera de cambio.

Pero ya digo me serviría perfectamente utilizando una versión sin entorno gráfico y más reducida (no sé si el Raspian Lite) siempre y cuando puedas programar el aparatito desde el PC, como con cualquier otro microcontrolador.

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 27 Dic 2020, 21:40
por egrueda
ariznaf escribió: 27 Dic 2020, 21:20 Es que realmente no quiero una estación de trabajo.
Lo que te decía es que no se trata de lo que quieras usar, sino de lo que necesitas.
ariznaf escribió: 27 Dic 2020, 21:20 No veo ni mucho menos ideal hacer el desarrollo usando la pi, ambas limitados en muchos aspectos.
Eso es evidente, antes incluso de comprar una raspi xD
ariznaf escribió: 27 Dic 2020, 21:20 Lo normal sería programarla de forma remota, programando en tu ordenador y mandando el código a la pi/pi Zero y depurando de forma remota.
No debemos hablar de "lo normal" sino de lo que tú quieras conseguir.
ariznaf escribió: 27 Dic 2020, 21:20 Ya me diréis cómo vas a programar o desarrollar en un cacharro que tarda segundos en actualizar la pantalla. Me parece un fiasco, si sólo hay la posibilidad de programar usando la interface gráfica del OS de raspbian.
Llevo años usando la raspi zero (dos de ellas) para varias tareas, de forma eficiente y sin fallos.
Entonces, por favor, no generalices sólo porque estés enfadado
ariznaf escribió: 27 Dic 2020, 21:20 En teoría se puede hacer con el VSCode (creo que también con otros) usando SSH para hacer la comunicación entre el PC y la raspberry pi.
Lo malo es que con la Pi Zero no funciona porque la arquitectura arm6 no está soportada por el paquete de vscode que tienes que instalar.
Entonces tendrás que buscar otra forma u otra herramienta, en lugar de elegir primero la herramienta y luego buscar la forma de usarla para lograr tu meta.
ariznaf escribió: 27 Dic 2020, 21:20 El Raspbian en la pi Zero W es absolutamente inmanejable, y deberían advertirlo con letras mayúsculas, y no venderlo como que sí corre raspbian, porque no es así, se queda colgado a la primera de cambio.
Creo que hablas desde el desconocimiento y la ignorancia. ¿Advertir? Existe documentación de sobra y depende de cada uno qué es lo que que haces con él.
Insisto en que estás tratando de usar un martillo para apretar un tornillo, y le echas la culpa al martillo. ¿por qué no advierten cuando venden un martillo que no sirve para apretar tornillos? Jejeje
ariznaf escribió: 27 Dic 2020, 21:20 Pero ya digo me serviría perfectamente utilizando una versión sin entorno gráfico y más reducida (no sé si el Raspian Lite) siempre y cuando puedas programar el aparatito desde el PC, como con cualquier otro microcontrolador.
Pero es que te recuerdo que lo que tienes en la mano NO es un microcontrolador, es un SoC, es un ordenador, con un sistema operativo.

En serio, ¿y si no es una pi zero lo que tú necesitas?

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 27 Dic 2020, 22:14
por ariznaf
Vamos a ver: tengo un cacharrito con apenas 500K de memoria, que se puede programar perfectamente desde el ordenador.
Es también un SOC (un ESP32) sólo que mucho más reducido aún que la raspberry y sin sistema operativo linux.

En la web de raspberry sí que comentan que se puede hacer el desarrollo remoto desde tu PC.

Lo que no dicen por ningún lado es que eso no funcione en la Pi Zero.

Desde luego no esperaba que un sistema completo con su interface gráfica funcionara a las mil maravillas con sólo 512 MB, y así ha sido.
El problema es que no parece haber alternativa, cosa que sí hay en la raspberry Pi normal.

Y por supuesto que desconozco en gran medida el mundo de la Raspberry, por algo entra uno en foros a buscar información.

Cuando dices que llevas años utilizando la Pi Zero... ¿y en esos años la utilizabas para el desarrollo o desarrollabas primero en una Pi y una vez que lo tenías más o menos funcionando lo pasabas a la Zero?
Porque no me cabe duda de que los programas que pretendemos hacer funcionan sin ningún problema en la Pi Zero.
El problema es el desarrollarlos.
Si has desarrollado directamente en la Pi Zero, sería muy de agradecer que me indicaras qué has utilizado para ello.

Que es lo que estoy diciendo: para desarrollar los programas, la Pi Zero me ha resultado completamente inútil, salvo que encuentre una forma de activar la depuración remota desde el PC, que también puede ser que haya alguna opción que se me escape.

Está claro que no es una Pi Zero lo que necesitaba, lo malo es que por ningún lado indicaban que la depuración remota no funcionara en la Pi Zero.

De todas formas no era mi intención entrar en polémicas sobre si la PI Zero es un gran cacharrito o no (no me cabe duda de que las pequeñas aplicaciones que pretendemos realizar funcionarán perfectamente una vez desarrolladas).

Simplemente contaba mi experiencia personal por si servía para centrar qué es lo que pretendía realizar con ella: desarrollar programas en python de pequeñas dimensiones, pudiendo depurarlos desde el PC o desde el propio entono de la PI Zero pero con tiempos de espera y de respuesta razonables.

Por eso preguntaba si había otras distribuciones más ligeras que se pudieran emplear para eso.

Y NO estoy enfadado, hombre, ni pretendía hacer una crítica mordaz de la PI Zero.

Sí que ha supuesto una decepción, aunque aún no lo doy por perdido.

Siempre está la posibilidad de hacerme con una PI para que pueda hacer el desarrollo y la Zero devolverla o dejarla para más adelante cuando ya tenga algo que funcione y lo quiera poner a funcionar "de forma autónoma".

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 27 Dic 2020, 22:55
por egrueda
Por un lado, si lo que buscas es que sea una distro más liviana, quítale el escritorio.
La raspi zero se suele usar "headless", haciendo su trabajo sin teclado, ratón ni vídeo.
Para eso, si usas Raspberry Pi Imager, puedes elegir "raspberry pi os lite"

Por otro lado, para desarrollar, existe más de una forma de desarrollar "en" y "para" pi zero.
Si con un plugin específico de un IDE específico no te funciona porque es incompatible, entonces busca otra forma de hacerlo.
Volvemos a lo de antes con las herramientas que quieres y las que necesitas :-)

Yo mismo he usado vscode con la raspi, aunque tuve qe jugar con el lauch.json para decirle cómo ejecutar el código en la raspi :-)
Puedes ver más de launch.json en https://code.visualstudio.com/docs/editor/debugging
Aunque técnicamente el problema no es de vscode sino de la extensión remote-release, si mal no recuerdo, porque la pi zero tiene demasiada poca memoria.

También puedes compartir una carpera desde la pi zero, abrirla en windows y editar con vscode, es otra opción.
Y con launch.json y tasks.json puedes conseguir el resto: https://bitbucket.org/jIRI/rasp-pi-zero ... rc/master/

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 28 Dic 2020, 11:59
por ariznaf
Pues gracias, eso era lo que quería saber, si había alguna distribución más específicamente adaptada a la Pi Zero.
Por lo que veo no, sólo la versión lite sin entorno gráfico ni otras cosas.

Era era la idea: ponerle lo básico y en modo headless.
Pero para eso necesito poder configurarla para depurar los programas desde el PC usando Python que es lo que él está aprendiendo (por ser más fácil que otras opciones y haber muchos ejemplos en ese lenguaje).

Prefería que fuera con vscode porque es lo que veníamos utilizando y me parece un buen entorno y se puede utilizar para muchas otras cosas.

Pero no estoy cerrado a VSCODE si hay otro entorno para python que permita de forma sencilla depurar desde el PC, pues bien venido sea.

Esas dos opciones también las he visto y lo he intendado poner a funcionar pero por una u otra cosa ninguna me ha funcionado.

En realidad he visto tres opciones diferentes para la depuración remota en raspberry pi:
* Usar la extensión ssh-remote que utiliza ssh para transferir los ficheros y los comandos de depuaración y que te permite abrir los proyectos que tienes en tu raspberry como si estuvieran en tu ordenador.
Pero en la Raspberry PI Zero no se puede instalar el componente necesario porque dice que no es compatible con arquitectura arm6.
* Usar ptvsd para hacer la depuración copiando los ficheros primeros desde el ordenador. Por lo que se ve el ptsvd ya está obsoleto y ahora es el debugpy el que se instala con las extensiones Python del vscode.
He probado con los dos y no he conseguido que se conecte al debugger remoto. Algo se me escapa.

* Usar samba para conectarse y abrir los ficheros directamente en la Pi y usar el debugger remoto. Tampoco me ha funcionado.

EStos dos últimos métodos siempre me dan el error de conexión, por más que reviso el puerto y la configuración.
He encontrado diferentes variantes a la hora de configurarlo pero ninguna me ha funcionado bien.

Revisaré esos enlaces que pones a ver si esta vez lo consigo.

Si tengo problemas será mejor que abra otro hilo preguntando más específicamente.

Lo que había preguntado en este hilo parece que está claro, que no hay una imagen específica para la Pi Zero más ligera, sólo la raspbian full o la lite (sin entorno gráfico y otros servicios).

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 28 Dic 2020, 12:04
por egrueda
ariznaf escribió: 28 Dic 2020, 11:59 Pues gracias, eso era lo que quería saber, si había alguna distribución más específicamente adaptada a la Pi Zero.
Por lo que veo no, sólo la versión lite sin entorno gráfico ni otras cosas.
No es el único, es el más habitual y más sencillo.
¿Conoces o te suena DietPi?
ariznaf escribió: 28 Dic 2020, 11:59 EStos dos últimos métodos siempre me dan el error de conexión, por más que reviso el puerto y la configuración.
Vale, ya tenemos un error "concreto". Creo que es ahí donde debes centrar tus esfuerzos, en ver por qué no conecta con la pi zero.
¿Qué parámetros le metes exactamente? ¿Y qué error exacto te da?
¿La IP no ha cambiado? ¿ssh levantado? ¿firewall detenido?

Re: ¿Qué distribución para una Pi Zero W?

Publicado: 28 Dic 2020, 16:24
por ariznaf
egrueda escribió: 28 Dic 2020, 12:04
No es el único, es el más habitual y más sencillo.
¿Conoces o te suena DietPi?
Pues no, no lo conocía. Ya digo que soy recién llegado al mundo raspberry, aunque llevo un mes mirando un poco para hacerle el regalo al niño.
Suena interesante, habrá que probarlo.
Si corre la interface gráfica con cierta soltura, siempre es interesante tener la posibilidad de activarla en un momento dado y tener un ordenador a mano (o en el bolsillo).

Imagino que en esa distribución las librerías usuales para poder acceder al hardware de la pi y programar estarán incluidas y si no se podrán instalar con el apt.

Sin duda tendré que probarla.
Vale, ya tenemos un error "concreto". Creo que es ahí donde debes centrar tus esfuerzos, en ver por qué no conecta con la pi zero.
¿Qué parámetros le metes exactamente? ¿Y qué error exacto te da?
¿La IP no ha cambiado? ¿ssh levantado? ¿firewall detenido?
He estado esta mañana haciendo pruebas. Algo he avanzado.
Hay muchas variantes del método de instalación del ptvsd/debugpy pero ninguna de ellas me lleva a buen puerto.

¿Será mejor que abra otro hilo?
He estado intentando seguir las instrucciones que aparecen en la página que ponías al principio, pero siguiendo las específicas para python que aparecen más abajo.
Son parecidas a otras que había encontrado por internet.
https://code.visualstudio.com/docs/python/debugging

La conexión con ssh sin introducir clave sí que funciona bien.
Y tengo instalado el debugpy tanto en el pc como en la Pi Zero.

Uno de los problemas que tenía era en la instalación del debugpy.
En los manuales que encontré y también en este te ponen una instrucción para instalar el debugpy:
python -m pip install --upgrade debugpy

Mientras que luego la instrucción de lanzamiento es:
python3 -m debugpy --listen 1.2.3.4:5678 --wait-for-client -m myproject

usando python3.

Pue bien, uno de los problemas que tenía es que en la Pi están instalados tanto python como python3.
La primera instrucción instala el debugpy para python, mientras que la segunda intenta usarlo en python3, y resulta que usan repositorios diferentes (o eso parece).
Así que daba un error indicando que no encontraba el módulo debugpy.

Como no aparecía en pantalla el error, me costó localizar que el error era ése.

Corregí eso usando python3 -m pip install --upgrade debugpy para la instalación.

Ahora sí que por lo menos carga el módulo y queda a la escucha.
Pero cuando uso el task para hacer el attach del debugger a ese puerto MIIP:5678 se queda durante un rato y luego entra en el debugger pero no puedo hacer la depuración paso a paso.
El programa si corre (enciende un led) y en la pi sí que está corriendo el python con la instrucción que lo lanza con el debugger.

También he tratado de hacer la conexión usando un túnel ssh a través del puerto 5678 entre ambos ordenadores (otra de las opciones que comenta).
Pero pasa un poco lo mismo, que cuando lanzo la aplicación y hago el attach, la aplicación se pone a correr pero no puedo hacer los steps de depuración, ni ver variables ni nada.
Pero sí aparece como conectado .

A ver si lo pruebo un poco más y lo ordeno todo un poco y pongo los ficheros launch.json y tasks.json que estoy utilizando.