2
\$\begingroup\$

I am a new grad student in EE and am trying to take full advantage of my time here at the uni. I have always wanted to understand how to get Linux running on embedded platforms, but from the outside it looks really arcane. Just some of the things you have to know about are listed below, each with its own rats nest of intricacies:

  • Boot chains, getting a computer to load/run your kernel code.
  • Making Linux kernels with drivers for the system
  • Cross-compilation, development toolchains
  • Deployment, debugging and communicating through hardware like uart.
  • Making a userland to do what you want (I suppose when you get here it becomes to application-specific for general discussion)

I might be missing some steps.

What resources can I use to learn about these things?

I had assumed that there would be some classes that give a brief overview of these topics, but looking at the course listings, it seems that there are different levels of 'embedded systems.' Many of the classes focus on software development for extremely limited computers. During undergrad, a famous EE 'embedded systems' class culminated in students programming from scratch their own real-time OS for a hypothetical vending machine. While that is cool, it is not what I am looking for.

\$\endgroup\$
2
\$\begingroup\$

studying the Beaglebone and the documentation for how that works, is a great way to see how to set up and run linux on a powerful but small ARM chip like the TI AM3358 (ARM A8 or A9 I believe).

They go through the whole process of how to interface with u-boot and the low-level processes, and then the kernel image stuff.

I worked for a company that was using the beaglebone as a development board for the firmware guys, while the hardware guys made a custom PCB and integrated all their industrial control circuits into it.

\$\endgroup\$
1
\$\begingroup\$

You should take a look at "spindle":

It's a set of scripts that build images for the Raspberry Pi. Shows you how you can bootstrap a foreign architecture, use QEmu to emulate the target, install the packages in a chroot environment, etc.

\$\endgroup\$
1
\$\begingroup\$

"Building embedded Linux Systems" book (2nd ed. ISBN 978-0-596-52968-0) covers everything you wanted to know. They are mostly talking about 2.6 kernel, the "bleeding edge" can be studied by looking at OpenWRT project.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.