LINUX.ORG.RU

Сообщения Yampp

 

xiccd - управление цветовыми профилями в X

Новости — Мультимедиа
Группа Мультимедиа

Сегодня вышла новая версия xiccd - демона, управляющего цветовыми профилями мониторов.

xiccd работает совместно с colord и позволяет автоматически настраивать цветовые профили (icc) в графических средах, подобных Xfce, в которых подобная функциональность не встроена. До сих пор такая возможность существовала лишь в Gnome («из коробки») и в KDE (при использовании colord-kde). Пользователям других оболочек приходилось загружать цветовые профили вручную с помощью xicc, dispwin или dispcalGUI, что может не работать в конфигурациях с несколькими мониторами или при использовании некоторых colord-совместимых графических пакетов.

После установки xiccd список существующих мониторов и пользовательских цветовых профилей становится доступен в colord, что позволяет средствами colord устанавливать и выбирать нужный цветовой профиль. Корректно обработано «горячее» подключение и отключение мониторов. Тем самым, например, при подключении к ноутбуку проектора его цветовой профиль подгружается автоматически. При отсутствии точного цветового профиля создается приближенный по EDID-информации монитора.

В отличие от демонов, подобных colord-kde, xiccd не зависит ни от каких пакетов, от которых не зависит colord (за исключением X), что позволяет использовать его в любых системах в любом окружении. На сегодняшний день поддерживается загрузка профилей в X и чтение пользовательской директории профилей. Для работы необходима поддержка XRandR 1.3 и выше.

В сегодняшней версии 0.2.2 исправлены падения и откорректировано опознание мониторов в режиме «Mirror screen».

>>> Скачать xiccd

 , ,

Yampp
()

Вышел драйвер для GDI-принтеров Canon

Новости — Hardware and Drivers
Группа Hardware and Drivers

Первая работоспособная (хотя и не очень) версия открытого драйвера для принтеров Canon CAPT (LBP-****) вышла сегодня. В отличие от проприетарного драйвера, открытый является легковесным, не требует запуска демонов при загрузке системы и не саботирует работу принтеров других производителей.

При установке драйвера обратите внимание на выбор правильного устройства из списка (не usb://, а обязательно capt://) и на правильность файла *.ppd (в нем определены низкоуровневые параметры принтера, и с неправильным *.ppd принтер будет, скорее всего, печатать полосы).

Изменения:

  • полностью переписан код драйвера (с C на C++)
  • теперь драйвер работает через libusb и является бакэндом для CUPS
  • автоопределение принтеров
  • в основном устранены зависания принтера при сбоях печати

Недоработки:

  • не проверяется наличие бумаги!
  • при печати более чем одной страницы может печататься только первая
  • при печати очень сложных страниц иногда переполняется память принтера, «хвост» страницы обрезается
  • неправильные верхние и нижние поля

На сегодняшний день поддержан и проверен LBP-2900 и, вероятно, будет работать очень похожий на него LBP-3000. Другие модели не проверялись, так как их нет у разработчика.

ПРОЕКТУ ДЛЯ РАЗВИТИЯ ТРЕБУЮТСЯ РАЗРАБОТЧИКИ!

Требования: знание C++, наличие одного из CAPT-принтеров.

>>> Скачать

 , , , ,

Yampp
()

Canon LBP-2900 и другие CAPT-принтеры - ПИШУ ДРАЙВЕР

Форум — Linux-hardware

Попытался запустить LBP-2900 в Ubuntu. Довольно быстро выяснилось, что фирменный драйвер Canon - полный отстой, не поддерживается, и с этим надо что-то делать. Обнаружил также попытки написания энтузиастами аналогичного драйвера, но для 2900 он не работает. В связь с этим начал обратный инжениринг принтера и решил написать СОБСТВЕННЫЙ ДРАЙВЕР.

UPD: ТЕКУЩЕЕ СОСТОЯНИЕ

Исходники доступны на Github: https://github.com/agalakhov/captdriver

Чеклист к первому релизу:
[X] Передача параметров компрессии Hi-SCoA
[X] Компрессия Hi-SCoA
[X] Поддержка LBP-2900 и LBP-3000
[X] Баг «only 10 bytes»
[X] Печать многих страниц
[X] Ожидание наличия бумаги
[ ] Генерация PPD-файлов

Чеклист ко второму релизу:
[ ] Компрессия SCoA
[ ] Поддержка LBP-810 и LBP-1120

(Текст исходного верхнего поста следует)

Ищу единомышленников для Reverse Engineering протокола принтера. На сегодняшний день мне удалось полностью расшифровать протокол нижнего уровня USB и частично - протокол верхнего уровня. Мой драйвер уже может отсылать страницы на печать. ТРЕБУЕТСЯ расшифровать алгоритм сжатия пиксельных данных (он оказался отличным от алгоритма LBP-810 и, по-видимому, является какой-то модификацией ALPC-сжатия). Попытки прикрутить алгоритм от 810 привели к тому, что принтер включается и печатает, но на бумаге получаются только полосы, линии и регулярные узоры из пикселей. У меня пока нет времени на расшифровку, поэтому прошу помощи.

ОПИСАНИЕ ТОГО, ЧТО УДАЛОСЬ РАСШИФРОВАТЬ

Работать с принтером можно с помощью простого open(«/dev/usb/lp0») - libusb не требуется. Общение идет пакетами довольно простого формата. Формат пакета:

байты 1,2 - код команды - 16 бит (младший байт первый)

байты 3,4 - длина посылки (полная) - 16 бит (очевидно, меньше 4 байт не бывает)

байты с 5 - данные (опционально)

Если суммарная длина посылки превышает 4096 байт, посылка делится на части по 4096 байт.

Компьютер посылает принтеру команду. Принтер отвечает пакетом, содержащим код той же команды и минимум 2 байта данных (код возврата), всего не менее 6 байт. Эти 6 байт читают одним read(). Если длина превышает 6 байт, то затем делается read() на оставшуюся длину (она у меня никогда не превышала 4 килобайта, так что про ограничения ничего не знаю). Если не прочитать ответ принтера и продолжить посылать данные, он зависнет, и его придется выключить и включить снова.

Коды команд:

0xA1A1 - начало работы. Параметров нет (4 байта). Принтер отвечает длинной последовательностью байтов - видимо, номером модели, серийным номером, характеристиками и чем-то еще, я не разбирался.

0xA0A0 - какая-то проверка статуса? Встречается на 810, ни разу не видел на 2900. Параметров нет. Принтер отвечает длинной простышей байтов.

0xA0A8 - запрос какого-то статуса. Параметров нет. В коде возврата - явно битовые флаги.

0xA3A2 - что-то включает, меняет флаги в предыдущей команде. Параметров нет. Ответ всегда 0x0000.

0xE0A0 - проверка готовности. Если в ответе поднят бит 0x0008, то буфер принтера полон, надо ждать и не посылать больше данные.

0xA0A1 - проверка кучи вещей, в том числе наличия бумаги. Как оно работает на 2900 - не знаю.

0xA2A0 - загрузка первой магической последовательности. Параметр: магическая последовательность байтов.

0xE1A1 - загрузка второй магической последовательности.

0xE0A3, 0xE0A2, 0xE0A4 - что-то включают. Всегда идут в начале и в такой последовательности. Их отсутствие никак на печать не влияет(?). Возвращают 0, а при попытке вызвать повторно - 0x8800.

0xE0A5 - третья магическая последовательность.

0xD0A9 - загрузка магической последовательности, непосредственно предшествующая загрузке данных печати. Ответа на эту команду не дожидаются (?).

0xC0A0 - Главная Команда. Загружает в принтер сжатое изображение или его часть. Ответа принтера нет.

0xC0A4 - Конец Загрузки. Выдается сразу после 0xC0A0.

0xE0A7 - Включение Печати. Когда принтер подтвердит готовность после загрузки, выдают эту команду, и принтер начинает печатать. Параметр: 16-битное число 0x0001 (видимо, означающее «включить»).

Дополнительная информация - в исходниках драйвера http://www.boichat.ch/nicolas/capt/

Исходники того, что написал на данный момент, могу прислать.

 ,

Yampp
()

OpenZaurus - теперь 3.5.2 !

Новости — PDA
Группа PDA

Завроводы наконец дождались ЕГО! Из нового - переделана система управления пакетами (теперь пакеты рассортированы по категориям и нет нужды хранить у себя полный список). Огромное количество багфиксов и новых программ.

>>> Сайт

Yampp
()

Вышел OpenZaurus 3.5.1.

Новости — PDA
Группа PDA

Тихо и незаметно ;) появился Subj. Из нового - поддержка оболочки GPE и образ без графической оболочки вообще. Пока доступны только ядра и образы opie и barebone, в ближайшие дни ожидаем появления образа gpe и пакетов.

>>> Подробности

Yampp
()

RSS подписка на новые темы