Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • If I understand correctly, it just wraps an existing Linux driver in a container. You can hardly call that writing a driver.
  • Would calling it a "driver adapter" fit more accurately .. ?
  • Four hours of a machine looping through a cycle of repetition, guessing and failure, gratuitous air-punching and premature celebration, before eventually landing on a hideous "solution" that just uses an existing driver from another platform.

    LLMs can do stuff but this isn't a good example.

  • I just fix a long standing bug on my Linux desktop I have had for years and kept meaning to look into to see if I could fix. The issue was I have a sound blaster katana sound bar and it works okay but the volume on the device is not in sync with the volume in Linux. In Windows it stays in sync. I can work around it by each time I boot, I press the button to go to max volume, then lower the volume in Linux to the desired level but it's been an annoyance. I described the issue to codex and within a few minutes it had it fixed by updating the pipewire device profiles to use the volume control it exposes. Honestly amazing since I doubt I would have ever gotten around to figuring this out since I didn't even know what level of the stack the issue was, I thought maybe it was in the driver itself.
  • Stuff like this is so nice, I wonder where it will go in the future. Recently on my PC I had a failed windows update that killed the bluetooth driver, I tried to fix it for over an hour and got no where (even consulting chat gpt). I just let codex loose with full authority on the problem and the driver was working again in 5 minutes with no reboot needed.
  • You just gave me an idea to fix lots of little annoyances in my old Linux laptop that had been retired because of those! Maybe the old little laptop can still give me a few more years of fun.
  • 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.

  • I've always thought USB-only made no sense on a printer. If there was one device in your house that multiple computers (and phones, don't forget) would want to use simultaneously, it's a printer. I'll only buy a printer that has its own built in network connectivity. Infuriating to have to stick a Pi onto your printer just so it can do what should be basic, table-stakes functionality.
  • That mid-1990s postscript, networked printer when new cost as much as a small car! The HP Laser 1000 was like $250 tops new.
  • 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.

    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...

  • I was digging into the history of PostScript engines inside laser printers and Adobe made tons of royalty money off of that for quite a long time.
  • Recently, I had bizarre situation: I wanted to play a game from my childhood on Windows 11, but, without changing two booleans in the settings, I could not reliably move my in-game cursor. The catch is that to change those values in the settings, I needed to move my in-game cursor. So I was stuck.

    After digging around, I found a file that looked like it could be the settings file, but it was not plaintext.

    Naturally, I told Claude all the options I knew existed in the settings and told it what I needed it to change.

    After about 10 minutes poking around my system and the file, it correctly identified the bits (not bytes!) that corresponded to the two settings, and flipped them on. It. Just. Worked!

    (Well, then I found out I actually needed to do quite a lot more than flipping those bits, but I still found it worth sharing).

    I have many more experiences similar to these. LLMs are an amazing superpower.

  • I have a similar experience. I'm playing minecraft lately and I have patched already like 5 issues in the server that I would never put together time to trace/debug/understand/fix, including some o(n^3) integration between mods that was lagging the server. Same thing for utilities, managing backups, etc.
  • 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.
  • 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.

  • > Leave my family out of this!
  • I'd be willing to bet somewhere in that conversation he said family printer or something.

    Seems an oddly specific thing to hone in on otherwise.

  • 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.
    by yakz
  • 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.
  • But it wouldn’t have used so many tokens ;)
  • On a similar experience, I use moonlight on my Android TV to stream video games from my computer in another room. I use my own fork from an unmerged PR which enables me to use an Xbox One Wireless adapter so I can play with my pad wirelessly. These pads have a 3.5mm jack on them which on Windows and Linux enables me to route audio from the game to headphones connected to the pad. Moonlight and the xow driver it bundled, was nowhere near being able to provide this as a feature.

    After about 5 hours, feeding it the GIP spec, an export of sniffed usb traffic from Windows, prior art (xone driver for linux), and giving Claude connectivity to my Shield via adb, I had it working. This continuously blows my mind that I dont have to beg a developer on Github to do it for me.

    Claude could do it for me for $20.

  • > spec, an export of sniffed usb traffic from Windows, prior art

    I used to feel proud of the fact I reverse engineered some of my laptop's features using stuff just like this. I suppose that's over.

  • I have another controller-related anecdote.

    I have a Razer Wolverine Xbox controller that has extra back paddle buttons. The controller doesn't expose the paddles directly to PC's over USB. You have to use button remapping on the controller to map them to 'real' Xbox buttons for the PC to see them. But I wanted to use the back paddle buttons on Steam as separate controls.

    So I downloaded the latest firmware update off the internet (because what device doesn't have firmware updates these days), installed Ghidra and an MCP server for it, and told Sol to look for how I can expose these extra buttons to a PC host. Maybe we could write a firmware patch?

    Turns out the controller already has a special mode to expose those buttons, possibly as a hardware test. But it was enough to write a Linux driver to put the controller into that mode, and a little bit of extra driver code to map the paddles to a Linux controller button, and voila. Paddles working in Steam.

    And it only took a few hours to do, too. I spent more time making an open source repository out of the concept than I spent making it work.

  • 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.

  • For the amount of electricity wasted by the LLM in the data center it would have been more efficient to buy a new printer that works out of the box.
  • He could have done this with 10-15 minutes of googling instead of spending 4 hours prompting a LLM.
  • 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.

  • This comment should be pinned, and the fact that a misleading post continues to be on the first page blows my mind.