Home > Tracks > Embedded Systems Programming

Getting Linux To Run On Your Custom Board

Mohammed Billoo - Watch Now

The ability of silicon vendors to pack more components and capability into a single silicon die has allowed these System On Chips (SoCs) to support Linux. In turn, developers have been able to quickly migrate their application to be deployed "to the edge" without significant rework. The main objective of this session is to provide embedded systems engineers an overview on the steps necessary to get Linux running on a custom board, issues they may face, and how to debug these issues. This session will provide an introduction to Linux and its value in embedded systems, and how it differs from "traditional" Linux that runs on desktops. This session will also discuss how Linux differs from other embedded software paradigms, such as "bare-metal" and RTOS-based application development.

M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

KVas
Score: 0 | 4 months ago | 1 reply

Thank you for the presentation... I have been working in Embedded (Automotive) and although learned Embedded Linux, what I remember and learnt is patchy.. One of the topics I wanted to get back to was this and you have given me a good platform to start with... Like the idea especially of updating the fbdev to interact with the display.. The other one you mention that there would be possibility of getting boards; any suggestions of project where we can contribute... I have been involved working with Cortex A systems using proprietary OSes & BSPs (picked up some good debugging skills and reading code) and now want to know more on Linux...
Thanks again!!

mabSpeaker
Score: 0 | 4 months ago | no reply

Thank you for checking out my presentation! Glad you enjoyed it and found it beneficial. I've become involved in the breadbee project: https://github.com/breadbee/breadbee
You can pick up a dashcam that has a similar processor until the board is shipped. The one I'm using is:
https://www.ebay.com/itm/Xiaomi-70mai-Dash-Cam-Lite-1080P-Smart-Car-DVR-Camera-130-Wifi-Driving-Recorder/184299943727?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

Feel free to reach out to me at mab@mab-labs.com if you have any more questions.

lramage
Score: 0 | 5 months ago | 1 reply

Do you know what the minimal hardware requirements are for running a Linux kernel?

Most of my experience comes from running GNU/Linux on servers, but I also worked at a telecommunications company for two years as a device developer. I was the team lead for our embedded PBX appliance, which ran OpenWrt, a distribution targeting routers and other networking hardware.

I am now the chief technology officer at a startup for a fitness device which is running a bare metal appliance based on CMSIS on an STM32 chip.

mabSpeaker
Score: 1 | 5 months ago | no reply

Generally, you just need an MMU (ARM A series) and the RAM requirements are dependent on the application(s) you want to run on the board. The kernel and busybox don't consume much RAM at all (you can get away with 64 MB of RAM). Feel free to reach out to me at mab@mab-labs.com for any help you'd like for your startup (I've been doing a fair amount of bare-metal/FreeRTOS development recently along with my Linux work)..

DrewFustini
Score: 1 | 5 months ago | 2 replies

In terms of getting involved with kernel development, are there any IRC channels that you would recommend?

lramage
Score: 0 | 5 months ago | no reply

For getting started with Linux kernel development in general, you might want to checkout the kernel newbies project: https://kernelnewbies.org

mabSpeaker
Score: 0 | 5 months ago | no reply

I don't use IRC so don't know of any channels. But, the best way to get involved is to dive right in. I've become involved in the breadbee project (https://github.com/breadbee/breadbee) and am working on getting the USB controller working. If you see any driver that piques your interest, file an issue and Daniel will help you get started. The lack of HW is not a showstopper - you can pick up the following board to get you started (the processor is a close variant of the one on the final HW):
https://www.ebay.com/itm/USA-Xiaomi-70mai-Smart-Recorder-Lite-1080P-HD-Dash-Cam-Car-DVR-Security-Camera/254538154167?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649

And you can email me with any questions at mab@mab-labs.com

pepipox
Score: 0 | 5 months ago | 1 reply

Excellent presentation

mabSpeaker
Score: 0 | 5 months ago | no reply

Thank you! Glad you benefited from the talk.

Anil
Score: 0 | 5 months ago | 1 reply

Interesting talk !! Should have focussed more on the actual board bringup workflow.

mabSpeaker
Score: 0 | 5 months ago | no reply

Thanks for the feedback. I'll definitely focus more on the board bringup workflow, with a proper demo, in a future presentation/blog post.

ZahirQ
Score: 0 | 5 months ago | 1 reply

Great presentation Mohammed. Hope all is well

-Zahir Quijano

mabSpeaker
Score: 0 | 5 months ago | no reply

Zahir! Thanks for the kind words. I'm glad you enjoyed it and hope everything is well with you too!

rahulgoradia
Score: 0 | 5 months ago | 1 reply

Very insightful session. Yet not exposed to Embedded Linux much but was able to relate with steps I did to run Linux on iMx 8. Very nice presentation

mabSpeaker
Score: 0 | 5 months ago | no reply

Thank you! Glad you benefited from the presentation.

jimb
Score: 0 | 5 months ago | 1 reply

Nice Job. Good presentation and useful info. I usually do "bare metal" stuff but who knows what might come up.
Thanks

Jim Bernitt

mabSpeaker
Score: 0 | 5 months ago | no reply

Thank you!

wbstvnsn
Score: 0 | 5 months ago | 1 reply

Very insightful and a nice intro/overview. Thanks Mohammed!

mabSpeaker
Score: 0 | 5 months ago | no reply

Thank you! Glad you enjoyed it.

DrewFustini
Score: 1 | 5 months ago | 1 reply

In the Ethernet DTS example, what is the purpose of having "simple-bus" in the compatible? Would it actually work if there was no driver for the first item in compatible? I've been confused about why DTS files will have "fall back" options in compatible string.

mabSpeaker
Score: 0 | 5 months ago | no reply

Drew,
Excellent question. The "simple-bus" marking will result in the corresponding bus to be a simple memory map interface. Its main purpose is to still allow the children of the parent bus node to still be enumerated as platform devices, and allow their corresponding drivers to attempt to interface with the device. The purpose of the fallback options has been to allow at least some driver to get some sort of barebones functionality up for the device. I hope this helps! Let me know if you have any more questions.

OUR SPONSORS