Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

В GIMP наконец-то появилась обработка с точностью 16 и 32 разряда на канал

В одном окне: GIMP 2.8

Релиз OpenBSD 5.1

HTML-редактор: BlueGriffon 1.5

Релиз Xfce 4.10

Команда Chromium представила кластер для автоматизации выявления уязвимостей

В Microsoft Office 15 будет обеспечена поддержка формата ODF 1.2

Анонсирован новый свободный анимационный фильм Tube

Обновление ядра: Linux 3.0.29, 3.2.16, 3.3.3

Представлен OpenSSH 6.0

Релиз графического редактора Pinta 1.2, претендующего на роль аналога Paint.NET

Вышел Firefox 12

Google прекращает поддержку Linux-версии приложения Picasa

Эмулятор приставок: Mednafen 0.9.21-wip

Линус Торвальдс получил премию Millennium Technology Prize 2012

Canonical не заинтересована в участии в разработке ядра Linux

Распределенные вычисления: BOINC 7.0

Google

 Новые статьи :

Передача снапшота ZFS по сети

Правила хорошего тона: SSH

Некоторые рассуждения о защите от ddos на примере защиты от SSL denial of service attack

Быстрый проброс портов на шлюзе во внутреннюю сеть или на другой хост. Быстро NAT'им порты. rinetd.

NAT'им отдельные порты или "а что делать, если мой веб-сервер внезапно переехал на другую машину". Проброс портов в локалке на шлюзе наружу.

Как справляться с запланированной недоступностью веб-сайта

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

Решение проблем при использовании "1c предприятие" 8.2 в Linux

25 правил .htaccess, которые должен знать каждый web-разработчик

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Краткое руководство по GNOME Shell в Ubuntu 11.10

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 


Настраиваем USB принтер под Linux
     

Юрий Лушня

Ни для кого не секрет (а может и секрет), что 2.2.х ядра имеют встроенную поддержку USB. Если кто-то сталкивался с этой вот поддержкой, то, наверное, не очень был рад этому (может и до сих пор вспоминает с ужасом). Все дело в том, что в этой поддержке имеется куча ошибок.

2.3.х и 2.4.х имеют более улучшенную и доработанную USB поддержку, но не каждый захочет копаться с настройкой нового ядра, переустанавливать его, компилировать и т.д. К счастью, поддержка USB в 2.3.х ядрах пропатчена и может работать с ядрами 2.2.х. Для этого нужно загрузить и поставить этот патч.

Процедура "Патчинга"

Сначала набираем uname -r. Система выводит версию ядра. Если версия вашего ядра выше чем 2.2.14, то его можно и не патчить. Вам просто потребуется перекомпилировать ядро (об этом мы поговорим ниже) и поставить поддержку USB (я использую Linux-Mandrake 7.0, версия ядра - 2.2.14-2.2.15mdk). Инструкция по компиляции ядра находится здесь, а если проблемы с доступом в INTERNET, то данную инструкцию можно просмотреть в /usr/doc/kernel-HOWTO (по-моему). Сейчас, практически, в каждом релизе Linux есть русские man'ы, поэтому с компиляцией ядра, я думаю, у вас проблем не возникнет. Если же у вас ядро "младше" версии 2.2.14, тогда придется его пропатчить.

Для этого идем сюда и закачиваем патч, написанный Vojtech Pavlik Если с этим адресом проблемы, то можно зайти на этот сайт и по поиску найти нужный патч (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 могут закачать ее по этому адресу, а пользователи RedHat по этому.

После всех "закачек" и установок двигаемся дальше. Набираем cd /dev. Если ваша USB директория находится здесь, то набираем ls и находим файл под именем lp0. Если этот файл присутствует, тогда вам остается только сконфигурировать свой принтер с помощью пакета Printtool.

А вот если этого файла нет, тогда придется его создать: mknod /dev/usb/lp0 c 180 0

Теперь вы имеете lp0, с его помощью вы сможете печатать на свой USB принтер. Если же у вас возникнут какие-нибудь проблемы с конфигурацией (конфигурированием) принтера, то рекомендую вам почитать USB HOWTO

Дальше. Запускаем Х'ы (как правило, startx) и конфигурируем принтер. Открываем XTerm (или другой терминал-эмулятор по выбору) и набираем printtool. "Кликаем" на кнопке Add, выбираем "Local Printer" и нажимаем ОК. Теперь переходим в текстовое окно секции "Printer Device" и набираем /dev/usb/lp0. Дальше с помощью кнопки выбора (select) выбираем "рабочий" драйвер вашего принтера. За более полной информацией обращайтесь к 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

Если в процессе работы "полезут" какие-нибудь ошибки, я вам рекомендую вернуться назад к окну компиляции, а еще лучше перед этим почитать 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 для вывода всех присутствующих операционных систем на вашем ПК. УДАЧИ

При написании данной статьи были использованы следующие материалы:

сайт Linux-USB.org (на этом сайте находится куча документации, в том числе и USB-HOWTO, а также link'и на различные сайты, где упоминается слово Linux. Одним словом, не проходите мимо)


Linuxdoc.org (документации - видимо-невидимо. Больше документации я видел только на русских сайтах, например, здесь :)

   



      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2012 LinuxRSP


Реклама: