Compilar waifu2x en Debian Stretch

[Advertencia:] Las instrucciones en este post no funcionan para tarjetas de video NVIDIA. Si tienes una tarjeta de video AMD, sigue leyendo.


Si la versión web de waifu2x no es suficiente para ti, puedes intentar compilar tu propia versión. En este post intentaré compilar uno de los forks de waifu2x para tarjetas de video AMD.

El repositorio oficial de waifu2x incluye código que está diseñado para funcionar usando la tecnología CUDA de NVIDIA, lo cual está indicado como un requisito, por lo que no puedo siquiera intentar compilar el código ya que tengo una vieja tarjeta de video AMD. Así que en lugar de usar el código original opté por uno de los forks que ofrecen soporte para tarjetas AMD, en particular el fork waifu2x-converter-cpp. Si eres usuario de Windows puedes bajar ejecutables precompilados desde la sección releases o puedes bajar waifu2x-caffe. En Linux, sin embargo, tenemos que compilar manualmente el código.

Read More

Advertisements

Ripear un DVD con FFmpeg usando named pipes

En el post anterior escribí las instrucciones para ripear un DVD usando FFmpeg y este es el ejemplo perfecto para hablar sobre las named pipes de Linux. Las named pipes nos permiten enviar datos de una aplicación a otra. Muy probablemente has visto antes el carácter de pipe en Linux (‘|’) que cumple el mimso objetivo pero que en algunos casos puede ser difícil de usar si una de las aplicaciones no soporta entrada desde stdin, por ejemplo. Las named pipes pueden facilitar enviar datos de una aplicación a otra gracias a que las puedes usar simplemente como un archivo más, es decir, envías la salida de un programa a un archivo de tipo pipe y después usas ese archivo como la entrada para el otro programa.

Read More

Ripear un DVD con FFmpeg

Cuando se trata de ripear un DVD con Linux, la forma más sencilla es tal vez usando Handbrake, que se puede instalar desde el gestor de paquetes. Entonces, ¿por qué querrías ripear un DVD usando FFmpeg? Bueno, en realidad tal vez no haya ninguna razón; si Handbrake funciona bien, ¡úsalo!. En este caso en particular, encontré una imagen de DVD que tenía problemas para ripear con Handbrake -sigue leyendo para descubrir cuál era el problema- así que decidí hacerlo a la antigua y usar FFmpeg.

Read More

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.

Reproductor de audio de videojuegos M1 en Linux

El reproductor de audio M1 es un reproductor que permite escuchar el audio de videojuegos arcade o maquinitas directamente de los ROMs del juego. En versiones recientes de Linux, el dispositivo de audio OSS usado de forma predeterminada por M1 ya no es parte de muchas distros y usar la opción alternativa ALSA genera, al menos en mi PC, salida con ruido 😦 pero no todo está perdido, aunque OSS ya no forma parte de muchas distros recientes, existe un módulo para emular OSS y así poder correr programas que lo usaban. Para ejecutar M1 en modo ALSA puedes usar el siguiente comando:

monstruosoft@monstruosoft-PC:~/software/M1-0.7.8a6$ ./m1-x64 -s1 samsho3

Puedes reemplazar samsho3 con tu juego favorito 😛 . Si el comando anterior funciona entonces ¡felicidades!. Si, como en mi PC, el comando anterior genera salida con ruido entonces puedes forzar la emulación de OSS de la siguiente manera:

monstruosoft@monstruosoft-PC:~/software/M1-0.7.8a6$ sudo modprobe snd-pcm-oss 
[sudo] password for monstruosoft: 
monstruosoft@monstruosoft-PC:~/software/M1-0.7.8a6$ ./m1-x64 samsho3

Ahora M1 funcionará sin problemas y podrás escuchar la música de tus juegos favoritos 😀 . Yo puedo escuchar el tema de Nakoruru de Samurai Shodown III por horas ininterrumpidas 😛 .

En corto No. 6 – Habilitar notificaciones de escritorio en Debian Stretch

En un post reciente mencioné que tras actualizar a Debian Stretch, las notificaciones de escritorio desaparecieron. He encontrado una forma temporal de solucionarlo ejecutando el comando notification-daemon de la siguiente manera:

monstruosoft@monstruosoft-PC:~$ notify-send "hola"
monstruosoft@monstruosoft-PC:~$ /usr/lib/notification-daemon/notification-daemon &
[1] 10844
monstruosoft@monstruosoft-PC:~$ notify-send "hola"

En el ejemplo anterior, la primer llamada al comando notify-send no produce ninguna notificación porque notification-daemon no se ha iniciado. Después de iniciar notification-daemon, las notificaciones de escritorio deberían funcionar, por lo menos hasta que reinicies la PC.

Compilar GIMP 2.9 en Debian Stretch 9.1

Al actualizar mi sistema a Debian Stretch era obvio que escribiría este post para compilar GIMP 😛 . Ya lo hicimos antes así que no repetiré todo el proceso ya que podemos usar el post anterior para compilar GIMP para la nueva versión de Debian, lo único que cambia es que el repositorio estable debería contener versiones más recientes de las librerías necesarias de forma que no tengamos que compilarlas manualmente como antes y eso es lo que vamos a averiguar:

Read More