Бывают, к сожалению, весьма разные, хотя большинство работает под Linux (многие — без каких-либо действий, кроме минимальной настройки).
Тоже бывают разные — PostScript, PCL и лишённые растеризатора. Про установку PCL/PS говорить не особенно осмысленно — они просто работают с общим драйвером и как правило — имеют PPD для более точной настройки, поэтому секция скорее про «мыльницы» вроде HP10xx.
Внимание: для них требуется драйвер из пакета foo2zjs, а не hplip! Если он конфликтует с текущим foomatic-db по одному или более *.ppd — следует проверить наличие обновлённых и не пересекающихся версий или повесить баг на foo2zjs (см. #12749, #12736, #11575, #10223).
Внимание номер два: для некоторых моделей (кажется, 1010, но не 1022) требуется заливка прошивки при включении или подключении принтера. Это реализуется udev или вручную, причём только в случае локально подключенного принтера (про успех с принт-серверами ничего не известно — впрочем, есть подозрение, что с ними такие принтеры просто не работают).
Немножко изменю тему и расскажу как я вчера заводил HP1005. Ставим foo2zjs. Устанавливаем драйвер принтера (естественно выбираем foo2zjs) Далее нам надо загрузить в него микропрогу. Но её надо скачать. Делаем getweb 1005 (нужно wget ещё поставить) Запустится утилька и скачает img файл. Из этого файла нам надо сделать dl файл. Делаем. #arm2hpdl sihp1005.img > ship1005.dl И получаем dl файл. Он должен лежать в /usr/share/foo2zjs/firmware Далее делаем #cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/usb/lp0 Насколько понял последняя команда даётся один раз. Т.к. после выключения питания и перезагрузки компьютера у меня всё продолжает работать. Утильки getweb и arm2hpdl ставятся с пакетом foo2zjs. Всё!!!!.