LINUX.ORG.RU

Сообщения Disona

 

Печать из Windows на принтере, который подключен к CUPS

Форум — General

Всем привет!

У меня возникла необходимость сделать общий доступ к принтеру, который подключается только по сети и не имеет драйверов для Linux.

Что у меня есть:

  1. Raspberry Pi (ОС — Raspbian Lite «Bookworm») с CUPS версии 2.4.2
  2. Принтер RICOH MP 2014AD — подключен к Raspberry Pi через USB (у принтера нет ни Wi-Fi, ни Ethernet).
  3. Принтер Samsung для тестирования, что CUPS работает.
  4. Компьютер с Windows.

Задача - распечатать что-нибудь с компа Windows на принтере Ricoh.

Raspberry Pi и Windows находятся в одной сети. CUPS вроде бы настроен правильно - я могу получить доступ к CUPS из браузера Windows через порт 631, могу управлять принтерами и всем остальным.
К этому же CUPS подключен другой принтер Samsung (он по WiFi подключен). Я могу из винды печатать документы на принтере Samsung, таким образом я делаю вывод, что и сам CUPS на Raspberry у меня работает, и связь между ним и виндой есть.

Дальше, что касается принтера Ricoh. Насколько я знаю, RICOH MP 2014AD не поддерживает IPP и все эти «бездрайверные» штуки. У него есть только драйверы для Windows (ну, на самом деле у него есть драйверы для Debian, но мне не нужно ничего печатать с компьютеров на Unix и вроде бы как эти драйверы устаревшие… короче я пока для себя считаю, что их нет).

Если я настраиваю этот принтер с драйвером «Raw» в интерфейсе CUPS, я не вижу этот принтер в списке принтеров на винде (имеется в виду через стандартное добавление принтеров «Добавить новый принтер» в разделе «Принтеры и сканеры» в Windows).

Но если я ставлю этот принтер с любым другим драйвером, например «Универсальный -> PCL 6…», то Windows видит этот принтер, но он ничего не печатает.

Но из того, что я узнал о системах печати за эти три дня, я решил, что мне нужен всё таки «Raw». То есть на винде будет драйвер принтера, который преобразует всё в нужный формат и отправит в CUPS, чтобы тот всё передал в принтер «как есть». Возможно я всё понял неправильно, конечно же…

Дальше, пытаясь заставить этот Ricoh обнаруживаться в сети с компа Windows, я узнал о сервисе «Samba». Значит, установил Samba на Raspberry. Сразу он не заработал, и я выяснил, что мне также нужен сервис «wsdd».

К слову замечу, что для меня эти samba и wsdd - практически бессмысленный набор букв, я просто по инструкциям из интернета вбивал команды в консоль и правил соответствующие конфиги, когда надо было.

Так вот, установил я этот WSDD, и тогда Raspberry появился в разделе «Сеть» в проводнике Windows. А принтер Ricoh появился как бы внутри Raspberry.

В Windows я попытался «подключить» этот принтер, выбрал для него официальные драйверы под Windows - в названии драйверов, кстати, есть аббревиатура DDST.

Но он всё равно не работает — когда я нажимаю «Пробная печать», ничего не происходит. CUPS не показывает никаких заданий в своём веб-интерфейсе для этого принтера — но я не уверен, что он должен что-то показывать.

И в общем на этом, дорогие друзья, у меня идеи закончились и я прошу вашей помощи.

Правильным ли я вообще иду путём? Может вообще это сделать невозможно? Или нужен не CUPS, а что-то другое? Или в целом всё верно но где-то недокрутил?

А то я даже не знаю, какие логи и как (ну «как» - это можно нагуглить) снять для дебага.

Всем заранее спасибо.

 , ,

Disona
()

Python скрипт не видит site-packages из Cron

Форум — General

Всем здравствуйте.

У меня Raspberry Pi с установленной Raspberry OS Desktop. Насколько я понимаю - это на базе Ubuntu (я в Linux-ах не очень понимаю, извинити).

Я хочу, чтобы при запуске Raspberry у меня автоматом запускался скрипт на Питоне и крутился там себе.

Скрипт я сначала проверил просто запуском и на винде, и на малине - он работает, как от него и ожидается.

Начитавшись гугла понял, что для моей задачи - запуск после загрузки - можно использовать крон.

Питоновый скрипт расположен вот так:

/home/pi/PyScripts/forumBotLin/RSSparser.py

В начале скрипта я прописал ''' !# usr/bin/python3 ''' и сделал сам скрипт исполняемым через «chmod». Его «исполняемость» видно в MidnightCommander - обозначен звёздочкой.

Дальше я пытался всеми правдами и неправдами заставить этот скрипт запускаться из крона напрямую, но никак не выходило. Вроде питон запускался, а скрипт почему-то не видел. В кроне я прописал так:

@reboot python3 /home/pi/PyScripts/forumBotLin/RSSparser.py >> /home/pi/BashScripts/cronlog2.log 2>&1 &

В логах было такое:

python3: can't open file '/home/pi/PyScripts/forumBotLin/RSSparser.py': [Errno 2] No such file or directory

Нагуглить решение быстро не вышло, поэтому в итоге я пришёл к такому «обходу»: написал bash-скрипт, запускающий мой python-скрипт, а кроном уже запускал этот bash-скрипт.

Содержимое bash-скрипта:

#!/bin/bash

cd /home/pi/PyScripts/forumBotLin/
python3 RSSparser.py

Содержимое расписание крона:

@reboot bash /home/pi/BashScripts/startRSSparser >> /home/pi/BashScripts/cronlog.log 2>&1 &

Вывод программы сделал в файл, как видите.

В терминале проверил, что bash нормально запускает скрипт - всё ок, работает.

В таком варианте по крайней мере после загрузки Raspberry скрипт на питоне начал хотя бы запускаться, но он тут же вылетал, потому что не мог загрузить нужный модуль. А когда вручную запускал - всё было нормально.

Чтобы посмотреть, где питон берёт модули при запуске кроном, я в начале скрипта добавил вывод PATH самого питона:

import sys
print(sys.executable)
for path in sys.path:
	print(path)

После чего в логах отработки скрипта после загрузки малины увидел следующее:

/usr/bin/python3
/home/pi/PyScripts/forumBotLin
/usr/lib/python37.zip
/usr/lib/python3.7
/usr/lib/python3.7/lib-dynload
/usr/local/lib/python3.7/dist-packages
/usr/lib/python3/dist-packages

Так вот, тут нету на мой взгляд самого главного - site-packages. Если я запускаю из терминала python3 и там в интерактивном режиме таким же образом вывожу PATH, то вижу следующее:

/usr/lib/python37.zip
/usr/lib/python3.7
/usr/lib/python3.7/lib-dynload
/home/pi/.local/lib/python3.7/site-packages
/usr/local/lib/python3.7/dist-packages
/usr/lib/python3/dist-packages

Вот тут есть site-packages, где и расположен нужный моему скрипту модуль (как я понимаю, там все загружаемые pip-ом модули сидят).

Подскажите, пожалуйста, дорогие друзья, что я делаю не так? Или что мне надо погуглить в какую сторону? Я так и не смог найти ответа.

 ,

Disona
()

RSS подписка на новые темы