lp0 on fire
lp0 on fire (also known as Printer on Fire) is an outdated error message generated on some Unix and Unix-like computer operating systems in response to certain types of printer errors. lp0 is the Unix device handle for the first line printer, but the error can be displayed for any printer attached to a Unix/Linux system. The message did not reliably indicate whether the printer in question was actually on fire.
The "on fire" message probably originated in the late 1950s, when high speed computerized printing was still a somewhat experimental field. The first documented fire-starting printer was a Stromberg-Carlson 5000 xerographic printer (similar to a modern laser printer, but with a CRT as the light source instead of a laser), installed around 1959 at the Lawrence Livermore National Laboratory and modified with an extended fusing oven to achieve a print speed of one page per second. In the event of a printing stall, and occasionally during normal operation, the fusing oven would heat paper to combustion. This fire risk was aggravated by the fact that if the printer continued to operate, it would essentially stoke the oven with fresh paper at high speed. There is, however, no evidence of the "lp0 on fire" message appearing in any software of the time.
As the technology matured, most large printer installations were drum printers, a type of impact printer which could print an entire line of text at once through the use of a high speed rotary printing drum. It was thought that in the event of a severe jam, the friction of paper against the drum could ignite either the paper itself, or, in a dirty machine, the accumulated paper and ink dust in the mechanism. Whether this ever happened is not known; there are no reports of friction-related printer fires.
The line printer employed a series of status codes, specifically ready, online, and check. If the online status was set to "off" and the check status was set to "on," the operating system would interpret this as the printer running out of paper. However, if the online code was set to "on" and the check code was also set to "on", it meant that the printer still had paper, but was suffering an error (and may still be attempting to run). Due to the potentially hazardous conditions which could arise in early line printers, Unix displayed the message "on fire" to motivate any system operator viewing the message to go and check on the line printer immediately.
While modern inkjet and laser printers are nowhere near as spontaneously flammable as their mainframe ancestors, the lp device code in all sorts of POSIX-compliant operating systems retained this legacy message. As printer drivers and support improved, this error condition could be trapped and handled appropriately, and as a result, most Unix/Linux users today have never encountered the "on fire" message. However, the message is still present in many kernels, especially those with legacy parallel port device support, and continues to baffle users to this day. The "on fire" message remains in the Linux source code as of version 4.18.
The "on fire" message is also present in other components, often to a humorous effect. For example, in some kernels' CPU code, a CPU thermal failure could result in the message "CPU#0: Possible thermal failure (CPU on fire ?)."
- "LLNL war story concerning the SC5000 and the Radiation Printer". Retrieved November 14, 2011.
- "Mailing list post relating the history of the lp0 on fire error". Retrieved September 11, 2007.
- "Google Code Search for 'lp%d on fire'". Retrieved January 17, 2010.[dead link]
- "Help, my printer port is on fire!!!". Archived from the original on November 3, 2006. Retrieved September 11, 2007.
- "Linux kernel source code for USB printers".
- "linux/drivers/char/lp.c". kernel/git/torvalds/linux.git. Retrieved June 19, 2018.
- "CPU#0: Possible thermal failure (CPU on fire ?)". Retrieved December 21, 2014.