Печать из VMware не выходит.

Автор: ansiansi Дата: 05.01.2006 17:27
На машине hda поделен на два раздела, в одном Вынь98, в другом Linux 2.6.9-1.667asp. Подключен USB-принтер HP LaserJet 1000. Принтер печатает из Вынь, из Линукс (cups-1.1.22-0.rc1.Поражён, с других машин по локалке в Вынь и Линух. Настроена Самба, я вижу в сети что мне надо, показываю, что хочу, печатаю. Запускаю Линух, в нем VMware Workstation 5.5.1 build-19175. В Варе создаю вирт. машину, работающую с моим Вынь-разделом, все встает, настраивается, вирт. сеть Host-only networking, из вирт. Выня вижу расшаренный Линукс, в нем - принтер. Линукс тоже видит виртуальный Вынь, smbmount работает. Теперь мне надо печатать из виртуального Выня. На свой принтер он печатать не хочет - пишет красненьким "Требуется вмешательство - Отложенная печать". Я пробую печатать на Линукс-принтер (физически, понятно, это одно и то ж). Для этого в виртуальн. Выне создаю сетевой принтер, настраиваю его (настройки идентичны тем, что стоят на других машинах в реальной сети - они, напомню, печатают). При попытке напечатать пробную страницу Вынь пишет - Ошибка записи в порт,принтер больше не доступен, обратитесь к администратору. В Линухе /var/log/messages

Jan 5 17:09:51 localhost smbd[3573]: [2006/01/05 17:09:51, 0] printing/printing_db.c:get_print_db_byname(40)
Jan 5 17:09:51 localhost smbd[3573]: PANIC: assert failed at printing/printing_db.c(40)
Jan 5 17:09:51 localhost smbd[3573]: [2006/01/05 17:09:51, 0] lib/util.c:smb_panic2(1425)
Jan 5 17:09:51 localhost smbd[3573]: PANIC: assert failed
Jan 5 17:09:51 localhost smbd[3573]: [2006/01/05 17:09:51, 0] lib/util.c:smb_panic2(1433)
Jan 5 17:09:51 localhost smbd[3573]: BACKTRACE: 16 stack frames:
Jan 5 17:09:51 localhost smbd[3573]: #0 smbd(smb_panic2+0x120) [0xf6f10850]
Jan 5 17:09:51 localhost smbd[3573]: #1 smbd(smb_panic+0x28) [0xf6f10728]
Jan 5 17:09:51 localhost smbd[3573]: #2 smbd(get_print_db_byname+0x637) [0xf6f41b67]
Jan 5 17:09:51 localhost smbd[3573]: #3 smbd [0xf6f2cfaf]
Jan 5 17:09:51 localhost smbd[3573]: #4 smbd(print_job_set_name+0x42) [0xf6f2fa02]
Jan 5 17:09:51 localhost smbd[3573]: #5 smbd [0xf6da9eb8]
Jan 5 17:09:51 localhost smbd[3573]: #6 smbd(api_reply+0x1ce) [0xf6dad3de]
Jan 5 17:09:51 localhost smbd[3573]: #7 smbd [0xf6da307e]
Jan 5 17:09:51 localhost smbd[3573]: #8 smbd(reply_trans+0x59d) [0xf6da37fd]
Jan 5 17:09:51 localhost smbd[3573]: #9 smbd [0xf6dee4bc]
Jan 5 17:09:51 localhost smbd[3573]: #10 smbd [0xf6dee773]
Jan 5 17:09:51 localhost smbd[3573]: #11 smbd(process_smb+0xa4) [0xf6dee9c4]
Jan 5 17:09:51 localhost smbd[3573]: #12 smbd(smbd_process+0x1ac) [0xf6def83c]
Jan 5 17:09:51 localhost smbd[3573]: #13 smbd(main+0x525) [0xf6f90ae5]
Jan 5 17:09:51 localhost smbd[3573]: #14 /lib/tls/libc.so.6(__libc_start_main+0xe4) [0xf696cc14]
Jan 5 17:09:51 localhost smbd[3573]: #15 smbd [0xf6d8c142]
Jan 5 17:09:51 localhost smbd[3573]:


В var/log/samba/вынь-машина.log то же самое:
[2006/01/05 17:09:51, 1] smbd/service.c:make_connection_snum(648)
sign_vm (172.168.52.2) connect to service lj1000 initially as user ansiansi (uid=, gid=) (pid 3573)
[2006/01/05 17:09:51, 0] printing/printing_db.c:get_print_db_byname(40)
PANIC: assert failed at printing/printing_db.c(40)
[2006/01/05 17:09:51, 0] lib/util.c:smb_panic2(1425)
PANIC: assert failed
[2006/01/05 17:09:51, 0] lib/util.c:smb_panic2(1433)
BACKTRACE: 16 stack frames:
#0 smbd(smb_panic2+0x120) [0xf6f10850]
#1 smbd(smb_panic+0x28) [0xf6f10728]
#2 smbd(get_print_db_byname+0x637) [0xf6f41b67]
#3 smbd [0xf6f2cfaf]
#4 smbd(print_job_set_name+0x42) [0xf6f2fa02]
#5 smbd [0xf6da9eb8]
#6 smbd(api_reply+0x1ce) [0xf6dad3de]
#7 smbd [0xf6da307e]
#8 smbd(reply_trans+0x59d) [0xf6da37fd]
#9 smbd [0xf6dee4bc]
#10 smbd [0xf6dee773]
#11 smbd(process_smb+0xa4) [0xf6dee9c4]
#12 smbd(smbd_process+0x1ac) [0xf6def83c]
#13 smbd(main+0x525) [0xf6f90ae5]
#14 /lib/tls/libc.so.6(__libc_start_main+0xe4) [0xf696cc14]
#15 smbd [0xf6d8c142]

От чего паника? Как бороть? Могу еще конфигов налить, не знаю, каких.
Если есть мысли, черкните, пли-из!
С уважением, Андрей.
Re: Печать из VMware не выходит. 06.01.2006 17:32Neonovice Если у этого принтера есть LPT порт, подключите его по обоим портам, и используйте под виндой LPT, а под линуксом USB (или наоборот, что где у вас работает).
Решение неизящное, но 100% рабочее.
Уверяю вас, борьба с принтерами - не самое увлекательное занятие, и чувство удовлетворения от победы не компенсирует потерь времени на эту борьбу.
Re: Печать из VMware не выходит. 07.01.2006 12:55ansiansi Neonovice, спасибо за совет - принтер исключительно ЮСБишный. Да и вообще с ним все непросто - дешевый виндоусятный принтер. Цитата с www.linuxprinting.org:
Just few words about the printer. I think LaserJet 1000 is a very odd printer. It has a very small ROM, so after you switched it on, you must download its firmware.

Я так понимаю, при загрузке Линукс посылает в принтер свой firmware, после чего вирт. Виндовс не может туда достучаться. Но почему он не печатает по вирт. сети - реальные Виндовс-машины по локалке могут же печатать!

Для печати из Линукса я использую foo2zjs driver. Из Виндовс - соответственно, виндоусовый драйвер. А при печати с удаленной Виндовс-машины мне приходится обзывать его не НР LJ1000,a LaserJet 4 Postscript - иначе он не печатает. Эту же настройку я поставил на виртуальных Виндах.

Очень хочется решить проблему. Весь огород пришлось городить из-за единственной програмки, написанной для Виндовс одним приходящим программистом. Програмка нужна для работы мне и, главное, моему начальнику, и она последнее, из-за чего приходится обращаться к Виндовс. Программа должна уметь печатать (в этом, собственно и вся ее задача - выбрать из перечня нужные работы, посчитать деньги, напечатать счет и сохранить все данные в базе). В wine она не работает - для своей работы она пользует еще какие-то виндовые программы (по-моему,Дельфи), победить это я не смог. Да и не факт, что в wine печать настроить будет проще.

Приходится сдерживая рвотные спазмы весь день пялиться в Виндоусовый экран - не будешь же каждай раз перегружать машину.

Поможите вырваться из лап БГ!
Re: Печать из VMware не выходит. 07.01.2006 13:49Woodoo 1. Попробуйте изменить тип сетевой настройки VM на "bridge". Я просто не помню, что в vmware считается "host-only". Надеюсь, гостевая система настроена на использование отдельного [от linux] ip адреса виртуального сетевого интерфейса.
2. В гостевой системе полностью удалите какие-либо упоминания о локальном принтере, если есть возможность - даже не отдавайте usb гостевой системе.
--
Как временное (!) решение могу порекомендовать на какой-либо машине расшарить сетевой принтер и печатать на него.
Re: Печать из VMware не выходит. 07.01.2006 15:05ansiansi Рассказываю про БРИДЖ и ХОСТ-ОНЛИ.

БРИДЖ - это когда вирт машина - член существующей лок. сети. То есть чтобы ее подключить, надо идти к сисадмину (во-первых, тоже приходящий, во-вторых, виндоусятник - все рекомендовал мне ХРень поставить, а я не хочу!) и просить ИПшник. Об меня вытрут ноги, а IP все равно не дадут.

ХОСТ-ОНЛИ - на моем компе "своя маленькая виртуальная сеточка", снаружи ее не видно, в ней я сам раздаю IP. Возможно ли из нее печатать наружу - в реальную локалку - не знаю, проблему не исследовал; заставить начальника бегать в соседнюю комнату к другому принтеру за напечатанными бумажками - это вряд ли.

~Надеюсь, гостевая система настроена на использование отдельного [от linux] ip адреса виртуального сетевого интерфейса.

Извиняюсь, плохо понял - я больше по автосигнализациям, чем по ИТ.
Вот мои IP (цифры, я, есе-сно не помню):

В реальной сети 192.168.1.44 - это мой ИП в Линухе, или в реально загруженном Виндовсе.

В вирт сети у Линукса 172.168.52.1, у Виндовс 172.168.52.2. Для внешней сети Линух по-прежнему 192.168.1.44.

~2. В гостевой системе полностью удалите какие-либо упоминания о локальном принтере, если есть возможность - даже не отдавайте usb гостевой системе.

ЮСБ отключил совсем, принтер удалял (правда, при перезагрузке реальной машины он опять выскакивал. Удалить в виртуале и оставить в реале не получается).
Re: Печать из VMware не выходит. 07.01.2006 22:43Woodoo ansiansi писал(а):

> ХОСТ-ОНЛИ - на моем компе "своя маленькая виртуальная сеточка",
> снаружи ее не видно, в ней я сам раздаю IP. Возможно ли из нее
> печатать наружу - в реальную локалку - не знаю, проблему не
> исследовал; заставить начальника бегать в соседнюю комнату к
> другому принтеру за напечатанными бумажками - это вряд ли.

Думаю, проблема в этом. Особенность ms-network: клиент может иметь только 1 интерфейс.
samba-server, полностью воплощает эту идеологию и по определению не будет обслуживать 2 интерфейса (и, соответственно, 2 ip адреса) корректно.
В принципе возможно запускать второй smb-сервер (со своей конфигурацией), который будет обслуживать "вторую" сеть - виртуальную.
Еще можно попробовать печатать на lpd-принтер (принтер cups, lpd, ipp или что там гостевая вынь умеет).
Но, imho, проще договориться с администратором насчет еще одного ip.

> Извиняюсь, плохо понял - я больше по автосигнализациям, чем по
> ИТ.

В зависимости от ситуации это равнозначно "двум автомобилям с одним одинаковым номером" или "разрешению правостороннего и левостороннего движения на одном шоссе".

> ~2. В гостевой системе полностью удалите какие-либо упоминания
> о локальном принтере, если есть возможность - даже не отдавайте
> usb гостевой системе.
>
> ЮСБ отключил совсем, принтер удалял (правда, при перезагрузке
> реальной машины он опять выскакивал. Удалить в виртуале и
> оставить в реале не получается).

Для текущей гостевой системы можно вообще запретить использование usb, lpt и т.д. Т.е. хост вообще не отдает ему шину как таковую.
Re: Печать из VMware не выходит. 09.01.2006 12:48ansiansi Печать из VMware выходит!
Я ее победил!!!

Проделал 2 операции:
1. Обновил Самбу до samba-3.0.10-1.10asp
(думаю, помогло не это)
2. В smb.conf вместо
interfaces = 192.168.1.44/24 172.168.52.1/24
написал
interfaces = eth0 vmnet1 lo
(думаю, помогло это)

Спасибо откликнувшимся - совместные раздумья указали выход.
Re: Печать из VMware не выходит. 09.01.2006 20:25Woodoo ansiansi писал(а):

Поздравляю )

> 2. В smb.conf вместо
> interfaces = 192.168.1.44/24 172.168.52.1/24
> написал
> interfaces = eth0 vmnet1 lo
> (думаю, помогло это)

На будущее: при некоторых условиях такое решение может привести к серьезным сбоям в работе ms-network.
RSS-материал