viernes, 26 de marzo de 2021

Mobian: Debian en teléfonos móviles inteligentes (smartphone)

Como podemos leer, Mobian es un proyecto que porta el sistema operativo Debian a teléfonos móviles inteligentes (SmartPhone), de hay su nombre (Mobile Debian). Usando como primer teléfono inteligente (smartphone) el PinePhone de PINE64. 




PinePhone Mobian Community Edition (Enero de 2021)

Pine64, vendía PinePhone con Mobian Community Edition. Para que la comunidad de desarrolladores y usuarios de Debian, crearan el sistema operativo Mobian para el teléfono móvil, basado en Debian GNU/Linux. 


Actualmente el sistema operativo por defecto de PinePhone es Manjaro Plasma Mobile, que también es Linux y usa la interfaz de usuario KDE Plasma. Pero si no te gusta KDE Plasma, o no te gusta Manjaro, o simplemente prefieres usar nuestra distribución favorita (Debian GNU/Linux) puedes instalar Mobian, que actualmente usa gnome por defecto.



Mobian
, es una comunidad de Linux muy activa en el desarrollo del sistema operativo. A
porta mucha documentación a los usuarios y desarrolladores. Todos los avances y mejoras realizadas cada día, son publicada cada noche la compilación con las modificaciones realizadas durante ese día.

La venta de PinePhone con el sistema operativo Mobian por defecto y la caratula trasera personalizada con el logotipo de Debian, fue una edición limitada. Se agotó rápidamente.

Documentación y descargas en:

- Página web oficial: https://mobian-project.org
- Blog de Mobian: https://blog.mobian-project.org 
- Descarga de las imágenes de instalación: https://images.mobian-project.org





  En la descripción del PinePhone decía:  

Al comprar esta Community Edition de PinePhone, apoya el proyecto Mobian y a sus desarrolladores. Con cada PinePhone comprado a través de esta campaña, Pine Store dona $ 10 a Mobian.

Las aplicaciones (app) que incorporan, son las aplicaciones que Debian GNU/Linux incluye en los repositorios oficiales: ModemManager, Firefox, Telegram Desktop, y largo etc... Los usuarios de Linux en general y de Debian en particular, no tendrán problemas a la hora de usar este teléfono móvil, para el resto de usuarios le puede costar un poco mas, o simplemente no lo usaran, porque en el momento de escribir este manual hay una app que no se puede usar de forma oficial en Mobian, es Whatsapp.




Comunicado oficial del comienzo de Mobian

Este es el comunicado oficial del líder del proyecto Mobian, usando el nick en el foro de Pinephone: a-wai

  Texto integro traducido a español: Publicado el 14 de mayo de 2020  

Queridos todos,

Han pasado un poco más de 3 meses desde que comencé a piratear una imagen de Debian para PinePhone, agregando (manualmente) nuevo software y corrigiendo errores paso a paso. Otros se han unido a mí en este esfuerzo, y un pequeño equipo se ha reunido e hizo un gran trabajo al permitir que el PinePhone se use como un controlador diario, al menos siempre y cuando no tenga expectativas extravagantes como una "duración decente de la batería". o "cámara de trabajo".

Seguimos avanzando mientras anunciamos el proyecto Mobian, cuyo objetivo es llevar Debian a dispositivos móviles con tantos componentes ascendentes como sea posible. Nos estamos enfocando primero en el PinePhone, por supuesto, pero planeamos extender el soporte a otros dispositivos, los siguientes en la lista son el Librem5 de Purism y el PineTab (es decir, aún así, Mobian no es una distribución, sino solo una superposición de Debian, que le brinda acceso instantáneo a toneladas de paquetes existentes, al tiempo que nos facilita las cosas mientras intentamos mantener la menor cantidad posible de paquetes personalizados. Esto significa trabajar con el objetivo de transferir casi todo nuestro trabajo a Debian, y esto ya está funcionando bastante bien, ya que los paquetes base de phosh (phoc, phosh, squeekboard y algunos otros) deberían llegar pronto al archivo y trabajar en la incorporación de aplicaciones específicas para teléfonos (como llamadas y chat) a Debian está muy avanzada.

Con este cambio de enfoque en mente, pasamos las últimas semanas creando una infraestructura para el proyecto, tanto para facilitar nuestro trabajo como desarrolladores, como para brindar mejores servicios de cara al usuario.

El proyecto Mobian ahora tiene:

- su propio sitio web
- un canal público de Matrix
- un grupo de Gitlab dedicado , que incluye:
   - un rastreador de problemas de todo el proyecto
   - una Wiki renovada (y en su mayoría en construcción)

Con este anuncio llega la primera imagen de PinePhone disponible para descargar.

La mayor parte del trabajo se ha realizado bajo el capó, ya que casi todo el software parcheado se ha actualizado a su versión ascendente más reciente y se ha reconstruido para varias arquitecturas (x86-64, arm32 y arm64) con el fin de facilitar la migración a otros dispositivos en el futuro. También hay algunos (pequeños) cambios cosméticos, incluido el cambio de nombre del usuario predeterminado de "debian" a "mobian".

Esta versión también habilita la configuración inicial de gnome en el primer arranque, corrige la estabilidad de wifi al deshabilitar el ahorro de energía en el controlador (lo que debería hacer que su batería sea un poco insatisfecha, pero mejorar en gran medida su conectividad) y trae una gran cantidad de pequeñas correcciones de errores.

Las nuevas imágenes se crearán automáticamente a diario a partir de la próxima semana, por lo que verá menos anuncios de lanzamiento aquí, ya que planeo resaltar solo cuando se esté haciendo un progreso importante, pero los lanzamientos seguirán rodando y usted mantendrá la capacidad. para actualizar su sistema usando apt (aunque no esta vez, ya que comprenderá que cambiar a esta nueva infraestructura requiere que comience desde una imagen nueva)

Por supuesto, siempre damos la bienvenida a nuevos colaboradores, ya que todavía hay mucho por hacer: mejorar el soporte de hardware, nuevo paquete de software, mejorar los ya existentes para adaptarse a la pantalla del PinePhone, mejorar la wiki, ayuda con nuestra infraestructura y CI, y así sucesivamente ...

Disfrute!




Mobian usa gnome, pero ¿y kde plasma?

Por el momento Mobian solo están desarrollando gnome (phosh), pero en un futuro piensan añadir también kde plasma (plasma shell).


Por el momento, estamos enfocados en la misma pila de software que Purism usa para el Librem5, es decir, wayland-ish, gnome-ish, modem manager-ish. Estar basado en el entorno Phosh facilita eso, pero, por supuesto, es perfectamente posible ejecutar software basado en Qt. No tenemos nada en contra de KDE y el shell de plasma, y ​​si, estamos contemplando, cuándo y cómo podemos admitirlo también, pero por el momento crear una única GUI funcional es un desafío suficiente.




Temas y personalizaciones gráficas

La interfaz de usuario de phosh utiliza GTK3 para los temas. El aspecto de la mayoría de Mobian puede cambiar al seleccionar diferentes temas del sistema. Algunas aplicaciones pueden necesitar cambios de configuración específicos para alinearse con los temas elegidos, por ejemplo, en el caso de que una aplicación no respete el tema del sistema.

Mobian no proporciona ningún tema específico por sí mismo. Todos estos temas son proporcionados por los repositorios de Debian anteriores. Proporcionamos una galería de cómo se ven algunos de estos temas en un teléfono móvil usando phosh. Por favor, amplíe y complete la galería, ¡esta es una wiki editable!

Como no hay una GUI para configurar el tema del sistema en Mobian, debe configurarse desde la línea de comandos.





Algunos enlaces de vídeos de youtube


El PinePhone se basa en sistemas operativos de código abierto impulsados por las comunidades.​ Debido a que estos proyectos de sistemas operativos comunitarios estuvieron involucrados en el desarrollo del PinePhone, este ha sido portado a 16 diferentes distribuciones de Linux y 7 diferentes interfaces gráficas de usuario, a partir de junio de 2020,​ como Ubuntu Touch de UBports, postmarketOS, Mobian, LuneOS, Nemo Mobile y Maemo Leste, etc. Debido a que Pine64 no incurre en gastos de desarrollo de software, el precio de venta del PinePhone es menor en comparación con otros teléfonos.

El único software propietario en el sistema de archivos de Linux de PinePhone es el firmware para el 
WiFi/Bluetooth Realtek RTL8723CS  y el firmware opcional de autoenfoque para la cámara trasera OmniVision OV6540 (que ninguno de los sistemas preinstalan actualmente). Aunque el PinePhone está diseñado para utilizar software de código abierto en sus controladores y su cargador de arranque, es casi imposible encontrar componentes, como el módem celular, GNSS, WiFi y Bluetooth, que no contengan blobs propietarios. Por esta razón, el PinePhone aísla estos componentes comunicándose a través de protocolos seriales, como USB 2.0, I2S y SDIO, que no permiten el acceso directo a la memoria (DMA), y ofrece interruptores de separación de energía para ellos. De esta manera, los blobs siguen siendo necesarios para el funcionamiento de estas radios, pero se aíslan o incluso se quitan físicamente del sistema principal independiente.


Firmware LIBRE 
para el WiFi/Bluetooth Realtek RTL8723CS (desarrollado por Konrad, Biktor y Dylan)

Actualmente estamos trabajando en tres frentes diferentes en cuanto a modem: 

1) portando el kernel de la línea principal (kernel.org)
2) código abierto del espacio de usuario
3) mejorar la forma en que se manejan las llamadas entrantes y los mensajes de texto mientras el teléfono está suspendido.

El módem ahora puede arrancar la versión 5.11 del kernel de Linux con una funcionalidad mínima (serial, USB y NAND).
Konrad ha estado trabajando duro en todos los controladores de bajo nivel que se necesitan (PMIC, relojes, etc.) para que el resto de los dispositivos dentro del SoC puedan iniciarse. Todavía hay mucho trabajo por hacer, ya que el SoC nunca ha visto un lanzamiento oficial de Qualcomm desde el kernel 3.18.x, por lo que incluso si algunas piezas se pueden adaptar de otros modelos principales de Qualcomm, hay mucho código que debe ser escrito desde cero.
Konrad está trabajando para enviar sus parches existentes en sentido ascendente, de modo que puedan fusionarse y él pueda continuar con el trabajo.

En el firmware de fábrica actual, hay alrededor de 150 binarios y bibliotecas de código cerrado que hacen que el módem funcione.
Biktor está trabajando para reemplazarlos todos con 3 alternativas de código abierto que, con suerte, obtendrán el 90% de la funcionalidad requerida. En este punto, podemos inicializar el módem, establecer conexiones de datos y realizar llamadas CS (normal) y VoLTE sin binarios, aunque a veces falla el audio y la recepción de llamadas aún no funciona. Estén atentos para obtener más información sobre el espacio de usuario de código abierto en un futuro próximo.

Dylan ha estado abordando una de las mayores quejas relacionadas con el módem, a saber, la lenta recuperación de la suspensión y su USB se reinicia, lo que hace que PinePhone pierda llamadas entrantes y mensajes de texto cuando usa ModemManager (ya que no puede volver a conectarse al módem lo suficientemente rápido después de la suspensión). Estos parches, que actualmente se encuentran en una etapa de prueba, deberían hacer que el PinePhone se active y comience a sonar en el primer tono de marcación cuando haya una llamada entrante o un mensaje de texto, así como corregir los reinicios USB intermitentes que aparecen cuando se reanuda desde la suspensión.


Actualmente contamos con: 

1) Un gestor de arranque de código abierto, que nos permite flashear y arrancar software personalizado

2) Un kernel 3.18.140 abierto y temporal con parches mínimos, que brinda la misma funcionalidad que el stock con menos vulnerabilidades y la posibilidad de depurar controladores mientras se pasa a 5.x.

3) Opciones de espacio de usuario abierto, con o sin blobs, que brindan diversos grados de funcionalidad, basadas en Yocto 3.2 o postmarketOS.

4) Modem SDK que sirve como un patio de recreo para cualquiera que quiera construir su propio firmware basado en Yocto.

5) Soporte inicial del equipo de postmarketOS que permite crear imágenes pmOS flasheables para el módem.

El objetivo final siempre ha sido el mismo, tener el módem lo más abierto posible. No estamos tocando el firmware ADSP del módem, porque además de las dificultades inherentes que conlleva, modificar el firmware ADSP podría generar problemas con las regulaciones o certificaciones de RF.


=====================================

Resumen final

Este es solo el principio de un gran proyecto, portar Debian a los teléfonos móviles con el nombre de Mobian, de momento solo a PinePhone.

Yo como usuario de Debian GNU/Linux y del escritorio KDE Plasma, pongo mi granito de arena, mi pequeña aportación al proyecto, desde este blog. Un blog en idioma español. En el, al igual que hasta ahora, iré realizando manuales sobre Debian GNU/Linux para ordenadores personales y ahora también para Mobian. 

Deciros también, que tengo preparado otro manual sobre PinePhone y GNU/Linux. Pero los siguientes manuales, tardarán en llegar (minimo un año, pues antes no puedo comprarme el teléfono), ya que necesito un teléfono PinePhone para realizar manuales de instalación, configuración y uso del sistema operativo y de aplicaciones. Porque todos los manuales para Mobian, tengo que hacerlo con el uso y mi experiencia personal.







sábado, 20 de marzo de 2021

Colorear bash en .bashrc

Hola, este manual va para quienes usan la terminal. Por defecto la terminal usa el color blanco, todo en un solo color, y como se puede ver es muy difícil diferenciar donde esta el prompt, donde esta la orden que se ejecutado, donde el resultado, etc... es un poco caótico. 

Personalmente, prefiero tener varios colores distintos en la consola, para de esta forma ver la información mucho mas rápidamente.
vamos a ver como personalizar la consola y el prompt en bash.

Introducción

yo uso mucho la terminal para conectarme con otras computadoras por ssh. Realmente es muy incómodo el tener varias sesiones abiertas en cada pc y tener que leer el prompt para saber de cual se trata. 

  diego@usuariodebian:/etc$  

Un problema que me aparece mucho, es cuando uso el comando de ayuda  --help y si la ayuda es muy extensa, que coge mas de una pantalla. tengo que volver con el scroll para atrás, y no siempre puedo encontrar donde esta la línea de comando que use para la ayuda. 

Ese problema se soluciona coloreando el prompt, de modo que sea fácilmente distinguible cuando es una línea de comando y cuando es la salida del mismo lo que vemos en la terminal. 
También puse colores distintos a los nombres de las distintas computadoras así, me doy cuenta cuando es que estoy en una consola local y cuando estoy en una consola remota. La última mejora es cambiar el color de usuario root por un inconfundible color: rojo peligro así como también el carácter # del mismo color rojo peligro, solo para saber cuando estoy usando el usuario root y cuando el usuario normal, ya que la vista es mas rápida que la lectura.


Información sobre el Bash

La información sobre bash se encuentra en el archivo oculto .bashrc en el home de cada usuario (incluido root).
Para cambiar el prompt tenemos que editar (o agregar) la línea que arranca con PS1=" "

A continuación veremos las opciones que podemos usar.
Las secuencias de escape:

\a ASCII bell character (07)
\d fecha como "dia mes fecha" ("mar May 26"
\D{format} fecha
\e ASCII escape character (033)
\h nombre del host hasta el primer punto
\H nombre del host
\j numero de trabajos manejados por el shell
\l the basename of the shell's terminal device name
\n nueva linea
\r Volver al principio
\s nombre del shell
\t hora en 24-horas con segundos (HH:MM:SS)
\T hora en 12-horas (AM/PM) con segundos
\@ hora en 12-horas (AM/PM)
\A hora en 24-horas (HH:MM)
\u usuario actual
\v version de bash
\V release de bash
\w directorio actual en version completa (con la ruta) con el home como ~
\W directorio actual en versión corta (solo el nombre) con el home como ~
\! Numero de comando en el historial
\# Numero de comando
\$ Muestra # para root, $ para los usuarios
\nnn caracter correspondiente al octal nnn
\ \ barra invertida
\[ principio de secuencia de caracteres no imprimibles
\] final de secuencia de caracteres no imprimibles



===========================================================
NOTA IMPORTANTE:
- Las opciones marcadas en rojo (\u \h \w \$) son las opciones usadas por defecto en bash
- Las últimas 2 opciones ( \[     \] ), si no las tenemos en cuenta se nos pone loco el prompt a la hora de borrar o autocompletar.
===========================================================

Los colores son:

 NEGRO 0;30                                        
  GRIS 1;30                                            
  ROJO 0;31                                           
  ROJO CLARO 1;31                             
  VERDE 0;32                                         
  VERDE CLARO 1;32                           
  MARRON 0;33                                     
  AMARILLO 1;33                                  
  AZUL 0;34                                            
  AZUL CLARO 1;34                              
  VIOLETA 0;35                                      
  VIOLETA CLARO 1;35                        

  CYAN 0;36                                           
  CYAN CLARO 1;36                             
  BLANCO CLARO (osea GRIS) 0;37  
  BLANCO 1;37                                     



Por Defecto

La secuencia por defecto es: \u@\h:\w \$

  diego@usuariodebian:/etc$  

Ahora para colorearlo, necesitamos introducir los colores, usando una secuencia no imprimible. De modo que antes de cada elemento ponemos el color encerrado entre \[ y \] esto es SUPER IMPORTANTE, si no lo hacemos, se nos descajeta todo cuando borramos o usamos autocompletar.
A cada color lo anotamos con un \e[ al principio y un m al final.
entonces, cuando cambiamos el color a ROJO, ponemos

\[\e[0;31m\]


=====================================================
ATENCIÓN:
Todo lo que le siga va a estar en rojo, hasta que no le digamos que use otro color.
Para resetear el color, al color por defecto de la consola usamos el valor 0;0
=====================================================


Usuarios del sistema

En mi caso personal uso el siguiente formato, para los usuarios:

  diego@usuariodebian: /home/diego/Descargas $  

La variable PS1 es la siguiente:

PS1='${debian_chroot:+($debian_chroot)}\[\e[1;32m\]\u\[\e[1;37m\]@\[\e[1;36m\]\h: \[\e[1;37m\]\w \[\e[1;32m\]\$ '


Usuarios del sistema de otro pc de la red

En mi caso personal uso el siguiente formato, para los usuarios:

  [192.168.x.x] diego@usuariodebian2: /home/diego/Descargas $  

La variable PS1 es la siguiente:

PS1='${debian_chroot:+($debian_chroot)}\[\e[1;33m\][192.168.x.x] \[\e[1;32m\]\u\[\e[1;37m\]@\[\e[1;33m\]\h: \[\e[1;37m\]\w \[\e[1;32m\]\$ '


Usuarios administradores

y para el usuario root y grupo de administradores uso el siguiente formato:

  root@usuariodebian: /usr/lib #  

La variable PS1 es la siguiente:

PS1='\[\e[1;31m\]\u\[\e[1;37m\]@\[\e[1;36m\]\h:\[\e[0;31m\] \w \$\[\e[1;32m\] '

En las otras computadoras les cambio el color al host, por ejemplo, en ves de usar verde, uso rojo, cambio el 0;32 por 0;31

PS1='\[\e[0;36m\]\u\[\e[0m\]@\[\e[0;31m\]\h\[\e[0m\] \w\$ '


Observen el uso de \[\e[0m\] para resetear el color. Si no lo ponen al final, les queda el texto de la consola en el último color que pusieron en el prompt

Con eso puedo rápidamente ubicar el prompt y sin tener que leer el nombre de host, para saber de cual se trata. Porque distingo muy fácilmente cuando la sesión es de root y cuando no.

Usuarios administradores de otro pc de la red

y para el usuario root y grupo de administradores uso el siguiente formato:

  [192.168.x.x] root@usuariodebian: /usr/lib #  

La variable PS1 es la siguiente:

PS1='\[\e[1;31m\][192.168.x.x] \[\e[1;31m\] \u\[\e[1;37m\]@\[\e[1;36m\]\h:\[\e[0;31m\] \w \$\[\e[1;32m\] '

Observen el uso de \[\e[0m\] para resetear el color. Si no lo ponen al final, les queda el texto de la consola en el último color que pusieron en el prompt

Con eso puedo rápidamente ubicar el prompt y sin tener que leer el nombre de host, para saber de cual se trata. Porque distingo muy fácilmente cuando la sesión es de root y cuando no.


Comandos coloreados en bash

Para la salida del comando ls coloreada, descomentamos en el archivo .bashrc

 alias ls='ls --color=auto' 


También podemos descomentar las siguientes líneas para dir y vdir:

 alias dir='dir --color=auto' 

 alias vdir='vdir --color=auto' 

de modo que cuando hacemos ls, en realidad bash hace "ls --color=auto" y nos muestra todo con colores 


Colorear la salida de grep

Es super útil para encontrar lo que nos filtra grep.
Añadimos la siguiente línea tal y como e enucentra abajo:

 export GREP_COLOR="1;33" 

y descomentamos la siguiente linea:

 alias grep='grep --color=auto' 

1;33 es amarillo, así que lo que buscamos con el comando grep aparece de ese color. Si quieren otro, lo buscan en la lista de arriba y listo.


Conclusión

A mí me facilita mucho la lectura y me hace mucho mas cómodo trabajar en la consola. Los colores nos permiten encontrar la información mas rápido, ya que la vista es mas rápida que la lectura. A la vez que nos dan información por el simple hecho de poder distinguir los colores, por ejemplo: prompt rojo para   root #   y prompt verde para el   usuario $   (no tengo que leer si es $ o #, o si dice root o diego en el nombre de usuario)




Enlace a: Cambiar mensaje de bienvenida de SSH










UBports: UBports-installer

¿Que es UBports?

UBports desarrolla el sistema operativo de telefonía móvil Ubuntu Touch. Y han creado una aplicación llamada UBports-installer

Ubuntu Touch es un sistema operativo móvil centrado en la facilidad de uso, la privacidad y la convergencia.


¿Que es UBports-installer?

UBports-installer Es el programa que han creado para instalar y actualizar Ubuntu Touch


Como funciona Ubports-installer

Vamos a actualizar Ubuntu Touch versión de Canonical a Ubuntu Touch versión de Ubports, en el teléfono BQ Aquaris E4.5. 

Para ello vamos a utilizar el programa UBports-installer. Nos vamos a la web oficial de UBports y descargamos dicho programa. Existe versión portable y versión instalable en formato .deb que es la que yo he usado.

Ejecutamos el programa UBports-installer, y conectamos el teléfono encendido al ordenador usando un cable usb.






Ahora seleccionamos nuestro teléfono pulsando en: Select device manually



Seleccionamos nuestro teléfono: BQ Aquaris E4.5 y pulsamos en Select





Nos dice que si nuestro teléfono esta usando android es necesario desbloquear el OEM, antes de continuar. Pero nuestro teléfono ya tiene Ubuntu Touch versión Canonical, y el OEM no esta bloqueado, por lo tanto podemos pulsar en OK.



Ahora tendríamos que seleccionar el sistema operativo, pero en el momento de escribir este manual solo hay uno, y ya esta seleccionado: Ubuntu Touch, pulsamos en Install para continuar.



Ahora toca seleccionar que canal vamos a usar en nuestro teléfono, para un usuario normal, seleccionamos el canal: Estable, que en el momento de escribir este manual es: 16.04/stable. Y como acabamos de instalar Ubuntu Touch versión Canonical, lo mejor es seleccionar las opciones: Wipe Userdata y Bootstrap y pulsamos en Next



Vemos como el UBports-installer comienza a flashear el teléfono. Y Observamos todos los pasos que esta realizando el instalador/actualizador























Podemos observar como el instalador a reiniciado el teléfono con la nueva y actualizada Ubuntu Touch versión UBports.

Ahora el instalador nos pide que le indiquemos, el resultado de la instalación, en mi caso personal ha ido de maravilla, y pulso en PASS



Nos muestra los datos de nuestro teléfono y el instalador que hemos usado, el sistema operativo que hemos usado con el UBports-installer.

Como todo es correcto. pulsamos en OK



Por fin tenemos nuestro teléfono BQ Aquiaris E4.5 con Ubuntu Touch con la ultima versión de UBports


INFORMACIÓN DE LOS BOTONES:

- Los 3 botones táctiles inferiores del móvil (llamados botones capacitivos) que se usan en Android, dejarán de funcionar, ya que Ubuntu Touch no usa dichos botones.