Вторая партия будет ближе к концу января. Я напишу о ней здесь в комментариях, а если вы напишете на емейл, то сообщу по емейлу вам лично.
Автообнаружение у AirPrint/Mopria работает в пределах одного multicast-сегмента, а вручную ни одна ОС не позволяет добавить airprint/mopria-принтер по IP-адресу, так что придётся мудрить с маршрутизацией мультикаста и добавлением устройства в разные сегменты.
Вам потребуется cups+драйвер на роутере, скорее всего еще и ghostscript/poppler. В стандартных репозиториях OpenWrt нет ни того, ни другого. Временное хранение задачи на печать и обработка документа легко может потреблять 150 МБ оперативной памяти, что не каждому роутеру под силу.
Для usb-over-ip нужен драйвер, это то же самое, что прямое подключение принтера по USB, только по сети. Ваш LJ1220 поддерживает HP PCL 6, HP PCL 5e, Postscript Level 2 emulation, можете использовать драйвер от почти любого принтера, все совместимы с Windows 10/11.
Дешевых подходящих под задачу одноплатников сейчас есть от силы 2, не больше. Только 5-7-лет назад можно было действительно купить плату не сильно дороже акционных $9.99, то сейчас вам её либо не доставят напрямую, либо доставка будет стоить соизмеримые деньги.
Milk-V Duo. Голая плата, в которой не распаян USB и Ethernet — нужно будет делать плату-сендвич и заказывать её производство. Без Wi-Fi-модуля, а он гораздо актуальней Ethernet'а для подавляющего большинства. Без памяти.
Milk-V DUO-S, уже лучше: есть распаянный Ethernet и USB. Процессор медленный и одноядерный, но подойдёт. Только вот у единственного международного поставщика, у которого платы в наличии, $9.99 стоит версия без Wi-Fi, а с ним — $12.49. В Россию они не доставляют, а это значит, что вам предложат два варианта: либо вы переводите сумму (+НДС за продажу внутри Китая) на банковский счёт в юанях, и находите shipping agent из Китая в РФ самостоятельно, либо вы платите на банковский счёт в Гонконге в их долларах (без НДС), также ищите shipping agent, но еще оплачиваете доставку до Гонконга (≈$30-40).
Это уже $15 по самым оптимистичным подсчётам, без доставки в Россию. Далее вам нужен корпус и MicroSD, это еще по $1 за каждый элемент. Растаможка РФ прибавит еще 30% стоимости.
Я чудом нашел Orange Pi Zero 3 по хорошей цене и с хорошими условиями (а там 1ГБ памяти и процессор вдвое быстрее), но даже это невероятно редкое предложение никак не может опустить отпускную цену до психологического порога в 2500 рублей.
Это делать нетривиально из-за глючности и тормознутости редактора сайта и редактуры статей модераторами — им неведомо слово «форматирование», они приходят и меняют его согласно своему мировоззрению.
Знаете, почему в статье картинки выровнены только по левому краю? Потому что по правому в редакторе не реализовали!
Кстати, как на счёт недорогих переходников usb-lpt, которые только для печати?
Они поддерживаются, но не все принтеры с ними работают. Canon LBP-810, например, не заработал ни в Windows, ни в Linux, ему, видимо, нужно управление по доп. пинам.
Ваш HP 1100 это почти копия LBP-810, у него такой же Canon'вский printing engine, но плата форматтера (и прошивка, и драйверы) отличаются. Если у вас работает с Windows, то и через плату должно работать.
Почему не Docker-контейнер, который можно запустить на любом одноплатнике?
Прежде всего из-за сложности взаимодействия с udev hotplug из контейнера, и правильной реакции на эти события, определёнными сложностями с пробросом USB. Некоторые принтеры не имеют памяти под прошивку и ждут, пока компьютер загрузит её при каждом включении. Если и хост, и контейнер начнут что-то делать с принтером одновременно, он не будет печатать. Другие принтеры, например некоторые модели от Samsung, такие неженки, что никакому другому ПО на них лучше вообще не дышать, иначе зависнут.
Контейнер не сможет обеспечить той надёжности и повторимости, какой можно добиться от «голой» операционки, а подготавливать образы ОС для широкого спектра одноплатников точно не вершина моих мечтаний. Несколько проектов «контейнера для печати» уже существует, ни один из них мне не понравился.
Почему исходники не выложены публично?
Они не заработают в отрыве от конкретного железа (которое уже всё распродано и недоступно для покупки). Для DIY проще установить ПО и драйверы на одноплатник классическим методом, а не адаптировать целую ОС и систему сборки под ваше железо. Энтузиасты могут отправлять патчи непосредственно в задействованное ПО.
Всё же плата стоит менее трети от самого-самого дешевого нового принтера, но действительно, цена здесь играет решающую роль. Увы, дешевых одноплатников просто нет — прошли те времена, когда простые модели были по $9.99.
Если он работает, то принт-сервер ему не нужен.
Многим хочется банального удобства — возможности печати со смартфона не включая компьютера, либо возможности убрать принтер подальше от компьютера.
Сканер в mf4370dn поддерживается SANE'ом, работать будет, по крайней мере должен, драйвер в SANE вроде не сломан. Самая простая проверка — загрузить livecd ubuntu и попробовать посканировать. Если всё в порядке, то и на принт-сервере заработает. Если есть нюансы или работает нестабильно, то нужно будет отлаживать (мне).
Или почему не создали подобную архитектуру для смартфонов?
Потому что Android это операционная система для бытовых приборов, а не персональных компьютеров. В бытовом приборе у пользователя нет возможности ни переустановить ОС, ни изменить низкоуровневые компоненты, ни заменить одну деталь на другую.
Операционные системы для персональных компьютеров поставляются сторонними организациями, не относящимися к сборщику компьютера, поставщику материнской платы или процессора. Все производители компонентов должны написать драйверы под Windows, сертифицировать их у Microsoft электронной подписью, и удостовериться, что их устройство нормально работает, в идеале на любом компьютере. Вы, пользователь, покупаете копию операционной системы у компании.
Операционная система для бытового прибора идёт в составе прибора и поставляется производителем прибора. Производителю электронных компонентов не нужно связываться с создателями операционных систем, он пишет драйвер для Linux и передаёт его заинтересованному производителю прибора напрямую (а иногда поставляет только железо, и драйвер необходимо сделать производителю прибора).
Почему так? Почему модификации от Гугла не попадают в основную ветку?
Потому что ядро Android использует собственные подсистемы, отсутствующие в Linux, и не нужные в мейнлайне. Ранее также были особые оптимизации конкретно под телефоны, сейчас уже не уверен. Многое, что было полезно и можно было перенести в Linux, перенесли.
AOSP common kernels (also known as the Android common kernels or ACKs) are downstream of kernel.org kernels and include patches of interest to the Android community that haven't been merged into mainline or Long Term Supported (LTS) kernels. These patches can include:
Backports and cherry-picks of upstream functionality needed for Android features
Features ready for Android devices but still under development upstream
Vendor/OEM features that are useful for other ecosystem partners
Google (как и Microsoft) требует от производителя процессоров соблюдения определённых требований платформы, в частности, в плане безопасности.
Android поставляется с собственной эталонной реализацией всех этапов загрузки: littlekernel, fastboot, стандартов доверенной загрузки, разблокировки загрузчика, и т.п, и не требует поддержки ACPI. Производителю процессоров достаточно взять существующий код и добавить поддержку своего SoC.
UEFI-загрузка (и ACPI) приниципиально поддерживается, но реализации для неё нет. Производителю процессоров потребуется взять сторонний UEFI (открытый код TianoCore / лицензировать у Phoenix/AMI/кто там еще), написать сложный код ACPI (в котором ошибается даже Intel) вместо простого описания компонентов в DeviceTree, собственными силами напрограммировать и отладить все этапы загрузки, чтобы соответствовать требованиям платформы.
Если производитель наперёд знает, что чип будет использоваться только в смартфонах, ТВ-приставках и другом оборудовании на Android, нет никакого смысла идти против эталонных рекомендаций — это привнесёт ошибки, уязвимости, усложнит и удорожит разработку, с абсолютно нулевой разницей для конечного потребителя (а скорее всего, даже замедлит включение телефона из-за сложности UEFI).
Так как Windows on ARM требует UEFI+ACPI, последние процессоры от Qualcomm используют UEFI уже и на телефонах. Только ACPI-код заточен под Windows и никем не тестировался на Linux, он и не работает. Qualcomm работает над поддержкой Linux для самых свежих WoA-процессоров, но даже текущий roadmap содержит UEFI+DT, а не ACPI.
Только что нашел совсем свежую презентацию (сентябрь 2024) разработчика из Google, который описывает реализацию Android Generic Boot Loader поверх UEFI. Видимо, работы над этим ведутся.
Generic bootloader (GBL) is Android boot flow UEFI application provided by Google. Provide production ready open source Android boot flow reference implementation
Вендоры допиливают ядро под каждое новое устройство вручную, в результате или нет апдейтов или они дорого стоят, нет универсального дистрибутива
Поэтому же и нельзя купить произвольный смартфон и накатить на него произвольный Android/Linux/etc
Вы путаете причину со следствием.
В x86-мире процессоры делаются преимущественно для десктопов/лаптопов на Windows и серверов на Linux. Производитель процессоров пишет драйверы для этих ОС, добивается их интеграции в дистрибутивы (в Ubuntu есть отдельные OEM-ядра от каждого крупного производителя), удостоверяется, что вся периферия чипсета, совместимого с процессором, работает должным образом. И в случае с Windows, и в случае с Linux, производитель может разработать и поставлять драйверы независимо от Microsoft, ядра Linux и разработчиков дистрибутивов, но это менее удобно и ему, и конечным потребителям, особенно в Linux: добавив поддержку своего железа в ядро официально, все новые изменения, приходящие от сторонних людей, должны быть совместимы с уже существующим кодом, и ответственность обеспечить совместимость нового кода лежит на том, кто его добавляет.
В случае с ARM-процессоры для смартфонов разрабатываются… для смартфонов. Google поставляет модифицированное ядро Linux, определённой версии, со своими патчами под Android, и производитель добавляет поддержку своего железа в эту версию. Только Google, в отличие от людей, разрабатывающих ядро Linux, не осуществляет поддержку дополнительного кода. Переложить задачу на обеспечение совместимости вашего текущего кода с более новыми версиями Android-ядра не на кого. Вышла новая версия Android, требующая новой версии ядра? Будь добр, производитель процессоров, адаптируй свой референсный код и под ядро, и под Android. Для процессоров, спроектированных под смартфоны, задачи обеспечения совместимости с Windows и Linux не ставится — они создаются не под эти задачи.
В случае с ARM-процессорами для серверов задача ставится точно такая же, как и в случае x86-процессоров. Байкал, Huawei Taishan, Amazon Graviton — все загружают обычные ubuntu iso arm64 с официального сайта через UEFI с флешки, процесс с точки зрения пользователя от x86 не отличается.
Ну лет 10-15 назад была куча виндовых планшетов на Atom'ах N-серии. Но Интел просто перестала делать такие процессоры - и весь класс устройств просто вымер.
О чём вы вообще, рынок завален ноутбуками, convertable и мини-ПК на N95/N97/N100. Ренессанс.
Винда до сих пор занимает бОльшую часть рынка десктопов, при этом запускать на армах её просто негде, никаких арм-устройств нет в продаже за исключением Surface.
Еще Lenovo, Samsung. Меня несколько раз спрашивали про goodbyedpi под Windows ARM, а это софт с, может, 500 тысячами пользователей максимум. Это не гипотетическое пожелание, а люди на своих ARM-ноутбуках пытались запустить, и у них не заработало.
Вторая партия будет ближе к концу января. Я напишу о ней здесь в комментариях, а если вы напишете на емейл, то сообщу по емейлу вам лично.
Автообнаружение у AirPrint/Mopria работает в пределах одного multicast-сегмента, а вручную ни одна ОС не позволяет добавить airprint/mopria-принтер по IP-адресу, так что придётся мудрить с маршрутизацией мультикаста и добавлением устройства в разные сегменты.
Вторая партия будет ближе к концу января. Я напишу о ней здесь в комментариях, а если вы напишете на емейл, то сообщу по емейлу вам лично.
Увы, в airprint/mopria взаимодействия принтера с компьютером не предусмотрено, только наоборот. Можно, однако, сканировать на смартфон, в Mopria Scan.
Вам потребуется cups+драйвер на роутере, скорее всего еще и ghostscript/poppler. В стандартных репозиториях OpenWrt нет ни того, ни другого. Временное хранение задачи на печать и обработка документа легко может потреблять 150 МБ оперативной памяти, что не каждому роутеру под силу.
Для usb-over-ip нужен драйвер, это то же самое, что прямое подключение принтера по USB, только по сети. Ваш LJ1220 поддерживает HP PCL 6, HP PCL 5e, Postscript Level 2 emulation, можете использовать драйвер от почти любого принтера, все совместимы с Windows 10/11.
Для PCL: V3 Xerox Global Print Driver PCL6
Для PostScript можно:
MS built-in (
MS Publisher Imagesetter
orMS Publisher Color Printer
)Xerox PostScript driver (v3 driver architecture)
HP Smart Universal Driver (v4 driver architecture)
Дешевых подходящих под задачу одноплатников сейчас есть от силы 2, не больше. Только 5-7-лет назад можно было действительно купить плату не сильно дороже акционных $9.99, то сейчас вам её либо не доставят напрямую, либо доставка будет стоить соизмеримые деньги.
Milk-V Duo. Голая плата, в которой не распаян USB и Ethernet — нужно будет делать плату-сендвич и заказывать её производство. Без Wi-Fi-модуля, а он гораздо актуальней Ethernet'а для подавляющего большинства. Без памяти.
Milk-V DUO-S, уже лучше: есть распаянный Ethernet и USB. Процессор медленный и одноядерный, но подойдёт. Только вот у единственного международного поставщика, у которого платы в наличии, $9.99 стоит версия без Wi-Fi, а с ним — $12.49. В Россию они не доставляют, а это значит, что вам предложат два варианта: либо вы переводите сумму (+НДС за продажу внутри Китая) на банковский счёт в юанях, и находите shipping agent из Китая в РФ самостоятельно, либо вы платите на банковский счёт в Гонконге в их долларах (без НДС), также ищите shipping agent, но еще оплачиваете доставку до Гонконга (≈$30-40).
Это уже $15 по самым оптимистичным подсчётам, без доставки в Россию. Далее вам нужен корпус и MicroSD, это еще по $1 за каждый элемент. Растаможка РФ прибавит еще 30% стоимости.
Я чудом нашел Orange Pi Zero 3 по хорошей цене и с хорошими условиями (а там 1ГБ памяти и процессор вдвое быстрее), но даже это невероятно редкое предложение никак не может опустить отпускную цену до психологического порога в 2500 рублей.
Это делать нетривиально из-за глючности и тормознутости редактора сайта и редактуры статей модераторами — им неведомо слово «форматирование», они приходят и меняют его согласно своему мировоззрению.
Знаете, почему в статье картинки выровнены только по левому краю? Потому что по правому в редакторе не реализовали!
Они поддерживаются, но не все принтеры с ними работают. Canon LBP-810, например, не заработал ни в Windows, ни в Linux, ему, видимо, нужно управление по доп. пинам.
Ваш HP 1100 это почти копия LBP-810, у него такой же Canon'вский printing engine, но плата форматтера (и прошивка, и драйверы) отличаются. Если у вас работает с Windows, то и через плату должно работать.
M1005 MFP работает полностью. Владелец принт-сервера починил все мелкие проблемы в открытом драйвере сканирования, и есть еще официальный от HP.
Отличное МФУ, которое до сих пор в цене. Родители как купили его в ~2008, так до сих пор активно пользуются, ныне через принт-сервер :D
Исходники действительно есть на сайте, только под паролем, который выдаётся при покупке.
И сразу ответы на никем не заданные вопросы:
Прежде всего из-за сложности взаимодействия с udev hotplug из контейнера, и правильной реакции на эти события, определёнными сложностями с пробросом USB. Некоторые принтеры не имеют памяти под прошивку и ждут, пока компьютер загрузит её при каждом включении. Если и хост, и контейнер начнут что-то делать с принтером одновременно, он не будет печатать. Другие принтеры, например некоторые модели от Samsung, такие неженки, что никакому другому ПО на них лучше вообще не дышать, иначе зависнут.
Контейнер не сможет обеспечить той надёжности и повторимости, какой можно добиться от «голой» операционки, а подготавливать образы ОС для широкого спектра одноплатников точно не вершина моих мечтаний. Несколько проектов «контейнера для печати» уже существует, ни один из них мне не понравился.
Они не заработают в отрыве от конкретного железа (которое уже всё распродано и недоступно для покупки). Для DIY проще установить ПО и драйверы на одноплатник классическим методом, а не адаптировать целую ОС и систему сборки под ваше железо. Энтузиасты могут отправлять патчи непосредственно в задействованное ПО.
Всё же плата стоит менее трети от самого-самого дешевого нового принтера, но действительно, цена здесь играет решающую роль. Увы, дешевых одноплатников просто нет — прошли те времена, когда простые модели были по $9.99.
Многим хочется банального удобства — возможности печати со смартфона не включая компьютера, либо возможности убрать принтер подальше от компьютера.
Сканер в mf4370dn поддерживается SANE'ом, работать будет, по крайней мере должен, драйвер в SANE вроде не сломан.
Самая простая проверка — загрузить livecd ubuntu и попробовать посканировать. Если всё в порядке, то и на принт-сервере заработает. Если есть нюансы или работает нестабильно, то нужно будет отлаживать (мне).
Билайн
МТС
Из договора с банком. В ВТБ24 это был отдельный, "неотключаемый" пункт, который по моей просьбе убрали из договора, перепечатав его.
Потому что Android это операционная система для бытовых приборов, а не персональных компьютеров. В бытовом приборе у пользователя нет возможности ни переустановить ОС, ни изменить низкоуровневые компоненты, ни заменить одну деталь на другую.
Операционные системы для персональных компьютеров поставляются сторонними организациями, не относящимися к сборщику компьютера, поставщику материнской платы или процессора. Все производители компонентов должны написать драйверы под Windows, сертифицировать их у Microsoft электронной подписью, и удостовериться, что их устройство нормально работает, в идеале на любом компьютере. Вы, пользователь, покупаете копию операционной системы у компании.
Операционная система для бытового прибора идёт в составе прибора и поставляется производителем прибора. Производителю электронных компонентов не нужно связываться с создателями операционных систем, он пишет драйвер для Linux и передаёт его заинтересованному производителю прибора напрямую (а иногда поставляет только железо, и драйвер необходимо сделать производителю прибора).
Потому что ядро Android использует собственные подсистемы, отсутствующие в Linux, и не нужные в мейнлайне. Ранее также были особые оптимизации конкретно под телефоны, сейчас уже не уверен. Многое, что было полезно и можно было перенести в Linux, перенесли.
https://source.android.com/docs/core/architecture/kernel/android-common
Google (как и Microsoft) требует от производителя процессоров соблюдения определённых требований платформы, в частности, в плане безопасности.
Android поставляется с собственной эталонной реализацией всех этапов загрузки: littlekernel, fastboot, стандартов доверенной загрузки, разблокировки загрузчика, и т.п, и не требует поддержки ACPI. Производителю процессоров достаточно взять существующий код и добавить поддержку своего SoC.
UEFI-загрузка (и ACPI) приниципиально поддерживается, но реализации для неё нет. Производителю процессоров потребуется взять сторонний UEFI (открытый код TianoCore / лицензировать у Phoenix/AMI/кто там еще), написать сложный код ACPI (в котором ошибается даже Intel) вместо простого описания компонентов в DeviceTree, собственными силами напрограммировать и отладить все этапы загрузки, чтобы соответствовать требованиям платформы.
Если производитель наперёд знает, что чип будет использоваться только в смартфонах, ТВ-приставках и другом оборудовании на Android, нет никакого смысла идти против эталонных рекомендаций — это привнесёт ошибки, уязвимости, усложнит и удорожит разработку, с абсолютно нулевой разницей для конечного потребителя (а скорее всего, даже замедлит включение телефона из-за сложности UEFI).
Так как Windows on ARM требует UEFI+ACPI, последние процессоры от Qualcomm используют UEFI уже и на телефонах. Только ACPI-код заточен под Windows и никем не тестировался на Linux, он и не работает. Qualcomm работает над поддержкой Linux для самых свежих WoA-процессоров, но даже текущий roadmap содержит UEFI+DT, а не ACPI.
Только что нашел совсем свежую презентацию (сентябрь 2024) разработчика из Google, который описывает реализацию Android Generic Boot Loader поверх UEFI. Видимо, работы над этим ведутся.
https://en.wikipedia.org/wiki/Server_Base_System_Architecture
Вы путаете причину со следствием.
В x86-мире процессоры делаются преимущественно для десктопов/лаптопов на Windows и серверов на Linux. Производитель процессоров пишет драйверы для этих ОС, добивается их интеграции в дистрибутивы (в Ubuntu есть отдельные OEM-ядра от каждого крупного производителя), удостоверяется, что вся периферия чипсета, совместимого с процессором, работает должным образом. И в случае с Windows, и в случае с Linux, производитель может разработать и поставлять драйверы независимо от Microsoft, ядра Linux и разработчиков дистрибутивов, но это менее удобно и ему, и конечным потребителям, особенно в Linux: добавив поддержку своего железа в ядро официально, все новые изменения, приходящие от сторонних людей, должны быть совместимы с уже существующим кодом, и ответственность обеспечить совместимость нового кода лежит на том, кто его добавляет.
В случае с ARM-процессоры для смартфонов разрабатываются… для смартфонов. Google поставляет модифицированное ядро Linux, определённой версии, со своими патчами под Android, и производитель добавляет поддержку своего железа в эту версию.
Только Google, в отличие от людей, разрабатывающих ядро Linux, не осуществляет поддержку дополнительного кода. Переложить задачу на обеспечение совместимости вашего текущего кода с более новыми версиями Android-ядра не на кого. Вышла новая версия Android, требующая новой версии ядра? Будь добр, производитель процессоров, адаптируй свой референсный код и под ядро, и под Android.
Для процессоров, спроектированных под смартфоны, задачи обеспечения совместимости с Windows и Linux не ставится — они создаются не под эти задачи.
В случае с ARM-процессорами для серверов задача ставится точно такая же, как и в случае x86-процессоров. Байкал, Huawei Taishan, Amazon Graviton — все загружают обычные ubuntu iso arm64 с официального сайта через UEFI с флешки, процесс с точки зрения пользователя от x86 не отличается.
О чём вы вообще, рынок завален ноутбуками, convertable и мини-ПК на N95/N97/N100. Ренессанс.
Еще Lenovo, Samsung. Меня несколько раз спрашивали про goodbyedpi под Windows ARM, а это софт с, может, 500 тысячами пользователей максимум. Это не гипотетическое пожелание, а люди на своих ARM-ноутбуках пытались запустить, и у них не заработало.
А сколько в России теперь пользователей IPv6-то, уух!