USB-принтеры для USB-ядра

Drivers for periphery equipment
  • SoUrcerer wrote:Блин, это просто печально.
    Да ладно, не все же принтеры можно завести. Но, думаю, многие со временем заработают.

    Проверил ML-2015 с PostScript. Пока не работает.

    Дома есть струйник Canon, на днях попробую и его.
    Attachments
    ML-2015-ps.txt (7.73 KiB)
    Downloaded 248 times
  • Проверил usbother_ps.obj.
    BOARDLOG.TXT (11.1 KiB)
    Downloaded 253 times
    Печати не было.
  • Canon ip1700. Postscript. Не напечатало.
    Attachments
    IP1700.TXT (11.13 KiB)
    Downloaded 249 times
    Downloaded 241 times
  • Хм, логи выглядят хорошими. We need to go deeper.
  • Хренова оборжака. После печати из Windows на моём HP1200 точно так же, как и у всех, не получается ничего напечатать. А вот после Linux - пожалуйста!
    Не уверен, что это относится ко всем принтерам, но суть вы поняли, да? Сейчас попробую запуститься в Windows, выключить компьютер "внештатным способом", и потестировать - хотя в теории сброс может отправляться на принтер сразу после печати.
  • Чудесатые чудеса. Мало того, что печать из Windows никак не влияет на печать из Колибри - так открываются еще более любопытные детали.
    Обычная печать из Linux (Файл-Печать) тоже никак не помогает. Последовательность действий, которая у меня приводит к рабочему в Колибри принтеру, это:

    Code: Select all

    python
    p=open("/dev/usb/lp0","w")
    p.write("Hello")
    p.close()
    exit()
    
    Утверждать не буду, но я думаю, что это примерно то же самое, что и сделать "cat file.txt /dev/usb/lp0" - я просто этого еще не пробовал.
    После этого у меня отлично работают самые последние версии usbother на HP1200. Теперь у меня жгучее желание проверить и другие принтеры таким образом.

    Кстати, отладочный вывод принтера "до" и "после" загрузки прошивки ничем не отличается. Принтер гордо рапортует:
    {'product': 'HP LaserJet 1200', 'des': 'Hewlett-Packard LaserJet 1200', 'vid': 1008, 'mdl': 'HP LaserJet 1200', 'mfg': 'Hewlett-Packard', 'mem': '8MB', 'cmd': 'PJL,MLC,PCL,PCLXL,POSTSCRIPT', 'pid': 791, 'serial': '00CNCF264732', 'cls': 'PRINTER'}
    Такие вот новости.
    Вывод: печать в Windows с большой вероятностью не поможет совершить тестовую печать.
    Вывод 2: нужно искать способ загружать прошивку в принтер из Колибри.
  • Раскуриваю код hplip, впечатляет. Драйвер HP делает дополнительные настройки при подключении - сейчас разбираюсь, какие именно.
  • Проверил, после печати из Haiku мой HP1200 тоже отлично печатает. В Haiku судя по исходникам поддержка usb printer в теории ничем не отличается от того, что делает usbother.obj, но
    1) оно работает
    2) оно работает с кучей принтеров
  • Там может не один драйвер, а несколько.
  • Нет, я внимательно посмотрел. Для всех usb-принтеров один "транспорт" (bulk write), и несколько драйверов, превращающих данные в pcl или что-то ещё. Возможно, данные pcl/ps из тех, что у меня есть, какие-то неправильные. Надо проверить.
  • Драйвер Haiku перебирает доступные интерфейсы, проверяет endpoints и явно устанавливает текущую конфигурацию

    Code: Select all

    						((BUSBInterface*)interface)->SetAlternate(alt);
    
  • Да, я обратил на это внимание. Однако, интерфейс должен подойти любой - 07/01/01, 07/01/02 и 07/01/03 (что явственно указано в конфигурации); endpoints у принтеров 07/01/02 ровно два, один in и один out, при этом мне интересен только out. Ядро при загрузке драйвера, насколько я понял, само выбирает и устанавливает конфигурацию. Поправьте, если я не прав.

    Я не понимаю, почему после определенной последовательности действий принтер печатает из Колибри, но без неё - нет. Если понять, почему именно так - печать должна заработать везде.
  • Сейчас сгенерировал PS-документ из Haiku и попробовал распечатать - no success. Возможно, "драйвер" PS шлет какие-то команды инициализации перед печатью - нужно это проверить.
  • Who is online

    Users browsing this forum: No registered users and 2 guests