Linux là một thiết bị máy in mạng (Nguyên, cổng 9100)


7

Có thể định cấu hình máy tính Linux để hoạt động như một "thiết bị máy in mạng" không? Tôi có một máy in USB mà tôi dự định chia sẻ trong mạng như một thiết bị máy in mạng gốc .

Điều đó có thể không? Làm sao?

GHI CHÚ: Máy in mạng 'Tự trị' thường giao tiếp với giao thức "HP Jetdirect" (Còn được gọi là "Nguyên").

Tôi có RS / 6000 với AIX 5 tìm và hoạt động với bất kỳ loại máy in mạng 'tự trị' nào. Và tôi muốn trưng bày thông qua Linux (tốt nhất là Debian) một máy in USB trong mạng, giống như bất kỳ máy in mạng thông thường nào (thiết bị tự trị) mà tôi có thể truy cập trong AIX.

EDIT: Tôi cần phải làm trong AIX một cái gì đó tương tự, trong đó ' my_printer_ip ' là IP Linux:

$ netcat my_printer_ip 9100
$ Hello remote USB printer plugged in a Linux !
$ <Ctrl+D>

Câu trả lời:


4

Tôi hiểu rằng máy in mạng sử dụng giao thức có tên RAW (hoặc Jetdirect), điều đó có đúng không?

Đúng. Có hai giao thức mạng cho các công việc in vẫn còn liên quan đến ngày nay: LPD , chạy trên cổng TCP 515 và JetDirect , chạy trên cổng TCP 9100. LPD được Berkeley thiết kế cho BSD UNIX ngày xưa. Hiện tại nó đã khá lỗi thời, nhưng nó vẫn có sẵn trên nhiều máy in, có lẽ là để tương thích với các máy chủ cũ. JetDirect được HP thiết kế vào đầu những năm 1990, và nó đơn giản và nhanh hơn LPD một chút. Bạn có thể nên sử dụng JetDirect bất cứ khi nào có sẵn.

Tôi có RS / 6000 với AIX 5 tìm và hoạt động với mọi loại máy in mạng 'bản địa'. Và tôi muốn phơi bày trong mạng một máy in USB như máy in mạng (thiết bị tự trị), sử dụng Linux (tốt nhất là Debian) để làm điều đó.

Cài đặt CUPS trên máy Linux và kết nối máy in với nó. Bạn thậm chí không cần một máy đầy đủ cho điều đó, Raspberry Pi hoặc tương tự hoặc bộ định tuyến gia đình có cổng USB và chạy OpenWRT hoặc DD-WRT, sẽ hoạt động tốt.


Và làm thế nào để có một cổng 9100 trong công việc in (hoặc luồng) Linux đó làm máy in USB cục bộ?
Luciano

Đó là những gì CUPS cần phải làm, miễn là bạn định cấu hình chính xác.
lcd047

Chia sẻ máy in USB cục bộ thông qua JetDirect với CUPS dường như rất mơ hồ. Tôi đã tìm thấy một đề xuất chỉ định cấu hình phát trực tuyến bằng cách sử dụng inetd (xinetd): "9100 luồng tcp nowait lp / usr / bin / lp lp -d <Cup_printer_name> -o raw"
Luciano

@Luciano: Có lẽ hãy thử các tài liệu hơn là tìm kiếm các mánh gian lận?
lcd047

3

CUPS cho phép bạn chia sẻ máy in với (ít nhất) các giao thức IPP, LPD và samba ra khỏi hộp. IPP được hỗ trợ bởi hầu hết các hệ thống hoạt động và IBM là một phần của Nhóm Công tác In ấn được đưa ra cùng với IPP nên có khả năng nó cũng được hỗ trợ trong AIX.

Ngoài ra, samba có giao thức AIX nên cái này hay cái kia nên hoạt động. tìm kiếm AIX

Nhưng không có tài liệu nào tôi gặp qua phiên bản AIX được tham chiếu nên tôi không thể chắc chắn liệu AIX 5 có được hỗ trợ hay không.

Cách thức hoạt động dù sao đi nữa là bạn cắm máy in vào máy chủ đã cài đặt CUPS và chọn phương thức chia sẻ, cài đặt phát sóng, v.v ... Thật đơn giản. Sau đó, khách hàng có thể kết nối với nó và nó sẽ hiển thị dưới dạng máy in mạng.


Tôi là một lập trình viên và kỹ sư giàu kinh nghiệm, nhưng các giao thức in ấn là một chủ đề mới đối với tôi. Tất cả những gì tôi tìm thấy liên quan đến thuật ngữ Raw cho máy in hoạt động như một thiết bị mạng tự trị. IPP có liên quan gì đến thuật ngữ hoặc giao thức Nguyên không? Tôi muốn có một máy in USB hoạt động như một máy in mạng tự trị (nó có thể được cắm "đằng sau" Linux không?)
Luciano

1
@Luciano Tôi cũng không phải là chuyên gia (hoặc thậm chí rất có kinh nghiệm) trong các giao thức máy in. Tôi chỉ đang sử dụng CUPS để phục vụ một vài khách hàng. Nhưng những gì tôi có thể tìm ra là giao thức RAW hoặc telnet là giao thức cũ hơn là LPD / LPR (có một lỗi đánh máy trong bài viết gốc của tôi, xin lỗi). Dưới đây là tổng quan ngắn về sự khác biệt: Trong mọi trường hợp, bạn cũng có thể thiết lập CUPS để phục vụ trong RAW / JetDirect (tài liệu có thể khan hiếm tho) để nó hoạt động.
WhimsicalWombat

Tổng quan đẹp, rất hữu ích
Luciano

1

Sau một số nghiên cứu và cố gắng ...

Các "thiết bị máy in mạng" này, có thể thực hiện một số giao thức, là một trong số chúng có tên là "HP JetDirect", còn được gọi là "Nguyên", "JetDirect", chỉ là "9100". Nó dường như là giao thức phổ biến nhất được hỗ trợ bởi các máy in mạng.

Mẫu cấu hình máy in mạng: Mẫu cấu hình máy in mạng

Giao thức JetDirect chỉ là một luồng mạng thông thường và không phải là giao thức thực, ít nhất là trong các thử nghiệm của tôi. Vì vậy, bạn không cần CUPS, bất kỳ loại động cơ máy in nào cũng có Linux hoạt động như máy in mạng , tất cả những gì bạn cần là một 'máy chủ luồng mạng' như inetd (hoặc xinetd), để nghe cổng 9100 và chuyển hướng này truyền đến luồng máy in.

Hãy xem xét một luồng máy in trong cổng /dev/lp0, nơi chúng ta có thể làm điều gì đó như thế:

$ echo "Hi local legacy printer !" >/dev/lp0

Bây giờ chúng tôi có thể chuyển hướng luồng đến trong cổng 9100 sang /dev/lp0, chỉ bằng cách sử dụng inetd trường cũ:

9100 stream tcp nowait cat > /dev/lp0

Vì vậy, trong bất kỳ hệ thống từ xa nào khác (như AIX), chúng ta có thể lấy máy in song song (hoặc USB) cũ được cắm vào Linux để hoạt động như máy in mạng:

$ netcat linux_ip 9100
$ Hello remote Parallel printer plugged in a Linux !
$ <Ctrl+D>

Tất nhiên, có những vấn đề tương tranh mà ngoài các giải pháp khác có thể được xử lý bằng CUPS định cấu hình máy in cục bộ dưới bộ đệm.

Nó làm việc cho tôi!


1
Có vẻ như câu trả lời đúng: sử dụng inetd và 9100 stream tcp nowait cat> / dev / lp0. Không cần CUPS.
josef

0

Bạn có thể muốn cài đặt CUPS ; Theo trang này, nó chắc chắn cũng có sẵn cho AIX.

Khi bạn đã định cấu hình để nhận biết và sử dụng máy in của mình, có lẽ bạn muốn kiểm tra tại đây để biết hướng dẫn về cách chia sẻ trên mạng.

Thay phiên, bạn có thể sử dụng samba để chia sẻ máy in; Ngày nay hầu hết các hệ điều hành đều nói giao thức.


Nhưng, những gì về việc không cài đặt CUPS trong AIX khi biết rằng nó đã hoạt động với máy in mạng? Có cách nào để làm cho Linux hoạt động như một thiết bị máy in mạng "thông qua" chung bằng CUPS hoặc bất kỳ cách nào khác không?
Luciano

@Luciano: Bạn không cần CUPS trên AIX, bạn chỉ cần nó trên máy Linux. Nhưng bạn cần phải cấu hình CUPS để sử dụng giao thức mà máy chủ in trên máy AIX có thể nói.
lcd047

0

Chương trình rất cũ này xuất một máy in cục bộ trên / dev / lp sang localhost: 9100. Tôi đã phải chỉnh sửa Makefile để hỗ trợ các tiêu chuẩn lập trình cũ hơn. Có thể có những cách khác để làm điều này với các chương trình mới hơn. Tôi muốn biết: mã nguồn lp_server-1.1.6


Làm thế nào để trả lời câu hỏi này?
Pierre.Vriens

0

OP- Và tôi muốn tiếp xúc với Linux (tốt nhất là Debian) một máy in USB trong mạng, giống như bất kỳ máy in mạng thông thường nào

Đây là sự giúp đỡ từ lp_server:

lp_server [-n port] [-w] [-d device] [-t stty_cmds]
Version lp_server-1.1.6
Export a printer by simulating an HP JetDirect interface.
-n connection port (default 9100)
-w open output device write only (default r/w)
-d device (default /dev/lp)
-t stty_cmds - stty commands to apply if device is serial port
-r remote_list - remote hosts allowed, in IP/netmask or hostname
       separated by commas. i.e. - 130.191.20.10/24,dickory would
       allow connections from subnet 130.191.20.0 (24 bit netmask)
       and host dickory
-D level - set debug level

Biên tập:

The lp_server will bind to the connection port, and wait for
an incoming connection.  After accepting a  connection, it 
opens the output device, (rw or write only as specified),
applys the stty options,  and then copies the connection output
to the device input and vice versa.

Máy in USB sẽ xuất hiện dưới dạng tệp thiết bị / dev trên máy chủ linux và sau đó được xuất sang cổng địa chỉ IP mạng 9100 bởi lp_server nơi máy tính AIX có thể tìm thấy dịch vụ in Jet Direct mô phỏng. Điều này sẽ rất giống với câu trả lời inetd tối giản và chỉ cung cấp một sự lựa chọn khác.


1
Xin chào và chào mừng đến với trang web trao đổi ngăn xếp U & L! Vui lòng xem lại Trung tâm trợ giúp để có được thông tin về cách đăng bài tốt nhất lên trang web này. Để đến bài viết của bạn, bạn có thể vui lòng chỉnh sửa bài đăng của mình để chứa ngữ cảnh bổ sung về lý do tại sao bạn tin rằng đây là một câu trả lời. Cảm ơn bạn!
kemotep
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.