TUNELP(8)

πŸ“¦
version 2.42.4 Β· 2 versions
, in arch rolling

πŸ’– TUNELP(8) β€” the vibe is "system administration" ✨

okay so bestie, pull up a chair, we're talking about tunelp, a lil util-linux icon from the System Administration section of the manual. she's giving "I fix your printer situation" energy and honestly? she ate. πŸŽ€


🌸 NAME 🌸

tunelp β€” set various parameters for the lp device

like, she tunes. the lp. that's the whole job. πŸ’…


✨ SYNOPSIS ✨

tunelp [options] device

πŸ¦‹ DESCRIPTION πŸ¦‹

so tunelp sets a bunch of parameters for the /dev/lp? devices so your printing can be better β€” or, lowkey, so it can work at all, if your printer is one of those divas that refuses to function without being tuned first. 😭 no cap.

If you run her with no parameters at all, she'll just tell you whether the device is using interrupts, and if it is, which one. main character behavior: she just tells you. πŸ‘‘

But if you DO pass parameters, she sets the device characteristics accordingly. slay.


πŸ’… OPTIONS πŸ’…

  • -i, --irq argument β€” specifies the IRQ to use for the parallel port in question. If this is set to something non-zero, -t and -c have no effect. If your port does not use interrupts, this option will make printing stop. 😳 The command tunelp -i 0 restores non-interrupt driven (polling) action, and your printer should work again. If your parallel port does support interrupts, interrupt-driven printing should be somewhat faster and efficient, and will probably be desirable. ✨
NOTE: This option will have no effect with kernel 2.1.131 or later since the irq is handled by the parport driver. You can change the parport irq for example via /proc/parport/*/irq. Read /usr/src/linux/Documentation/admin-guide/parport.rst for more details on parport.
  • -t, --time milliseconds β€” is the amount of time in jiffies that the driver waits if the printer doesn't take a character for the number of tries dictated by the -c parameter. 10 is the default value. If you want fastest possible printing, and don't care about system load, you may set this to 0. If you don't care how fast your printer goes, or are printing text on a slow printer with a buffer, then 500 (5 seconds) should be fine, and will give you very low system load. This value generally should be lower for printing graphics than text, by a factor of approximately 10, for best performance. πŸ–¨οΈ
  • -c, --chars characters β€” is the number of times to try to output a character to the printer before sleeping for -t TIME. It is the number of times around a loop that tries to send a character to the printer. 120 appears to be a good value for most printers in polling mode. 1000 is the default, because there are some printers that become jerky otherwise, but you must set this to '1' to handle the maximal CPU efficiency if you are using interrupts. If you have a very fast printer, a value of 10 might make more sense even if in polling mode. If you have a really old printer, you can increase this further. πŸ‘΅

Setting -t TIME to 0 is equivalent to setting -c CHARS to infinity. ♾️

  • -w, --wait milliseconds β€” is the number of usec we wait while playing with the strobe signal. While most printers appear to be able to deal with an extremely short strobe, some printers demand a longer one. Increasing this from the default 1 may make it possible to print with those printers. This may also make it possible to use longer cables. It's also possible to decrease this value to 0 if your printer is fast enough or your machine is slow enough. ⚑
  • -a, --abort <on|off> β€” This is whether to abort on printer error β€” the default is not to. If you are sitting at your computer, you probably want to be able to see an error and fix it, and have the printer go on printing. On the other hand, if you aren't, you might rather that your printer spooler find out that the printer isn't ready, quit trying, and send you mail about it. The choice is yours. 🫡
  • -o, --check-status <on|off> β€” This option is much like -a. It makes any open(2) of this device check to see that the device is on-line and not reporting any out of paper or other errors. This is the correct setting for most versions of lpd. βœ…
  • -C, --careful <on|off> β€” This option adds extra ("careful") error checking. When this option is on, the printer driver will ensure that the printer is on-line and not reporting any out of paper or other errors before sending data. This is particularly useful for printers that normally appear to accept data when turned off. πŸ™ˆ
NOTE: This option is obsolete because it's the default in 2.1.131 kernel or later.
  • -s, --status β€” This option returns the current printer status, both as a decimal number from 0..255, and as a list of active flags. When this option is specified, -q off, turning off the display of the current IRQ, is implied. πŸ“Š
  • -r, --reset β€” This option resets the port. It requires a Linux kernel version of 1.1.80 or later. πŸ”„
  • -q, --print-irq <on|off> β€” This option sets printing the display of the current IRQ setting. 🎚️
  • -h, --help β€” Display help text and exit. πŸ†˜
  • -V, --version β€” Display version and exit. 🏷️

πŸ“ FILES πŸ“

  • /dev/lp?
  • /proc/parport/*/*

πŸ‘‘ NOTES πŸ‘‘

  • -o, -C, and -s all require a Linux kernel version of 1.1.76 or later.
  • -C requires a Linux version prior to 2.1.131.

πŸ’€ REPORTING BUGS πŸ’€

For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.

like bestie if something's cursed, tell the maintainers, they wanna know fr fr. 🫢


🌈 AVAILABILITY 🌈

The tunelp command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.


and that's the whole page, bestie!! 🧚✨ this lil manual is living in util-linux 2.42.4, dated 2026-09-21, and it's still serving printer-tuning realness after all these years. go tune ur port. periodt. πŸ’–

πŸ“¦ where this page comes from
  • arch rolling: util-linux 2.42.4-1 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND ISC AND LGPL-2.1-or-later AND LicenseRef-PublicDomain
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms