Официальный форум СВД Встраиваемые Системы
18 Апрель, 2024, 11:54:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Печать в QNX 6.5.0  (Прочитано 4647 раз)
Shakout
Интересующийся

Сообщений: 7


« : 15 Декабрь, 2013, 13:12:40 »

Добрый день! Я сравнительно недавно стал разбираться с ОСРВ QNX, с тем что это такое и с чем это едят  Smiley
И вот столкнулся с проблемой, что не получается распечатать текст, несмотря на все мои манипуляции. Скажу сразу, что изучил все относительно печати в QNX, что удалось найти на просторах русскоязычного и зарубежного интернета, help-документацию и литературу, которую удалось найти.
Итак, система QNX 6.5.0 и принтер USB HP LJ P1005. Я подключаю принтер к USB разъему, система его видит, о чем свидетельствует результат выполнения утилиты usb -vvv | less. Создаю и настраиваю файл /etc/printcap следующим образом:
hpps|HPLJP1005|HP LaserJet P1005:\
    :lp=/dev/usbpar0:\
    :sd=/usr/spool/output/hpps:\
    :lf=/usr/adm/lpd-errs:\
    :mx#0:

Директория /usr/spool/output/hpps и файл /usr/adm/lpd-errs предварительно созданы.
Далее пытаемся произвести настройку USB стека посредством следующих команд:
io-usb -dehci
waitfor /dev/io-usb/io-usb

EHCI использую, т.к. Upstream Port Speed: High. В итоге от этой манипуляции толку мало, так как получаем сообщение:
io-usb already attached to /dev/io-usb/io-usb
usbdi_init_server_globals 16

Но я так понимаю, что это не страшно, ведь система уже видит принтер как usb устройство (usb -vvv | less), и дополнительная настройка посредством вышеприведенных команд не требуется.
Подключаю драйвер устройства: devu-prn, в результате чего в папке /dev/ мы получаем заветный файл usbpar0 (правда размером 0). На этом моменте меня настораживает то, что в директории /dev/ отсутствует папка /printers/. Но тем не менее продолжим. Далее просто приведу текст из консоли:
# lpd -l
# lprc enable all
hpps:
    queuing enabled
# lprc start all
hpps:
    printing enabled
    daemon started
# lprc status
hpps:
    queuing is enabled
    printing is enabled
    no entries
    hpps is ready and printing
# lpr -Phpps /tmp/ex.txt
# lprq -Phpps
no entries


Как мы видим, текстовый файл в данном случае даже не встает в очередь на печать. Хотя, если принтер вообще не подключать к компьютеру и сделать все тоже самое, что описано выше, то файлы в очередь становиться будут.

Вспомнил, что на одном из форумов я читал про проблему с USB принтером, в то время, как LPT принтер печатал нормально. Ну значит надо пробовать  Smiley
Нашел я LPT принтер HP LJ 1100 и попытался настроить его для печати в QNX 6.5.0. В принципе действия были все те же самые, за исключением того, что в файле /etc/printcap я изменил строчку :lp=/dev/usbpar0:\ на :lp=/dev/par1:\ и вместо devu-prn использовал devc-par. К сожалению я не знаю, как предварительно проверить, видит ли система LPT принтер, в pci -vvv | less я ничего конструктивно-полезного не нашел.
В итоге LPT принтер так же не печатает, как и USB, с той лишь разницей, что файл становится в очередь на печать (lprq -Phpps).
Пробовал я использовать и spooler заместо lpr, но в итоге консоль просто подвисает и толку ноль.

Прошу вас помочь мне разобраться с моей проблемой, потому как я уже не знаю куда смотреть и где копать Smiley Спасибо!
Записан
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #1 : 20 Декабрь, 2013, 11:32:02 »

Здравствуйте!

Извините за задержку с ответом. Постараюсь прокоментировать ваши вопросы. Скорее всего действительно не требуется запускать менеджер io-usb, т.к. при стандартной установке он запускается автоматически. Для уточнения ситуации приведите вывод утилиты usb -vvv.

Дополнительно понадобятся отладочные файлы. Для этого очистите журналы следующими командами:

Код:
# sloginfo -c
# echo > /var/log/syslog

Запустите slogger и syslogd, если они не запущены. Потом повторите действия с lpd и вышлите файл /var/log/syslog и вывод sloginfo.

Дополнительно сообщите, работает ли печать при выводе непосредственно в устройство:

Код:
# echo test > /dev/usbpar0
« Последнее редактирование: 20 Декабрь, 2013, 11:49:43 от Олег Большаков » Записан
Shakout
Интересующийся

Сообщений: 7


« Ответ #2 : 22 Декабрь, 2013, 16:31:16 »

Благодарю Вас за ответ! Мне все-таки удалось настроить печать для LPT принтера HP LJ 1100.
Файл /etc/printcap содержит следующее описание:
Код:
lpt1|LJ1100|HP LaserJet 1100:\
    :lp=/dev/par1:\
    :sd=/usr/spool/output/lpt1:\
    :lf=/usr/adm/lpd-errs:\
    :mx#0:\
    :sh:

В консоли используем приведенные ниже команды:
Код:
# enum-par
# devc-par
# spooler -d /dev/par1
После этого я могу печатать любым способом, как то печать с помощью lpd, с помощью cat > /dev/par1 и, разумеется, из ped  Smiley

Но, к сожалению, настроить подобным образом usb принтер у меня не получается. Файл /etc/printcap содержит описание как в мое первом сообщении. Далее пытаюсь сделать по аналогии с lpt:
Код:
# enum-usb
# devu-prn
# spooler -d /dev/usbpar0
В результате печать на usb принтер не работает. Если после команды enum-par выводилась информация, среди которой можно было увидеть название используемого lpt принтера, то после enum-usb мы видим следующую картину:
Код:
F651309
d651309 removal_id=0x10100 bus=usb ven=03f0 dev=3d17 class=07 subclass=01 proto=02 busno=01 devno=01 iface=00 rev=100 cfg=01 num_iface=1
F651309

Причем в этом моменте консоль зависает. Также консоль зависает после команды spooler -d /dev/usbpar0. И если после данной команды для lpt принтера в директории /dev/ мы получали папку printers с файлами настроек печати для нашего принтера, то, разумеется, после данных манипуляций для usb принтера мы ничего не получаем.
Если повторить действия с lpd то результат аналогичный, и файл в очередь на печать не становится. Печать при выводе непосредственно в устройство (echo test > /dev/usbpar0) так же не работает. Вывод sloginfo:
Код:
Time        Sev Major Minor Args
Вывод syslog:
Код:
Dec 22 09:28:36 localhost syslogd: restart
Dec 22 09:29:22 nto lpd[520235-1]: localhost requests printjob hpps
Dec 22 09:29:39 nto lpd[540715-1]: localhost requests printjob hpps


Записан
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #3 : 23 Декабрь, 2013, 15:58:34 »

Кое-что насторожило:

Также консоль зависает после команды spooler -d /dev/usbpar0.

И это тоже:

Печать при выводе непосредственно в устройство (echo test > /dev/usbpar0) так же не работает.

Почитал описание принтера HP LJ P1005. Похоже, что дело именно в нём. Принтер использует протокол XQX, который не поддерживается в QNX. Теоретически возможно разработать фильтр для этого протокола, но практически проще заменить принтер на один из совместимых (с поддержкой PCL и PostScript).
Записан
Shakout
Интересующийся

Сообщений: 7


« Ответ #4 : 23 Декабрь, 2013, 19:17:41 »

Странно, что данная модель принтера не поддерживается системой, ведь в списке, отображаемом командой:
Код:
phs-to-pcl -m list_supported file.phs > /dev/null

Команда spooler -d /dev/par1 также вызывала зависание консоли, пока я не стал предварительно использовать enum-par. Но вот только использование enum-usb c usb принтером не помогает.

Но если все же данная модель действительно не поддерживается, можно ли где-то найти список моделей, с которыми точно проблем не возникнет? Smiley
И если Вас не затруднит, можете привести список действий, как все-таки настроить usb принтер, или относительно настройки и подключения я все правильно делаю?
Записан
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #5 : 25 Декабрь, 2013, 11:45:59 »

В общем, Вы всё делаете правильно. К сожалению, списка моделей, с которыми точно не будет проблем у нас нет. Это в первую очередь связано с большим количеством моделей принтеров на рынке и регулярной сменой моделей. Если Вы ориентируетесь на марку HP, то перед покупкой убедитесь, что принтер поддерживает PCL и PostScript, обратите внимание, на то, чтобы принтер не требовал загрузки прошивки при подключении к ПК, в идеале принтер должен печатать текст отправленный в устройство (echo test > /dev/usbpar0).

На всякий случай привожу последовательность действий по настройке USB-принтера HP в QNX 6.5.0. Печать проверена нами на моделях HP LaserJet P2015dn и HP LaserJet 1200 Series.

1. Создать директорию /usr/spool/output/hpps и файл /usr/adm/lpd-errs .

2. Запустить драйвер devu-prn, если он не запущен.

3. Запустить spooler следующим образом:

Код:
# spooler -d /dev/usbpar0 -c /etc/printers/ps.cfg -n hpps

Теперь можно отправить на печать текст из программы Text Editor (ped).
« Последнее редактирование: 25 Декабрь, 2013, 19:36:06 от Олег Большаков » Записан
Shakout
Интересующийся

Сообщений: 7


« Ответ #6 : 25 Декабрь, 2013, 17:36:50 »

Спасибо Вам большое за помощь!

p.s. Опробовал на другом usb принтере (HP LaserJet 1320), все работает!) причем даже без директивы -c
« Последнее редактирование: 26 Декабрь, 2013, 21:08:03 от Shakout » Записан
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #7 : 29 Декабрь, 2013, 14:22:29 »

Рады узнать, что проблема успешно разрешилась.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 06 Апрель, 2024, 21:40:06