RX и проброс принтера (/usr/lib/cups/filter/gstoraster failed)

Модераторы: dimbor, Модераторы разделов

maxvit
Сообщения: 15

RX и проброс принтера

Сообщение maxvit »

Возникла проблема с пробросом принтера в RX. Клиенты - NX от NoMachine.
Используется:

Код: Выделить всё

ENABLE_CUPS_SERVER_MODE="1"


Сам принтер пробрасывается, в cups появляется, но при попытке отправить печать на него выкидывает ошибку:

Код: Выделить всё

Остановлено "/usr/lib/cups/filter/gstoraster failed".

Если сменить драйвер, то ругается на другой фильтр.

В логе cups еще есть:

Код: Выделить всё

D [27/Mar/2014:15:23:16 +0400] [Job 636] Calling FindDeviceById(max_hp5550)
D [27/Mar/2014:15:23:16 +0400] [Job 636] Failed to send: org.freedesktop.ColorManager.Failed:device id 'max_hp5550' does not exists
D [27/Mar/2014:15:23:16 +0400] [Job 636] Failed to get profile filename!
I [27/Mar/2014:15:23:16 +0400] [Job 636] no profiles specified in PPD
D [27/Mar/2014:15:23:16 +0400] [Job 636] Set job-printer-state-message to "no profiles specified in PPD", current level=INFO

D [27/Mar/2014:15:23:18 +0400] PID 5961 (/usr/lib/cups/filter/hpcups) did not catch or ignore signal 13.
D [27/Mar/2014:15:23:18 +0400] PID 5960 (/usr/lib/cups/filter/gstoraster) stopped with status 13.
E [27/Mar/2014:15:23:18 +0400] [Job 636] Job stopped due to filter errors; please consult the error_log file for details.


При том, если просто добавить принтер в cups через smb (тестовый принтер и сервер находятся в одной сети), то на печать отправляется нормально.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

maxvit писал(а):
27.03.2014 15:37
[code]D [27/Mar/2014:15:23:16 +0400] [Job 636] Calling FindDeviceById(max_hp5550)
D [27/Mar/2014:15:23:16 +0400] [Job 636] Failed to send: org.freedesktop.ColorManager.Failed:device id 'max_hp5550' does not exists
D [27/Mar/2014:15:23:16 +0400] [Job 636] Failed to get profile filename!
I [27/Mar/2014:15:23:16 +0400] [Job 636] no profiles specified in PPD
D [27/Mar/2014:15:23:16 +0400] [Job 636] Set job-printer-state-message to "no profiles specified in PPD", current level=INFO

С умным видом можно сказать, что hpcups не нравится окружение, под которым запускается его фильтр при печати под сессией. Или даже из под nxredir оно работать не хочет.
А с уже давно устойчиво глупым (видом) - имею заявить, что с проприетарным hpcups печать не тестировалась. Случаев, когда оно работает, также не отмечено.
Свой довольно приличный хьюлетовский зоопарк успешно эксплуатирую под foo2???.
Спасибо сказали:
maxvit
Сообщения: 15

Re: RX и проброс принтера

Сообщение maxvit »

Bedazzled писал(а):
27.03.2014 16:26
система какая??


Ubuntu 12.04.3 32bit

Bedazzled писал(а):
27.03.2014 16:26
ТЫТЫЦЦ

Я это уже все по несколько раз перечитал, не помогает)

dimbor, вот и не понятно даже, куда копать, в логах ничего адекватного.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Идиотский вопрос, логи точно серверные? А то некоторые умудряются между линуксами по smb печать гонять.
Для начала порекомендовал бы взять у меня с гита /usr/bin/nxnode. Что там в rx сейчас, не разбирался. Это на всякий. И плюс по дровам я там переписывал.

Если принтер цепляется, следовательно порт прокидывается и доступен. Значит nx свое дело делает. Чой-то не нравится купсу при отправке задания через nxsmb. Напрашивается выкрутить логи купса на максимум и их курить. А то сейчас видно что только фильтр умирает, а отчего - хз. Предположение написал в прошлом сообщении.

А ежели сервак тестовый, то могу сам полазить по ssh с последующим отчетом. Благо дома сейчас два хьюлета стоят.
Некоторым доверившимся это помогало.
Спасибо сказали:
maxvit
Сообщения: 15

Re: RX и проброс принтера

Сообщение maxvit »

dimbor писал(а):
27.03.2014 23:31
Для начала порекомендовал бы взять у меня с гита /usr/bin/nxnode. Что там в rx сейчас, не разбирался. Это на всякий. И плюс по дровам я там переписывал.


С другим nxnode другие и ошибки)

Код: Выделить всё

28.03 00:46:19: cmd_node_addprinter (14382): wait for smb-port 1
28.03 00:46:19: check_remote_printer (14382): starting with args "smb hp5550 5000 Max ****"
28.03 00:46:19: check_remote_printer (14382): invoke command "/usr/bin/rpcclient -U Max%**** -c 'openprinter hp5550' -p 139 -I 127.0.0.1
127.0.0.1 2>&1"
28.03 00:46:28: check_remote_printer (14382): on attempt 1 says "ERROR: ld.so: object '/usr/lib/i386-linux-gnu/freenx-server/libnxredir.so.0' from LD_PRELOAD cannot be preloaded: ignored.
Cannot connect to server.  Error was NT_STATUS_NO_LOGON_SERVERS"
28.03 00:46:37: check_remote_printer (14382): on attempt 2 says "ERROR: ld.so: object '/usr/lib/i386-linux-gnu/freenx-server/libnxredir.so.0' from LD_PRELOAD cannot be preloaded: ignored.
Cannot connect to server.  Error was NT_STATUS_NO_LOGON_SERVERS"
Спасибо сказали:
maxvit
Сообщения: 15

Re: RX и проброс принтера

Сообщение maxvit »

С этим разобрался, не тот путь в nxnode был.

Ошибка принтера осталась та же.

(dimbor) писал(а):Идиотский вопрос, логи точно серверные? А то некоторые умудряются между линуксами по smb печать гонять.

Серверные, var/log/cups/error_log.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Стоп! А почему порт 139-й ??? Да, с smb все начиналось, но теперь оно как бе и работать не должно.
SAMBA_MOUNT_SHARE_PROTOCOL должно быть "cifs" однако. А клиенты мелкософта типоразмера "HOME" борются другим образом - второй абзац.

ЗЫ: Там кстати далее описан еще один способ печати, который я использую как альтернативу услуг Почты России извращению, посоветованному постом выше.
Спасибо сказали:
maxvit
Сообщения: 15

Re: RX и проброс принтера

Сообщение maxvit »

В общем удалось отправить на печать, причем через smb, а не cifs... Делал следующее:

Решил посмотреть nxsmb, подумал, что может в нем затык. Решил для начала запустить его:
# /usr/lib/cups/backend/nxsmb
А он сразу мне:

Код: Выделить всё

/usr/lib/cups/backend/nxsmb: 303: /usr/bin/nxloadconfig: Syntax error: "(" unexpected (expecting ";;")


Ладно, смотрим, что там 300-х строках nxloadconfig:

Код: Выделить всё

case "$OS" in
       "SunOS 5.10")
               function which()
               {
                       [ -e "$1" ] && echo $1 && return 0
                       [ -z "$1" ] && return 1
                       for i in  $(echo $PATH | tr ":" "\n"); do
                               [ -e $i/$1 ] && echo $i/$1 && return 0
                       done
                       return 1
               }
       ;;
esac

Хз, что тут не так. Решил сравнить nxsmb от etersoft и nxsmb от dimbor:
Etersoft nxsmb:
Spoiler

# Read the config file
. $(PATH=$(cd $(dirname $0) && pwd):$PATH which nxloadconfig) --

COMMAND_SMB="$CUPS_BACKEND/smb"

PORT=$(echo $DEVICE_URI | cut -d/ -f3 | cut -d@ -f2 | cut -d: -f2)
PROTOCOL=$(echo $DEVICE_URI | cut -d/ -f4)
PRINTER=$(echo $DEVICE_URI | cut -d/ -f5)

if [ -z "$PRINTER" ] # old style setup
then
echo "Warning: Not using nxredir library. The DEVICE_URI is not in the right format."
exec "$COMMAND_SMB" "$@"
fi

REAL_PORT="445" # CIFS
DEVICE_URI=$(echo $DEVICE_URI | sed "s|:$PORT/$PROTOCOL/|:$REAL_PORT/|g")
export DEVICE_URI=$(echo $DEVICE_URI | sed "s|nxsmb://|smb://|g")

export NXSAMBA_PORT="$PORT"

exec $PATH_BIN/nxredir "$COMMAND_SMB" "$@"


nxsmb от dimbor:
Spoiler

CUPS_BACKEND="/usr/lib/cups/backend"
PATH_LIB="/usr/lib"

NXREDIR_LIBRARY="$PATH_LIB/freenx-server/libnxredir.so.0"
COMMAND_SMB="$CUPS_BACKEND/smb"

PORT=$(echo $DEVICE_URI | cut -d/ -f3 | cut -d@ -f2 | cut -d: -f2)
PROTOCOL=$(echo $DEVICE_URI | cut -d/ -f4)
PRINTER=$(echo $DEVICE_URI | cut -d/ -f5)

if [ -z "$PRINTER" ] # old style setup
then
echo "Warning: Not using nxredir library. The DEVICE_URI is not in the right format."
exec "$COMMAND_SMB" "$@"
fi

if [ ! -x "$NXREDIR_LIBRARY" ]
then
# repair DEVICE_URI
DEVICE_URI=$(echo $DEVICE_URI | sed "s|/$PROTOCOL||g")
echo "Error: Not using nxredir library. $NXREDIR_LIBRARY could not be found or is not executable."
exec "$COMMAND_SMB" "$@"
fi

if [ "$PROTOCOL" = "cifs" -o "$PROTOCOL" = "CIFS" ]
then
REAL_PORT="445"
else
REAL_PORT="139"
fi

DEVICE_URI=$(echo $DEVICE_URI | sed "s|:$PORT/$PROTOCOL/|:$REAL_PORT/|g")
export DEVICE_URI=$(echo $DEVICE_URI | sed "s|nxsmb://|smb://|g")
export NXSAMBA_PORT="$PORT"
export LD_PRELOAD="$NXREDIR_LIBRARY${LD_PRELOAD:+:$LD_PRELOAD}"

exec "$COMMAND_SMB" "$@"

Отличия заметны)
Заменил nxnode и nxsmb от dimbor. Попробовал отправить на печать, все отлично, на windows клиент пришло задание печати.

Теперь про smb. В конфиге от etersoft параметра SAMBA_MOUNT_SHARE_PROTOCOL просто нет. Добавил сам, в итоге через cifs печатать не хочет, в cups'е ошибка:

Код: Выделить всё

Connection failed: NT_STATUS_BAD_NETWORK_NAME


Как то так, то ли в RX все сломано с пробросом принтеров, то ли я что-то не то делаю.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

maxvit писал(а):
28.03.2014 18:16
Теперь про smb. В конфиге от etersoft параметра SAMBA_MOUNT_SHARE_PROTOCOL просто нет. Добавил сам, в итоге через cifs печатать не хочет, в cups'е ошибка:

Код: Выделить всё

Connection failed: NT_STATUS_BAD_NETWORK_NAME


Как то так, то ли в RX все сломано с пробросом принтеров, то ли я что-то не то делаю.


Какой-то rx значит доисторический. Там уже давно node.conf оставлен ради какой-то сферической обратной совместимости. А в его роли выступают файлики в каталоге node.conf.d.
Тогда уж и nxloadconfig меняйте с коррекцией путей там тоже и дальнейшим удовлетворением nxloadconfig --check.
По моему, я тут где-то квест с конфигами выкладывал и про убунту.

Хотя если по кифс принтер подключается, а при печати NT_STATUS_BAD_NETWORK_NAME - это что-то новенькое.
Обычно оно еще при проверке rpcclient вылазит с последующим непоцеплением принтера.
Спасибо сказали:
maxvit
Сообщения: 15

Re: RX и проброс принтера

Сообщение maxvit »

dimbor писал(а):
28.03.2014 20:44
Какой-то rx значит доисторический. Там уже давно node.conf оставлен ради какой-то сферической обратной совместимости. А в его роли выступают файлики в каталоге node.conf.d.

В node.conf.d и меняю, node.conf - пустой.

Версию, вроде бы последнюю брал:
# aptitude show rx-etersof
Версия: 1.1.3-eter7ubuntu

# aptitude show nx
Версия: 3.5.1-eter12ubuntu
Спасибо сказали:
maxvit
Сообщения: 15

Re: RX и проброс принтера

Сообщение maxvit »

Еще глупый вопрос: порт 139 или 445 порт прокидывается от сервера rx до клиента или преобразуется в 139 или 445 только на клиенте (т.е. должны быть разрешены порты 139, 445 от сервера до клиента)?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Что один, что другой порт "обжимаются" с обеих сторон - засовываются в сессионный туннель ssh. С одной стороны делается средствами sshd + freenx (nxredir нужен для создания "нескольких одинаковых" портов со стандартным номером на серверном localhost). Со стороны клиента - nxssh.exe плюс сам клиент.
Следствие - открывать порты казалось бы не надо. Со стороны сервера - localhost сам себе царь горы как правило. С клиентом сложнее: за денежку малую или варезно можно себя от себя отфаерволить до полного изумления. Т.е. под виндой надо разбираться с каждым таким продуктом отдельно.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

maxvit писал(а):
28.03.2014 21:19
Версию, вроде бы последнюю брал:
# aptitude show rx-etersof
Версия: 1.1.3-eter7ubuntu

Лучше 1.1.2. 1.1.3 вроде знаменита тем, что они там скрипты/пути переименовали к хреням собачьим. Мало было путаницы.
Когда хочется прософтить сервер с нуля, лично ставлю 1.1.2. Далее просто перезаписываю гитом и исправляю косяки с путями под систему.
Спасибо сказали:
maxvit
Сообщения: 15

Re: RX и проброс принтера

Сообщение maxvit »

В общем, разобрался я с пробросом принтера в RX 1.1.3:
1. В nxsmb убрал строчку:

Код: Выделить всё

. $(PATH=$(cd $(dirname $0) && pwd):$PATH which nxloadconfig) --

и прописал:

Код: Выделить всё

CUPS_BACKEND="/usr/lib/cups/backend"
PATH_BIN="/usr/bin"


2. В nxredir тоже строку вызова конфига заменил на:

Код: Выделить всё

PATH_LIB="/usr/lib/i386-linux-gnu"
NXREDIR_LIBRARY="$PATH_LIB/rx-etersoft/libnxredir.so.0"


3. Добавил патч от dimbor в nxnode, чтобы работал проброс в Home версиях windows.

dimbor, спасибо за консультации)
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Да ерунда. Обращайтесь, если что.
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

Добрый день!
Уважаемые, подскажите, пожалуйста, как настроить проброс локальных ресурсов, в частности, локального принтера?
Имеется:
ОС ALT Linux 7.0.5 Centaurus
nx-server 3.2.0-74-SVN
etercifs 5.4.8
cups.conf и samba.conf (из /etc/nxserver/node.conf.d) во вложении.

Проблема в следующем. При подключении клиента выдается сообщение Share: '//ARTUR-PC/test' failed to mount. При этом в messages ничего по этому поводу нет, в логах самбы тоже.
Насчет принтера, когда в cups.conf было ENABLE_CUPS_SERVER_MODE="0", то при подключении клиента появлялся диалог выбора принтера, после добавления он появлялся в оснастке "печать", но печать при этом на него не шла. В cups_error.log было что-то по поводу отсутствия доступа. После правки разрешений на каталоги те ошибки из лога cups исчезли, но появилась другая:
[cups-deviced] Bad line from "nxsmb": Warning: Not using nxredir library. The DEVICE_URI is not in the right format.

Вот содержимое nxsmb:
Spoiler
#!/bin/sh
#
# nxsmb: Small wrapper for the SMB backend to be able to print to CIFS or SMB ports directly.
#
# Copyright © 2008 by Fabian Franz.
#
#

# turn on DEBUG?
#set -x -v
CUPS_BACKEND="/usr/lib/cups/backend"
PATH_LIB="/usr/lib64"

NXREDIR_LIBRARY="$PATH_LIB/freenx-server/libnxredir.so.0"
COMMAND_SMB="$CUPS_BACKEND/smb"

PORT=$(echo $DEVICE_URI | cut -d/ -f3 | cut -d@ -f2 | cut -d: -f2)
PROTOCOL=$(echo $DEVICE_URI | cut -d/ -f4)
PRINTER=$(echo $DEVICE_URI | cut -d/ -f5)

if [ -z "$PRINTER" ] # old style setup
then
echo "Warning: Not using nxredir library. The DEVICE_URI is not in the right format."
exec "$COMMAND_SMB" "$@"
fi

if [ ! -x "$NXREDIR_LIBRARY" ]
then
# repair DEVICE_URI
DEVICE_URI=$(echo $DEVICE_URI | sed "s|/$PROTOCOL||g")
echo "Error: Not using nxredir library. $NXREDIR_LIBRARY could not be found or is not executable."
exec "$COMMAND_SMB" "$@"
fi

if [ "$PROTOCOL" = "cifs" -o "$PROTOCOL" = "CIFS" ]
then
REAL_PORT="445"
else
REAL_PORT="139"
fi

DEVICE_URI=$(echo $DEVICE_URI | sed "s|:$PORT/$PROTOCOL/|:$REAL_PORT/|g")
export DEVICE_URI=$(echo $DEVICE_URI | sed "s|nxsmb://|smb://|g")

export NXSAMBA_PORT="$PORT"
export LD_PRELOAD="$NXREDIR_LIBRARY${LD_PRELOAD:+:$LD_PRELOAD}"

exec "$COMMAND_SMB" "$@"


nxredir:
Spoiler
#!/bin/sh

PATH_LIB="/usr/lib64"
NXREDIR_LIBRARY="$PATH_LIB/freenx-server/libnxredir.so.0"

if [ -z "$NXCUPS_PORT" -a -z "$NXSAMBA_PORT" ]
then
echo "nxredir: Redirect standard ports to nxproxy"
echo ""
echo "Usage: export NXCUPS_PORT='where_cups_is_running'"
echo " export NXSAMBA_PORT='where_samba_is_running'"

# invoke the program with the args given
exec "$@"
exit 0
fi

export LD_PRELOAD="$NXREDIR_LIBRARY${LD_PRELOAD:+:$LD_PRELOAD}"

# invoke the program with the args given
exec "$@"


Сейчас в cups.conf ENABLE_CUPS_SERVER_MODE="1", при подключении клиента в веб-интерфейсе cups жму "найти принтер", после в логе cups_error.log та же ошибка: [cups-deviced] Bad line from "nxsmb": Warning: Not using nxredir library. The DEVICE_URI is not in the right format.

Подскажите, пожалуйста, где какие настройки проверить, чтобы заработал проброс ресурсов?
Вложения
10_samba.conf
(1.3 КБ) 14 скачиваний
09_cups.conf
(1.92 КБ) 14 скачиваний
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Мало данных, напишите
NX_LOG_LEVEL="7"
SESSION_LOG_CLEAN=0

в node.conf.d/03-logging.conf,
После сессии появится ~/.nx/nxnode*.log, скорее всего там можно прочесть ответ на вопрос.
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

dimbor писал(а):
27.05.2014 15:23
Мало данных, напишите
NX_LOG_LEVEL="7"
SESSION_LOG_CLEAN=0

в node.conf.d/03-logging.conf,
После сессии появится ~/.nx/nxnode*.log, скорее всего там можно прочесть ответ на вопрос.

В nxnode-***.log:
Spoiler
27.05 16:44:07: /usr/bin/nxnode (9939): run nxnode with CMDLINE "a=b&&type=smb&port=5000&username=guest&share=Samsung ML-2010 Series&computername=SUPPORT-1&session_id=EC8FA101F7821F8291B69E7D7CF2E62E&model=NULL&defaultPrinter=1&public=1"
27.05 16:44:07: cmd_node_addprinter (9939): starting
27.05 16:44:08: cmd_node_addprinter (9939): set NAME = Samsung; smbport=445; DEVICE_URI=nxsmb://olegans:@23****@127.0.0.1:5000/cifs/Samsung
27.05 16:44:08: cmd_node_addprinter (9939): run with ENABLE_CUPS_SERVER_MODE=1
27.05 16:44:09: node_start_applications (9360): Run "numlockx on"
27.05 16:44:09: node_find_application (9360): end
27.05 16:44:09: node_find_application (9360): return NODE_STARTX="/etc/X11/Xsession"
27.05 16:44:09: node_find_application (9360): starting with args "unix-default"
27.05 16:44:09: node_start_applications (9360): Got NODE_APPLICATION is "/etc/X11/Xsession"
27.05 16:44:09: node_start_applications (9360): Starting NODE_APPLICATION with /etc/nxserver/Xsession
27.05 16:44:09: node_start_applications (9360): Start successful. NODE_APP_PID=10291
27.05 16:44:09: node_start_applications (9360): Waiting for NODE_APP_PID
27.05 16:44:09: cmd_node_addprinter (9939): FAILED getting list of drivers from foomatic db for printer id "Samsung". Printer not installed.


Понятно, что не может получить список драйверов для этого принтера. Как указать, какой ppd нужен?
Пробовал добавлять вручную с такой строкой: nxsmb://127.0.0.1:5000/cifs/Samsung, указал путь к ppd, принтер добавился. Но после отправки на печать пробной страницы в веб-морде cups на вкладке "задания": Session setup failed: NT_STATUS_LOGON_FAILURE". Проблема с доступом? Как правильно добавить этот принтер?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Один, два. Если nxnode мой брать, что там сейчас в альте - я хз.
Форум рядом почитать тоже очень помогает. Все жевано - пережевано давно.
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

Создал каталог /etc/nxserver/ppd/ закинул туда .ppd для своего принтера, переименовал сам принтер в win так, чтобы имя шары совпадало с именем .ppd, создал локальную учетку в win (ранее была доменная учетка), дал права на неё. Теперь принтер драйвера находит, но не устанавливается. В логах:
Spoiler
28.05 21:45:45: startsession (27400): starting with args ""
28.05 21:45:48: startsession (27400): generate "/home/locadmin/.nx/C-1c-server.localdomain-2000-1E2FFEADE31C97486831D6D689442821/options"
28.05 21:45:48: startsession (27400): write xauth script file
28.05 21:45:48: startsession (27400): call 'node_start_agent'
28.05 21:45:48: startsession (27400): call 'node_start_applications'
28.05 21:45:48: node_start_monitor_2_0_0 (27400): starting
28.05 21:45:48: node_start_applications (27400): source profile
28.05 21:45:48: node_start_applications (27400): starting
28.05 21:45:48: node_start_monitor (27400): staring
28.05 21:45:48: node_start_agent (27400): starting
28.05 21:45:48: node_start_monitor (27400): call 'node_start_monitor_2_0_0 ""'
28.05 21:45:48: node_start_agent (27400): source profile
28.05 21:45:48: node_start_applications (27400): source bash profile
28.05 21:45:48: node_start_applications (27400): DISPLAY is 2000
28.05 21:45:48: node_start_agent (27400): Start nxagent by command: '/usr/bin/nxagent -nopersistent -D -name "NX - locadmin@1c-server.localdomain:2000 - 1c-server (GPL Edition)" -option "/home/locadmin/.nx/C-1c-server.localdomain-2000-1E2FFEADE31C97486831D6D689442821/options" -nolisten tcp -dpi 96 :2000'
28.05 21:45:48: node_start_agent (27400): env end
28.05 21:45:48: node_start_agent (27400): env start LESSKEY=/etc/.less
XDG_SESSION_ID=31
HOSTNAME=1c-server.localdomain
NX_CLIENT=/usr/bin/nxdialog
SHELL=/bin/bash
HISTSIZE=999
SSH_CLIENT=127.0.0.1 49851 22
TMPDIR=/tmp/.private/locadmin
JRE_HOME=/usr/lib/jvm/jre
HISTFILESIZE=9999
USER=locadmin
LD_LIBRARY_PATH=/usr/lib64:
SYSTEMD_PAGER=/usr/bin/less -FR
MINICOM= -c on -8
NXSESSIONID=1c-server.localdomain-2000-1E2FFEADE31C97486831D6D689442821
PATH=/home/locadmin/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/games
MAIL=/var/mail/locadmin
SHADOW_XAUTHORITY=/home/locadmin/.nx/C-1c-server.localdomain-2000-1E2FFEADE31C97486831D6D689442821/authority
PWD=/home/locadmin
LANG=ru_RU.UTF-8
SSH_KEY_FINGERPRINT=d6:ab:e9:09:2a:0b:0f:38:97:61:99:37:b7:c8:e8:ef
SSH_ASKPASS=/usr/lib/openssh/ssh-askpass
HOME=/home/locadmin
SHLVL=2
BASH_ENV=/home/locadmin/.bashrc
LESS=-MM
G_FILENAME_ENCODING=utf8
LOGNAME=locadmin
TMP=/tmp/.private/locadmin
SSH_CONNECTION=127.0.0.1 49851 127.0.0.1 22
LESSOPEN=|/usr/share/less/lesspipe.sh %s
DISPLAY=nx/nx,options=/home/locadmin/.nx/C-1c-server.localdomain-2000-1E2FFEADE31C97486831D6D689442821/options:2000
XDG_RUNTIME_DIR=/run/user/500
G_BROKEN_FILENAMES=1
XAUTHORITY=/home/locadmin/.nx/C-1c-server.localdomain-2000-1E2FFEADE31C97486831D6D689442821/authority
_=/usr/bin/env
28.05 21:45:48: node_start_agent (27400): source bash profile
28.05 21:45:48: node_start_agent (27400): NXAgent session type
28.05 21:45:48: node_start_agent (27400): Wait for NODE_AGENT_PID (27891)
28.05 21:45:48: /usr/bin/nxnode (27979): run nxnode with CMDLINE "a=b&&type=smb&port=5000&username=winadmin&password=****&share=ml2015&computername=SUPPORT-1&session_id=1E2FFEADE31C97486831D6D689442821&model=NULL&defaultPrinter=1&public=1"
28.05 21:45:48: cmd_node_addprinter (27979): starting
28.05 21:45:49: cmd_node_addprinter (27979): set NAME = ml2015; smbport=445; DEVICE_URI=nxsmb://winadmin:****@127.0.0.1:5000/cifs/ml2015
28.05 21:45:49: cmd_node_addprinter (27979): run with ENABLE_CUPS_SERVER_MODE=1
28.05 21:45:49: cmd_node_addprinter (27979): set PNAME = "SUPPORT-1_ml2015", try to install "ml2015.ppd"
28.05 21:45:50: check_remote_printer (27979): starting with args "ml2015 5000 winadmin ****"
28.05 21:45:50: check_remote_printer (27979): invoke command "/usr/bin/rpcclient -U winadmin%**** -c 'openprinter ml2015' -p 445 -I 127.0.0.1 127.0.0.1"
28.05 21:45:50: check_remote_printer (27979): on attempt 1 says "Cannot connect to server. Error was NT_STATUS_LOGON_FAILURE"
28.05 21:45:50: check_remote_printer (27979): on attempt 2 says "Cannot connect to server. Error was NT_STATUS_LOGON_FAILURE"
28.05 21:45:50: check_remote_printer (27979): on attempt 3 says "Cannot connect to server. Error was NT_STATUS_LOGON_FAILURE"
28.05 21:45:50: check_remote_printer (27979): on attempt 4 says "Cannot connect to server. Error was NT_STATUS_LOGON_FAILURE"
28.05 21:45:50: check_remote_printer (27979): on attempt 5 says "Cannot connect to server. Error was NT_STATUS_LOGON_FAILURE"
28.05 21:45:50: check_remote_printer (27979): end with res = 1
28.05 21:45:50: cmd_node_addprinter (27979): smb/cifs share "ml2015" (mport:5000) NOT ACCESSIBLE stop adding.
28.05 21:45:50: node_start_applications (27400): Run "numlockx on"
28.05 21:45:50: node_find_application (27400): starting with args "unix-default"
28.05 21:45:50: node_find_application (27400): return NODE_STARTX="/etc/X11/Xsession"
28.05 21:45:50: node_find_application (27400): end
28.05 21:45:50: node_start_applications (27400): Got NODE_APPLICATION is "/etc/X11/Xsession"
28.05 21:45:50: node_start_applications (27400): Preload SAMBA using nxredir. NXSAMBA_PORT is "5000"
28.05 21:45:50: node_start_applications (27400): Waiting for NODE_APP_PID
28.05 21:45:50: node_start_applications (27400): Starting NODE_APPLICATION with /etc/nxserver/Xsession
28.05 21:45:50: node_start_applications (27400): Start successful. NODE_APP_PID=28459.


Причем, если комманду ""/usr/bin/rpcclient -U winadmin%пароль -c 'openprinter ml2015' -p 445 -I 127.0.0.1 127.0.0.1" выполнить в консоли, то она возвращает: Printer ml2015 opened successfully. Что за х...

Вручную принтер добавляется с DEVICE_URI=nxsmb://winadmin:пароль@127.0.0.1:5000/cifs/ml2015 и печатает.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Olegans писал(а):
28.05.2014 21:53
Причем, если комманду ""/usr/bin/rpcclient -U winadmin%пароль -c 'openprinter ml2015' -p 445 -I 127.0.0.1 127.0.0.1" выполнить в консоли, то она возвращает: Printer ml2015 opened successfully. Что за х...

Мистика, не иначе. Приведенная строчка шпилит реальный 445 порт на серверном локалхосте. Не завалялась ли там самба с подключенным одноименным принтером? Другого объяснения не нахожу. Для того, чтобы полностью смоделировать поведение при подключении, надо ее запускать в окружении LDPRELOAD=тру-ля-ля/nxredir.so. Дабы порт пробрасывался.

Olegans писал(а):
28.05.2014 21:53
Вручную принтер добавляется с DEVICE_URI=nxsmb://winadmin:пароль@127.0.0.1:5000/cifs/ml2015 и печатает.

Кстати, может клиент на Win HOME? Если так, то механизм проверки принтера там не работает.
Выход - взять nxnode у меня с гита, поправить там внутри пути типа "/usr/lib..." на актуальные при необходимости. К имени вин-шары добавить "-nocheck". Как раз на этот случай и было задумано.
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

Моя крыша сейчас рухнет... Пытаюсь подключиться с линуксового клиента (ОС та же - Alt linux p7), расшарил принтер, при старте клиента мне NX пишет "can't launch cups server".
Уважаемый dimbor, скажите, пожалуйста, вот с этим Печать на клиентском принтере - ну полный ipp что делать? Заменить /usr/bin/nxprint?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Только теперь я не понял, с прошлыми вопросами это все как соотносится? Если клиенты только линуксовые, то нахрена был nxsmb?
ipp же есть. Ну и да, подкладывать собственный nxprint под родной _на_клиенте_ нужно, чтобы сервер (с помощью curl) смог вытащить с клиента ppd.
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

dimbor писал(а):
30.05.2014 20:57
Только теперь я не понял, с прошлыми вопросами это все как соотносится? Если клиенты только линуксовые, то нахрена был nxsmb?

Клиенты разные - и win (несколько машин) и lin. Но линуксовых больше. На виндовых я пока забил, т.к. в первую очередь надо запустить линуксовых клиентов.

Извиняюсь за тупой вопрос, но что имеется ввиду: "подкладывать собственный nxprint под родной"?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »

Olegans писал(а):
30.05.2014 22:53
что имеется ввиду: "подкладывать собственный nxprint под родной"?


копируем код в текстовый,и обзываем файл nxprint. При этом оригинальный файл надо переименовать в nxprint.orig. Ну и плюс в новом путь к нему заменить на на /usr/bin/, или где он там.
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

dimbor писал(а):
30.05.2014 23:24
Olegans писал(а):
30.05.2014 22:53
что имеется ввиду: "подкладывать собственный nxprint под родной"?


копируем код в текстовый,и обзываем файл nxprint. При этом оригинальный файл надо переименовать в nxprint.orig. Ну и плюс в новом путь к нему заменить на на /usr/bin/, или где он там.


В общем, поднял тестовый сервер на вируалке (всё тот же Alt linux p7), установил nx и rx (только теперь nx ставил не "из коробки" а уже после установки ОС, предварительно добавив репозиторий etersoft). Теперь на сервере имею: nx-3.5.1-alt12 и rx-etersoft-1.1.2-alt16.M70P.17.
Поправил конфиги, перезапустил. Виндовый принтер пробросился на ура. И даже запечатал)) А вот с линуксовым проблема осталась. Пробовал этот скрипт:
Spoiler
!/bin/sh
ud="/home/$USER/.nx/cups/ppd"
mkdir -p "$ud" 2>&1 >/dev/null
for fn in /etc/cups/ppd/*.ppd ; do
nfn="$(basename "$fn" | sed "s/\.ppd/_nxdl\.ppd/")"
cp "$fn" "$ud/$nfn" 2>&1 >/dev/null
done
exec /usr/lib64/nxclient/bin/nxprint "$@"

подкладывать в /usr/bin вместо тамошнего - в альте, оказывается, уже есть своя прослойка под nxprint:
Spoiler
#!/bin/bash
#
# nxprint - Prints a list of available drivers or printers
#
# Copyright © 2005 by Fabian Franz <freenx@fabian-franz.de>
#
# License: GPL, version 2
#
# SVN: $Id: nxprint 512 2008-03-10 23:01:03Z fabianx $
#

HELP="no"
DRIVERS="no"
PRINTERS="no"

while [ "$1" ]
do
case "$1" in
--help) HELP="yes"; shift ;;
--drivers|-d) DRIVERS="yes"; shift ;;
--printers|-l) PRINTERS="yes"; shift ;;
--) shift ; break ;;
*) echo "Invalid flag $1" ; HELP="yes"; shift ; break ;;
esac
done

[ "$DRIVERS" = "no" -a "$PRINTERS" = "no" ] && HELP="yes"

if [ "$HELP" = "yes" ]
then
echo "nxprint - Prints a list of available drivers or printers"
echo ""
echo "Syntax: nxprint --help"
echo " nxprint --drivers"
echo " nxprint --printers"
echo
echo " --drivers prints a list of available CUPS drivers"
echo " --printers prints a list of available CUPS printers"
exit 0
fi

if [ "$DRIVERS" = "yes" ]
then
echo "driver|Raw|Raw Queue|raw"
echo "driver|Download (CUPS)|Download from CUPS server (cached)|download_cached"
echo "driver|Download (CUPS)|Download from CUPS server (redownload)|download_new"
#JJK: Added the following to avoid multiple calls to NXPRINT which are
#JJK: *SLOW* when using 1500+ foomatic drivers
#JJK: Note cache is reloaded after 60 minutes (or if empty)

if [ -z "$(find $UTILITY_DRIVERS_CACHE.all -mmin -60 2> /dev/null)" ]
then
{
cd $PPD_DIR
awk -F '"' '/\*Manufacturer:/ { a[FILENAME]=$2 }
/\*NickName:/ { b[FILENAME]=$2 }
END {
for (i in a)
print "driver|" (a[i]=="ESP"?substr(b[i],0,index(b[i]," ")-1):a[i]) "|"b[i]"|"i"|en"
}' $(find -name "*.ppd")

if [ "$ENABLE_FOOMATIC" = "1" ]
then
[ -z "$COMMAND_FOOMATIC" ] && COMMAND_FOOMATIC="foomatic-ppdfile"
$COMMAND_FOOMATIC list | awk -F'"' '{ A=""; if ($4 == "HP") { B=substr($6,index($6," ")+1); A=" "substr(B,0,index(B," ")); } printf("driver|%s%s|%s|%s|%s\n",$4,A,$6,$2,substr($3,2)) } '
fi
} | sort > "$UTILITY_DRIVERS_CACHE".all
fi

cat "$UTILITY_DRIVERS_CACHE".all
fi

if [ "$PRINTERS" = "yes" ]
then
lpstat -p | awk '{ print $1 "|" $2 }'
fi


Но, что с одним что с другим скриптом - результат один:
1) Если подключаюсь с помощью nxclient от nomachine (nx client for linux 3.5.0-7), то сначала получаю сообщение о том, что cups не запущен, затем, что не удалось смонтировать принтер ml2015 (не помню дословно). В результате в терминале сидим без принтера.
2) Если подключаюсь с помощью opennx клиента (openNX 0.16.0.0), то сообщение о незапущенном cups также получаю, но при этом принтер прокидывается, на серваке он подключается с URI ipp://127.0.0.1:4000/printers/ml2015. Но, при этом печать на него заканчивается ошибкой: "unable to get printer status"

Есть идеи?

p.s. если подключать принтер к серваку по локалке: ipp://192.168.240.136:631/printers/ml2015, то печать на него идет. Это я к тому, что с настройками cups на клиенте всё норм.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: RX и проброс принтера

Сообщение dimbor »


dimbor писал(а):
30.05.2014 23:24
Olegans писал(а):
30.05.2014 22:53
что имеется ввиду: "подкладывать собственный nxprint под родной"?


копируем код в текстовый,и обзываем файл nxprint. При этом оригинальный файл надо переименовать в nxprint.orig. Ну и плюс в новом путь к нему заменить на на /usr/bin/, или где он там.

Olegans писал(а):
03.06.2014 13:01
exec /usr/lib64/nxclient/bin/nxprint "$@"

Не вижу, что заменен.

Olegans писал(а):
03.06.2014 13:01
подкладывать в /usr/bin вместо тамошнего - в альте, оказывается, уже есть своя прослойка под nxprint:

А это не хвост! - сказал ослик и густо покраснел. © В смысле, это и есть nxprint. Его и надо переименовывать в nxprint.orig.
Публиковать надо не его, а логи клиента. Клиентский купс нходится в ~/.nx/cups/. Там же есть .log.
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

что имеется ввиду: \"подкладывать собственный nxprint под родной\"?


копируем код в текстовый,и обзываем файл nxprint. При этом оригинальный файл надо переименовать в nxprint.orig. Ну и плюс в новом путь к нему заменить на на /usr/bin/, или где он там.

exec /usr/lib64/nxclient/bin/nxprint \"$@\"

Не вижу, что заменен.

подкладывать в /usr/bin вместо тамошнего - в альте, оказывается, уже есть своя прослойка под nxprint:

А это не хвост! - сказал ослик и густо покраснел. © В смысле, это и есть nxprint. Его и надо переименовывать в nxprint.orig.
Публиковать надо не его, а логи клиента. Клиентский купс нходится в ~/.nx/cups/. Там же есть .log.

Сделал так:
переименовал скрипт, который изначально был у меня в /usr/bin/nxprint в nxprint.orig;
создал там же скрипт nxprint, последняя строка имеет вид: exec /usr/bin/nxprint.orig \"$@\"
но ничего не изменилось. :wacko:

Публиковать надо не его, а логи клиента. Клиентский купс нходится в ~/.nx/cups/. Там же есть .log.

На клиенте в ~/.nx/cups/ логов нет. Хотя в ~/.nx/cups/cups.conf присутствует строка: ErrorLog /home/olegans/.nx/cups/error_log
Спасибо сказали:
Olegans
Сообщения: 11
ОС: mint 16

Re: RX и проброс принтера

Сообщение Olegans »

dimbor, а можете написать конфигурацию клиента (ОС, версия CUPS, nx (или opennx) клиента), с которой точно всё работает (хотя-бы проброс принтеров)? От сервера это зависит?
Спасибо сказали:
Ответить