Instalando OKI MC351 en Ubuntu 10.04 Lucid
Me ha dado más guerra de lo que esperaba. En mi caso está conectada a la intranet con una ip fija (192.168.33.55.18) asignada por DHCP.
Suponiendo que ya tenemos CUPS instalado y funcionando, abrir en el navegador http://localhost:631
Añadir la impresora, y como URI poner socket://IP-impresora:9100 (IP-Impresora la que tengamos, claro, por ej: 192.168.33.55.18).
Seleccionar el archivo PPD del DVD de la impresora, en mi caso: /media/cdrom/Drivers/ESP/PS/amd64/OKM351BA.PPD
Y claro, no funciona. Error porque el socket no es un URI válido.
$ sudo lpinfo -v
Y no me sale el interfaz socket. ¿?
Solución: crear un enlace al programa/librería socket de cups, que no viene activado por defecto. Y no acabo de entender por qué.
$sudo ln -s /usr/lib/cups/backend-available/socket /usr/lib/cups/backend/socket
Y reiniciar cups:
$sudo service cups restart
Con esa modificación, ya puedo crear la impresora. Pero no imprime. Revisando los logs de cups, veo
Reviso, y tiene permisos de ejecución.
Investigo un poco:
$ sudo dmesg -c
$ sudo aa-complain cups
Vuelvo a imprimir, y claro, el mismo error, pero ahora...
$dmesg
Operation="exec" pid=5529 parent=5519 profile="/usr/sbin/cupsd" requested_mask="::x" denied_mask="::x" fsuid=7 ouid=0 name="/usr/lib/cups/backend-available/socket"
Resulta que App Armor no le deja ejecutarse al script (el backend de cups no está habilitado en App Armor).
Solución 1: en vez de hacer un enlace simbólico para el interfaz socket, hacer un copy:
$ cp /usr/lib/cups/backend-available/socket /usr/lib/cups/backend/socket
Debería funcionar sin más.
Solución 2 (la que he utilizado): editar el perfil de cups en apparmor:
$gksu gedit /etc/apparmor.d/usr.sbin.cupsd
En la línea 84, aprox, vemos:
/usr/lib/cups/backend/socket ixr,
/usr/lib/cups/backend/usb ixr,
Lo cambiamos, añadiendo una línea:
/usr/lib/cups/backend/socket ixr,
/usr/lib/cups/backend-available/socket ixr,
/usr/lib/cups/backend/usb ixr,
Reiniciar app armor y cups (por si acaso):
$sudo service apparmor restart
$sudo service cups restart
Y a imprimir.
Suponiendo que ya tenemos CUPS instalado y funcionando, abrir en el navegador http://localhost:631
Añadir la impresora, y como URI poner socket://IP-impresora:9100 (IP-Impresora la que tengamos, claro, por ej: 192.168.33.55.18).
Seleccionar el archivo PPD del DVD de la impresora, en mi caso: /media/cdrom/Drivers/ESP/PS/amd64/OKM351BA.PPD
Y claro, no funciona. Error porque el socket no es un URI válido.
$ sudo lpinfo -v
Y no me sale el interfaz socket. ¿?
Solución: crear un enlace al programa/librería socket de cups, que no viene activado por defecto. Y no acabo de entender por qué.
$sudo ln -s /usr/lib/cups/backend-available/socket /usr/lib/cups/backend/socket
Y reiniciar cups:
$sudo service cups restart
Con esa modificación, ya puedo crear la impresora. Pero no imprime. Revisando los logs de cups, veo
/usr/lib/cups/backend/socket: Permission denied???
Reviso, y tiene permisos de ejecución.
Investigo un poco:
$ sudo dmesg -c
$ sudo aa-complain cups
Vuelvo a imprimir, y claro, el mismo error, pero ahora...
$dmesg
Operation="exec" pid=5529 parent=5519 profile="/usr/sbin/cupsd" requested_mask="::x" denied_mask="::x" fsuid=7 ouid=0 name="/usr/lib/cups/backend-available/socket"
Resulta que App Armor no le deja ejecutarse al script (el backend de cups no está habilitado en App Armor).
Solución 1: en vez de hacer un enlace simbólico para el interfaz socket, hacer un copy:
$ cp /usr/lib/cups/backend-available/socket /usr/lib/cups/backend/socket
Debería funcionar sin más.
Solución 2 (la que he utilizado): editar el perfil de cups en apparmor:
$gksu gedit /etc/apparmor.d/usr.sbin.cupsd
En la línea 84, aprox, vemos:
/usr/lib/cups/backend/socket ixr,
/usr/lib/cups/backend/usb ixr,
Lo cambiamos, añadiendo una línea:
/usr/lib/cups/backend/socket ixr,
/usr/lib/cups/backend-available/socket ixr,
/usr/lib/cups/backend/usb ixr,
Reiniciar app armor y cups (por si acaso):
$sudo service apparmor restart
$sudo service cups restart
Y a imprimir.