4 ms·
Apparently this is the "story time" thread, so here's mine, of how I hacked the Linux kernel without ever having written more than maybe 50 lines of C code. Th
by brazzy 5y ago
Apparently this is the "story time" thread, so here's mine, of how I hacked the Linux kernel without ever having written more than maybe 50 lines of C code.
This was in early 2001, I was an exchange student in Japan, and I'd bought a really cool gadget in Akihabara that almost nobody had heard about: a hardware MP3 player. For storage, it used MMCs (precursor of SD cards), affordable ones held 32MB. To get music onto those cards, I also bought a USB card reader.
And there I ran into problems: the PC in my dormitory room was a used Pentium Pro desktop I'd gotten very cheaply without an OS, and I'd installed Linux on it. But at that time, USB support on Linux was still rather spotty, and while the card reader was in principle supported as a mass storage device, the USB driver would reproducibly freeze up after a short time accessing it.
As mentioned above, my C skills were basically non-existing,
but compiling your own kernel was at that time still a pretty common thing for Linux users to do, so I had some experience with that. And I was motivated. I enabled kernel debug output, and discovered that just before freezing up, the driver would report that it had received an event with a certain ID. I found the code that handled events, and I found the code that handled the problematic event. I looked at it and realized that I was many months of learning away from being able to fix it.
So instead, I deleted it. I simply made the driver ignore that type of event.
It worked. I could use the card reader to put MP3 files on the MMCs and listen to them on the player.
I felt a strange mixture of achievement and embarassment.
- FredPret 5y agoAhhh, the rm -rf approach to problem solving. My favourite!
- ergot_vacation 5y agoThis story I believe, largely because there's no money or fame involved, and because it's the software equivalent of "hit it with a hammer until it works again."
- rags2riches 5y agoThat's like a scene in some old TV series about a startup I only vaguely remember. It's important demo day, but a bug is threatening to ruin everything. Everybody is trying to find the bug. Somebody yells out "I found it!" and everybody rushes over. For a long moment, they all stare quietly at a big red flashing line of code on the screen. Then somebody blurts out "delete it!" and the person at the keyboard deletes the bug with a single keystroke. Everybody cheers. The startup is saved!
- pieteckhart 5y agoDoes anyone know this TV series? Seems like something I would enjoy :)
- aaronchall 5y agowhat tv series was this?
- alternatetwo 5y agoThis reminds me of something, too. My siblings and me often play a (now) old RTS - Battle for Middle Earth II - against AI. When these matches go on a while, sometimes it crashes when defeating an AI. Well I looked at where it crashes, and simply nopped out the code where it crashes (it was a null pointer access I think) ... and we haven't noticed any weird effects of that so far ... one of these days I'll get around to making it an if (ptr) fix and see that happens then, but it is not this day!
- eggsome 5y agoIs your hack shared anywhere? I think I hit this bug last time played with my brother.
- alternatetwo 5y agoNo, I don't think I ever shared it outside of personal acquaintances. Diffing the game.dat we use vs an "untouched" cracked one there are a few more differences than I expected (I at one point fixed the random version number and the 3:30 auto defeat if the game thinks you copied the game illegaly). If you send me a mail to the email in my profile, I'll send you the binary!
- TheSpiciestDev 5y ago"The best code is no code at all."
- bserge 5y agoHa, reminds me of overclocking the Tegra 2 in some Toshiba tablet. People were saying it's impossible, with various modified files linked by people saying it should work but it doesn't, must be something hardware related. Being a naive dumbass, that did not stop me, I looked through the source files and thought "why not just edit the voltage/frequency tables in all of the files?" And it worked. Could've easily bricked the device, but it didn't. I believe I had the same feeling as you. Yay for ignorance, I guess :D
- xnx 5y agoI love it. This is true hacking to me. You had a problem and kept digging until you solved it.