Here's how I transformed a cheap tablet into a printing server by installing linux
Posted by Mino260806@reddit | linux | View on Reddit | 51 comments
christophocles@reddit
yeah, I had hoped to use CUPS as a print server for our HP printer. This printer has a USB port and wifi, but no ethernet port. For some reason it can't remember the wifi password for more than about 2 months, and then I get complaints that the printer doesn't work, and I had to go re-enter the password. An ethernet port would have solved this, but with the lack of an ethernet port, I hoped that a USB connection to an mini PC with ethernet would solve this.
After I finished setting up Debian on the mini PC, installed the HP printer drivers from the repos, and plugged in the printer, everything seemed to be working. Except the print quality was complete trash compared to what the printer is actually capable of when printing with the Windows drivers. Very disappointing.
Sadly, I wipe the mini PC and install Windows and proper HP drivers on it just to be able to print in decent quality. That's right, a full-blown Windows 11 installation running headless as a print server. Disgusting. But at least I don't have to re-enter the wifi password ever again.
Mino260806@reddit (OP)
Well my printer is already bad quality so I didn't have this problem. But did you do all of this setup just because you forgot your wifi password ? Why didn't you try getting the wifi password from another connected device ?
christophocles@reddit
You misunderstand. The printer forgets the wifi password. In typical printer fashion, it has to try as hard as it can to be an unreliable piece of garbage that never works when you need it to. I remember my own wifi password just fine, thank you very much. I just don't enjoy having to go upstairs and re-configure the wifi settings on the printer every other month, spending about 10 minutes typing the password using the 3 buttons on the top of the printer.
Mino260806@reddit (OP)
You could also open a wifi hotspot with no password and whitelist the printer mac address, when you need to print. Did you try it ?
christophocles@reddit
Did I try purchasing a second wifi router and running it with no security, just to make this stupid printer work properly? No, I did not, and would not, try that. I want to eliminate unnecessary wifi in my house, not add more. Wifi is for laptops and phones only. It was a mistake to buy a network printer without an ethernet port.
Mino260806@reddit (OP)
I meant you could open a wireless hotspot on computer / phone, but nvm
christophocles@reddit
The printer belongs to my wife, and that's way too technical and too much effort to do every time she needs to print. The unsecured AP would have to stay open all the time. And besides that, my wife's desktop PC doesn't even have wifi. And besides that, the printer is randomly losing all of its wifi settings, not just the password. So someone would still have to go push buttons on the printer to re-select the SSID, even if there's no password. So this probably wouldn't even work.
A printer is a static device with a dedicated place in the office. There is absolutely no reason a printer should need to be connected wirelessly in the first place. Hardwired connections are reliable. Wifi is not.
Dist__@reddit
now i'm telling my PC
"Here, look - even a cheap tablet can print as server, YOU cannot print anything you stupic piece of trash" /s
^((month of futile attempts fixing printing on mint, still i have to use liveusb to print))
maus80@reddit
Well.. get yourself a (network connected) Brother printer (instead of horrible HP) and you'll be printing smoothly and flawlessly from Linux.
Dist__@reddit
a price of free software )
Flyerone@reddit
Which will be recovered by cheaper after market ink/toner.
Mino260806@reddit (OP)
What kind of error are you getting ? I suspect it's a driver compatibility problem. I stated that I tried over than 5 linux distros and I encountered problems for example in Alpine linux it doesn't use glibc which is required for driver, and for debian and ubuntu I was using an older version at first that chips with an old version of glibc, which isn't supported by the driver too.
BespokeChaos@reddit
I have never had any issues with Linux and printers. I agree. Check the manufacturer of your printer for a Linux driver.
christophocles@reddit
And if your printer manufacturer doesn't support linux, you have options: * hope that the generic CUPS drivers will print, at all, and in acceptable quality * ditch the HP printer and buy something else * run Windows on print server
So it's just like everything else in linux. If it works, it works beautifully and reliably. If it doesn't work, you're in for a world of pain.
BespokeChaos@reddit
I don’t like HP. Cannon, epson and brothers tend to be better
christophocles@reddit
I've also had good results with Samsung.
Actually, come to think of it, this problematic printer wasn't HP, it was Canon. Check the manufacturer website for linux support before buying the printer!
BespokeChaos@reddit
I’ve never had an issue with cannon but then anything is possible in tech.
BespokeChaos@reddit
If you need more professional, kyocera.
Dist__@reddit
it it HP M1132 MFP via USB, it is recognized just fine, but it needs proprietary plugin which is downloaded by an app in repository (hplip) and needed for printer to work. i had no issues with printing on mint 21.3 before upgrade to 22 which i rolled back for another unrelated problem. i can't say it's rollback broke it, because i do not print daily, it could be some update before that.
when i print, it adds to queue but never ends, and status says no color profile can be found (the printer is monochrome btw).
it is for test pages, for docs and for pdf files, i re-installed hplip, plugin, even CUPS, i installed plugin in terminal and in gui mode, i made sure PPD is there, i tried to select generic driver, exact driver, nothing works. even tried to re-compile (i do not remember what exactly) but could not match configure requirements.
mint22 uses higher version of hplip and plugin, so i cannot take new plugin/driver and put it on my system.
i have not tried adding mint22 repo and install driver from there.
for now, as i need to print really not often, i'm ok booting from mint22 liveusb, quickly install the driver and print, it works just fine.
Tinker0079@reddit
Just rip the PPD files from their crapware and you're set.
Dist__@reddit
i tried to take ppd file from timeshift directory, but it did not work
maybe it's good idea to not install external app at all, i will see if this is possible
Mino260806@reddit (OP)
https://developers.hp.com/hp-laserjet-professional-m1132-multifunction-printer
What's the hplip version that isn't working ? The website says min is 3.10.4
Otherwise, to troubleshoot do
cat /var/log/cups/error_log
you'll probably find sth remarkable after it doesn't work.If nothing works, as a better workaround you can use
chroot
to run another distro without having to do liveusb (I don't know how it works exactly, but I'm sure it does). After first setup you would just mount it chroot to it print and unmount itInfrared-77@reddit
CUPS Tablet is wild
rileyrgham@reddit
Print servers are so 90s 😉
Cultural_Bug_3038@reddit
Look, the Chinese can do better and even more crazy
Mino260806@reddit (OP)
Maybe that's the secret
ipaqmaster@reddit
That poor thing. Awesome though
BespokeChaos@reddit
Never thought of this. I did this with a pi 4
grem75@reddit
I did it with a $2 thrift store router that had a USB port and ran OpenWRT.
christophocles@reddit
I tried this with an old Linksys NSLU2. Installed Debian on it, got the CUPS server up and running, installed HP print drivers from repo. As it turns out, those drivers didn't support the ancient 32-bit ARM CPU. No printo.
So I bought an Intel NUC with x86 processor for $50 on ebay. Yeah this is no longer a cheap project but I was determined. Installed Debian on it, got the CUPS server up and running, installed drivers. It prints! Except the print quality was awful. It looked horrible and soaked through the paper with ink. Just awful.
So the NUC came pre-installed with Windows 11. I had only shrunk the partition and dual-booted Debian. So I rebooted into Windows, installed printer drivers, and it prints beautifully. Shared the printer on the local network and called it a day.
BespokeChaos@reddit
On the Linux distro there are usually driver settings that will fix this.
christophocles@reddit
yeah I suppose I could have spent several more hours tinkering with it to try to get acceptable print quality out of the unsupported printer. An effort that would likely have been unsuccessful, resulting in even more frustration and inevitable abandonment of linux in any case.
My point is, get a printer with open source driver support or don't even bother trying.
BespokeChaos@reddit
As a copier guy sometimes it’s more simple. Though inkget can be annoying.
Mino260806@reddit (OP)
Using a pi is better because it's faster (I assume), and can stay plugged in. I chose to use this tablet because it was laying around with no purpose.
BespokeChaos@reddit
Granted. Just never thought of using a tablet for it. Still wanna try it.
RoxyAndBlackie128@reddit
tf does granted mean in this situation
BespokeChaos@reddit
If you read the comments they stated the Pi is better. I am acknowledging that but still letting OP know his idea is cool and I wanna try it. It’s a learning experience. Come on man
Knopfmacher@reddit
I'm using a really old Raspberry Pi as a print server for my USB-only Brother laser printer. Using the JetDirect protocol it was so easy that I didn't even need to bother with CUPS. This is my whole print server:
Which is executed through xinetd:
So bascially the whole setup is "take the RAW tcp stream and dump it into the printer's USB device file". Printing works perfectly from both Windows and macOS.
imbev@reddit
Any issues printing from another Linux device?
Mino260806@reddit (OP)
That's wild! What form of data does it dump though ? Pdf for example ? Does the printer do the decoding itself ?
TryHardEggplant@reddit
Im guessing, based on the name, that it's just Postscript or similar, which most printers understand. It's basically a socket to forward the data to the printer.
Every_Commercial556@reddit
Cool gadget
grem75@reddit
My old print server was a $2 thrift store router that had a USB port and ran OpenWRT.
NaoPb@reddit
Sounds like a great learning and problem solving experience. And good for the environment to reuse existing equipment. Though some of us would probably have traveled the easy path and bought an off the shelf printserver.
Mino260806@reddit (OP)
Tbh I would've bought one if I found it 😅. In my country these gadget equiments are hard to find and double original price because of toll, to the point it would reach the price of a new entire printer, so lets say the circumstances forced me to innovate. As they say, necessity is the mother of invention 🤷🏻♂️
NaoPb@reddit
Ah right. Sometimes I forget availability is not always the same anywhere in the world. i agree with you and Iḿ impressed with your work.
temperamentni@reddit
Very interesting, thanks for sharing. I have a couple of questions because I tried to do something similar before:
Mino260806@reddit (OP)
CUPS supports [printer sharing])https://www.cups.org/doc/sharing.html]. When you add a printer there's a checkbox "Share Printer". As simple as that, CUPS will display as a network printer just like any other printer. It uses IPP protocol which is supported by most modern OSes (windows, macos, linux , android, ios...).
So in short, yes, just hit ctrl+p
Prebuilt Fahrer are available but as always not for arm. But hopefully, the drivers for the printer are open source. You will need to build them on the pi itself and target arm architecture (I suck at building code from source, I can't provide further info here). After that you should be good to go, printer should appear in CUPS.
So yes, definitely possible
temperamentni@reddit
Thank you for your time!
eftepede@reddit
Ok.
Monocyorrho@reddit
Sweet!