как сделать чтобы работала DOS печать на локальных принтерах пользователей работающих через linux с приложениями ТЕРМИНАЛЬНОГО сервера.
Начнем с конца задачи. Что такое DOS печать — это значит что компьютер просто при команде "печать " направляем данные в порт LPT -вот что такое DOS печать. А нам нужно чтобы компьютер направлял их не на lpt а на некоторый сетевой принтер. И такая команда в windows есть

Net use lpt1 \\100.100.100.100\matrix /persistent:yes

matrix — имя под которым расшарен принтер(то имя под которым он видится в "сетевом окружении"в сети windows).
/persistent:yes — говорит windows запомнить эту настройку. ( в противном случае она прекращает действовать когда пользователь делает log off).

То есть команда net use перенаправляет данные с порта lpt1 на сетевой принтер matrix который подключен к \\100.100.100.100

так как настройки пользователей индивидуальны на терминальномо сервере, то для кажого пользователя можно настроить свой net use, то есть для каждого пользователя можно настроить перенаправление на отдельный принтер (что бывает нужно).

Итак осталось установить и расшарить принтер на linux компьютере пользователя и применить на терминальном сервере зайдя под профилем пользователя команду

net use lpt1 \\ipaddress-user\matrix /persistent:yes

Устанавливаем принтер в linux у пользователя (под именем к примеру matrix) через панель управления CUPS- вызывается из браузера по адресу http://localhost:631 (если иной адрес не прописан в /etc/cupsd.conf)

далее его нужно расшарить чтобы он был виден в windows сети , для этого нужно вносить изменения в /etc/samba/smb.conf .
Однако пойдем другим путем.
a) Подключим принтер пользователя к терминальному серверу через lpd/lpr.
b) После расшарим его на терминальном сервере (под именем matrix, имя под которым расшариваем естественно неважно а взято для примера) — принтер станет виден в windows сети и ( поэтому можно применить )
c) применим net use lpt1 \\127.0.0.1\matrix /persistent:yes

Как реализовать пункт a)? Для этого нужно на терминальном сервере нужно установить компонент "Print Services for Unix".

Делаем это так : (Установка удаление программ)-(установка \ удаление компнентов )-(Other Network File and Print Services) – (Print Services for Unix). После этого идем в (установку принтеров) – (добавить новый принтер) -(локальный принтер)-(Create new port (тип порта LPR) – address server providing lpd = ip адрес linux компьютера, Name printer = matrix)
На linux компьютере нужно установить серевер lpd. Делается это так:

устанавливаем пакет xinetd-2.3.13-6.i386.rpm
# rpm -ihv xinetd-2.3.13-6.i386.rpm

это дает нам возможность установить пакет cups-lpd-1.1.23-15.i386.rpm
#rpm -ihv cups-lpd-1.1.23-15.i386.rpm

После установки xinetd , нужно в файл /etc/ xinetd.conf нужно добавить строки

service printer

{

socket_type = stream

protocol = tcp

wait = no

user = lp

group = sys

passenv =

server = /usr/lib/cups/daemon/cups-lpd

server_args = -o document – format = applicatpion/octet-stream

}

эти строки можно найти в man xinted
------------------------------------------------------------
примечание: матричный принтер OKI microline 3310

В Linux ставим для него драйвер:

«OKIDATA Microline IBM compatible 9pin Foomatic /okiibm(recommended)»

В FC4 именно этого драйвера нет. Скачал с сайта foomatic. Файл называется

Okidata-Microline_IBM_compatible_9_pin-OKIIBM.ppd

В Windows ему соотвествует драйвер "Oki ML3320"
=============================================


с rdesktop есть проблема с русскими клавишами. Как ее исправить. Коротко.
Все выполнялось на rdesktop версии 1.5.0

Чтобы экран не сходил с ума от Alt+Shift отключаем в Linux кнопку Alt.
В файле /etc/X11/xkb/keycodes/xfree86 меняем
<LALT> = 64 на <1ALT> = 64
<RALT> = 113 на <2ALT> = 113

чтоб работали все русские буквы и caps lock с ними итп
создаем файл /usr/share/rdesktop/keymaps/common2

в rdesktop указываем -k common2 , например

rdesktop -u user -p&^UYIUH -n comp -k common2 -g 1024x740 -D -a 8 -5 -z -P -N -s "m:\winnt\notepad.exe" 1.1.1.1&
замечательно то что Alt в приложениях rdesktop все равно работать будет)


подробнее.
При работе с терминальными приложениями через rdesktop из Linux есть проблема с русскими клавишами.
Все выполнялось на rdesktop версии 1.5.0

Настраиваем смену смену раскладки через xkb , переключателем будет Ctrl+Shift.
В /etc/X11/xorg.conf

...
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc104"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:ctrl_shift_toggle"

EndSection
...

при входе в GNOME система один раз спросит как работать с клавой через x11 или gnomовские настройки. Отвечаем через x11.
В KDE -центр управления (kcontrol) — региональные и специальные возможности — раскладка клавиатуры — во всех закладках (табах) ни один квадратик не активен.

При нажатии на Alt+Shift и дальнейших попытках что то набрать на клаве в терминальном приложении либо начинают открываться разные окна, менюшки программ (например офиса) либо ввод символов заступоривается и ничего не происходит. Лечится повторным нажатием на Alt+Shift.
Исправляем. Мне хотелось отключить в Linux комбинацию Alt+Shift но пока неясно как. Тогда отключаем левый и правый Alt. Вот про xkb(спасибо Иван). Или здесь оффлайн.

В файле /etc/X11/xkb/keycodes/xfree86 меняем
<LALT> = 64 на <1ALT> = 64
<RALT> = 113 на <2ALT> = 113

после этого (и перезагрузки X сервера ) Alt-ы перестают работать в Linux.
Команда xev дает вывод

KeyRelease event, serial 30, synthetic NO, window 0x2400001,
root 0x48, subw 0x0, time 4411463, (255,289), root:(258,319),
state 0x0, keycode 64 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:

KeyPress event, serial 30, synthetic NO, window 0x2400001,
root 0x48, subw 0x0, time 4412575, (255,289), root:(258,319),
state 0x0, keycode 113 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

где keycode 64 и 113 это коды левого и правого Alt а keysym вместо L_Alt R_Alt становится NoSymbol.

Далее в rdesktop ключ -k отвеает за - keyboard layout on server (en-us, de, sv, etc.)
что там за etc manual не говорит, оказывается это названия файлов в папке
/usr/share/rdesktop/keymaps/

если используем -k en-us то в терминальном приложении при попытке набрать русскую "." имеем "ю" вместо " " " имеем "Э" вместо " ; " имее "ж" . и CapsLock не работает с русскими буквами. этого уже достаточно.

Смотрим что еще можем попробовать из /usr/share/rdesktop/keymaps/
если используем -k common то : не работает CapsLock с русскими буквами.
если используем -k winterm то : не работает CapsLock с русскими буквами.

Пробуем -k none , хотя заведомо файла none в /usr/share/rdesktop/keymaps/ нет.
И о чудо) Все русские клавиши работают правильно. Но не работают стрелки и блок home insert итп.
Тогда создаем новый файл common2 и вставляем в него include modifiers и блоки из common для стрелок , home, insert , pageup итп. Возможно в файл вставлено и лишнее.

Даем команду

rdesktop -u user -p&^UYIUH -n comp -k common2 -g 1024x740 -D -a 8 -5 -z -P -N -s "m:\winnt\notepad.exe" 1.1.1.1&

и все работает.

замечательно то что Alt в терминальных приложениях rdesktop все равно работать будет.
Ключ -D убирает декорации окон, проще говоря кнопки крестик, свернуть итп. Теперь сеанс будет завершаться только корректно а не подвисать.
Ключи -u -p логин и пароль пользователя для автовхода. Кстати если на термианльном севере стоит novell то тогда ключи -u и -p не срабатывают, но это можно исправить. Для этого нужно сделать так чтобы "красное" окно логина novell исчезло а на его место вернулось окно логин windows. Для этого в реестре в секции winlogon удалить ключ

ginadll -название

nwgina – значение

после перезагрузки терм сервера все будет окей. При этом естественно диски novell будут автоматически подсоединяться если логин пароль пользователя windows совпадает с логин пароль пользователя novell.

Тестировалось на windows 2000 server и win xp. Смена раскладки на windows Ctrl+Shft
--------------------------------------------------------------

была такая проблема. linux+rdesktop связь с windows server 2000.

вначале у клиента предупреждало что лицензия истекает через столько то дней. если ничего не делать то через столько то дней в linux через rdesktop будет отказано с ошибкой "соединение сброшено другой стороной".

"error: recv: соединение разорвано на той стороне"

что я делал , я просто брал и стирал файл в $HOME/.rdesktop, после этого файл сам пересоздавался и не было пролем еще 90 дней. на днях такая технология не сработала.

после поисков в инете нашел здесь: http://freshmeat.net/projects/rdesktop/ что нужно при вызове rdesktop добавить ключ -n fc4.

то есть rdesktop -n fc4 -k en-us -g 1024x700 11.11.11.11

где fc4 это как бы имя хоста

-------------------------------------------------

Сайт управляется системой uCoz