//barrabarra

JAVIER ROMERO
Programación web y escritorio
 

Our blog, keeping you up-to-date on our latest news.

 

Instalar impresora Brother MFC-J4410DW en Archlinux

julio 3, 2013 at 6:49 pm | Blog, Sistemas | 2 comments

 

ACTUALIZADO (18/04/2016): Añadidas instrucciones para que CUPS pueda comunicarse con la impresora

Partimos de que la impresora Brother MFC-J4410DW ya está conectada por wifi al router. El manual lo explica con suficiente claridad.

Paquetes necesarios
Instala rpmextract, ghostscript, gsfonts, foomatic-filters y a2ps desde los repositorios. Si usas x86_64 instala también lib32-libcups.

Paquetes opcionales
Si usas KDE, instala kdeutils-print-manager.

Drivers
Descarga desde la web oficial de Brother los drivers para linux en paquetes RPM
Descarga tanto LPR driver como Cupswrapper driver.

Preparativos
Por el formato del sistema de archivos de Arch hay que hacer algunas modificaciones.
Extraemos los archivos desde el paquete RPM con:
$ rpmextract.sh mfcj4410dwlpr-3.0.0-1.i386.rpm
$ rpmextract.sh mfcj4410dwcupswrapper-3.0.0-1.i386.rpm

Nos creará dos carpetas, opt y usr
Modificaremos un script de la carpeta opt para sustituir la ruta “/etc/init.d” por “/etc/rc.d” con
$ sed -i 's|/etc/init.d|/etc/rc.d|' opt/brother/Printers/mfcj4410dw/cupswrapper/cupswrappermfcj4410dw

Instalación de los drivers
Simplemente copiamos los contenidos de las carpetas a su situación final como superusuarios:
# cp -r opt/* /opt
# cp -r usr/* /usr

Y por fin instalamos el wraper de cups (como root una vez más)
# /opt/brother/Printers/mfcj4410dw/cupswrapper/cupswrappermfcj4410dw
La salida de ese comando será algo similar a:
lpadmin -p MFCJ4410DW -E -v usb:/dev/usb/lp0 -P /usr/share/cups/model/Brother/brother_mfcj4410dw_printer_en.ppd

Añadir la impresora al sistema.
Y ahora para KDE, lanzamos las Preferencias del Sistema y buscamos el apartado de Impresoras, al entrar introducimos nuestra clave de root y elegimos añadir una impresora.
mfc-j4410dw-0

En el diálogo que se abre introducimos nuevamente nuestra clave de root, esperamos unos segundos y cuando detecte las impresoras conectadas a la red Brother elegimos la primera de ellas, pulsamos continuar.

mfc-j4410dw-1
mfc-j4410dw-2

En la siguiente pantalla veremos que nos pide qué driver usar, en la izquierda pinchamos sobre el fabricante Brother y en la derecha sobre el primer driver CUPS

mfc-j4410dw-3

A continuación nos pide que le demos un nombre, descripción y ubicación a la impresora. Una vez hecho, pulsamos en finalizar y ya estará lista para usarse.

mfc-j4410dw-4

mfc-j4410dw-5

ACTUALIZADO:

Es posible que hayas seguido todos estos pasos, la herramienta encuentre la impresora pero aún así no seas capaz de imprimir nada. Puede que el error venga porque CUPS intenta acceder a la impresora mediante el nombre que resuelve Avahi pero no es capaz. Para asegurarnos de que esto es lo que pasa podemos ejecutar:

avahi-browse -arl

que nos dará un listado de todos los dispositivos descubiertos, su IP y su nombre asignado. La impresora debe ser uno de los resultados con algo como:


...
= enp2s0 IPv4 Brother MFC-J4410DW PDL Printer local
hostname = [BRWF4B7E2071BCA.local]
address = [192.168.1.135]
port = [9100]
...

donde vemos la IP asignada en la red local (192.168.1.135) y el nombre (BRWF4B7E2071BCA.local). Lo que vamos a hacer es un ping a este último.

ping BRWF4B7E2071BCA.local

Si el ping funciona correctamente, la comunicación con la impresora es correcta y tu problema para imprimir es otro. Pero si no funciona, lo que tienes que hacer es instalar el paquete:

# pacman -S libnss-mdns

y editar el fichero etc/nsswitch.conf con:

hosts: files wins mdns4_minimal dns [NOTFOUND=return] mdns4[1]

Tras eso prueba de nuevo a ejecutar el ping y deberías poder imprimir finalmente.

[1] Info sacada de http://askubuntu.com/questions/460371/trouble-using-ssh-and-avahi

 

Ejecutar Selenium WebDriver con Firefox en un servidor remoto sin interfaz gráfica

abril 12, 2013 at 10:05 am | Blog, Sistemas | 1 comment

 

Si queremos aprovechar nuestro hosting en una máquina remota para ejecutar pruebas mediante Selenium WebDriver nos encontraremos con el inconveniente de que estas máquinas por lo general carecen de un entorno gráfico, necesario para que se lance el navegador y se puedan realizar los tests. Esto puede resolverse con la ayuda de Xvfb, un servidor gráfico “de pega” que nos va a permitir lanzar nuestro navegador sin necesidad de ejecutar todo el entorno X.

Para ello, instalaremos los paquetes necesarios, en Ubuntu esto será con:

apt-get install xvfb firefox firefox-locale-es

Cuando instalemos los paquetes y sus correspondientes dependencias podemos ejecutar:

startx -- `which Xvfb` :1 -screen 0 1024x768x24 &

lo que nos lanzará un servidor gráfico utilizando Xvfb y lo dejara ejecutándose de fondo. Para continuar sólo tenemos que lanzar una instancia de Firefox y comprobar que efectivamente se ejecuta. El único detalle a tener en cuenta es que hay que indicarle qué display utilizar, lo haremos de la siguiente forma:

DISPLAY=:1 firefox &

Si quieres asegurarte de que se está ejecutando y tienes instalado el paquete imagemagick puedes hacer una captura de pantalla :D, lo haríamos con:

DISPLAY=:1 import -window root capturafirefox.png

Para evitar tener que ejecutar estas líneas cada vez que el servidor arranque y se detenga, y por comodidad para gestionarlo, podemos crear un script de Upstart, primero con un archivo de configuración en /etc/init/xvfb.conf con el contenido:


description "XVFB fake x server instance"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
exec startx -- `which Xvfb` :1 -screen 0 1024x768x24

con lo que podremos lanzar el servicio con service xvfb start, aunque para que se lance automáticamente al inicio del sistema haremos:

ln -s /lib/init/upstart-job /etc/init.d/xvfb

Una última cosa, igual que al lanzar nuestra instancia de Firefox había que indicarle el display a utilizar, cuando se vaya a lanzar algún comando que tenga que hacer uso del servidor gráfico habrá que indicarlo, podemos poner la variable en el entorno mediante nuestro archivo de configuración del intérprete de órdenes, o simplemente poner delante de cada tarea de cron, script y similar la línea DISPLAY=:1 antes de la orden.

 

Categorias:

Archivo: