"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 resolution), validate) ideally over standards e.g. USB or BT capabilities.
Best of all he even published on Github the result so that, hopefully, others benefit from his effort without even having to do it again.
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.
This is really, really cool. I wonder, by extension, if it's feasible to reverse engineer all the various low-level firmware blobs too and have it hosted on LVFS so users can update it via fwupd (not sure if LVFS would be willing to host such firmware though).
But I would really like to see this trend take off, so we can take back control over smart devices and see more FOSS firmware pushed out to various devices (OpenWRT etc).
I have that problem too of buying many old laptops... I had an ASUS Eee PC phase and I bought 6 of them (3 different models and replacement parts).
I have an x61 myself, bought it last year to add to my Thinkpad collection. I haven't done much besides put in some real to verify it actually works. And suggestions on an OS?
Sure, USA citizens are not allowed to reverse engineer
...yes we are? After all, that's how the whole IBM PC-compatible industry started.
https://en.wikipedia.org/wiki/Phoenix_Technologies#Cloning_t...
AFAIK the later Thinkpads including this one uses a Phoenix BIOS, so it's amusing to see the circularity of how things turned out; and continuing on that path, Phoenix sold its BIOS business to Lenovo a little earlier this year.
Ok
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.
Kudos for getting this done!
Sad that free BIOSes are so far behind modern hardware, but this is very necessary work.
Unrelated, the Emacs-based design of the website is quite nice.
>"...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:
[flagged]
[dead]
[dead]
In early 2018, before I had children and with much, MUCH more free time, I bought a used X61, plus a used X60 1400x1050 LCD, a new backlight, new internal stereo speakers, a new mainboard with an Intel Core i7-5600U from 51NB, plus new SSD, 32 GB RAM, and the original IBM logo of a X60 which was replaced by a Lenovo logo on my chassis. It's the exact same setup as mentioned here [0], except that I built it myself from the individual parts for cost reasons.
The board arrived from Shenzhen after a month or so. I then had to manually fit (including drilling away some parts) the X60 LCD into the X61 chassis, which was extremely stressful. But in the end it all worked out perfectly. This X62 has been my private machine for 8 years now, and I always travel with it. The display still works perfectly, the 32 GB RAM are still more than enough, and it is still very easy to get X61 replacement batteries on Amazon. But the best thing is the form factor; this thing is just so neat and small and practical. Also the quality of the chassis is incredible. Apart from many, many scratches on the lid, it is still in flawless condition.
[0] https://geoff.greer.fm/2017/07/16/thinkpad-x62/