TL;DR: Распечатка выглядит как привет из 90-х, Windows 3.x вызывает свои принтеры обратно. Сканирование удивительно "просто работает", по крайней мере при подключении USB. 3D печать в разработке. Поддержка сети вызывает смешанные чувства. Смартфоны у меня пока не заработали. Устройства с последовательным интерфейсом USB, в основном, работают.
Недавно я открыл для себя Haiku, неожиданно хорошую систему. Сегодня мне интересно выяснить, как она обеспечивает поддержку оборудования, особенно в областях распечатки, сканирования, 3D печати, работы сетевого оборудования, смартфонов, устройств с последовательными USB портами, к примеру Arduino. Есть только один способ это выяснить — взять и попробовать! Да начнется праздник втыкательства!
Распечатка
Сетевое МФУ HP
На Mac, МФУ HP LaserJet Pro 200 color, подключенный к местной локальной сети, просто появился как доступный принтер безо всякого моего вмешательства. Даже в последних версиях Ubuntu принтер распознался полностью автоматически. Я могу загрузиться с LiveISO и принтер появится в диалогах печати без каких-либо действий. Благодаря IPPEverywhere не нужно устанавливать драйвера.
На Haiku? Первый сюрприз: браузер WebPositive по умолчанию даже не дает команду "Печать". А вот StyledEdit — да. Когда я жму в нем Alt+P — выскакивает окно с установкой принтера по умолчанию.
Согласен, конечно же. Появившийся список принтеров отображает "Предпросмотр" и "Сохранить как PDF", но моего МФУ HP LaserJet Pro 200 color со всем его волшебством Zeroconf и IPPEverywhere не видать.
Мне бы хотелось "простого появления тут" HP LaserJet Pro 200 color МФУ, как это произошло в других современных операционных системах, включая Linux.
Так что я щелкаю "Добавить..."
Надо быть мастером-кудесником распечатки, чтобы понять это. Я выбрал "IPP".
Далее: оно не распознает имеющийся у меня принтер. В этот момент я как будто вернулся на Windows 3.x. Оно бы еще дискетку переставить попросило.
Здесь нет МФУ "HP LaserJet Pro 200 color"
Не находится "HP LaserJet Pro"? Слишком новый? Вряд ли, устройству как минимум лет 5. Ну что же, выберу тогда схожий "HP Color LaserJet CM2320 МФУ".
В предвкушении возвращаюсь в StyledEdit, жму Alt+P. Что это? Шутка?
Диалоговое окно спрашивает у меня "URL". Ну, знаете, мало ли.
Иду в терминал, но только для того, чтобы узнать, что безотказная команда avahi-browse
, настоящий швейцарский нож, позволяющий узнать соответствие ip-адресов устройствам, отсутствует, и даже command-not-found
не знает, где его найти. Погуглив, нахожу сообщение в блоге, где кто-то сообщает, что "в настоящее время я работаю над браузером служб, все почти готово". Поиск в HaikuPorts выдает только qmdnsengine
, библиотеку. Я не могу найти программу, использующую указанную библиотеку. Тут я и сдался, потому что в конце концов печать не так уж и важна для меня.
Быстрое решение: внедрить глубоко в систему mDNS\Zeroconf и использовать для распечатки что-то вроде CUPS (его, в конце концов, Apple использует).
Сканирование
CanoScan LiDE 60 USB
Ожидая худшего, достаю и сдуваю пыль с моего древнего планшетного сканера CanoScan LiDE 60 USB. С тех пор, как появились смартфоны с многопиксельными камерами, особой нужды в нем больше нет. Подключаю его к компьютеру с Haiku через USB, запускаю приложение Sanity
для сканирования и, к своему удивлению, вижу спустя пару секунд такое вот приветствие:
CanoScan LiDE 60 успешно сканирует в Haiku
Сетевое МФУ HP
Не-а, программа Sanity
не видит встроенный в МФУ сканер. Я думаю, что Mac его распознает и автоматически настроит, используя Zeroconf ("Bonjour"), одну из моих любимых "просто работающих" все время технологий. Haiku так не смогла. Смотрите раздел "Распечатка" выше.
3D печать
Программы для нарезки слоев
До сих пор нет программ с GUI для нарезки слоев. Но с момента прошлой публикации есть рабочая CLI программа. Спасибо, Герасим Троеглазов, отличное начало, но без GUI — неприкольно.
@probonopd, спрашивал о #CureEngine для haikuOS? Все отлично работает. Скоро добавлю в HaikuPorts.
Контроллер принтера
Контроллер принтера — сущность для отправки данных 3D принтеру через последовательный порт. В программах нарезки Ultimaker Cura и PrusaSlicer он встроенный. Что из этого есть для Haiku? Я видел Atelier на снимке экрана выше. Предполагаю, данный вопрос решен.
Sender
Sender — сущность для отправки данных сетевому 3D принтеру или контроллеру принтера через проводную или беспроводную сеть. В программах Ultimaker Cura и PrusaSlicer он встроенный.
Работа со смартфонами
Смартфоны на Android используют Media Transfer Protocol (MTP) и\или Picture Transfer Protocol (PTP) при соединении с компьютером. Я нашел в HaikuDepot программу PhotoGrabber для скачивания и удаления изображений с цифровых камер, подключенных через USB по протоколу PTP. Сначала она не заработала с моим смартфоном. А потом я узнал, что нужно вручную переключиться на подключаемый модуль PTP.
Быстрое решение: включать все подключаемые модули по умолчанию одновременно.
Тем не менее, все еще не получилось использовать, программа показала часть изображений с устройства, а потом споткнулась.
bdcpPTP - Transaction: Session 1, Transaction 3c5, Code: 100a.
bdcpPTP - GetData: Expected data container, received 0003.
Я мог только надеяться, что она не удалит все мои фотографии с устройства.
Правильное решение: монтировать PTP и другие схожие устройства как тома.
iPhone и iPad используют (конечно же) что-то собственное, согласно этому сообщению на форуме они (пока что) не работают с Haiku.
Однако не стоит винить в этом Haiku: на Linux, если взять старую iOS и достаточно свежий дистрибутив, есть шанс, что оно заработает… а потом опять начнутся кошки-мышки. Именно это мне и не нравится в продуктах Apple, спасибо ей.
Сети
Встроенная сетевая карта Ethernet
Работает на всех моих машинах
Сетевая карта Axis USB Ethernet
Предполагается, что работает, но не у меня.
Встроенная беспроводная карта Intel
У меня работает.
Встроенная беспроводная карта Broadcom (Mac)
Известно что не работает (пока?). [этот производитель и на Linux тот еще подарочек… — прим. переводчика]
Устройства с последовательным интерфейсом USB
Многие устройства содержат, насколько мне известно, мост последовательный интерфейс — USB [COM порт, доступный через USB, — прим. переводчика]. Примерами таких устройств выступают различные устройства, включая 3D принтеры и платы Arduino.
Наиболее часто используемые мостовые чипы это CDC, Prolific, FTDI и Silicon Labs. Все они поддерживаются в Haiku:
KERN: usb_serial: CDC ACM compatible device (0x2341/0x0036) added
KERN: usb_serial: PL2303 Serial adapter (ATEN/IOGEAR UC232A) (0x067b/0x2303) added
KERN: usb_serial: FTDI 8U232AM serial converter (0x0403/0x6001) added
KERN: usb_serial: Silicon Labs CP210x USB UART converter (0x10c4/0xea60) added
Тем не менее, я получаю воспроизводимую панику ядра, для исправления которой есть обходной путь. Прошивка 3D принтера работает при использовании avrdude
(хотя пришлось обходить известную ошибку с отсутствующими зависимостями). Так что инструменты, основанные на libusb, работают.
Прошивка 3D принтера программой avrdude с использованием программатора USBASP
В поисках: подключение съемных носителей в режиме только для чтения
Создание съемных носителей только для чтения
Мне нравятся системы, работающие без сохранения состояния, в режиме только для чтения. Это одна из причин, по которым я использую LiveISO для Linux, которые после перезагрузки возвращаются к своему исходному состоянию. Как мне достичь такого же результата для Haiku?
Я нашел эти инструкции для diskpart, очевидно рассчитанные на Windows:
- запустить CMD от имени администратора, запустить в нем
diskpart
- дождаться его загрузки и написать
list disk
- выбрать нужное устройство используя команду
select disk 1
, (где 1 — номер нужного устройства USB) - для пометки устройства только для чтения запустить
attributes disk set readonly
Согласно этой заметке, на Unix системах можно использовать hdparm
для установки параметров SATA\IDE устройств:
- проверка доступа только для чтения для устройства:
hdparm -r /dev/sdX
- включение доступа только для чтения:
hdparm -r1 /dev/sdX
- выключение доступа только для чтения:
hdparm -r0 /dev/sdX
Задался вопросом, можно ли сделать такое же на Haiku.
Заключение
Поддержка оборудования в Haiku намного лучше, чем я ожидал. Да, местами есть нюансы, но ведь, как вы помните, система все еще даже не версии 1.0. Распечатка оставляет желать лучшего, но честно говоря, мне она сейчас не так уж и важна. Хотелось бы более глубокой и утонченной интеграции Zeroconf в систему, поскольку он один из тех "волшебных" ингредиентов, которые "просто работают".
Моя неделя с Haiku
На этом я заканчиваю неделю с Haiku. Изначальная задумка была простым тестом, который настолько затянул меня, что я просто не мог оторваться от игры с ним. Сейчас я задаюсь вопросом: может ли Haiku превратиться в ту операционку "Hello", которую я представлял? Т.е. изначальный Mac, только в виде открытого кода?
Может ли она стать изначальным Mac, только в виде открытого кода?
Я сам не заметил, как стал участником: (оставил 3 заявки и 10 заявок в HaikuPorts).
Мне кажется, что для приемлемого результата команда должна сосредоточиться и расставить приоритеты. Как бы сделал лично я:
- Починить оставшиеся проблемы с загрузкой и зависаниями (к примеру, работа над XHCI)
- Провести оптимизацию производительности веб-браузера
- Ускорение видео (читай: поддержка 4к видео с youtube в браузере)
- Ускорение 3D (читай: поддержка TinkerCAD и Onshape в браузере)
- Все остальное
Команда разработки Haiku весьма приветлива и терпелива с новичком вроде меня. Огромная благодарность им за ответы на все мои вопросы, за то, что мирились с моими экспериментами и делились идеями.
Но подождите, есть еще кое-что [будет еще одна переведенная статья… — прим. переводчика].
Попробуйте сами! Ведь проект Haiku предоставляет образы для загрузки с DVD или USB, формируемые ежедневно. Для установки достаточно скачать образ и записать его на флешку с помощью Etcher
Появились вопросы? Приглашаем вас в русскоязычный telegram-канал.
Обзор ошибок: Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS
От автора перевода: это седьмая статья из цикла про Haiku.