logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

CUPS driverless – jak poprawnie skonfigurować Konica-Minolta bizhub C368 przez socket?

_jta_ 27 Cze 2025 13:26 342 5
REKLAMA
  • #1 21591197
    _jta_
    Specjalista elektronik
    Posty: 48926
    Pomógł: 3202
    Ocena: 4214
    Wprowadzają nową wersję CUPS, w której wiele drukarek ma być definiowanych jako "driverless". Spróbowałem tak zdefiniować drukarkę (Konica-Minolta bizhub C368), podając, że ma wysyłać na socket://drukarka:9100, i wysłałem na nią stronę testową. Na drukarce zobaczyłem, że dostaje jakieś setki stron (przekroczyła 400), więc to skasowałem - najwyraźniej CUPS wysyła do niej coś, czego ona nie rozumie. To, co CUPS wysyła, zaczyna się od napisu UNIRAST, potem bajty 0, 0, 0, 0, 0, 8, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 'a', 0, ...

    Co należy zrobić, żeby drukarka to przyjęła i sensownie wydrukowała?

    Dodano po 10 [godziny] 50 [minuty]:

    https://github.com/OpenPrinting/cups-filters informuje o zmianie architektury CUPS-a:
    Cytat:
    CUPS 3.x has a vastly changed architecture (what we call the New Architecture for printing) being all-IPP, only supporting driverless IPP printers and no PPD files and classic CUPS drivers any more. It will not use external filters any more


    Co do tego formatu, to znalazłem informację o próbie jego rozkodowania:https://github.com/AlanQuatermain/unirast/blob/master/partial_decode.txt
  • REKLAMA
  • #2 21592465
    _jta_
    Specjalista elektronik
    Posty: 48926
    Pomógł: 3202
    Ocena: 4214
    GitHub: superna9999/urftopdf prawie potrafi taki plik przerobić na PDF-a - tyle, że w plikach tworzonych przez CUPS-a w konfiguracji driverless liczba stron (bajty o offsetach 8-11) jest zawsze 0, a ten program używa jej jako liczby przejść pętli przetwarzania stron - czyli nie przetwarza nic. Potrzebna jest poprawka:
    Kod: Diff
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 21592750
    _jta_
    Specjalista elektronik
    Posty: 48926
    Pomógł: 3202
    Ocena: 4214
    ppdcfile(5) napisał:
    ppdcfile - cups ppd compiler source file format (deprecated) (...)
    PPD files are deprecated and will no longer be supported in a future feature release of CUPS.
    Printers that do not support IPP can be supported using applications such as ippeveprinter(1).

    Być może rozwiązaniem będzie użycie tego ippeveprinter - jeszcze tego nie sprawdziłem.
  • REKLAMA
  • #4 21593968
    _jta_
    Specjalista elektronik
    Posty: 48926
    Pomógł: 3202
    Ocena: 4214
    Jakoś mi ten ippeveprinter (wersja CUPS v2.4.7 z Ubuntu 24.04.2 LTS) nie działa.

    1. Podałem -P plik-PPD - nie przyjmuje -2 (duplex), -M (producent drukarki), -m (model drukarki) - może te informacje są w pliku PPD i program nie przyjmuje powtórzeń?

    2. Użyłem opcji: -c skrypt -D katalog -l -p port -P plik-PPD - przy próbie drukowania przez IPP na podany port błąd, nie wywołuje skryptu, nie pisze do katalogu; w logu (stderr ippeveprinter-a) pojawia się informacja:
    Kod: less
    Zaloguj się, aby zobaczyć kod

    i to "Client closed connection" powtarza się co jakiś czas, a "lpstat -t" pokazuje "Unable to get printer status".
    Drukarka jest zdefiniowana na "ipp://host/ipp" i port IPP jest forwardowany do ippeveprinter.
  • REKLAMA
  • #5 21595636
    _jta_
    Specjalista elektronik
    Posty: 48926
    Pomógł: 3202
    Ocena: 4214
    Obowiązkowym argumentem "ippeveprinter" jest "nazwa serwisu" - to jest nazwa wirtualnej drukarki. Wysłanie wydruku na nią zapisuje go w postaci pliku URF (tego zaczynającego się od "UNIRAST"); można użyć programu 'ippevepcl" do konwersji tego pliku na PCL, albo "ippeveps" do konwersji na PostScript. URF to jest grafika rastrowa, i już taka pozostaje - produkowany z URF-a plik PostScript jest dziesiątki razy większy od tego URF-a i długo trwa jego przesyłanie, ale drukuje się poprawnie (też nie całkiem: jak chcę zrobić wydruk A3, to dostaję A4; w definicji drukarki A4 jest domyślny, A3 dopuszczalny, innych nie ma). W przeciwieństwie do PCL-a, który jest niewiele większy od URF-a, ale dla drukarki ma rozmiar papieru Letter, choć oryginał był A4 (a definicja drukarki nie zezwala na Letter). :?: Ktoś ma pomysł, dlaczego tak jest, i jak to zmienić?

    To jeszcze nie jest rozwiązanie: trzeba do tej wirtualnej drukarki wysyłać wydruki zdalnie, i zautomatyzować przesyłanie wynikowego pliku (lepiej, żeby to był PCL) do drukarki.
  • #6 21758603
    _jta_
    Specjalista elektronik
    Posty: 48926
    Pomógł: 3202
    Ocena: 4214
    Działa mi z tym "ippeveprinter", ale kulawo.

    1. Ten serwer dostaje od klienta nazwę komputera, z którym klient się łączy, i sprawdza jej zgodność - nazwa komputera w pliku /etc/hostname powinna być bez domeny (i taką nazwę powinien pokazywać program "hostname"); klient ma używać nazwy z domeną ".local" dodaną do nazwy pokazywanej przez "hostname".

    2. Zdarza się, że "ippeveprinter" przestaje przyjmować zadania drukowania - trzeba go wtedy restartować. Nie udało mi się jeszcze ustalić, jaka jest przyczyna.
REKLAMA