¿Cómo recopila Mac la información de la impresora (principalmente el controlador) después de seleccionar una impresora en la lista de impresoras para agregar?

2

Cuando queremos agregar una impresora a mac, vamos a "Impresoras y escáneres" en las preferencias del sistema. Allí hacemos clic en el botón "+" y en "Agregar impresora o escáner". En el nuevo diálogo con el título "Agregar", vemos una lista de impresoras.

Cuando seleccionamos una de las impresoras: printer-x, vemos el estado: "Recopilando información de la impresora ...". Y su driver se selecciona automáticamente. ¿Cómo está Mac reuniendo información sobre la impresora? ¿Qué es todo este proceso de agregar una impresora en detalles? ¿Hay algún tutorial / artículo que pueda ayudar? He intentado la búsqueda de Google, no he podido encontrar algo de buen interés todavía.

Quiero depurar una situación en la que Mac está eligiendo un controlador para una impresora y, a veces, no (para la misma impresora). Conductor esperado para ver que hay AirPrint. La impresora se está agregando desde un servidor de impresión. Entonces, quiero ver lo que está sucediendo en el fondo.

    
pregunta Kumar Gaurav 11.02.2017 - 08:27

2 respuestas

2

Después de mirar cuidadosamente el DNSCache y la Red:

Más detalles en dns-sd.org, sin embargo, para que todo funcione correctamente, se necesitan cuatro registros DNS para cada impresora en el lado del cliente en caso de huella aérea / huella aérea segura:

  • registro PTR de tipo _universal._sub._ipp / ipps._tcp (llamémoslo universal): solo es necesario si la impresora es compatible con Airprint (consulte dns-sd.org)

  • registro PTR de tipo _ipp / ipps._tcp (llamémoslo ipps)

  • registro SRV

  • registro TXT

El registro SRV informa sobre los datos relacionados con el servicio (servidor / puerto, etc.) y el registro TXT informa sobre las capacidades de la impresora.

En Mac, los registros "ipps" y "universales" se consultan mediante diferentes procesos (printtool y PKBrowserServic, respectivamente). De la observación: las consultas de registros "universales" de PKBrowserServic son más frecuentes que las consultas de registros "ipps" de printtool. Entonces, en un escenario: tiene registros universales pero no ipps, no identificará el controlador.

Para responder a la pregunta original: cuando se selecciona una impresora, solicita el registro SRV y TXT (basado en registros universales o ipps que ya están en caché, así es como vemos la impresora en la lista). Si la impresora / servidor de impresión no está disponible o si falta el registro de ipps, mac no podrá hacer una "Selección automática" para el controlador.

Este problema puede solucionarse en multidifusión mediante una auto consulta tanto universal como ipps antes de que el TTL de los registros caduque para que se actualicen las cachés de todos los clientes mac.

En el caso de unidifusión, mac tiene un alto TTL de registros universales / ipps, por lo que puede llevar algún tiempo actualizar el registro de ipps en la memoria caché en una red nueva, pero en pocos minutos (máximo 10 minutos desde la observación), tiene tanto ipps como universales y el problema ya no existe. Otra forma de manejarlo rápidamente es borrar el caché (sierra: killall -HUP mDNSResponder)

    
respondido por el Kumar Gaurav 11.03.2017 - 05:02
0

Si la impresora admite IPP o IPPS (el Protocolo de impresión de Internet ), macOS envía una consulta de IPP al dispositivo de impresión para solicitar todas las funciones que admite.

Según la respuesta del dispositivo, configura la cola de impresión (mediante la generación automática de un archivo PPD, Descripción de la impresora PostScript ) para que las opciones de trabajo disponibles se enumeren en la interfaz de usuario de la impresión. diálogo.

Puede simular esta consulta y ver las respuestas respectivas de las impresoras con la ayuda de dos programas de línea de comandos que puede iniciar desde el terminal: ippfind y < strong> ipptool .

Primero, ejecuta ippfind

ippfind [ENTER]

Esto devolverá una lista de todos los dispositivos de impresión compatibles con IPP (o colas de impresión CUPS compartidas) en la LAN y WLAN a la que está conectado. La lista incluirá el URI del dispositivo IPP que se puede usar para tratar el dispositivo de impresión.

Segundo, ejecute ipptool

Ahora puede usar el URI del dispositivo IPP que se encuentra en el paso anterior para enviar una consulta Get-Printer-Attributes al dispositivo de impresión o cola de impresión:

ipptool -t -v                 \
    <IPP-DEVICE-URI>          \
    get-printer-attributes.test

Ahora puede ver la respuesta de la consulta en su terminal.

    
respondido por el Kurt Pfeifle 24.12.2018 - 00:15

Lea otras preguntas en las etiquetas