Ink_Level - Check the ink level of your printer with linux


Ink_Level is a means of checking the ink level of your printer on a system which runs Linux version 2.4. It consists of a kernel modul which creates two files, one for black ink and one for color ink, in the /proc filesystem which contain the ink level of your printer. There is only support for printers attached to a parallel port.

How does it work?

IEEE 1284 compliant devices connected to a parallel port can transmit a device id when asked to do so. The device id of inkjet printers often contains the level of ink available. The kernel module named ink asks the printer to transmit its device id and then parses it in order to extract the ink level. The result is saved in the /proc filesystem.


25/08/2003 Development of ink_level is discontinued. Use libinklevel and ink instead.
16/08/2003 Release of version 0.2. Supports now most HP printers.
11/08/2003 Initial version released and web page set up.

Printers supported

The following printers are supported by the current version:

Printers not supported

The following printers cannot be supported because they do not transmit their inklevel:

What to do if your printer is not yet supported

If your printer is neither listed as supported or unsupported, you can do the following to get support for it: Compile the software as described in the section Installation and usage. Then do as root the following:

insmod devid.o
dmesg | tail 
rmmod devid

If your printer is not connected to the first parallel port, use:

insmod devid.o portnumber=<your_port_number>

Then mail the complete line containing the device id to me. Please include a description of your guessed ink level like "nearly empty", "half full" or "nearly full". I will then try to find your ink level in the device id and if succesful write a parser for it and include it in the next version.

If you have a HP printer which transmits its ink level it is already supported. Just follow the instructions in the section Installation and usage. Please let me know the result so that I can add your printer to the appropiate list.


Screenshot of ink level query


This software is licensed under the GPL. It comes with no warranty.



Installation and usage

You have to unpack and compile the software. You need gcc and the kernel header files installed.

tar xzf ink_level-0.2.tar.gz
cd ink_level

After that you have a module named ink.o which you can use as root with

insmod ink.o

If your printer is not attached to the first parallel port use

insmod ink.o portnumber=<your_port_number>

instead. The shell script


will display your current ink level on the screen. Alternatively you can

cat /proc/ink_level/black


cat /proc/ink_level/color

Copy the module and the shell script to a place you like.


Send comments, suggestions, critics, device ids of printers to be supported to Markus Heinz.