Bpytop – Un top fácil de entender ¡y lindo!

Todos seguramente conocen la herramienta de monitoreo top, la cual es una gran ayuda cuando tenemos que depurar un problema con algún proceso que consume demasiados recurso en gnu/linux y su hermano mayor htop, el cual mejora bastante la interfaz del primero, haciéndolo más configurable y entendible, sobre todo para los administradores de sistemas que recién comienzan.

Pero encontré un monitor muchísimo más sencillo, configurable y además lindo de ver: bpytop. Su interfaz sencilla es lo que más me impresionó, pero además cuenta con varias configuraciones que ayudan a ver los procesos y uso de recursos “a primera vista” sin tener que estar recordando mucha cantidad de acrónimos como con top.

Captura de pantalla de bpytop

Lo malo de esta herramienta es que no se encuentra en el gestor de paquetes del asesinado por RedHat CentOS 7. De todas forma su instalación es muy sencilla, solo hay que ejecutar los siguientes comandos:

sudo yum install python3-pip -y && sudo pip3 install pip --upgrade pip && sudo pip3 install bpytop

Luego solo hay que ejecutarlo usando el comando, obviamente, bpytop

 

F*ck nvidia & F*ck manjaro!

Linux Torvals coursing nVidia

Tal como dijo el Jefe.

En un anuncio oficial de manjaro linux hace unos días, se hizo saber a todos los indeseables que utilizamos una tarjeta de video nVidia vieja como la mía, que nos íbamos a joder porque manjaro no solo no iba a proporcionar los controladores para los kernels mayores al 5.7 ¡sino que los iba a retirar de los repositorios!

Estaba posponiendo la solución para esto lo más posible, no actualizando el kernel (estaba usando el 5.7) pero también, por alguna razón que desconozco, ya éste no estaba soportado y el último habilitado con drivers para mi vieja placa era el 5.4… pero bueno, esto es otro tema. La cosa es que tuve que realizar la instalación manual, cuando para probar, desinstalé los controladores para los kernels anteriores.

Si bien la solución está clara en el anuncio del foro de manjaro, uno siempre busca una forma más sencilla para resolverlo que estar descargando las fuentes directo de los repositorios e instalando todo de forma manual. Pero lamentablemente, no le encontré otra vuelta. La cosa es sencilla y paso a transcribir la solución de manjaro:

sudo pacman -S git base-devel
sudo pacman -S $(mhwd-kernel -li | grep '*' | cut -d ' ' -f5 | awk '{print $0,"-headers"}' | sed s'/ //'g)
git clone https://gitlab.manjaro.org/packages/extra/nvidia-340xx-utils.git
git clone https://gitlab.manjaro.org/packages/multilib/lib32-nvidia-340xx-utils.git
git clone https://github.com/philmmanjaro/nvidia-340xx-dkms.git
cd nvidia-340xx-utils && makepkg -si
cd ../lib32-nvidia-340xx-utils && makepkg -si
cd ../nvidia-340xx-dkms && makepkg -si

Hago un par de puntualizaciones a los comandos anteriores, para aquellos que como yo, se quedaron sin escritorio y solo tienen un gran monitor negro con letras grandes y pixeladas:

  • El paquete base-devel lo vas a tener instalado, seguramente, porque lo has usado al descargar desde AUR con yay.
  • La segunda línea lo que hace es extraer el nombre de los headers del kernel, por ejemplo
    linux510-headers, si ya sabés para qué versión del kernel vas a instalar el driver, no te gastes en copiar a mano la línea y solo hacé sudo pacman -S linux510-headers
  • El resto de las líneas no te las puedo resumir. Lamento.

Después de esto, hacemos un hermoso <reboot y tendremos manjaro nuevamente con entorno gráfico.

Cambiar nombre de archivos recursivamente

Aunque es una tarea sencilla y hay múltiples métodos que se pueden usar, siempre que necesito renombrar de una gran cantidad de archivos tengo que recurrir a San Google para hacerlo. Por esto prefiero dejar este artículo como recordatorio para mi y para algún otro despistado como yo.

En general me pasa con archivos de imagen, como jpg. Las cámaras, celulares y otros generadores de imágenes se empeñan en utilizar mayúsculas para las extensiones de los archivos de fotos y, aunque debe ser un TOC ¡me molesta! Por eso, para hacer cambiar recursivamente todas las extensiones de .JPG a .jpg podemos usar:

for file in *.JPG; do mv "${file}" "${file/.JPG/.jpg}"; done

Del mismo modo, podemos cambiar una parte del nombre que queramos, por ejemplo si hubiésemos hecho una conversión de extensión bmp a jpg con la utilidad convertde ImageMagick con el comando:

find . -name "*.bmp" -type f -exec convert '{}' '{}'.jpg \;

nos habrán quedado archivos con nombres que incluyen ambas extensiones, algo como imagen.bmp.jpg. Para eliminar la cadena .bmp del nombre de todos los archivos afectados podemos ejecutar:

for file in *; do mv "${file}" "${file/.bmp/}"; done

 

Agregar un ecualizador gráfico de sonido en Manjaro

Aunque es algo muy común y que debería incluirse de forma predeterminad

 

a en la instalación de Manjaro Linux, el ecualizador gráfico es un paquete de software que muchas veces da problemas de configuración si no lo instalamos correctamente.

Me ha pasado personalmente de experimentar problemas de sonido como ruidos, dificultad para controlar el volumen o directamente quedarme sin sonido en la computadora al intentar instalar un ecualizador para mejorar el sonido.

 

PulseAudio Equalizer

 

De todas maneras la solución es súmamente sencilla, basta con instalar un paquete que se configura automáticamente y listo, podemos empezar a ajustar las 15 bandas para ecualizar nuestra música preferida.

El paquete en cuestión es el Pulse Audio Equalizer y se instala utilizando pacman o yay de la siguiente manera:

 

yay -S pulseaudio-equalizer-ladspa

Permitir comunicación entre una máquina virtual y el hipervisor con KVM

Entre las distintas opciones de virtualización para un entorno de desarrollo, como Docker, VirtualBox, etc. podemos elegir KVM. Esta excelente herramienta nos permite tener servidores completos corriendo como máquina virtual, emulando completamente un servidor de producción, lo que permite tener un escenario casi idéntico al que tendremos en el momento del deployment.

El problema es que dependiendo la configuración, es posible que no tengamos acceso de red a las VMs (máquinas virtuales) desde el hipervisor, lo que hace las máquinas virtuales totalmente inútiles como entorno de desarrollo . Esto me ha implicado horas de googleo, lectura de documentación y foros y experimentación infructuosa hasta que dí con la solución.

Lo primero que hay que hacer es crear una red aislada con libvirt, a través de un archivo XML con la configuración de la red, como en el siguiente ejemplo.

1.- Crear un archivo /tmp/isolated.xml con el contenido:

<network>
  <name>isolated</name>
  <ip address='192.168.254.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.254.2' end='192.168.254.254' />
    </dhcp>
  </ip>
</network>

Si ya estás usando la red 192.168.254.0/24, podés usar otra.

2.- Definir la red con el comando virsh net-define /tmp/isolated.xml.

3.- Establecer el inicio automático de la red en virsh usando virsh net-autostart isolated.

4.- Iniciar la red virsh net-start isolated.

5.- Editar la configuración de cada VM que use macvtap para su conexión de red y agregar una nueva <interface> en la sección <devices>, parecido a lo siguiente:

<interface type='network'>
  <source network='isolated'/>
  <model type='virtio'/>
</interface>

6.- Apagar y prender las VMs.

Ahora ya se puede “ver” la VM desde el hipervisor sin problemas.

vm-hypervisor-screenshot

 

Fuente: RedHat documentation