LINUX.ORG.RU

Избранные сообщения derlafff

Переход на MicroG и немного свободного софта

Форум — Mobile

Решил немного написать о моём опыте перехода на MicroG и про небольшой список свободных аналогов софта.

TL;DR: жить на MicroG можно

Но сначала немного дополню статью от derlafff про XPosed.

Не доступен для свежих андроидов

Доступен вплоть до версии 8.1, на тот момент был то ли в альфе, то ли в бете, уже не помню. Для 9 версии есть под названием EdXposed (поддерживает ещё и 8.1).

Переход на MicroG

Существует форк NanoDroid (зеркало на гитхабе). Основные отличия от MicroG:

  • Собран как priv-app
  • Более новая версия сервисов Google
  • Заменяет системный WebView на BromiteWebView (свободный форк хрома, ungoogled, но как пишут авторы, сложно проверить, насколько) с автоматической блокировкой рекламы
  • Поддержка покупок и микроплатежей в Play Store

Прочитать про все отличия можно здесь.

С приложениями, использующими карты Google, могут возникнуть проблемы (например, Runtastic падает, хотя карты установлены). Читать дополнение в конце поста.

Очень желательно иметь Magisk вместо Superuser.

Скачиваем последнюю версию отсюда. Берём самую жирную. Распаковываем архив, редактируем .nanodroid-setup (описание настроек лежит здесь). FakeStore обязателен к установке.

Обязательно сделайте бэкап следующих приложений, т.к. иногда они по ошибке удаляются:

  • DeskClock (заменяется на OmniClock из архива)
  • messaging (заменяется на QKSMS из архива)
  • Gallery2 (замеяется на Simple Gallery из архива)
  • Camera (заменяется на Open Camera из архива)
  • Calendar (заменяется на Simple Calendar из архива)

Приложения заменяются только если в .nanodroid-setup включена установка приложений, в противном случае они просто удаляются.

Скорее всего заменяются ещё клавиатура от Google, Gmail и Google Music (не пользуюсь, поэтому не могу проверить).

Обязательно проверьте, поддерживает ли прошивка SignatureSpoofing, список есть здесь. Процитирую пост по ссылке выше:

Коротко говоря, это обход защитного механизма, не позволяющего прикидываться gapps'ами кому попало. Для этого необходимо либо патчить прошивку при помощи Xposed/Needle/Haystack, либо использовать совместимую прошивку

Прошиваем архив (желательно перед этим сделать бэкап), вычищаем остатки гугловых приложений (если они есть, я ставил с удалением GAPPS).

Для обновления компонентов без прошивки архива добавьте этот репозиторий в F-Droid.

Получение приложений

Я решил обойтись без установки Google Play Store. Тем не менее, он должен заработать. Для получения пакетов из Google Play я использую Aurora. Можно использовать аккаунт Google или анонимный. Некоторые приложения не устанавливаются, и я понятия не имею, почему. В основном это гугловые приложения и зависимые от них (к примеру, использующие Google Maps). Через Yalp и файловый менеджер такие приложения устанавливаются. Минимальная версия системы - 5.0. Есть проверка приложений на предмет известных трекеров в базе Exodus Privacy. Для более старых систем есть Yalp Store, который поддерживает версии Android от 2.0 и выше.

Для свободного софта конечно же F-Droid. Ещё существуют M-Droid с более приятным интерфейсом (и вроде как исправленной загрузкой скриншотов, но у меня оно не заработало), и G-Droid (лучше интерфейс, но нет поддержки сторонних репозиториев).

Немного про навигацию

Навигация по GPS работает. С навигацией по мобильной сети есть косяки. В MAPS.ME и некотором софте работает только MozillaNlpBackend, но показывает, будто телефон на другом конце города. Déjà Vu Location Service работает в другом софте (Карты Google, Яндекс.Карты, ЕСТ Такси), с погрешностью в 30-50 метров.

Карты Google работают. Яндекс.Карты тоже. Приложения, использующие OSM и Яндекс.Карты - работают.

Свободные аналоги разного софта

  • Maps - форк MAPS.ME с вырезанной рекламой и трекерами
  • Замена YouTube - YouTube Vanced (поддержка авторизации через MicroG, фоновый режим, тёмная тема и ещё всякие плюшки, есть в репозитории Magisk), NewPipe (не поддерживает авторизацию, есть импорт подписок, экспортировать оные можно здесь). Есть ещё много других, но я знаю только про эти, лол.
  • Fennec F-Droid - Firefox с вырезанной телеметрией и проприетарными компонентами. Базируется на последних сборках официального Firefox. Для любителей ESR есть IceCatMobile.
  • Chrome - Bromite - форк хромиума, нацеленный на приватность и блокировку рекламы. Синхронизация, экономия данных и прочее - вырезано. Репозиторий для F-Droid - здесь.
  • Аутентификатор - Aegis. Поддерживает импорт из других аутентификаторов (нужен root). Попроще и для более старых версий системы - FreeOTP и FreeOTP+ (добавлен импорт и экспорт)
  • SSH клиент - ConnectBot
  • oandbackup - замена TitaniumBackup
  • Scarlet Notes FD - замена Google Keep. Есть синхронизация (как я понял, для включения облачной синхронизации нужно установить версию из Google Play).
  • K-9 Mail - почтовый клиент, поддерживает шифрование OpenPGP (требуется OpenKeychain)

Разный годный открытый софт

  • Nextcloud
  • DAVx⁵ - синхронизация (вместо гуглокалендаря)
  • KDE Connect - интеграция телефона с Plasma (в какой-то момент ещё и с Gnome)
  • OsmAnd~ - навигация, использует OpenStreetMap, и насколько я помню, может использовать и другие источники карт. Приложение платное, полная версия находится в магазинах, ссылки на сайте. Переход на MicroG и немного свободного софта (комментарий)
  • andOTP - простой аутентификатор с возможностью экспорта/импорта и шифрования бэкапов
  • EDS Lite - клиент для работы с криптоконтейнерами VeraCrypt, TrueCrypt, LUKS. Полная версия находится здесь.
  • Password Store - клиент для pass
  • Shelter - песочница для изоляции приложений
  • Forecastie - прогноз погоды, использует OSM
  • Gadgetbridge - подключение умных часов и браслетов
  • Scrambled Exif - удаление EXIF из фотографий
  • Kiwix - выкачивание Википедии и других вики-сайтов и чтение их оффлайн
  • Vanilla Music - музыкальный плеер. Насколько я знаю, единственный поддерживающий теги в OGG Opus. По запросу «vanilla» в F-Droid находятся полезные дополнения.
  • Simple Mobile Tools - простые открытые реализации галереи, календаря, файлового менеджера, контактов, заметок, музыкального плеера, фонарика, калькулятора и других приложений
  • GameDealz - неофициальный клиент для сайта IsThereAnyDeal. Вкратце - поиск скидок на игры.
  • Phoenix for VK - открытый клиент для ВКонтакте

Напишите, если знаете годные аналоги свободного софта (и любой годный открытый софт), добавлю в список.

Всякие мелочи

ClassyShark3xodus - сканирование всех приложений в системе на предмет трекеров. Использует базу Exodus Privacy.

Komoot - не открытое, но использует OSM. Аналог приложений вроде Runtastic (хоть и умеет меньше). Судя по Exodus Privacy, трекеров нет.

UPD: дополнение от ma1uta

UPD2: Хорошая статья на habr.com

 , ,

Deleted
()

Сбор донейтов на разработку движка (собрано 30%)

Форум — Talks

Привет, котаны.

Есть мысль нанять одного разработчика на фуллтайм для разработки движка.

В треде просьба отписаться тем, кто готов поддержать инициативу рублем.

Донейт будет раз в месяц, оплату реализуем через какой-нибудь patreon для простоты.

Если наберётся желающих хотя бы на 100к рублей в месяц — в Job откроем вакансию на это дело.

Если наберётся желающих больше, чем на 200к — откроем две вакансии.

Инициатива моя, но разработчика будет предложено одобрить maxcom’у, так как ему принимать pull request’ы.

Работа будет прежде всего по задачам в https://github.com/maxcom/lorsource/issues, улучшению покрытия тестами, исправление технического долга, а также реализации новых стандартов аутентификации вроде FIDO2. В общем работы для одного человека более чем достаточно.

Просьба воздержаться от сторонних обсуждений.

Текущее состояние ~31679 ₽ в месяц:

 , , ,

Deleted
()

proxy_py v2.1 - Сборщик проксей

Форум — Development

Прошло чуть больше 8 месяцев с предыдущего поста(Мой проект по сбору проксей) про мой сборщик проксей и чуть больше 13 с первой реализации, написанной на коленке за вечер. За это время я многое переписал

- теперь он полностью асинхронный(peewee_async вместо SQLAlchemy)

- сильно улучшилась производительность(сейчас на vds'ке за 3 евро 16к проксей)

- появилась документация и гайд по созданию коллекторов https://proxy-py.readthedocs.io/en/latest/

- больше тестов

- несколько новых коллекторов

Поставить звёздочку и сделать пулл реквест можно тут https://github.com/DevAlone/proxy_py

Чтоб потестить, есть докер контейнер:

docker create -p 55555:55555 --name proxy_py proxypy/proxy_py:v2.1
docker start proxy_py

После запуска можно делать запросы к API вот так:

http POST http://127.0.0.1:55555/api/v1/ model=proxy method=get

Так же есть веб интерфейс:

http://localhost:55555/i/get/proxy/

http://localhost:55555/i/get/proxy_count_item/

http://localhost:55555/i/get/collector_state/

http://localhost:55555/i/get/number_of_proxies_to_process/ (показывает, сколько проксей ждут проверки, зелёный график должен быть около нуля)

За год количество IP адресов, когда либо побывавших в моей программе(т.е. на них работал публичный прокси) - 218013

Планы на будущее(отсортировано по важности):

- peer to peer, чтобы инстансы proxy_py общались между собой и обменивались информацией, при этом нужен показатель доверия одного сервера другому, чем больше доверяем, тем меньше проверяем и список узлов, которым доверяем на 100% для создания своего кластера. Т.к. производительности одной машины уже не хватает. Мб кто-то знает годные либы?

- более удобный API(фильтр по полям, выбор проксей вокруг географической точки, стандартная сортировка должна выдавать не самые быстрые, а достаточно стабильные и при этом быстрые)

- нормальный веб интерфейс(мб на ангуляре)

- больше статистики(для каждого коллектора и каждого прокси)

- клиентская библиотека для питона

 , ,

devalone
()

CIF IV — 1 июля 2017

Новости — Конференции и встречи
Группа Конференции и встречи

1 июля в Москве пройдет четвертая ежегодная конференция CIF.

Начало в 13:00, место: г. Москва, Сахаровский центр, ул. Земляной вал, д. 57, стр. 5.

CIF (CryptoInstallFest) — это практическая конференция, во время которой IT-специалисты, юристы и общественные деятели обмениваются мнениями и рассказывают слушателям о текущем положении дел и новых тенденциях в Рунете, в частности, затрагиваются вопросы свободы слова и цензуры в сети, государственного регулирования интернета и самоорганизации отрасли, сохранения анонимности и защиты персональных данных пользователей, новых технологиях децентрализации, которые помогают интернету защищаться от внешних воздействий сегодня, и о тех, которые придут завтра.

Всё больше и больше государство проникает в интернет. Предложения по регулированию сети всё жестче и звучат всё чаще. Антипиратский закон/Закон о блокировках, Пакет Яровой, «Интернет по паспорту» и др.

Что это? Реальная забота государства о гражданах? Защита информационного суверенитета? Или попытка получить контроль над свободным виртуальным пространством?

( Программа )

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

 , ,

CheGevara
()

Добавить ubuntu в загрузчик uefi

Форум — Linux-install

Доброго времени суток. Заранее извинюсь за ошибки в терминологии(или просто несу чушь). Есть ноутбук hp envy. На нем стоит два харда. На одном windows 8. Решил использовать второй для ubuntu. Место biosа стоит uefi. Отключил security boot и тд. Загрузился с флешку и установил ubuntu. К сожалению, как не опытный пользователь, выбрал автоматическую установку без редактирования разделов(подумал, что раз весь диск отдаю, проблем быть не должно). Собственно проблема в том, что нет второго диска в uefi в загрузчике. Как я понял, uefi имеет свой раздел для загрузчика(на диске с виндой?) и туда надо было ставить grub. А может я ошибаюсь. Прошу помощи опытного населения.

 ,

KwanzaBot
()

CIF III — 20 августа 2016

Новости — Конференции и встречи
Группа Конференции и встречи

20 августа в Москве пройдет Третья ежегодная конференция CIF 2016 (http://cif.pirate-party.ru).

CIF (CryptoInstallFest) - это практическая конференция, во время которой IT-специалисты, юристы и общественные деятели обмениваются мнениями и рассказывают слушателям о текущем положении дел и новых тенденциях в Рунете, в частности, затрагиваются вопросы свободы слова и цензуры в сети, государственного регулирования интернета и самоорганизации отрасли, сохранения анонимности и защиты персональных данных пользователей, новых технологиях децентрализации, которые помогают интернету защищаться от внешних воздействий сегодня, и о тех, которые придут завтра.

На данный момент мы ищем докладчиков “на технические/практические” темы (согласно описания конференции). Заявки на участие можно присылать на адрес: chegevara29@gmail.com

Так же мы ищем переводчика. Синхронный перевод с английского.

И еще. Нынешняя конференция, как и две предыдущие, свободны и бесплатны для посещения. Потому мы объявили донейт, подробности и способы оказания помощи на сайте конференции

( Программа )

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

 , , ,

CheGevara
()

Внезапно! Альфа-версия нового клиента Skype для Linux

Новости — Проприетарное ПО
Группа Проприетарное ПО

Microsoft сегодня анонсировала новый Skype для Linux. Пока только альфа, но доступна загрузка для тестирования. Также организована возможность для отправки фидбеков.

В новой версии появилось все то, чего не было в старых. Это, в первую очередь новый интерфейс, обмен файлами, фотографиями, видео, смайлики и многое другое.

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

 ,

deep-purple
()

ДОКОЛЕ

Форум — Talks

 , , ,

Axon
()

Пьеса «Тред на ЛОРе», в одно действие.

Форум — Talks

по мотивам Ищу гуру Си программирования

Входит Вопрощающий:

Всем привет.
Есть тут свободные полгода
В которые хотел бы я программы изучать,
Даю вам это знать.
Пока что начал только Java лишь учить
По книге, впрочем, и дошёл до ООП,
Вы подскажите, это правильно, иль надобно тем книгам сгнить?
Хотел бы выбрать я ЯП и направление,
Что позволяло бы работать на фрилансе,
А также, у людей чтоб вызывалось изумление.

Входит ЛОРовец:
Двадцатник баксов в час, или забудь о нас

Входит Новенький:
You're welcome.
Давай свои контакты - отпишу.
Ведь мне не жалко помогать, один чёрт одиночество последнее недели
Так разъедает душу мне, что еле я дышу.

Входит Наркоман:
K&R расскажет, и покажет
Тебе всё милый друг,
Ну а коль что вдруг непонятно станет, то значит в голове недуг.
Ведь суть проста: конструкций мало, новых слов десятка два.
И сей язык освоишь быстро.
Хочу предупредить я, правда, что сам язык не цель твоя,
Ведь цель должна учится на ошибках.
Важнее знать не то, что как вам делать сударь,
Важнее путь тернистый, полный ям, и отроколов
Вам пройти и знать тропинку по которой надобно идти таким путем
Чтобы все ямки обойти.
И к сожаленью, или, может, к счастью, тропинку ту лишь одному тебе дано найти.
Ведь мудрый путник лишь укажет, в какую можно сторону идти.

Входит Зевака:
Внесите царя.

Входит Лавсан:
Я хоть не Царь, но знаю всё про Си, давай, спроси

Вопрощающий:
Жду контакта.

Входит Некто:
Будут вопросы - кастуй, или пиши на мыло.
И мыло можно, если что, найти в LKML и ffmpeg-develop.

Входит Царь:
О Наркоман, а почему нули,
Которые смешать с навозом в три счета,
Так много кукарекают о том, о чем не понимают ничерта?

И ладно, я бы понял, если ты бы что-то мог,
Но тыж не смог, дак почему ж несмогший путник,
Который тонет в луже иль болоте,
Иль где-то на задворках недовуза, тот пыжиться кого-то направлять?
Куда ты их направишь? Ты желаешь, их повернуть развитие всё вспять?
Ведь что ты можешь,
Как кроме повторять приевшиеся шутки,
и предлагать приевшиеся книжки,
Ответь, мальчишка?
И удиви меня своим вопросом.

Вопрощающий:
Увы, нет у меня таких вопросов
(И тут же поникает носом)

Входит Эдди: (лавсану)
Ты царь?

Лавсан:
Кто такой царь?

Новенький (лавсану):
Он твой последователь.
Вон, четырьмя постами выше.
И, потише,
Сейчас начнется развлеченье.

Эдди (лавсану):
А, раз не царь ты, то ведь Си не знаешь!
К тому же, зачем еще и о Царе тут вопрошаешь?

Царь (вопрошающему):
Причем тут удивительные.
Когда хотите вы спросить что-либо, то естественно,
Что на пространные вопросы,
Не менее пространные я буду вынужден вам отвечать ответы,
Поймите ж это.

Поэтому, Царя должны вы право заинтриговать,
Чтобы смог он для себя обосновать
Полезность траты времени на ху**оса.
Вот смысл моего вопроса.
Зачем царю писать куда-то, без причины?
Не есть ли это признак вроде Эдди дурачины?

Входит Аноним:
Какое-то собранье зебр в треде.
И странно, все стихами говорят.
Похоже, что попал я в Ад.

ЗАНАВЕС.

 ,

lovesan
()

RFC HOWTO: автологин в иксовую сессию с помощью systemd

Форум — General

Добрый вечер, господа. Это тред-howto о том, как сделать корректный автологин в иксы «на чистом systemd». В вики мне писать влом, да и никто её не читает, а тут и теги указать можно, и людей скастовать. Собственно, да: border-radius, ecko.

В чём вообще проблема? Проблема в том, что значительное количество людей делают это через банальнейшие костыли, настраивая автологин в текстовую консоль и запуская иксы из bashrc (или, чего хуже, из bash_profile). Это плохо по трём причинам:

  • не залогиниться в другую физическую консоль в текстовом режиме
  • оверхед на проделывание цепочки такого вида:
    systemd
    /bin/agetty
    /bin/login
    PAM
    /bin/bash
    ~/.bashrc
    /bin/startx
    
  • в конце концов, это само по себе костыль.

Я предлагаю написать getty-подобный юнит, который будет запускать иксы от фиксированного пользователя с фиксированным номером дисплея на произвольном VT. (Почему так много хардкода? Потому что systemd — не дисплейный менеджер.)

Это тоже неидеальное решение. Например, нафиг идёт мультисит и возникают гонки между запуском иксов и обнаружением видеоустройств. Но этими недостатками мы пренебрежём.

Параграф один. logind, autovt и getty-подобные юниты. Getty могут запускаться двумя способами.

  • Первый — по требованию, через logind. При переключении на ttyN logind запускает юнит autovt@ttyN.service, который засимлинкен на getty@.service. Эта логика работает для tty2-tty6.
  • Второй — статически. Юнит getty@tty1.service включен по умолчанию и втягивается через getty.target. Это даёт нам всегда запущенный getty на tty1.

Соответственно, допустим, у нас есть юнит xorg@.service, который запускает иксы на указанном VT.
Его нужно либо симлинкнуть под именем autovt@ttyN.service, переопределив шаблонный юнит (тогда при переключении на выбранный VT иксы будут запускаться вместо getty — первый способ), либо отключить getty@tty1.service и включить вместо него xorg@tty1.service (тогда мы вместо всегда запущенного getty будем иметь всегда запущенные иксы — второй способ).

Параграф два. Xorg вместо getty. Итак, имеем юнит для иксов, написанный по аналогии с getty@.service: /etc/systemd/system/xorg@.service.

User=<впишитеюзера>
PAMName=login

-- это аналог su.

Conflicts=getty@%i.service
After=getty@%i.service

-- это некоторая защита от одновременного запуска getty на том же терминале.

StandardOutput=tty
StandardInput=tty-fail

-- это указание systemd запускать иксы подсоединёнными напрямую к терминалу, а не к логгеру (нужно для того, чтобы иксы можно было запускать не от рута... ах да, работает только с 1.16 и выше).

ExecStart=/etc/systemd/scripts/startx -D :0

-- это мой велосипед вместо startx с нескучным синтаксисом и exec xinit в конце, что важнее.

Дело в том, что systemd из-за вероятного бага при остановке юнита отправляет SIGTERM/SIGKILL не всем процессам в дереве, начиная с startx, а только самому startx. А поскольку он написан на шелле, то он радостно игнорирует SIGTERM и ждёт завершения xinit, которому никакого сигнала не приходит. Следовательно, проблему решаем переписыванием startx так, чтобы он в конце не запускал xinit подпроцессом, а делал exec xinit, заменяя им собственный процесс. Тогда сигнал приходит xinit'у, а он его корректно ловит и убивает иксы.

Всё остальное скопипащено из getty@.service.

Да, дисплей захардкожен в :0. Пара слов о назначении VT: процесс startx получает номер VT в переменной $XDG_VTNR (её устанавливает pam_systemd), а из startx запускается /etc/X11/xinit/xserverrc, который об этой переменной знает и передаёт X-серверу параметр vt$XDG_VTNR.

Параграф три. Запускаем. Итак, помещаем юнит в /etc/systemd/system/xorg@.service, startx в /etc/systemd/scripts/startx (можно куда угодно) и делаем:

systemctl daemon-reload
systemctl disable getty@tty1
systemctl enable xorg@tty1

После этого можно ребутиться и надеяться, что запустится. Ах да, дисплейный менеджер тоже стоит отключить, потому что он запустит свой X-сервер и произойдёт адъ и израиль.

Как-то так. Сейчас три часа семнадцать минут по московскому времени, поэтому прошу меня извинить за упрт стиль изложения, краткость, неконсистентное использование форматирования и так далее.

 , ,

intelfx
()

FreshPlayerPlugin — PepperFlash в Firefox

Форум — Development

Flash плеер всё заменяют и заменяют, но никак не заменят полностью. Новые и сверхновые фичи браузеров это замечательно, но Flash бывает всё ещё нужен. К сожалению, доступная NPAPI браузерам версия застыла на 11.2, а новые версии выходят только в составе Chrome. Поэтому я делаю адаптер, который сможет быть посредником между PPAPI плагином и NPAPI браузером. Это такая штука, которая позволит использовать свежий Flash в Firefox, Opera и других браузерах, в которых работают плагины.

https://github.com/i-rinat/freshplayerplugin

 , , , , ppapi

i-rinat
()

nenuzhnix — the most useless linux distro

Форум — Talks

Итак, пришло время выложить Ненужникс — мой собственный микродистрибутив. Пока он почти ничего не умеет, но зато работает (поддерживает только amd64, в виртуалке не запустится).

Киллерфичи:

  • Отсутствуют продукты жизнедеятельности Поттеринга (PulseAudio, Avahi, systemd);
  • Чистый wayland (без иксовых библиотек);
  • Никаких перлопитоновых костылей: только shell-скрипты, только хардкор!

Большинство пакетов из Debian 7, пакетный менеджер opkg.

Как пользоваться: дождаться окончания загрузки (пара секунд), ввести имя пользователя (root), жмякнуть «enter». Если всё хорошо, у вас запустится weston, если всё плохо, вы увидите лог ошибок. В weston вы можете наблюдать дефолтные обои (скучные), двигать курсором и вводить текст с клавиатуры (если ваше устройство ввода работает), запустить терминал и любоваться на эталонное ШГ. Всё, что нужно линуксоиду.

Как установить: положить в /boot и запустить update-grub. Рекомендуется также выставить тайм-аут на время, большее времени вашей реакции. Если у вас другой загрузчик, произведите аналогичные действия для него.

Как скачать: бесплатно без регистрации и смс (18,49 Мб).

Каст тех, кто может быть заинтересован: vurdalak, StReLoK, qzxcvbnm, zorg, Borsalino, nepank, SANSLAR, Lincor, RADDyomin, densss, border-radius.

 , ,

CYB3R
()

Кстати, о «разрухе в сортирах»

Форум — Talks

Вот такое замечательное сооружение, с кустами растущими прямо из крыши, есть у меня недалеко от дома. В ста метрах от него - один из известнейших вузов. В 30 - действующий судостроительный завод. В 150 - вполне цивильная набережная и два корабля-музея.

http://cs620520.vk.me/v620520251/132b0/UwYBOfUaMZs.jpg

Почти центр города, чо уж там. Как думаете, почему эту хреновину до сих пор не снесли и не построили что-нибудь более полезное?

 

svr4
()

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
()

посоветуйте аниме

Форум — Talks

Ни разу не смотрел аниме, разве что покемонов минут 10 в детстве видел,а тут в толксах один товарищ сломался этим самым творением китайских мультипликаторов. Посоветуйте, пожалуйста, полнометражный аниме со смыслом и пользой для общей эрудиции.

 

kinik
()

RE: Жрите свой 1%

Форум — Talks

Наши взгляды на мир расходились кардинально. Стив был Стивом, точно таким, каким его рисует пресса. Он был поглощен своими целями, в особенности маркетингом. Меня интересовала техническая сторона и не очень волновали ни его цели, ни аргументы. Основной его аргумент был в том, что если я хочу завоевать рынок настольных компьютеров, то должен объединить силы с Apple. А мне это было до лампочки. Зачем мне нужна Apple? Я не видел в ней ничего интересного. И я не ставил целью своей жизни завоевание рынка настольных компьютеров. Его аргументация не блистала разнообразием. Он просто считал само собой разумеющимся, что я буду заинтересован. И оказался в тупике — у него в голове не укладывалось, что кого-то может совершенно не волновать увеличение рыночной доли Маков. Похоже, он был искренне поражен, как мало меня волнует размер рынка Маков и размер рынка Microsoft.

Линуксоид — не наличие сервера у комода, это состояние души.

У человека не может быть души, если он продал её за процентное превосходство и блестящие ретины :)

 ,

derlafff
()

netstat 666

Форум — Talks
НЕТСТАТ ПОКАЗАЛ ШЕСТЬ ШЕСТЬ ШЕСТЬ  
ОДМИНУ ЯВИЛАСЬ ЖУТКАЯ ВЕСТЬ
ЗНАМЕНИЕ АДА В ТУСКЛОЙ КОНСОЛИ
ГЛАЗА ОТ ШРИФТОВ РЕЖЕТ ДО БОЛИ

В СЕРВЕРНОЙ СТОЙКИ ВОСПЛАМЕНИЛИСЬ
ИЗ ПРЕИСПОДНЕЙ ВРАТА ОТВОРИЛИСЬ
ПЕЧАТЬ ОТКРЫЛА ПУТЬ В ЦАРСТВО ТЕНЕЙ
ДЬЯВОЛ ЯВИЛСЯ СО СВИТОЙ СВОЕЙ  

ПЫХКОДЕР ИЗДАЛ ОТЧАЯННЫЙ КРИК  
ВСПЫХНУЛ ОГНЕМ И СТИХ В ТОТ ЖЕ МИГ
ВЕТЕР РАЗНЕС ЕГО БРЕННЫЙ ПРАХ
ПО ВЕНАМ РАСТЕКСЯ ЖИВОТНЫЙ СТРАХ

ВСЕХ КОДЕРОВ ГРЕШНЫХ ПОГЛОТИЛ АД
ЗА БЫДЛОКОД НЕТ ИМ ДОРОГИ НАЗАД  
В ВОЗДУХЕ БЛЕСНУЛ ПРИЗРАЧНЫЙ КЛЫК    
В ЗЛОВЕЩЕЙ УЛЫБКЕ РАСТАЯЛ ДЬЯВОЛА ЛИК

СРЕДИ РАСКИДАННЫХ СТОЕК И ЦАРЯЩЕЙ РАЗРУХИ,
РАСПЛАВЛЕННЫХ ЦИСОК И СГОРЕВШЕЙ ВИТУХИ
СО СКОРБЬЮ ВСЕЛЕНСКОЙ ОДИН-НА-ОДИН
В ТЛЕЮЩЕЙ СЕРВЕРНОЙ СТОЯЛ МРАЧНЫЙ АДМИН
Chaser_Andrey
()

[упорин] фотки пьяных модераторов скачать бесплатно без смс голыми с макбуками

Форум — Talks

Макском разрешил. Это заговор.

Это Dimez http://instagram.com/p/f7rdMxy0FE/

 , , ,

Shaman007
()

Долго еще говнище будет первой строкой в трекере?

Форум — Linux-org-ru

Какое же говнище этот ваш С++

Может лучше про политику, баб и девственность?

ansky
()

Столлман про Сноудена

Форум — Talks

Просто оставлю это здесь.
Я проиграл в голос на 8:14.

 , ,

CYB3R
()