Форум русскоязычного сообщества Ubuntu


Автор Тема: Написание драйверов  (Прочитано 2302 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlexeyZ00

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Написание драйверов
« : 04 Июля 2014, 11:31:23 »
Прошу прощения за дублирование, но боюсь, что не все увидят мои вопросы, заданные в тебе про принтеры RICOH.

Есть потребность написать драйвера для серии принтеров.
Но я тут выступаю исключительно как организатор а не исполнитель. И мне необходимо понять как вообще происходит процесс написания драйверов.

Буду очень признателен, если вы мне в этом поможете. У меня несколько вопросов:

1. Где посмотреть актуальные версии Linux, которые сейчас используются?
2. Где посмотреть статистику использования каждой версии отдельно? Сколько реальных пользователей?
3. Если написать драйвер к одной версии Linux для другой он подойдет?
4. Если написать драйвер для Ubuntu 12 он будет подходить к другим версиям (например 14 или сервер?
5. Есть ли отрасли или типы пользователей которые 100% используют Linux? (правительство школы хостеры и т.д.)

Заранее спасибо.

chemtech

  • Гость
Re: Написание драйверов
« Ответ #1 : 04 Июля 2014, 14:58:35 »
Я думаю вам нужно уточнить вопросы, т.к. контингент Linux - top500 и контингент кто ставит Steam немного другой.
Но я за написание драйверов обеими руками за

Оффлайн AlexeyZ00

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Написание драйверов
« Ответ #2 : 08 Июля 2014, 17:12:44 »
Ну для начала хотелось бы получить свежую статистику. Какие версии используются в России и сколько пользователей.

chemtech

  • Гость
Re: Написание драйверов
« Ответ #3 : 08 Июля 2014, 17:18:44 »
Статистика версии Linux

В любом случае, если драйвер будет свободный, то он попадет во все дистрибутивы

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7203
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Написание драйверов
« Ответ #4 : 08 Июля 2014, 18:10:51 »
AlexeyZ00, я бы не писал драйвер под какую-то конкретную аудиторию, или под какой-то конкретный дистрибутив, а писал бы сразу подо все (ядро то оно одно и тоже, могут быть маленькие отличия в патчах). В принципе, важно, чтоб третья ветка ядра с ним хорошо работала, ветка 2.6 пока тоже жива, используется в основном там, где требуются проверенные временем, пусть и устаревшие решения, например у военных.

Теперь самое главное: если дрова будут писаться с открытым кодом, то их поддержкой в актуальном состоянии могут заняться другие люди, а могут и не заняться  :)

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

chemtech

  • Гость
Re: Написание драйверов
« Ответ #5 : 08 Июля 2014, 18:23:41 »
Почитал немного Собственный драйвер для устройства USB - это просто. Интересно, а написание драйвера для принтера, например Canon MF3110 будет сложной задачей? (У меня этого принтера нет, но драйвера под Linux очень нужен, а его него нет)

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7203
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Написание драйверов
« Ответ #6 : 08 Июля 2014, 18:29:57 »
chemtech, большой задачей это будет, не очень сложной, но большой и трудоёмкой.

chemtech

  • Гость
Re: Написание драйверов
« Ответ #7 : 08 Июля 2014, 18:37:47 »
Если сложную задачу разделить на много небольших (более мелких), то она будет реализована легче и быстрее.
Можно написать статью на хабре о написании драйверов для периферии, попросить их выполнить команды, но нужно алгоритм действий, которых я не знаю. Т.к. программировать не умею (а сейчас еще магистерская диссертация на носу или в каком то другом месте)

Оффлайн AlexeyZ00

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Написание драйверов
« Ответ #8 : 15 Июля 2014, 09:16:47 »
Peregrine, спасибо.

Все документы на взаимодействие с принтером есть. Т.е. если мне напишут драйвер под ядро 3.0 то его спокойно могу использовать все пользователи Linux? И вот еще вопрос: возьмем Ubuntu 14, напишем под нее драйвер, смогут ли пользователи друг дистрибутивов его использовать без изменений. А если нужны изменения то насколько они сложны?

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7203
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Написание драйверов
« Ответ #9 : 15 Июля 2014, 09:46:04 »
AlexeyZ00, по идее, работать должно везде, если где-то не всплывёт какой-то  специфичный баг ядра, появившийся в результате его обновления или кривого патча, наложенного авторами того или иного дистрибутива, но, что вероятнее, если и всплывут баги, то это будут баги самого драйвера, но для этого должен быть багтрекер и периодически разработчик должен баги фиксить (чем быстрее, тем лучше, конечно, но ясно, что зависит от многих факторов- времени, зарплаты и т.д.), насколько это будет сложно зависит от умений разработчика писать код. Если код был изначально неграмотно спроектирован, то и исправление бага может стать причиной большой работы, а если грамотно, то и баги фиксить гораздо проще. И вот ещё что, иногда разработчики драйвер забрасывают совсем, это плохо - например, драйвер сканеров Epson для пост-обработки изображения использовал стороннюю библиотеку, которая обновлялась, а разработчик за этим не следил, а по условиям лицензии этой библиотеки он не мог вкомпилить её в драйвер, получилось, что через пару лет библиотека так сильно обновилась, что потеряла совместимость со старой версией (а таскать старую библиотеку за собой паровозиком программист почему-то поленился), а внешняя линковка с системной библиотекой привела к тому, что получился очень нехороший момент - драйвер вызывает из либы функцию, а её там больше нет, как результат драйвер падает, сканер зависает, единственный способ нормального сканирования был из GIMP-а, т.к. с ним общение драйвера миновало эту дополнительную обработку, но при этом интерфейс гимпа не очень предназначен для сканирования.

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.