# Refactoring Old Printer Driver for Current Linux Kernel [closed]

I have an old Lexmark 1100 printer (parallel port LPT1) that is currently working fine on Windows 98. I've tried to make it work on several current distros of Linux but, so far, none worked. Basically, I've followed the OpenPrinting installation steps:

1. apt install lsb
2. search for the OpenPrinting Lexmark 1100 driver
4. dpkg -i openprinting-lm1100_1.0.2a-6lsb3.2_i386.deb

Unfortunately, the printer never showed any sign of life.

The lm1100 driver is very old and might not work with the current kernel.
My guess is the driver needs to be refactored to support the current kernel.

To check that, I installed the printer on Debian Woody and, voilà, it finally showed some sign of life.

# Question

1. Based on the aforementioned information, is it reasonable to conclude that this driver is incompatible with the current Linux kernel?
2. If so, how to refactor such a driver for the current kernel?

Parallel Port LPT1
I'm not sure how to verify whether the Debian installation includes a parallel port driver. However, I surmise that it does:

1. CUPS only allows installing the printer after plugging it on LPT1. After that it correctly shows there is something on LPT1 although it cannot recognize which printer, (probably it predates the plug and play era).
2. I've already installed another device on LPT1 and it worked nice (Epson Stylus Color 480SX).

Therefore, considering that Debian is seeing a printer on the port, and especially that another printer worked on LPT1, it seems safe to assume that it's got a parallel port driver.

Debian Stretch

According to the documentation available at /opt/OpenPrinting-lm1100/doc/:

To move out the print head, simply type (logged in as 'root')

lm1100change


Therefore, I've tried the following:

root@debian:/opt/OpenPrinting-lm1100/bin# ./lm1100change
0+1 records in
0+1 records out
24 bytes copied, 0.00137361 s, 17.5 kB/s
root@debian:/opt/OpenPrinting-lm1100/bin#


However, still no sign of life from the printer.

I've also tried to print a raw image file (PBM format):

root@debian:/opt/OpenPrinting-lm1100/bin# cat sample.pbm
P1
# This is an example bitmap of the letter "J"
6 10
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 0 0 0 1 0
0 1 1 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0

root@debian:/opt/OpenPrinting-lm1100/bin# ./lm1100 sample.pbm
Bad magic number in image file, got P1

root@debian:/opt/OpenPrinting-lm1100/bin#


Still no sign of life, although now there is an error message of 'bad magic number'.

Also tried that:

root@debian:~# echo "Hello World" > /dev/lp0
root@debian:~#


No sign of life from the printer.

Debian Lenny

I've also tried the same steps above on Debian Lenny and the results were very similar (ie, no sign of life from the printer):

debian:/opt/OpenPrinting-lm1100/bin# cat /etc/issue
Debian GNU/Linux 5.0 \n \l


Debian Woody

After a long struggle, I've finally managed to install Debian Woody:

debian:/# cat /etc/issue
Debian GNU/\s 3.0 \n \l


I've tried to follow the same installation procedures from the other versions, but there were some problems:

debian:~# dpkg -i openprinting-lm1100_1.0.2a-6lsb3.2_i386.deb

Selecting previously deselected package openprinting-lm1100.
(Reading database ... 37344 files and directories currently installed.)
Unpacking openprinting-lm1100 (from openprinting-lm1100_1.0.2a-6lsb3.2_i386.deb) ...
dpkg: dependency problems prevent configuration of openprinting-lm1100:
openprinting-lm1100 depends on lsb (>= 3.2); however: Version of lsb on system is 1.1.0-11.
dpkg: error processing openprinting-lm1100 (--install): dependency problems - leaving unconfigured
Errors were encountered while processing: openprinting-lm1100


Despite such dependency problems, at least some commands are now working:

debian:/opt/OpenPrinting-lm1100/bin# ./lm1100change
parport0: PC-style at 0x378 [SPP,PS2]
lp0: using parport0 (polling).
0+1 records in
0+1 records out

debian:/opt/OpenPrinting-lm1100/bin# ./lm1100back
0+1 records in
0+1 records out


Both make the printhead move accordingly. The printer is showing some sign of life.

However, the printer still doesn't print:

debian:/opt/OpenPrinting-lm1100/bin# ./lm1100 sample.pbm
bash: ./lm1100: No such file or directory


Although the file is obviously there:

debian:/opt/OpenPrinting-lm1100/bin# ls
lm1100  lm1100back  lm1100change  sample.pbm


# System Specification

• Intel® Celeron® 4 processor at 2.20GHz
• Intel 852GM Chipset
• 1Gb RAM
• 32MB internal Integrated Intel® 852GM video memory

Operating System

• Debian Stretch
• Small CDs
• debian-9.8.0-i386-netinst.iso
(  ) Debian desktop environment
(  ) ... GNOME
(  ) ... Xfce
(  ) ... KDE
(  ) ... Cinnamon
(  ) ... MATE
(X) ... LXDE
(  ) web server
(X) print server
(  ) SSH server
(  ) standard system utilities

## closed as off-topic by Raffzahn, user259412, pndc, scruss, pipeApr 28 at 0:24

This question appears to be off-topic. The users who voted to close gave this specific reason:

• "This question does not appear to be about retrocomputing, within the scope defined in the help center." – Raffzahn, user259412, pndc, scruss, pipe
If this question can be reworded to fit the rules in the help center, please edit the question.

• What happens if you just dump something onto the printer? Try cat /etc/issue > /dev/lp0 or thereabouts as root and tell us what, if anything, that does. Printing on Linux was a bit of a black art back then, not unlike configuring X11, but just plain text printing was usually easy to trivial to get going. The hard part was to get anything beyond plain text to print. – a CVn Apr 25 at 9:26
• Why not install Win98 and the printer driver in Virtual Box, then share the printer with Linux over the virtual network? <This is not an answer, it's simply what I would do.> – Brian H Apr 25 at 15:36
• @aCVn I've tried echo "Hello World" > /dev/lp0 but no sign of life from the printer. – Mark Messa Apr 25 at 15:43
• @BrianH > "share the printer with Linux over the virtual network?" I was not aware this was possible. However, there are some details to consider: 1) My current win98 didn't install several drivers, including network.Moreover, I'm not sure I can find such drivers. 2) If a printer is share in the network via win98, other computers with more recent kernels would be able to use it?. 3) The only machine with LPT1 is an old Toshiba notebook with 1Gb Ram. Do you think it can handle Debian 9 + Virtual Box + Win98 ? – Mark Messa Apr 25 at 15:59
• Maybe add some 'source' URIs in your sources.list, then sudo apt-get build-dep openprinting-lm1100 and try to rebuild from source? Also, /dev/lp0 tends to be owned by root and in group lp, so if you're not either, it won't work. The 1100 is typically considered a "winprinter", and a works Partially from OpenPrinting generally means it's only worth the effort if the printer is rare/expensive. This is very unlikely to be a kernel issue, more of a who-knows-what winprinter issue. – scruss Apr 25 at 16:34