I’m really interested in diving deeper into hardware reverse engineering. I’ve worked briefly in firmware, and my active job is based in C++. I have a mastery of CAD/CAM and at least a good grip on EE. Education is in Computer Science and ECE.
Throw me in the deep end, what courses, material, books, tools, etc. would you recommend?
In particular, I never really got the Linux device tree, or how on Earth you would construct one given a board.
Don’t know what BusyBox really is and why it shows up in embedded systems so much.
I have no idea what actually goes into driver development, or how to get started. I certainly would be lost trying to recreate a driver for existing hardware.
Every time I open EagleCAD I get my butt kicked. It seems so simple, but even selecting a resistor kills me. I was trying to design a replacement board for the laser diode found in a Form 1+ 3D printer. That board had three components and I couldn’t do it. Just finding an SMD resistor with the value I needed in Eagle ended me, and with limited online resources that was it. For Eagle I think the answer is to just find a mentor and ask them the stupid questions, hard to do but - it’s doable. But for the more general reserving of hardware I think I lack some background, or I’m trying to punch way above my league.
It’s questions like these that bug me. Even after 8 years in college in CS and ECE, reversing hardware still seems like dark magic to me.
Am I missing something obvious?
What resources could help bridge the gap between general CS knowledge, to embedded, to reversing?