Live data from Hacker News

Porting the ThinkPad X61 to Coreboot

blog.aheymans.xyz

41–50 of 58 posts

Re: Porting the ThinkPad X61 to Coreboot

#41
post #29
post #18

"Vibe reverse engineering" yep, was talking with a designer friend just yesterday who vibe coded a driver for his unsupported Wacom. He's not a developer but his pen tablet now works. It seems quite useful and efficient for this kind of work with a well established process (plug, get connectivity, do something, get data, do something else, get other data, transform that data (e.g. 0..1 mapped to a well defined resolu…

The author explained that the LLM needed a lot of hand-holding and that it was only possible because he himself is already an expert at it. Quite a different message than yours.

I'm speaking on behalf of my friend. I don't want to misconstrue his message. Even though not a developer himself he is familiar to the command line and can for example manager backend stuff like containers. In that sense he's not a random computer user. He also dared to try. If he writes a blob about his attempt I'll share it back here.

My point was to share a related anecdote on using LLM to making seemingly unusable hardware usable again, which seems feasible (hence sharing the anecdote to confirm from another source) and IMHO a positive use case, while so many others are not necessarily so.

Re: Porting the ThinkPad X61 to Coreboot

#43
I may have tried this exact thing a few years ago without LLMs, though I can no longer remember if it was a ThinkPad X61 or not. I just know it was an Intel ICH that wasn't supported by Coreboot and wasn't documented at all. I tried for quite a while and getting it to output anything to the serial port was very exciting for me, but at that point I definitely hit a wall: the RAM initialization and other platform init was a complete mystery and the only way I was going to learn about it was by reverse engineering the BIOS, since it wasn't documented. Ultimately I just never found the time to get to it, so it never happened, which still to this day feels like a shame.

What a mixed blessing it is now that theoretically, especially as LLMs increase in competence, an idiot like me might actually be able to port Coreboot to an unsupported platform with some LLM-assisted reverse engineering. I mean, it's probably still a long shot without as much arcane knowledge as you gain from working in stuff like this professionally, but at this point it's probably the best shot I have since I probably won't find myself in such a scenario.

I guess I should try to find time to revisit a reverse engineering project that I haven't had time to dig deep into... It does feel like a shame that this way I'll never really improve my skills related to reversing, though.

Re: Porting the ThinkPad X61 to Coreboot

#44
post #18

"Vibe reverse engineering" yep, was talking with a designer friend just yesterday who vibe coded a driver for his unsupported Wacom. He's not a developer but his pen tablet now works. It seems quite useful and efficient for this kind of work with a well established process (plug, get connectivity, do something, get data, do something else, get other data, transform that data (e.g. 0..1 mapped to a well defined resolu…

100% believe this one. The good thing about Wacom devices is that they're actually quite simple to deal with. All of the Wacom devices use a simple packet-based format that, while it varies per model, is quite well documented, what with being in the Linux kernel and several user mode tablet drivers (including OpenTabletDriver and TabletMagic.) You really don't need reverse engineering for Wacom, from old serial Graphires to the latest Intuous'. The knowledge, or at least certainly knowledge of where to look, should be baked into any frontier model.

When I was in college I had an ARM Chromebook which didn't have the Wacom driver, so I wound up trying to use the then-new Chrome USB APIs to make myself a tablet driver in a Chrome extension. This was long before LLM coding was a thing, but thanks to the Linux wacom.ko it wasn't really an obstacle.

The biggest problem I had was that while I was decoding digitizer inputs just fine I had nowhere to put them. I tried making a simple painting app in JS and it worked but without having native cursor movement it was just too jank and I gave up.

I eventually uploaded the code for posterity sake. I doubt it works at all anymore, even with the specific tablet it was hard-coded for. But it's still online, anyhow.

https://github.com/jchv/crwacom

Re: Porting the ThinkPad X61 to Coreboot

#45
post #41
post #29

Earlier quoted context omitted.

The author explained that the LLM needed a lot of hand-holding and that it was only possible because he himself is already an expert at it. Quite a different message than yours.

I'm speaking on behalf of my friend. I don't want to misconstrue his message. Even though not a developer himself he is familiar to the command line and can for example manager backend stuff like containers. In that sense he's not a random computer user. He also dared to try. If he writes a blob about his attempt I'll share it back here. My point was to share a related anecdote on using LLM to making seemingly unusab…

[deleted]

Re: Porting the ThinkPad X61 to Coreboot

#46
post #27

Kudos for getting this done! Sad that free BIOSes are so far behind modern hardware, but this is very necessary work.

You can get much more modern hardware with firmware. This was mostly an expirement to see how good LLM are at reverse engineering. Given that it went well I think making fully free (without Intel) x86-side firmware is possible.

Companies put a ton of work into proprietary RAM training algorithms that I think would be hard to replicate. I know AMD has open sourced their older pre-Zen BIOS and that has made its way into coreboot, but Zen1+ is all proprietary.

Re: Porting the ThinkPad X61 to Coreboot

#47
post #44
post #18

"Vibe reverse engineering" yep, was talking with a designer friend just yesterday who vibe coded a driver for his unsupported Wacom. He's not a developer but his pen tablet now works. It seems quite useful and efficient for this kind of work with a well established process (plug, get connectivity, do something, get data, do something else, get other data, transform that data (e.g. 0..1 mapped to a well defined resolu…

100% believe this one. The good thing about Wacom devices is that they're actually quite simple to deal with. All of the Wacom devices use a simple packet-based format that, while it varies per model, is quite well documented, what with being in the Linux kernel and several user mode tablet drivers (including OpenTabletDriver and TabletMagic.) You really don't need reverse engineering for Wacom, from old serial Graph…

Neat, thanks for explaining and sharing the code too!

Re: Porting the ThinkPad X61 to Coreboot

#48
post #26

awesome! hopefully T61 can also get some support soon.. these machines are amazing, but sadly they're showing signs of age these days. mine's already kinda unusable due to dim CCFL backlight and fan grinding noise.

Author of that blog article here. I could probably do a port if you're willing to test and provide some dumps while running the vendor firmware.

thanks. i just checked and it seems like i was mistaken, the one i own now is a t60 not a t61. seems like it's already supported, gotta try installing coreboot on it.

Re: Porting the ThinkPad X61 to Coreboot

#49
>"...tools like SerialICE which runs the firmware in QEMU and forwards IO and MMIO to the actual hardware..."

I never knew about SerialICE prior to reading this article, or that it could forward IO/MMIO to actual hardware (i.e., act as a proxy)... In the past I was curious if a debugging tool like that could exist, and apparently, yes it can!

Anyway, great article!

Related:

https://www.serialice.com/index.html

https://github.com/coreboot/serialice

Post reply on HN