sábado, 3 de noviembre de 2012

Servidor de impresión (especial bluetooth) en Raspberry Pi

Esta entrada nos servirá para instalar un servicio de impresión en la Raspberry Pi, y especialmente, la impresora estará conectada por bluetooth, por lo que nos ahorraremos al máximo el número de cables.

De esta manera, tanto la Raspberry Pi como la impresora puedan estar ubicados en lugares o habitaciones separadas. Como complemento, añadiremos la impresora en modo compartido de red, tal que con cualquier ordenador de la casa podamos enviar la impresión a la Raspberry Pi y esta lo enviará inalámbricamente a la impresora.

Materiales requeridos
Necesitamos un adaptador mini bluetooth usb como podéis observar en la imagen previa conectado a la Raspberry Pi (es el adaptador superior de color negro) y también una impresora con soporte bluetooth, en su defecto, un adaptador bluetooth-printer. El que podéis ver es uno que hace tiempo que tengo que permite conectar tanto impresoras de puerto Centronics o bien USB y convertirla a inalámbrica bluetooth .


Primer paso
Instalar las librerías necesarias, siendo esta la del servicio de impresión (CUPS) y la de acceso inalámbrico (bluetooth).
sudo apt-get install bluetooth cups

Configurar el fichero de CUPS, con lo que haremos lo siguiente:
sudo nano /etc/cups/cupsd.conf

Será necesario comentar las líneas siguientes:
#Listen localhost:631
#Listen /var/run/cups/cups.sock

y añadir las siguientes líneas:
# Permitir acceso remoto
Port 631

También añadiremos el acceso de nuestra red, a fin de poderlo administrar el servicio de impresión remotamente vía web y desactivamos la autenticación.

< location />
    Order allow,deny
    Allow 192.168.1.0/24
< /location>
< location /admin>
    Order allow,deny
    Allow 192.168.1.0/24
< /location>
< location /admin/conf>
    #AuthType Default
    #Require user @SYSTEM
    Order allow,deny
    Allow 192.168.1.0/24
< /location>

Una vez realizado los cambios, los guardamos y reiniciamos el servicio de impresión:
/etc/init.d/cups restart

En este momento ya podemos acceder vía navegador web para configurar y acceder a las opciones que nos ofrece el servicio CUPS, para ellos accederemos por http a la dirección IP/nombre de la Raspberry Pi y al puerto que hemos configurado previamente de escucha (el 631 por defecto)



Configurar bluetooth
Tras haber instalado el paquete bluetooh (o bluez) en la Raspberry Pi, primero detectaremos a nuestro dispositivo mediante la instrucción:
lsusb

o bien mediante la cola de mensajes:
tail -f /var/log/messages

Si se detecta es que tenemos un adaptador bluetooth compatible con la distribución que tenemos instalada (en este caso, raspbian). Podemos proseguir, si no, necesitaremos los drivers o un nuevo adaptador bluetooth compatible.

Veamos la configuración y estado del dispositivo, mediante la instrucción:
hciconfig -a

Podemos observar que se le ha asignado como nombre de dispositivo hci0, por lo que a partir de ahora nos referiremos al dispositivo bluetooth con este alias. Le daremos un nombre mas específico:
sudo hciconfig hci0 name “Rapsberry Pi”

y para que sea visible para el resto del mundo:
sudo hciconfig hci0 piscan


Como por ejemplo, podemos observar en esta captura de un PC con S.O. Windows que dispone de un adaptador bluetooth, detecta todos los dispositivos en su radio de alcance, entre ellos la Raspberry Pi.
Pero lo vamos a ocultar, ya que sólo queremos utilizar el dispositivo bluetooth de la Raspberry Pi para comunicarse con la impresora y nada más, para ello:
sudo hciconfig hci0 noscan

Detección de dispositivos bluetooth
Para detectar los dispositivos bluetooth cercanos realizamos la siguiente instrucción:
hcitool scan


Una vez detectado el dispositivo es cuestión de emparejarlo, para ello:
sudo bluez-simple-agent xx:xx:yy:zz:aa:bb

donde xx:xx:yy:zz:aa:bb es la dirección MAC encontrada previamente en el scan. A continuación nos pide el PIN Code, la contraseña de acceso al dispositivo con el cual nos queremos emparejar, la introducimos, y ya está: Raspberry Pi y impresora bluetooth conectados.

Otras instrucciones
Existen entre otros parámetros de interés los de apagar el bluetooth para cuando no se utilice, mediante la sentencia:
sudo hciconfig hci0 down

y volverlo a activar cuando queramos mediante:
sudo hciconfig hci0 up

Configurar impresora bluetooth en CUPS
Ahora que ya tenemos el servicio de CUPS corriendo y la impresa detectada en bluetooth, ya podemos agregarla al sistema, para ello, accedemos al servicio en la url:
http://ip_maquina:631/admin

Nos pedirá el usuario y contraseña del usuario root o pi, tras esto ya podemos ir a la opción de "Encontrar nuevas impresoras", o bien en "Añadir impresoras".

A partir de ese punto es una navegación guiada de configuración muy sencilla.

Al final, la impresora, tendrá una URL de acceso que tanto nos sirve para configurarla, ver los trabajos pendientes, etc. desde un navegador web, como para conectarla en Windows (p.ej) como puerto de impresión.

Espero que os sea de utilidad este mini-tutorial de como añadir la capacidad de Servidor de impresión (Print Server) inalámbrico a nuestra versátil Raspberry Pi.


3 comentarios:

Anónimo dijo...

Si no funciona el emparejamiento y sale un error de DBUS, probar

sudo bluez-simple-agent hci0 xx:xx:yy:zz:aa:bb

Anónimo dijo...

muy buen tutorial, lo estoy llebando a cabo, solo que la impresora que pondre sera una epson stylus tx130, espero los driver sean genericos y no me cause problemas, muchas gracias. Saludos

Anónimo dijo...

muchas gracias, estoy siguendo el tutorial, solo que yo lo hare por usb con una impresora epson stylus tx130, espero los drivers genericos me permitan trabajar con ella. Muchas gracias, Saludos