Claude is great at that. I have a usb keypad with no linux version of the app to program it. Since its just a vial/qmk based, claude built me a linux version in qt/python.
Claude can do Linux drivers too. A friend bought a second-hand Intel Mac, installed Linux, found that a lot of the hardware didn’t work. It wasn’t very hard to get Claude to write those drivers.
Unfortunately this is a very misleading article and headline. I don't doubt the end result - it's useful that it works, but it's not "natively" and, unlike what some people assume, Claude didn't write a driver. It basically used HP's existing proprietary driver in a Linux VM on macOS, and just bridged that to macOS.
It also requires a root launcher that runs code from the user ~/.hp1008 dir, so security is weakened.
I bought some cheap host-managed SATA drives the other day that the BIOS can't see and Windows won't recognize. I asked Claude to write a Windows app so I can use them, and it resisted at first, but then gave up and wrote it and they now work great.
It had to implement the entire stack of bare-metal drive functions over SATA and a whole new filesystem to go with it.
Generate the VM, send it crafted PDFs to print, see what it produces, and build a driver. Not that “hard” even for a human, an AI could probably one-shot it.
Yeah, that was rather disappointing. I wouldn't have minded that the Linux driver had been used as an input, allowing Claude to reason about the functionality and interface. That seems like a reasonable approach.
The "only built for Windows" is also a little dubious. Technically I suppose HP could have just intended it as a Windows printer, but the driver clearly already exists in CUPS, which Apple also uses, so porting the driver isn't an unreasonable thought.
"Also some clarification on the "he's just using the linux driver in the VM" - not quite
This is one of the weirdest batch of printers HP made because it's a rebranded Samsung - it "comes" under HP's unified drivers system but specifically has Samsung's printer language so compatibility is extremely messy.
What this version does is take the Linux Unified Driver and extract just the relevant component, rastertospl, basically the codec that turns CUPS raster data into the Samsung SPL format the printer understands. That codec is then wired into macOS’s native CUPS stack, so printing happens through the system like a normal driver. There’s no Linux VM handling the actual print workflow and the entire process basically acting as a driver normally at system level.
In theory, yeah - rastertospl could be reimplemented from scratch. But that would be way more unreliable while turning this from a ~4-hour project into a ~4-day reverse-engineering project, when starting this, I really just wanted a working home printer and running a tiny compatibility applet in Docker just for that codec feels like a pretty reasonable compromise AND I get to not see my mac kernel crash if it messes up.
I didn't expect this to blow up this much lol, so I'll be experimenting with this further and am already in talks with the splix team to sort this specific version out"
You didn't have what you needed; you asked an AI to help make what you needed.
Problem solved. New problem created.
New problem?
Justifying the use of AI to do something these people act like would magically get done if you were just slightly more patient. Or, if you put in 60+ hrs of time.
Haha perfectly said and reminds me of the time I used AI to fix my neighborhood's comcast outages by correctly diagnosing the issue and there was a guy in the comments thread angry with me for burning down rainforests
"hpl1008-usbd: native macOS USB bridge for the HP Laser 1003-1008."
By contrast, the README is still lying about this being a printer driver.
You need a lot of clarifications, since the presentation is chaotic, the repo is chaotic and this is a marketing stunt with exaggerated language and promises.
I do not want to call anyone names but the level of pedantry and gatekeeping in this comment and the replies is outstanding. I can hear Chuck McGill screaming "You're not a real driver!".
requiring a full blown VM (with a different OS) to implement a driver (normally that would work in ring-0 along with the original OS) is not pedantry.
for instance the 'windows' part is also entirely nonsensical as the printer works on a default mint installation w/o any issues. The "obscure" part is weird as you can just buy the printer online as well.
> A device driver is software that operates or controls a particular type of device that is attached to a computer.[1] A driver provides a software interface to hardware devices, enabling other software to access hardware functions without needing to know precise details about the hardware.
I do not want to call anyone names but carrying water for a $trillion industry by using cheap talking points like "gatekeeping" and "democratizing" is a sign of being an industry [British word for cigarettes].
Yes, they probably read it 15 hours ago when that comment was posted, before OP changed it, in response to these comments.
Though I'm not convinced it actually is. OP said the same the first time around, and I don't think actually understands what they (or rather Claude) is doing. The HN comment here claiming they updated it, clearly written by Claude, doesn't inspire much confidence.
So the critique from the other story holds true - it really is just running the Linux driver inside docker, and (perhaps) dressing it up as something more - though I note the claim on this page is walked back from the original 'writing the driver'. On the other hand, it really did get him printing from his Mac, so in this new LLM results based world we live in it did its job admirably.
I was able to (through heavy Claude use) successfully reverse engineer a golf cart motor controller that is programmable over USB, but only was supported by a Windows application. Claude walked me through using ILSpy on the .NET assembly, using Wireshark to capture the protocol over USB, and to completely map out all of the functionality in the Windows application. The output was a portable C library and CLI program which, so far, has worked well.
I consider myself kind of an AI detractor but even I'll admit that the tool allowed me to do something it would have taken weeks-to-months to learn to do the hard way.
Had a similar experience getting a niche app running under wine. The bot had to bring in a different open source renderer, patch dlls, adapt a mapping tool from a different chip architecture to partly map and modify the binary, crazy stuff. Alternatives exist but are expensive, this got it working in an hour when doing it myself would probably be 2 weeks.
Last week I had Claude add support for aac audio to davinci resolve on Linux, just by patching the binary. It did almost exclusively with gdb and objdump, patching about 5 functions over an hour or two of exploration and back and forth.
I only got it to the proof of concept stage. The patch adds aac but breaks flac support in the process. And it only works for aac in mp4 container files. But I’m sure with a bit of time we could make a patch which works everywhere and is additive only.
I say ‘we’ - I barely helped. Almost all the work was done by Claude.
Here’s Claude’s report, if anyone wants to build on this work:
"I only got it to proof of concept.... I'm sure with time"
this is AI psychosis. LLMs by design product plausible output -- it ALWAYS seems like you just need a little more time. That's why the junkies are up all night playing with these things, and yet the next industrial revolution has NOT arrived. if this is the singularity where is my clothes folding bot, my cold fusion, and my cure for all cancers?
Please do not post about things the bot almost did. Nobody cares. When you COMPLETE something with the bot you can post. The rest is delusions.
The proof of concept works. You can use aac audio in resolve on Linux. It hasn’t been polished or productised, but it’s demonstrably working. If I got to this point on my own, I’d be very satisfied that I could finish the job.
That would be a justifiable inference in that case. But you didn't get to this point on your own. You haven't learned the knowledge you would have learned getting to this point on your own. Claude didn't either; generally speaking, it doesn't learn. So reasoning by analogy to if you had gotten to this point on your own may be misleading. It may or may not be able to finish the job. You won't know until you try.
> Claude may or may not be able to finish the job. You won't know until you try.
Yes, it’s weak evidence. Not proof. That is why I was quite explicit about what it has and hasn’t accomplished.
In my time with it, Claude seems fine at finishing up projects. And I’ve done enough reverse engineering to have a reasonably firm understanding of the outstanding work. I predict that Claude will have no problem finishing this up with some more guidance and tokens. You can of course have your own opinion, but I think it’s a bit much to claim I’m suffering from ai psychosis for having this expectation of its capabilities.
This isn’t “AI psychosis”. Stop this. Stop corrupting the definition of “psychosis” by pretending that “AI psychosis” can just be used as a descriptor for anyone that thinks that an LLM can do a thing that you don’t think it can. Any use of the term “AI psychosis” in all but the strictest sense is a huge red flag that someone’s objection is based on philosophical or political grounds, and your objection is a textbook example of that.
Most big tech use LLMs to write most if not all of their code in current year. I have many negative things to say about it but if you think LLMs with a good harness can’t make anything that works you’re plain wrong. We’re shipping AI authored code to prod every day and it does the thing. Or maybe the psychosis goes so deep I’m just imagining all this and I’m actually unemployed
This is an extremely limited mindset. Reminds me of idiots linking to “ask smart questions” which does more to stifle conversation and education than anything else.
Are we either in a dangerous time where we'll run out of people that have weeks to months, and the resolution/boredom/ability to figure this sort of thing out?
Or are we in a really cool time where we've solved everything so much so many times we can focus on other things?
Tertiary question: If answer two, what the fuck is that?
For programmers this is the equivalent of when accountants got spreadsheets. We can just tell the machine what to do without manually performing all the steps.
Some programmers enjoyed the code writing more than the problem solving though.
> Some programmers enjoyed the code writing more than the problem solving though.
Programmers enjoy problem solving and coding, but wishing to have problems solved isn't the same thing and only satisfying if it wasn't something that was going to get done otherwise. Wishing products into existence is more of a PM dream
Ditto (except not being an AI detractor): I used Claude and Codex to reverse engineer the proprietary protocol for controlling Devialet amplifiers and then build an iOS controller app to replace the manufacturer's abandoned official app.
The whole thing took about a day, spread out over a week or so. Without AI, I wouldn't have even started the project, because I couldn't spare the time it would have taken.
Sort of. The company released a new model and deprecated its older ones. It’s still possible to control the amps with the (really neat) physical remote.
I'd be cautious here because you very easily could brick the hardware. For writing a PC driver it's a lot safer since you can just fail repeatedly until it works.
Doing something similar with audio equipment. I have an older USB midi controller that doesn’t seem to have official support. Claude helped bring it back to life!
I recently reverse engineered a binary in a system image of Fabrice Bellard's JSLinux [1]. When given just the binary and asked to reverse engineer, Claude Sonnet quickly identified that some utility functions looked like some Fabrice's (yes, Claude mentioned his name without more hints than the binary) library code, so that helped me to guide Claude to fetch some original source code from a Fabrice project (tinyEMU) to use in the reversed project. That allowed to reach a reverse C file that contains just the original part.
ChatGPT 5.6 helped me to fully reverse engineer save file format for a relatively-known game, and write a working serializer/deserializer to edit in-game currency. Reverse engineering is something I've always wanted to learn but now I am starting to question if it is worth learning manual reverse engineering at this age when AI can do it for us.
Somehow, I'm not exactly sure why, I got creeped out by Claude's finishing line:
> Thanks for being such a game debugging partner through all the test pages. Enjoy printing, you and the family.
Maybe it's because my own LLM usage is very "Question > Answer" or "Do this > Agent does that" and I never say "Wow, that's crazy it works, thank you!" at the end or such, so I don't see that sort of things, but if I saw that regularly I'd turn me off so badly from using LLMs. I'm not exactly sure where this feeling is coming from though, it's relatively innocent but just feels so inauthentic, I'm guessing because it's simply a machine.
The way that you talk to it influences the way that it responds to you and it is not subtle. I don't want to hitch on to the "it's just really complicated autocomplete" bandwagon, but this is one of the ways that it does feel like that.
With voice dictation (wispr flow), I find it easier for me to talk naturally as if I'm talking to a friend. I'll sometimes give lengthy notes on context for a project, like why I want to do it, e.g. something for my wife to use.
So I find it common (and fine, I suppose) for Claude to reply using that context. "Let me know what your wife thinks of the app" etc.
If this could all finally solve, once and for all, printing and scanning issues it'd be lovely (btw there are entire businesses who's only raison d'etre is "installing printers at clients and fixing them when they stop printing").
But of course it's hard not to both marvel and lament (at) the fact that in the mid-1990s (so yup 30 years ago) I could:
nc 192.168.1.150 9100 < tiger.ps
And the native PostScript printer (also an HP laser btw: a LaserJet) would just start printing.
I know, I know, about garbled print jobs, pages of codes being printed, etc.
But still: it's hard to not at least wonder if some things haven't been lost. For a start printers with their own IP addresses were sweet (instead of a USB cable and, now, people setting up, say, a Pi just to expose a LAN IP for/to their printer). Then of course another talk could be had about the "quality" of modern day HP laser printers compared to what you'd get int the nineties.
They needed more memory and a faster processor as well which bumped the price up. In the mid eighties I worked for a company distributing QMS printers in the UK. A basic laser was selling for £2,000 and the PostScript equivalent was £4,000.
Printers of the 80s and early 90s were more performant PCs than the typical PC which printed on it. Because you can't process full color 600 DPI page on the 90s PC with 8-16 MB of RAM, but the printer needs to do that.
Once and for all solution is to run a dedicated print server for outdated printers, which implement AirPrint/Mopria and convert the incoming data into printer's native language. This way it withstands all the PC/smartphone OS updates and don't require compatibility fixes.
I've spent 3 years on improving all the underlying stack and drivers to make it work reliably and bug-free, but the current RAM prices resulting in 2x price increase for the cheapest SBC, which makes the project economically infeasible to continue.
This is awesome. I take it your plans for the next weekend include actually cleanrooming the driver so you can skip running it in a linux container? =P
Had a similar experience. I bought an ePaper display and a Pi 4 to run a calendar widget on. I got stuck because the open source project I was building off expected the previous generation of ePaper display, and the firmware had changed completely. I found the new firmware examples, but got stuck trying to get it to work. With Claude assisting we banged it out in two sessions of about 3 hours each.
codeberg.org/mjmvisser/infoframe if anyone’s interested.
Wouldn't it have made more sense for Claude to suggest using the existing Linux-Airprint-VM project/product that already does this exact thing?
There's even a zero-install method via https://printervention.app where it runs that Linux VM isolated inside a WebUSB-capable browser. That website itself was posted right here on HN not too long ago.
I get that the LLM code assistant software prefers writing stuff, but constantly re-writing the same solution seems a bit inefficient.
Are you sure that approach would work? Usually I find these sort of projects end up not working just for the specific device I happen to have, which is always unsupported lol.
Reminded me of when I had a Teletype ASR33 on AirPrint (https://github.com/hughpyle/ASR33/tree/master/cups). With LLMs that would have taken a half hour. It would have maybe been less fun? but there's a lot of time faffing around on PPD that I'll never get back.
97 comments
[ 0.28 ms ] story [ 22.4 ms ] threadSame thing here brother: DCP-L2510D (laser printer + scanner).
Wife is on MacOS and cannot print/scan from there, so I'm the scanman.
The real trick is to have the AI do something that makes its own money, then tokens are effectively free.
People who are complaining about token costs aren't trying.
It also requires a root launcher that runs code from the user ~/.hp1008 dir, so security is weakened.
I am sooo tired of this AI generated slop.
I bought some cheap host-managed SATA drives the other day that the BIOS can't see and Windows won't recognize. I asked Claude to write a Windows app so I can use them, and it resisted at first, but then gave up and wrote it and they now work great.
It had to implement the entire stack of bare-metal drive functions over SATA and a whole new filesystem to go with it.
OP should probably add this to his list of accomplishments on LinkedIn...
The "only built for Windows" is also a little dubious. Technically I suppose HP could have just intended it as a Windows printer, but the driver clearly already exists in CUPS, which Apple also uses, so porting the driver isn't an unreasonable thought.
This is one of the weirdest batch of printers HP made because it's a rebranded Samsung - it "comes" under HP's unified drivers system but specifically has Samsung's printer language so compatibility is extremely messy.
What this version does is take the Linux Unified Driver and extract just the relevant component, rastertospl, basically the codec that turns CUPS raster data into the Samsung SPL format the printer understands. That codec is then wired into macOS’s native CUPS stack, so printing happens through the system like a normal driver. There’s no Linux VM handling the actual print workflow and the entire process basically acting as a driver normally at system level.
In theory, yeah - rastertospl could be reimplemented from scratch. But that would be way more unreliable while turning this from a ~4-hour project into a ~4-day reverse-engineering project, when starting this, I really just wanted a working home printer and running a tiny compatibility applet in Docker just for that codec feels like a pretty reasonable compromise AND I get to not see my mac kernel crash if it messes up.
I didn't expect this to blow up this much lol, so I'll be experimenting with this further and am already in talks with the splix team to sort this specific version out"
Problem solved. New problem created.
New problem?
Justifying the use of AI to do something these people act like would magically get done if you were just slightly more patient. Or, if you put in 60+ hrs of time.
By contrast, the README is still lying about this being a printer driver.
You need a lot of clarifications, since the presentation is chaotic, the repo is chaotic and this is a marketing stunt with exaggerated language and promises.
for instance the 'windows' part is also entirely nonsensical as the printer works on a default mint installation w/o any issues. The "obscure" part is weird as you can just buy the printer online as well.
- https://en.wikipedia.org/wiki/Device_driver
Is using a VM running another operating system as part of a driver weird, yes. Is it still a driver? Also yes.
Though I'm not convinced it actually is. OP said the same the first time around, and I don't think actually understands what they (or rather Claude) is doing. The HN comment here claiming they updated it, clearly written by Claude, doesn't inspire much confidence.
I consider myself kind of an AI detractor but even I'll admit that the tool allowed me to do something it would have taken weeks-to-months to learn to do the hard way.
I only got it to the proof of concept stage. The patch adds aac but breaks flac support in the process. And it only works for aac in mp4 container files. But I’m sure with a bit of time we could make a patch which works everywhere and is additive only.
I say ‘we’ - I barely helped. Almost all the work was done by Claude.
Here’s Claude’s report, if anyone wants to build on this work:
https://claude.ai/code/artifact/87d38c2e-9ecb-4066-90cf-e0b2...
https://github.com/josephg/resolve-aacfix/releases
this is AI psychosis. LLMs by design product plausible output -- it ALWAYS seems like you just need a little more time. That's why the junkies are up all night playing with these things, and yet the next industrial revolution has NOT arrived. if this is the singularity where is my clothes folding bot, my cold fusion, and my cure for all cancers?
Please do not post about things the bot almost did. Nobody cares. When you COMPLETE something with the bot you can post. The rest is delusions.
Yes, it’s weak evidence. Not proof. That is why I was quite explicit about what it has and hasn’t accomplished.
In my time with it, Claude seems fine at finishing up projects. And I’ve done enough reverse engineering to have a reasonably firm understanding of the outstanding work. I predict that Claude will have no problem finishing this up with some more guidance and tokens. You can of course have your own opinion, but I think it’s a bit much to claim I’m suffering from ai psychosis for having this expectation of its capabilities.
Or are we in a really cool time where we've solved everything so much so many times we can focus on other things?
Tertiary question: If answer two, what the fuck is that?
For programmers this is the equivalent of when accountants got spreadsheets. We can just tell the machine what to do without manually performing all the steps.
Some programmers enjoyed the code writing more than the problem solving though.
Programmers enjoy problem solving and coding, but wishing to have problems solved isn't the same thing and only satisfying if it wasn't something that was going to get done otherwise. Wishing products into existence is more of a PM dream
The whole thing took about a day, spread out over a week or so. Without AI, I wouldn't have even started the project, because I couldn't spare the time it would have taken.
The odds of success go up a LOT when the stock firmware is easy to extract and reverse engineer.
This reminds me to have a look at the latest update I installed in my car for my navigation system and which is installed via an USB key.
[1]: https://github.com/dolmen/JSLinux-utils/blob/main/export_fil...
> Thanks for being such a game debugging partner through all the test pages. Enjoy printing, you and the family.
Maybe it's because my own LLM usage is very "Question > Answer" or "Do this > Agent does that" and I never say "Wow, that's crazy it works, thank you!" at the end or such, so I don't see that sort of things, but if I saw that regularly I'd turn me off so badly from using LLMs. I'm not exactly sure where this feeling is coming from though, it's relatively innocent but just feels so inauthentic, I'm guessing because it's simply a machine.
So I find it common (and fine, I suppose) for Claude to reply using that context. "Let me know what your wife thinks of the app" etc.
But of course it's hard not to both marvel and lament (at) the fact that in the mid-1990s (so yup 30 years ago) I could:
And the native PostScript printer (also an HP laser btw: a LaserJet) would just start printing.I know, I know, about garbled print jobs, pages of codes being printed, etc.
But still: it's hard to not at least wonder if some things haven't been lost. For a start printers with their own IP addresses were sweet (instead of a USB cable and, now, people setting up, say, a Pi just to expose a LAN IP for/to their printer). Then of course another talk could be had about the "quality" of modern day HP laser printers compared to what you'd get int the nineties.
I've spent 3 years on improving all the underlying stack and drivers to make it work reliably and bug-free, but the current RAM prices resulting in 2x price increase for the cheapest SBC, which makes the project economically infeasible to continue.
People on Reddit told me that in US there just "is'nt any non-wifi models". I'm not sure how true this is. If you have anything to comment, please do: https://old.reddit.com/r/printers/comments/1v09kb8/usbtowifi...
codeberg.org/mjmvisser/infoframe if anyone’s interested.
There's even a zero-install method via https://printervention.app where it runs that Linux VM isolated inside a WebUSB-capable browser. That website itself was posted right here on HN not too long ago.
I get that the LLM code assistant software prefers writing stuff, but constantly re-writing the same solution seems a bit inefficient.
https://github.com/leftouterjoins/EpilogDriver