Настраиваем USB принтер под Linux (print linux usb)
Ключевые слова: print, linux, usb, (найти похожие документы)
From: Юрий Лушня
Subject: Настраиваем USB принтер под Linux
Настраиваем USB принтер под Linux
Автор: Юрий Лушня [stranger@sivash.net]
Оригинал: http://www.linuxrsp.ru/artic/
Ни для кого не секрет (а может и секрет), что 2.2.х ядра имеют
встроенную поддержку USB. Если кто-то сталкивался с этой вот
поддержкой, то, наверное, не очень был рад этому (может и до сих пор
вспоминает с ужасом). Все дело в том, что в этой поддержке имеется
куча ошибок.
2.3.х и 2.4.х имеют более улучшенную и доработанную USB поддержку, но
не каждый захочет копаться с настройкой нового ядра, переустанавливать
его, компилировать и т.д. К счастью, поддержка USB в 2.3.х ядрах
пропатчена и может работать с ядрами 2.2.х. Для этого нужно загрузить
и поставить [2]этот патч.
Сначала набираем uname -r. Система выводит версию ядра. Если версия
вашего ядра выше чем 2.2.14, то его можно и не патчить. Вам просто
потребуется перекомпилировать ядро (об этом мы поговорим ниже) и
поставить поддержку USB (я использую Linux-Mandrake 7.0, версия ядра —
2.2.14-2.2.15mdk). Инструкция по компиляции ядра находится [3]здесь, а
если проблемы с доступом в INTERNET, то данную инструкцию можно
просмотреть в /usr/doc/kernel-HOWTO (по-моему). Сейчас, практически, в
каждом релизе Linux есть русские man’ы, поэтому с компиляцией ядра, я
думаю, у вас проблем не возникнет. Если же у вас ядро «младше» версии
2.2.14, тогда придется его пропатчить.
Для этого идем [4]сюда и закачиваем патч, написанный [5]Vojtech Pavlik
Если с этим адресом проблемы, то можно зайти на [6]этот сайт и по
поиску найти нужный патч (usb-2.4.0-test2-pre2-for-2.2.16-v3.diff.gz)
или ссылку на другой сайт с нужной информацией (в данном случае —
патчем).
После получения данного патча, с помощью команды cd заходим в
директорию, в которую скопирован патч и набираем [patch file name].
Одним словом, мы распаковываем этот gz. файл и устанавливаем его. На
стадии распаковки данного файла возможны проблемы. Так, gunzip может
«ругаться», что этот файл не с расширением .gz. Дело в том, что
некоторые программы (в том числе и Mozilla) автоматически
распаковывают получаемые файлы. Так что на gunzip можете не обращать
внимания (если только он ругается из-за вышеописанной проблемы, а не
почему-то еще :).
Дальше заходим root’ом и набираем cd /usr/src/linux. Потом patch -p1
[path для вашего patch файла]
Если ваш патч находится в файле
/usr/downloads/usb-2.4.0-test2-pre2-for-2.2.16-v3.diff, тогда набираем
patch -p1 /usr/downloads/usb-2.4.0-test2-pre2-for-2.2.16-v3.diff.
Теперь набираем make menuconfig (или make xconfig если вы работаете в
Х’ах). Выбираем USB Support (USB поддержку) и нажимаем ENTER. Потом
выбираем:
Support for USB (поддержку USB)
Preliminary USB Device Filesystem
A USB Controller suited to your system (USB контроллер, поддерживаемый
вашей системой. С этим, я думаю, у вас проблем не возникнет, так как
help в этом вопросе просто чудесный).
USB Printer Support (поддержка USB принтера)
Any other USB devices that you have (другие USB устройства, которые вы
имеете)
Проверяем настройки, сохраняем и выходим. Компилируем ядро и вносим
изменения в LILO. Перезагружаемся. Если вы все нормально настроили, то
при загрузке будет присутствовать сообщение о поддержке USB (support
USB).
После входа в систему набираем: mount -t usbdevfs usbdevfs
/proc/bus/usb для монтирования USB filesystem (USB-файловой системы).
Если вы хотите, чтобы эта файловая система автоматически монтировалась
при запуске, то следует добавить следующую строку в /etc/fstab:
usbdevfs /proc/bus/usb usbdevfs defaults 0 0.
Теперь мы имеем полную поддержку USB в ядре. Переходим к следующему
пункту (к непосредственной теме данной статьи) — конфигурированию USB
принтера
Я очень надеюсь, что вы имеете RedHat Printtool. Это чудесная
программа с прекрасным интерфейсом для изменения файла /etc/printcap
(здесь находятся данные вашего принтера). Эта программа также поможет
вам распечатать тестовые страницы (хотя, я думаю, что при распечатке
тестовых страниц могут возникнуть проблемы). Дело в том, что мне
пришлось перезапускать свой lpd демон каждый раз после печати каждой
тестовой страницы :(. Пакет Printtool поставляется вместе с RedHat и
инсталлируется как часть контрольной панели. Для пользователей Debian
этот пакет известен как .deb файл. Самая последняя версия (если не
выпустили новее, пока я пишу эту статью) — 3.41-4. Пользователи Debian
могут закачать ее по [7]этому адресу, а пользователи RedHat по
[8]этому.
После всех «закачек» и установок двигаемся дальше. Набираем cd /dev.
Если ваша USB директория находится здесь, то набираем ls и находим
файл под именем lp0. Если этот файл присутствует, тогда вам остается
только сконфигурировать свой принтер с помощью пакета Printtool.
А вот если этого файла нет, тогда придется его создать: mknod
/dev/usb/lp0 c 180 0
Теперь вы имеете lp0, с его помощью вы сможете печатать на свой USB
принтер. Если же у вас возникнут какие-нибудь проблемы с конфигурацией
(конфигурированием) принтера, то рекомендую вам почитать [9]USB HOWTO
Дальше. Запускаем Х’ы (как правило, startx) и конфигурируем принтер.
Открываем XTerm (или другой терминал-эмулятор по выбору) и набираем
printtool. «Кликаем» на кнопке Add, выбираем «Local Printer» и
нажимаем ОК. Теперь переходим в текстовое окно секции «Printer Device»
и набираем /dev/usb/lp0. Дальше с помощью кнопки выбора (select)
выбираем «рабочий» драйвер вашего принтера. За более полной
информацией обращайтесь к [10]Printing HOWTO. После выбора драйвера
«кликаем» на ОК. Дальше выходим в главное окно (там должен появится
ваш принтер) и печатаем ASCII и Postscript тестовые страницы.
Приложение «А». Компиляция ядра
Выше я привел примеры настройки USB принтера для 2.2.х ядер. Теперь я
попробую ввести в тот же курс обладателей 2.3.х ядер (в том случае,
если вы отказались ставить вышеуказанный патч на свою машину, даже
если у вас ядро «старше» 2.2.14). Этот курс, главным образом, будет
состоять из примера компиляции ядра для USB Support. Владельцам 2.2.х
ядер это тоже может пригодиться.
После включения всех необходимых пунктов в «USB Support» (при
компиляции ядра — это описано выше) для нормальной работы USB
принтера, набираем следующее (по порядку):
make dep
make clean
make bzImage
make modules
make modules_install
Если в процессе работы «полезут» какие-нибудь ошибки, я вам рекомендую
вернуться назад к окну компиляции, а еще лучше перед этим почитать
[11]Kernel-HOWTO. и попробовать сконфигурировать еще раз свое ядро.
Теперь нам нужно скопировать наше новосозданное ядро в /boot
директорию, чтобы LILO мог найти и новое и старое ядро при загрузке.
Делаем это так: cp arch/i386/boot/bzImage /boot/vmlinuz-usb. Теперь
вашим любимым редактором (Pico или Vim — не угадал?) открываем файл
lilo.conf (cd /etc/lilo.conf). Находим строку (она мне очень нравится
🙂 default=Linux. Эта строка говорит о том, что по умолчанию на вашем
компьютере грузится Linux OS. Опускаемся ниже и находим строки
image=/boot/vmlinuz
label=Linux
read-only.
Меняем строку label=Linux на label=old. Этот «old» нам понадобится в
том случае, если наше новое ядро с поддержкой USB не запустится
(всякое бывает). Если новое ядро не запускается, тогда в LILO набираем
«old» (без кавычек) и пробуем скомпилировать старое ядро ПРАВИЛЬНО
(читайте Kernel-HOWTO).
Теперь вводим еще одну секцию в lilo.conf (желательно выше той секции,
где мы ввели label=old):
image=/boot/vmlinuz-usb
label=Linux
read-only
Как вы поняли, эта секция вводит в LILO информацию о том, что у нас
появилось новое ядро (с поддержкой USB). Теперь оно будет грузиться по
умолчанию. Сохраняем введенную информацию и выходим из editor’а.
Набираем в консоли lilo. Если нет никаких ошибок, то остается только
набрать shutdown -r now (для перезагрузки системы).
После перезагрузки, LILO будет ждать от вас дальнейших «указаний». Вы
можете набрать old (для загрузки старого ядра — в том случае, если
новое ядро сконфигурировано неправильно и выдает ошибки), linux (для
загрузки нового ядра с поддержкой USB) или нажать TAB для вывода всех
присутствующих операционных систем на вашем ПК. УДАЧИ
Источник
MNorin.com
Блог про Linux, Bash и другие информационные технологии
Настройка принтера в Linux.
Одна из задач, которую часто выполняют компьютеры под управлением операционных систем на базе ядра Linux — это печать на принтере. На компьютер устанавливается операционная система, подключается принтер, настраивается служба печати, и всё, принтером можно пользоваться. Настройка принтера в Linux обычно не зависит от того, какой дистрибутив вы используете и занимает достаточно мало времени. Давайте посмотрим, как это делается при установке принтера, подключенного к другой машине в сети.
Установка CUPS
В первую очередь необходимо установить систему печати CUPS. Для этого необходимо установить пакет cups, а все зависимости будут установлены автоматически вашим менеджером пакетов.
После установки пакетов сервис cups запускается автоматически. Если он не запустился, то его надо запустить вручную:
В зависимости от того, какой марки у вас принтер, может потребоваться установить дополнительные пакеты. В Debian’е можно сразу установить все доступные драйвера:
В CentOS вам придется ставить драйвера для разных производителей попакетно, найти их можно обычно по словам «CUPS driver». Если вы по какой-то причине не нашли в пакетах подходящего драйвера, вы можете попробовать найти его на странице http://www.openprinting.org/drivers.
Настройка принтера в Linux
Откройте в браузере адрес http://127.0.0.1:631. У вас будет запрошен пароль пользователя root, либо пароль пользователя, если пароль root не задан (как, например, в Ubuntu). Вы должны увидеть следующую страницу:
Кликните на вторую вкладку (Administration)
Нам нужно добавить принтер. Можно попробовать найти принтер автоматически, нажав на кнопку «Find New Printers», но это не всегда работает. Поэтому кликаем по кнопке «Add Printer».
Выбираем, каким образом принтер должен быть подключен к компьютеру. В моем случае это принтер, который подключен к другому компьютеру и настроенный как принтер общего доступа. Поэтому я выбираю «Windows Printer via SAMBA». Нажимаем кнопку «Continue».
Примера задания пути для принтера с доступом по SAMBA нет. Вводим руками: smb://192.168.0.7/RX610 (принтер подключен к хосту 192.168.0.7 и называется RX610). Нажимаем кнопку «Continue». Если принтер подключен к локальному компьютеру, то он обычно может быть определен автоматически.
Теперь Нужно ввести имя принтера, под которым он будет виден в системе (обязательно), также его описание и местоположение (необязательно). Вот как это должно в итоге выглядеть:
Теперь можно нажать кнопку «Continue».
Теперь нам нужно выбрать производителя и модель принтера. В первую очередь выбираем производителя (в моем случае это Epson).
Нажимаем кнопку «Continue».
Теперь выбираем драйвер, который будем использовать (драйвер, соответствующий вашему принтеру) и нажимаем кнопку «Add Printer». Теперь надо установить настройки принтера по умолчанию (как минимум установить формат бумаги A4).
После этого нажимаем кнопку «Set Default Options». После сообщения о том, что принтер был успешно добавлен вы увидите страницу с информацией о принтере.
Для проверки вы можете сразу отправить тестовую страницу на печать, выбрав пункт «Print test page» в первом выпадающем меню (Maintenance).
Если страница успешно выведена на печать, значит настройка произведена правильно.
Источник
Подключение принтера HP LJ 1010/1015/1018/1020 в Linux Debian(Ubuntu) c CUPS 1.4 и выше
При обновлении версии CUPS возникла проблемма его несовместимости с загруженным модулем usbpl, необходимый для загрузки firmware в принтер. При их одновременной работе возникает конфликт на шине usb(одновременное обращение), отражающееся в логах системы /var/log/syslog следующим образом:
————————
Jul 1 02:18:57 kernel: [ 3115.009361] usb 1-2.5: usbfs: interface 0 claimed by usblp while ‘usb’ sets config #1
————————
Вариант решения данной проблемы:
— Загрузить модуль сразу после включения принтера
— Выгрузить модуль сразу после заливки filmware
Для этого делаем следующее:
0) Отключаем принтер
1) Установим необходимые пакеты
2) Скачаем требуемое filmware для принтера сконвертируем и разместим в соответствующих папках:
3) Создадим правило для диспетчера устройств udev для загрузки модуля при включении принтера.
Указываем Vid и Pid своего принтера! Пример приведён для 1018.
4) Перезагружаем диспетчер устройств udev
5) Редактируем сценарий foo2zjs, выполняющийся при обнаружении принтера (отключаем модуль ядра usbpl сразу после загрузки firmware). Имя файла зависит от модели вашего принтера!(для 1000/1005/1018/1020 — /usr/sbin/hplj1018 )
ищем и корректируем процесс загрузки firmware
изменение сводится к добавлению строк
6) Включаем принтер и смотрим логи
при корректной работе в них будет следующее:
———————
Jul 1 01:56:12 kernel: [ 1749.871946] CE: hpet increased min_delta_ns to 20113 nsec
Jul 1 02:18:39 kernel: [ 3097.400294] usb 1-2.5: new high speed USB device number 8 using ehci_hcd
Jul 1 02:18:40 kernel: [ 3097.512010] usb 1-2.5: New USB device found, idVendor=03f0, idProduct=4117
Jul 1 02:18:40 kernel: [ 3097.512084] usb 1-2.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 1 02:18:40 kernel: [ 3097.512098] usb 1-2.5: Product: HP LaserJet 1018
Jul 1 02:18:40 kernel: [ 3097.512109] usb 1-2.5: Manufacturer: Hewlett-Packard
Jul 1 02:18:40 kernel: [ 3097.512120] usb 1-2.5: SerialNumber: KP03QAY
Jul 1 02:18:40 mtp-probe: checking bus 1, device 8: «/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.5»
Jul 1 02:18:40 mtp-probe: bus: 1, device: 8 was not an MTP device
Jul 1 02:18:40 udev-configure-printer: add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.5/1-2.5:1.0
Jul 1 02:18:40 udev-configure-printer: parent devpath is /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.5
Jul 1 02:18:40 udev-configure-printer: Device vendor/product is 03F0:4117
Jul 1 02:18:40 udev-configure-printer: MFG:Hewlett-Packard MDL:HP LaserJet 1018 SERN:- serial:KP03QAY
Jul 1 02:18:40 kernel: [ 3097.779667] usblp1: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Jul 1 02:18:40 kernel: [ 3097.781597] usbcore: registered new interface driver usblp
Jul 1 02:18:40 udev-configure-printer: add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.5/1-2.5:1.0/usb/lp1
Jul 1 02:18:41 kernel: [ 3098.989429] usb 1-2.5: usbfs: interface 0 claimed by usblp while ‘usb’ sets config #1
Jul 1 02:18:43 /usr/sbin/hplj1018: foo2zjs: loading HP LaserJet 1018 firmware /lib/firmware/hp/sihp1018.dl to /dev/usb/lp1 .
Jul 1 02:18:43 /usr/sbin/hplj1018: foo2zjs: . download successful.
Jul 1 02:18:56 udev-configure-printer: parent devpath is /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.5
Jul 1 02:18:56 udev-configure-printer: MFG:Hewlett-Packard MDL:HP LaserJet 1018 SERN:- serial:KP03QAY
Jul 1 02:18:57 kernel: [ 3115.009361] usb 1-2.5: usbfs: interface 0 claimed by usblp while ‘usb’ sets config #1
Jul 1 02:18:58 kernel: [ 3116.139386] usbcore: deregistering interface driver usblp
Jul 1 02:18:58 kernel: [ 3116.139675] usblp1: removed
Jul 1 02:18:58 /usr/sbin/hplj1018: foo2zjs: . kernel module usblp disable now.
———————
Источник