En corto No. 7 – Librería Java RXTX en Debian Stretch

Después de actualizar a Debian Stretch descubrí que mis programas Java que usaban la librería RXTX ya no detectaban ningún puerto serial. En una más de esas ocasiones en que algo que funcionaba antes en Debian deja de funcionar cuando actualizas, tuve problemas tratando de averiguar cual era la causa. La mayor parte del tiempo, es difícil encontrar una solución que no sea críptica o que no requiera conocimientos avanzados de Linux (algo que un usuario normal nunca podría hacer sin ayuda de Internet) o simplemente la solución es difícil de encontrar si no sabes los términos correctos para usar en una búsqueda en Google.

Por suerte, en esta ocasión, la solución fue relativamente simple aunque no resulta obvia al inicio a pesar de que ahora que la encontré veo que tiene sentido. Para que la librería RXTX detecte correctamente los puertos seriales de la PC, el usuario debe tener permisos para acceder a dichos puertos. Para agregar los permisos correspondientes debes usar la ventana de Usuarios y Grupos y habilitar los permisos de usuario para Usar modems. Como alternativa, también puedes agregar al usuario al grupo dialout.

Después de hacer esto, la librería RXTX debería encontrar los puertos sin problemas.

Instalar VirtualBox en Debian Stretch

VirtualBox ya no está disponible en el repositorio estable de Debian Stretch debido a que no cumple con las políticas de Debian, sin embargo aún es posible instalarlo desde el repositorio de backports o bien desde el propio repositorio de virtualbox.org. Para agregar el repositorio de virtualbox.org a la lista de repositorios de Debian debemos agregar la siguiente línea al archivo /etc/apt/sources.list.d o bien agregarlo a la lista de repositorios del gestor de paquetes:

deb http://download.virtualbox.org/virtualbox/debian stretch contrib

A continuación descarga y registra el archivo de firma digital que permitirá que apt-get use el repositorio de virtualbox.org:

monstruosoft@debian:~$ wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
--2017-12-15 19:39:16--  https://www.virtualbox.org/download/oracle_vbox_2016.asc
Resolving www.virtualbox.org (www.virtualbox.org)... 137.254.60.32
Connecting to www.virtualbox.org (www.virtualbox.org)|137.254.60.32|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3157 (3.1K) [text/plain]
Saving to: ‘oracle_vbox_2016.asc’

oracle_vbox_2016.as 100%[===================>]   3.08K  18.6KB/s    in 0.2s    

2017-12-15 19:39:19 (18.6 KB/s) - ‘oracle_vbox_2016.asc’ saved [3157/3157]

monstruosoft@debian:~$ sudo apt-key add oracle_vbox_2016.asc 
[sudo] password for monstruosoft: 
OK

Ahora podemos actualizar la lista de paquetes e instalar VirtualBox desde el gestor de paquetes o usando apt-get como se muestra a continuación:

monstruosoft@debian:~$ sudo apt-get update
Get:1 http://download.virtualbox.org/virtualbox/debian stretch InRelease [7,782 B]
Ign:2 http://ftp.us.debian.org/debian stretch InRelease                        
Hit:3 http://security.debian.org/debian-security stretch/updates InRelease     
Hit:4 http://ftp.us.debian.org/debian stretch-updates InRelease                
Get:5 http://download.virtualbox.org/virtualbox/debian stretch/contrib i386 Packages [1,722 B]
Hit:6 http://ftp.us.debian.org/debian stretch Release                
Get:8 http://download.virtualbox.org/virtualbox/debian stretch/contrib amd64 Packages [1,722 B]
Fetched 11.2 kB in 4s (2,666 B/s)   
Reading package lists... Done
monstruosoft@debian:~$ sudo apt-get install virtualbox-5.2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libqt5opengl5 libqt5printsupport5 linux-compiler-gcc-6-x86
  linux-headers-4.9.0-4-amd64 linux-headers-4.9.0-4-common linux-headers-amd64
  linux-kbuild-4.9
Recommended packages:
  linux-image
The following NEW packages will be installed:
  libqt5opengl5 libqt5printsupport5 linux-compiler-gcc-6-x86
  linux-headers-4.9.0-4-amd64 linux-headers-4.9.0-4-common linux-headers-amd64
  linux-kbuild-4.9 virtualbox-5.2
0 upgraded, 8 newly installed, 0 to remove and 52 not upgraded.
Need to get 79.1 MB of archives.
After this operation, 222 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
...

Montar una carpeta compartida de Windows

Si tienes una carpeta compartida en Windows y la quieres montar en Debian Stretch, la forma más fácil es instalar el paquete cifs-utils desde el gestor de paquetes. cifs-utils contiene las utilidades necesarias para montar facilmente recursos compartidos en una red. Una vez instalado, puedes montar una carpeta compartida de Windows usando el comando mount. Por ejemplo, suponiendo que 10.128.0.69 es la IP de la PC con Windows, y Documentos es el nombre de la carpeta compartida en Windows, podemos montar la carpeta en Linux usando el siguiente comando:

monstruosoft@debian:~$ sudo mount -t cifs "//10.128.0.69/Documentos" ~/destino/ -o username="nombre-de-usuario-de-windows"
Password for nombre-de-usuario-de-windows@//10.128.0.69/Documentos:  ******

En Debian, solamente se puede usar el comando mount como root o sudo, así que es probable que tengas que especificar tu id de usuario si quieres tener permisos de escritura en la carpeta compartida, por ejemplo:

monstruosoft@debian:~$ id
uid=1000(monstruosoft) gid=1000(monstruosoft) groups=1000(monstruosoft),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),114(lpadmin),118(scanner)
monstruosoft@debian:~$ sudo mount -t cifs "//10.128.0.69/Documentos" ~/destino/ -o username="nombre-de-usuario-de-windows",uid=1000,gid=1000
Password for nombre-de-usuario-de-windows@//10.128.0.69/Documentos:  ******

Para desmontar la carpeta compartida simplemente usamos el comando umount:

monstruosoft@debian:~$ sudo umount ~/destino

Instalar Allegro 4 y Allegro 5 en Debian Stretch

En posts anteriores explicaba la forma de compilar Allegro en Debian Jessie debido a que las versiones de Allegro en el repositorio estable de Debian Jessie eran considerablemente viejas pero ese ya no es el caso en Debian Stretch que cuenta en el repositorio estable con la versión 4.4 y 5.2 de Allegro por lo que podemos simplemente instalar los paquetes de Allegro, liballegro4-dev y liballegro5-dev, desde el gestor de paquetes. También puedes instalar desde el gestor de paquetes otros paquetes relacionados con Allegro como por ejemplo libloadpng4-dev, libjpgalleg4-dev, liballeggl4-dev, y los addons de Allegro 5, liballegro-*-dev.

Por supuesto, si quieres usar la versión más reciente de Allegro 5 aún puedes compilarlo manualmente usando las instrucciones publicadas anteriormente en el blog.

Actualización de Firefox OS en Alcatel OneTouch Fire

Este post lleva mucho tiempo en espera. Finalmente decidí tomar el tiempo para escribir los detalles de la actualización de la versión de Firefox OS en mi viejo Alcatel OneTouch Fire. Ya sé que Firefox OS está muerto pero ya tenía este post en el borrador 😛 . Lo primero que haremos será respaldar los datos de fábrica, para esto el primer paso es restaurar el celular a la configuración inicial ya sea desde el menú de recuperación o usando la pantalla de Ajustes > Dispositivo > Información > Más información > Restablecer teléfono.

Read More

Desaventuras en la tierra de Linux, parte 13-2

Al final del post anterior aún quedaban cosas por configurar para volver a tener mi distro de Linux configurada a mi gusto. Por suerte, resultó ser que lo más difícil ya había pasado y el resto fue relativamente fácil de reconfigurar (en gran parte porque ya lo había hecho antes). El hecho de que Linux guarde la configuración de usuario en el directorio de home hace mucho más sencillo restaurar tu configuración. Sólo para completar los detalles del post anterior, aquí postearé algunas de las tareas que tuve que reconfigurar o paquetes que tuve que reinstalar para restaurar mi distro.

Read More