Tips for learning embedded linux [closed]
Asked Answered
O

3

28

I want to learn the basics of embedded linux. To do this I am assuming that I need to go and buy some sort of hardware board and have the linux kernel code.

I have no idea where to start with this and any tips/pointers would be most welcome. Ideally I would like people to point out a full system (e.g. this "board kit with linux" with these "manuals" are very good).

Also cost is a factor as I am doing this personally not as a business : )

Thanks very much, Code

Officiate answered 31/7, 2013 at 9:33 Comment(3)
If you can afford, buy a beaglebone Black or Raspberry Pi or any other boards available in your market. Learn Basic concepts Like Access GPIO Pins, reading ADC, I2C, SPI, UART from userspace. Once you find comfortable looking into drivers e.g GPIO, USB etc, which ever your interest :).Pulsate
Why not use QEMU [www.qemu.org] - a free open-source emulator project that's heavily used (eg Android SDK). You can find tutorials to emulate an ARM/Linux machine using QEMU. Eg. balau82.wordpress.com/2010/03/22/…Douai
Thankyou both for your comments : ), from reading the posts below and looking around at a few other sources it seems beagle black is a popular choice and looks rather cheap!, but QEMU also seems worth looking into if it is what I think you are suggesting it is :o (i.e. a PC limux emulator where you can hack the code)Officiate
L
24

You will need:

1 - Boards: I started with a beagleboard. A new beaglebone black is available now. There's a large support community for the beagles; many howto pages here and here, and ready to install images. You can also build the image yourself (step 3). These boards have most of the peripherals that you may need to play with, and can also be used as extra computer !

2 - Books: As Mali noted, Linux is a fast moving object, but in the early phases of learning you will need a solid reference. I'd suggest "Embedded Linux Primer: A Practical Real-World Approach" as it has many examples and takes you step-by-step. There's also "Building Embedded Linux Systems".

3 - The firmware: a) toolchain, b) root filesystem and c) kernel image. "Buildroot" is the easiest to start with. Openembedded and Yocto have a very steep learning curve. "Embedded Linux Primer: A Practical Real-World Approach" has some examples on how to use buildroot.

Luce answered 31/7, 2013 at 19:24 Comment(2)
Thanks very much for your answer! All these options are really appreciated, its good to hear that many people consider similar options :) ... seems like beagle is the way forward to start with : )Officiate
All answers where really good, thanks!, but this one seems to most closely match what I wanted (and indeed got). I got the BBB and the two books that where recommended... have not got as far as toolchain and such.... there is a lot to read!Officiate
C
11

You have some cool boards (not expensive) at Olimex Also, Armadeus is a nice project to begin with.

It really depends of what you want to do and what you like, e.g contributing to Replicant should be very fun too. You can also find a cheap router supported by openWrt. In other words, find a little project which you'll have fun to hack on, and choose hardware after.

In books, I think "Building embedded Linux Systems" is a must have, but Linux is a fast moving target, so books may be outdated.

For learning the basics, I suggest Buildroot to build your first system, it's simple compared to Open Embedded or Yocto like build systems.

Happy Hacking,

Confessor answered 31/7, 2013 at 14:41 Comment(2)
Thnakyou very much :) ... one more for Buildroot, this seems to complete my list of beagle + buildroot as the starting step for me.Officiate
That seems a good choice, with buildroot you will learn a lot of the basics: how to generate a cross compilation toolchain, build a kernel for arm arch, cross compile and generate a rootfs with busybox, and son on..Confessor
Y
9

I just started on embedded linux. I just got a job where I work in firmware for a series of products.
I am reading this book "Embedded Linux Primer: A Practical Real-World Approach".
Whatever is implemented in the products is present in this book.
I strongly recommend this book. It is awesome.
For me, the first thing you should do before you dive in is read this book. The book is a goldmine.

Yeager answered 15/8, 2013 at 5:51 Comment(4)
Thanks, infact, based on these recommendations this is the book I am reading in my spare time with my slippers on and a cup of tea :) I also have "Building embedded linux systems" and a beagle bone black to mess around on : )Officiate
Nice.. May be I should also read "Building embedded linux systems"..Yeager
I have not started it yet, but it seems a natural progression :)Officiate
Yeah after reading "Embedded Linux Primer: A Practical Real-World Approach", I am planning to read ""Building embedded linux systems"Yeager

© 2022 - 2024 — McMap. All rights reserved.