Saturday, 13 December 2008

Lexmark 7500 Series Printer - GPL?

I am yet another frustrated Linux user, frustrated at lack of support from peripheral suppliers (such as Lexmark, when it comes to the 7500 Series Printer).

Note that the X7500 appears to be an office printer, and the X7550 appears to be a home printer. Lexmark are inconsistent in their naming, for example, I don't believe that the X7500 firmware update mentioned on their webpage can be applied to the X7550 printer (which Lexmark says is in the X7500 series).

A quick look at the printer, however, suggests that it may not be as incompatible as you may first think ...

When scanning / printing, the port 9100 is used. Using Wireshark, it is clear that the sequence 'HBN3' is passed over this interface.

Reading a Lexmark White Paper on multi-function printers, it can be seen that there is, indeed, an 'HBN3' protocol, a quick check shows that there are other standard ports available and open too:
Default Print (TCP 9100)
HBN3 (TCP 9100)
FTP - File Transfer Protocol (TCP 21)
HTTP - Embedded Web Server (EWS) (TCP 80, 8000)
mDNS (Bonjour) - Auto Configuration and Discovery (UDP 5353)
SNMP V2c/V1 - Simple Network Messaging Protocol (UDP 161)
SNMP V1 Traps (UDP 162)
HBN3 HID - Human Interface Device (UDP 162)
HBN3 Scan (TCP 9100)
IPP (TCP 631) - Timed Out!
Telnet (TCP 10000) - Command Line Facility

Now, port 10000 looks extremely interesting. When you connect, you get the LXK: prompt, and the prompt has built-in help.
Connected to 192.168.2.22 (192.168.2.22).
Escape character is '^]'.
LXK: enable
LXK: ls
LXK: netstat -a

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN
tcp 0 0 192.168.2.22:10000 192.168.2.11:59064 ESTABLISHED
udp 0 0 0.0.0.0:9100 0.0.0.0:*
udp 0 0 0.0.0.0:161 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*

LXK: ps

PID Uid VmSize Stat Command
1 root 512 S init
2 root SWN [ksoftirqd/0]
3 root SW [events/0]
4 root SW [khelper]
5 root SW [kthread]
8 root SW [kblockd/0]
11 root SW [khubd]
34 root SW [pdflush]
........
Now this looks like an embedded Linux release - I wonder where the GPL sources can be downloaded?

Update: Well, on the 30th April 2009, Lexmark uploaded their GPL code to ftp://ftp.lexmark.com/swlab/. It would be great if this happened before, and I'd have found a note in the user manual telling me where the sources could be found! But it's good to see that Lexmark have done the right thing in the end!

"Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented" - GPLv2.

I've recently bought the HP J4680 for £90, which works over a wireless network for printing, scanning and faxing, all with Linux.

References
  1. Lexmark 7500 Series User Manual
  2. IP Ports Utilized by 2007 and 2008 Inkjet Products ID: ENUS26689
  3. Lexmark Security White Paper
  4. Open Printing Database
  5. HP J4680 Printer



2 comments:

  1. I recently bought a Lexmark x4690 and I can get the same with my printer. I used wireshark to see how the network printing protocol looks, and in my case the packets often have HBN3 at the beginning. There are other weird things I've seen, such as the printer series followed by the store in which you've bought it "Lexmark 3600 - 4000 Series Best Buy".

    I don't remember setting a password for the LXK prompt or the web interface, do you remember if there was a default username and password? It asks me for a password and I just can't remember it. I can see in the web interface that you can update the firmware, but I couldn't find the firmware on the lexmark's website. In order to verify and prove that these printers are using GPL code we'd have to be able to copy the firmware out of the printer, and analyze it.

    Can we get in touch? my website is www.awakecoding.com and all my contact info is there.

    ReplyDelete
  2. I have good news to bring:

    After a couple of emails, I finally got a positive reply from Lexmark. The printer does run Linux, and the source code that is covered by the GPL license is available at ftp://ftp.lexmark.com/swlab/gpl/.

    If you go to the root of that FTP server, you got a lot of other stuff related to other printers. The only problem is that while they publish all of their GPL-covered source code on that public FTP server, they do not link to it or mention anywhere that the printer is using GPL code and that the source code is available at that location. I replied stating section 3 of the GPL which is not respected in this case, and politely asked them to put at least a link on their website for the source code. I'll post more if this leads to interesting changes.

    There is a lot of stuff on that FTP server, but it doesn't mean that the source code of the HBN3 server program is there, as it could be in another license. It is still possible that they have left some things about it in there, who knows.

    I'm posting all the emails I've sent and the ones I've received here:
    http://www.binrev.com/forums/index.php?showtopic=40882

    ReplyDelete