Como o Mac reuni informações da impressora (principalmente driver) após uma impressora é selecionada na lista de impressoras para adicionar? -- acbook-pro campo com printing campo com airprint campo com cups camp apple Relacionado O problema

How does Mac gather printer information (mainly driver) after a printer is selected in the list of printers to add?


2
vote

problema

português

Quando queremos adicionar uma impressora ao Mac, vamos para "impressoras e scanners" nas preferências do sistema. Lá clicamos no botão "+" e clique em "Adicionar impressora ou scanner". Em novo diálogo com título "Adicionar", vemos uma lista de impressoras.

Quando selecionamos uma das impressoras: Printer-X, vemos status: "Coleta informações da impressora ...". E seu driver é selecionado automaticamente. Como o Mac coleta informações da impressora? Qual é esse processo inteiro de adicionar uma impressora em detalhes? Existe algum tutorial / artigo que possa ajudar? Eu tentei a pesquisa do Google, não consegui encontrar algo de bom interesse.

Eu quero depurar uma situação em que Mac está escolhendo o driver para uma impressora em algum momento e às vezes não (para a mesma impressora). O driver esperado para ver há airprint. A impressora está sendo adicionada a partir de um servidor de impressão. Então, quer dar uma olhada no que está acontecendo no fundo.

english

When we want to add a printer to mac, we go to "Printers and Scanners" in system preferences. There we click on "+" button and click on "Add Printer or Scanner". In new dialog with title "Add", we see a list of printers.

When we select one of the printer: printer-x, we see status: "Gathering printer information...". And its driver is automatically selected. How is Mac gathering printer information? What is this whole process of adding a printer in details? Is there any tutorial/article that can help? I have tried google search, could not find something of good interest yet.

I want to debug a situation where Mac is choosing driver for a printer sometime and sometimes it does not (for the same printer). Expected driver to see there is AirPrint. The printer is being added from a print server. So, want to have a look at what is happening in the background.

           

Lista de respostas

2
 
vote

Após olhar cuidadosamente para o Dnscache e Rede:

Mais detalhes sobre o dns-sd.org No entanto, em suma, para tudo funcionar corretamente, seguindo quatro registros DNS para cada impressora no lado do cliente em caso de AirPrint / Secure AirPrint:

  • registro ptr do tipo _Universal._sub._ipp / ipps._tcp (permite chamá-lo universal): Necessário somente se a impressora for compatível com airprint (consulte DNS-SD.org)

  • registro ptr do tipo _ipp / ipps._tcp (permite chamar IPPs)

  • srv registro

  • txt recibo

registro SRV informa sobre os dados relacionados ao serviço (servidor / porta etc.) e o registro TXT informa sobre os recursos da impressora.

No Mac, "IPPs" e "Universal" registros são consultados por diferentes processos (PrintTool e Pkbrowserservic, respectivamente). Da observação: consultas de registros "universais" por PkbrowserServic são mais frequentes do que as consultas de registros "IPPs" por PrintTool. Então, em um cenário: tem registros universais, mas não IPPs, não identificará o motorista.

Para responder a pergunta original: Quando uma impressora é selecionada, ele consulta para registro SRV e TXT (com base em registros universais ou IPPs que já estão no cache, é assim que vemos a impressora na lista). Se a impressora / servidor de impressão não estiver disponível ou se o registro IPPS estiver faltando, o Mac não poderá fazer 'Auto Select' para o driver.

Esse problema pode ser corrigido em multicast por auto-consulta tanto universal quanto IPPs antes de TTL dos registros expiram para que os cache de todos os clientes MAC sejam atualizados.

No caso de Unicast, o Mac tem alta TTL de registros universais / ipps, portanto, pode levar algum tempo para o registro do IPPs ser atualizado no cache em uma nova rede, mas em poucos minutos (máximo 10 minutos da observação), Tem IPPs e Universal e o problema não existe mais. Outra maneira de lidar com isso rapidamente é limpar o cache (Sierra: killall -hup mdnsresponder)

 

After carefully looking at the DNSCache and Network:

More details on dns-sd.org however in short, for everything to work correctly, following four DNS Records for each printer are needed on client side in case of airprint/secure airprint:

  • PTR record of type _universal._sub._ipp/ipps._tcp (lets call it universal): needed only if printer is airprint compatible (see dns-sd.org)

  • PTR record of type _ipp/ipps._tcp (lets call it ipps)

  • SRV record

  • TXT record

SRV record tells about the service related data (server/port etc.) and TXT record tells about the printer capabilities.

On Mac, "ipps" and "universal" records are queried by different processes (printtool and PKBrowserServic respectively). From observation: Queries of "universal" records by PKBrowserServic are more frequent than queries of "ipps" records by printtool. So, in a scenario: it has universal records but not ipps, it won't identify the driver.

To answer the original question: when a printer is selected, it queries for SRV and TXT record (based on universal or ipps records which are in cache already, thats how we see the printer in the list). If printer/print server is not available or if ipps record is missing, mac won't be able to do 'Auto Select' for the driver.

This problem can be fixed in multicast by self-querying both universal and ipps before TTL of the records expire so that the caches of all mac clients are updated.

In case of unicast, mac has high TTL of universal/ipps records, so it might take some time for ipps record to be updated in the cache in a new network but in few minutes (max 10 mins from observation), it has both ipps and universal and the issue does not exist anymore. Another way to handle it quickly is to clear cache (sierra: killall -HUP mDNSResponder)

 
 
0
 
vote

Se a impressora suportar IPP ou IPPs (o protocolo de impressão da Internet ), a MacOS envia uma consulta IPP para o dispositivo de impressão para solicitar todos os recursos que ele suporta.

Com base na resposta do dispositivo, ele configura a fila de impressão (gerando automaticamente um arquivo PPD, Impressora PostScript Descrição ) para que as opções de trabalho disponíveis estejam listadas na interface do usuário da impressão diálogo.

Você pode simular essa consulta e consulte as respectivas respostas por impressoras com a ajuda de dois programas de linha de comando que você pode iniciar no terminal: abcdefghijklmnabcdefgijklmn0 < / forte> e ipptool .

Primeiro, execute ippfind

  ippfind [ENTER]    

Isso retornará uma lista de todos os dispositivos de impressão compatíveis com IPP (ou copos compartilhados de impressão) na LAN e WLAN você está conectado. A lista incluirá o dispositivo IPP O que pode ser usado para resolver o dispositivo de impressão.

segundo, executar ipptool

Agora você pode usar o URI do dispositivo IPP encontrado na etapa anterior para enviar um get-printer-atributos consulta para o dispositivo de impressão ou a fila de impressão:

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

Agora você pode ver a resposta para a consulta em seu terminal.

 

If the printer supports IPP or IPPS (the Internet Printing Protocol), macOS sends an IPP query to the print device to ask for all the features it supports.

Based on the device's response, it sets up the print queue (by auto-generating a PPD file, PostScript Printer Description) so that the available job options are listed in the user interface of the print dialog.

You can simulate this query and see the respective responses by printers with the help of two command line programs which you can start from the terminal: ippfind and ipptool.

First, run ippfind

ippfind [ENTER] 

This will return a list of all IPP-capable print devices (or shared CUPS print queues) in the LAN and WLAN you are connected to. The list will include the IPP device URI which can be used to address the print device.

Second, run ipptool

Now you can use the IPP device URI found in the previous step to send a Get-Printer-Attributes query to the print device or print queue:

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

You can now see the response for the query in your terminal.

 
 

Perguntas relacionadas

2  Como o Mac reuni informações da impressora (principalmente driver) após uma impressora é selecionada na lista de impressoras para adicionar?  ( How does mac gather printer information mainly driver after a printer is selec ) 
Quando queremos adicionar uma impressora ao Mac, vamos para "impressoras e scanners" nas preferências do sistema. Lá clicamos no botão "+" e clique em "Adicio...

0  Como modificar cupsd.conf em 50+ máquinas  ( How to modify cupsd conf on 50 machines ) 
Eu preciso modificar o arquivo cupsd.conf (remoção de PAUSE-PRINTER / RESUME-PRINTER ) em 50+ máquinas para permitir que contas não administrativas retom...

1  Crie a fila de impressão sem motorista no Mac OS 10.12+  ( Create driverless print queue in mac os 10 12 ) 
Eu estou tentando configurar impressoras via script bash no Mac OS, usando lpadmin com a opção -m em todos os lugares para deixar o servidor de xícaras lidar ...

4  Como transformar uma pasta em uma fila de impressão?  ( How turn a folder into a print queue ) 
On MacOS, você pode soltar um PDF diretamente para a janela da fila de impressão de uma impressora e será enviado para imprimir imediatamente (com as configur...

1  Imprimir data e hora atual em cada página  ( Printing current date and time on each page ) 
Eu estou freqüentemente imprimindo várias versões de um documento (por exemplo, um papel em andamento). Para acompanhar as impressões, gostaria de imprimir a ...

4  O que é xícaras na porta 631?  ( What is cups on port 631 ) 
Recentemente, corriu uma varredura NMAP das portas abertas do MAC e descoberta a porta 631 (IPP) estava aberta. Intrigado, vi foi para a interface web de copo...

3  Como posso configurar DNS para Bonjour e Airprint para anunciar impressoras em sub-redes  ( How can i set up dns for bonjour and airprint to advertise printers across subne ) 
Várias impressoras não ficam conectadas a clientes - apesar de tudo tem endereços IP estáticos - e eles não são pesquisáveis ​​em redes, isto não aparecem com...

4  SandboxD para copos backends no Mac OS X Yosemite  ( Sandboxd for cups backends in mac os x yosemite ) 
Eu estou usando um backend de copos personalizados para imprimir no Mac OS X. O backend funciona enviando os dados de impressão para outra máquina (usando ssh...

3  Como alguém altera opções padrão em copos  ( How does one change default options in cups ) 
Eu quero alterar as configurações de impressão padrão em copos. Eu estou imprimindo a massa PDF através do Finder e não usará minha predefinição no menu Opç...

3  Como posso tornar o padrão de diálogo de impressão do sistema operacional para uma predefinição específica?  ( How can i make the os print dialog default to a particular preset ) 
Basta colocar, isto é o que eu quero: Eu quero fazer uma predefinição de impressora exclusiva que já foi feita e disponibilizar o padrão OS a qualquer momento...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.