SlideShare a Scribd company logo
Embedded Linux Crash Course

               Eric Gustafson



  http://embedded.gustafson-consulting.com


      ericg@gustafson-consulting.com
Agenda
●   What is “Embedded”?

●   Example Walk Through
●   Why Linux as an embedded platform?
●   References
    –   Convention: colored names have a reference in the references.
What is Embedded?
●   Embedded is a very nebulous term.
●   My Definition: NOT a General Purpose Computer
●   Some Linux Examples:


    ●   TiVo                        ●   PrismIQ
    ●   Google Phone (Android)      ●   RioReceiver
    ●   Home Routers                ●   Soekris
        –   ActionTec (Qwest DSL)   ●   An Old PC
Target System

                “Application”


                                     BusyBox
    C Library (uClibc)          (system programs)



Linux Kernel             Boot   syslinux (on disk)
                                 BIOS (firmware)
    Hardware – Intel x86 / PC Architecture
System Boot
1. Hardware Reset → Bootloader
  ●   BIOS Executes → syslinux (i.e. DOS format floppy/CF)
  ●   syslinux → loads the Linux Kernel

2. Linux Kernel initializes
  ●   Kernel mounts initrd.gz, the “root” filesystem.

3. Kernel → /sbin/init (from BusyBox)
4. init → /etc/rc (sh script – developer provided)
5. rc script → “Application”
The Build Artifacts
          – What makes up our system –
●   Hardware – provided
●   BIOS – provided
●   syslinux – {download, precompiled}
●   Linux Kernel – BUILD
●   µclibc (C Library) - BUILD
●   BusyBox (core programs) – BUILD
●   “Application” – BUILD
Cross Compiler Tool Chain
                – How to build the Artifacts –

●   Cross Compilation
    –   Gnu Binutils
         ●   Assembler, linker, etc.
    –   Gnu C Compiler
    –   C Library – uClibc
         ●   Others: Newlib, Gnu C Library
    –   Linux Kernel – just the headers
●   Packaging
     – initrd.gz – cramfs tools
        ● Alternatives: ext2fs, jffs2, many others
End to End Build
             – Getting our hands a little dirty –

●   Buildroot
         ●   http://buildroot.uclibc.org
    –   Menu based configuration
    –   Many options for configuration and architecture
    –   Does everything
         ●   builds cross compiler tool chain
         ●   compiles kernel, C library (μClibc), BusyBox
         ●   packages root filesystem image
    –   Leaves all artifacts, and configuration, in place.
    –   Buildroot is an excellent place to start.
From Scratch
             – Getting our hands really dirty –

●   Build Cross Development Tools
    –   Build Binutils
    –   Install Linux Kernel Headers
    –   Build gcc-initial (no C Library dependencies)
    –   Build C library (μClibc)
    –   Build gcc-final (which uses the C library)
●   X-Compile Target Artifacts
    –   Configure & Compile Linux Kernel → bzImage (the Kernel)
    –   Configure & Compile BusyBox
    –   Compile “Application”
From Scratch (2)
              – Getting our hands really dirty –
●   Package Root Filesystem
    –   Make a temp directory to act as “/”, call it “root_dir”
    –   Place BusyBox, μClibc, and “Application” in directory “root_dir” using a typical root layout.
    –   mkfs -t cramfs root_dir initrd
    –   gzip -9 initrd → “initrd.gz”, the initrd image
●   Place Artifacts on boot media.
    –   Create a DOS format floppy (or CF card)
    –   syslinux /dev/fd0 # only needed the first time
    –   Mount /dev/fd0
          ● Create and copy syslinux.cfg to /dev/fd0
               – This is a small config file w/ kernel boot arguments
          ● Copy kernel, bzImage, to /dev/fd0
          ● Copy the root filesystem, initrd.gz, to /dev/fd0
Why Linux?
●   Open Source
         ●   Modifications are common, and easy.
         ●   Entire tool chain is freely available – low cost to entry.
●   The Kernel has LOTS of configurable
    drivers.
    –   Common embedded chipset support.
    –   Theres more than just chipset support though.
         ●   File systems, network protocols, and lots more.
●   Momentum – Linux's success is feeding on itself.
References
●   Compiler Tools                         ●   C Libraries
–   GNU Binutils -                         –   μClibc - http://uclibc.org/
    http://www.gnu.org/software/binutils   –   Newlib -
–   GNU C Compiler -                           http://sourceware.org/newlib/
    http://gcc.gnu.org                     –   Gnu C Library -
●   GCC requires GMP and MPFR                  http://www.gnu.org/software/libc/
–   GMP - http://gmplib.org/
–   MPFR - http://www.mpfr.org/
●   Linux Kernel
     –   http://www.kernel.org/
     –   http://www.linuxdocs.org/
         HOWTOs/Kernel-HOWTO.html
References
●   Boot loaders                          ●   File system creation
–   syslinux -                            –   cramfs -
    http://syslinux.zytor.com/wiki/           http://sourceforge.net/projects/cramfs/
    ● pxelinux – Ethernet Boot            –   JFFS2 -
    ● isolinux – CD Boot                      http://sourceware.org/jffs2/
–   GRUB -                                –   Ext2fs -
                                              http://e2fsprogs.sourceforge.net/ext2.html
    http://www.gnu.org/software/grub/
–   LILO
    ●   http://lilo.go.dyndns.org/
    ●   http://tldp.org/HOWTO/LILO.html
References
●   Cross Dev Systems                 ●   Embedded Linux Howto
–   Buildroot -                       –   http://linuxant.hit.bg/Embedded-
    http://buildroot.uclibc.org/          Linux-Howto.html
–   crosstools -
    http://www.kegel.com/crosstool/

More Related Content

What's hot

Light my-fuse
Light my-fuseLight my-fuse
Light my-fuse
Workhorse Computing
 
Usage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP LanguagesUsage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP Languages
William Lee
 
OpenWRT guide and memo
OpenWRT guide and memoOpenWRT guide and memo
OpenWRT guide and memo
家榮 吳
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
linuxlab_conf
 
Usage Note of PlayCap
Usage Note of PlayCapUsage Note of PlayCap
Usage Note of PlayCap
William Lee
 
NetBSDworkshop
NetBSDworkshopNetBSDworkshop
NetBSDworkshop
Jun Ebihara
 
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
William Lee
 
2 docker engine_hands_on
2 docker engine_hands_on2 docker engine_hands_on
2 docker engine_hands_on
FEG
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
linuxlab_conf
 
Usage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on LinuxUsage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on Linux
William Lee
 
Usage Note of SWIG for PHP
Usage Note of SWIG for PHPUsage Note of SWIG for PHP
Usage Note of SWIG for PHP
William Lee
 
Building Embedded Linux UDOONEO
Building Embedded Linux UDOONEOBuilding Embedded Linux UDOONEO
Building Embedded Linux UDOONEO
NEEVEE Technologies
 
Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3
William Lee
 
SaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution ToolSaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution Tool
inovex GmbH
 
NetBSD workshop
NetBSD workshopNetBSD workshop
NetBSD workshop
Jun Ebihara
 
FreeBSD hosting
FreeBSD hostingFreeBSD hosting
FreeBSD hosting
punkt.de GmbH
 
[ETHCon Korea 2019] Shin mansun 신만선
[ETHCon Korea 2019] Shin mansun 신만선[ETHCon Korea 2019] Shin mansun 신만선
[ETHCon Korea 2019] Shin mansun 신만선
ethconkr
 
Steam Learn: Composer
Steam Learn: ComposerSteam Learn: Composer
Steam Learn: Composer
inovia
 
CoreOS Overview
CoreOS OverviewCoreOS Overview
CoreOS Overview
Victor S. Recio
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux
chinkshady
 

What's hot (20)

Light my-fuse
Light my-fuseLight my-fuse
Light my-fuse
 
Usage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP LanguagesUsage Note of Apache Thrift for C++ Java PHP Languages
Usage Note of Apache Thrift for C++ Java PHP Languages
 
OpenWRT guide and memo
OpenWRT guide and memoOpenWRT guide and memo
OpenWRT guide and memo
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Usage Note of PlayCap
Usage Note of PlayCapUsage Note of PlayCap
Usage Note of PlayCap
 
NetBSDworkshop
NetBSDworkshopNetBSDworkshop
NetBSDworkshop
 
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 Upgrade GCC & Install Qt 5.4 on CentOS 6.5
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
 
2 docker engine_hands_on
2 docker engine_hands_on2 docker engine_hands_on
2 docker engine_hands_on
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
 
Usage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on LinuxUsage Note of Qt ODBC Database Access on Linux
Usage Note of Qt ODBC Database Access on Linux
 
Usage Note of SWIG for PHP
Usage Note of SWIG for PHPUsage Note of SWIG for PHP
Usage Note of SWIG for PHP
 
Building Embedded Linux UDOONEO
Building Embedded Linux UDOONEOBuilding Embedded Linux UDOONEO
Building Embedded Linux UDOONEO
 
Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3Usage Notes of The Bro 2.2 / 2.3
Usage Notes of The Bro 2.2 / 2.3
 
SaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution ToolSaltStack – (Not) just another Automation & Remote Execution Tool
SaltStack – (Not) just another Automation & Remote Execution Tool
 
NetBSD workshop
NetBSD workshopNetBSD workshop
NetBSD workshop
 
FreeBSD hosting
FreeBSD hostingFreeBSD hosting
FreeBSD hosting
 
[ETHCon Korea 2019] Shin mansun 신만선
[ETHCon Korea 2019] Shin mansun 신만선[ETHCon Korea 2019] Shin mansun 신만선
[ETHCon Korea 2019] Shin mansun 신만선
 
Steam Learn: Composer
Steam Learn: ComposerSteam Learn: Composer
Steam Learn: Composer
 
CoreOS Overview
CoreOS OverviewCoreOS Overview
CoreOS Overview
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux
 

Viewers also liked

Ajax On S2 Odp
Ajax On S2 OdpAjax On S2 Odp
Ajax On S2 Odp
ghessler
 
openHAB @ Eclipse DemoCamp Darmstadt
openHAB @ Eclipse DemoCamp DarmstadtopenHAB @ Eclipse DemoCamp Darmstadt
openHAB @ Eclipse DemoCamp Darmstadt
Kai Kreuzer
 
openHAB @ Devoxx 2012
openHAB @ Devoxx 2012openHAB @ Devoxx 2012
openHAB @ Devoxx 2012
Kai Kreuzer
 
IoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3BIoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3B
Jingfeng Liu
 
Home Automation with LinkSprite IO
Home Automation with LinkSprite IOHome Automation with LinkSprite IO
Home Automation with LinkSprite IO
Jingfeng Liu
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linux
Vandana Salve
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
Vandana Salve
 
Zig Bee
Zig BeeZig Bee
Zig Bee
Vishwa Mohan
 
Build your own block chain
Build your own block chainBuild your own block chain
Build your own block chain
Bohdan Szymanik
 
Basics of Vhdl
Basics of VhdlBasics of Vhdl
Basics of Vhdl
Atchyuth Sonti
 
Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies
Priyanka Aash
 
Zigbee network
Zigbee networkZigbee network
Zigbee network
bhavithd
 
Zigbee technology ppt edited
Zigbee technology ppt editedZigbee technology ppt edited
Zigbee technology ppt edited
rakeshkumarchary
 
Zigbee ppt
Zigbee pptZigbee ppt
Zigbee ppt
kondalarao7
 
zigbee full ppt
zigbee full pptzigbee full ppt
zigbee full ppt
ranjitha mudhiraj
 
Zigbee Presentation
Zigbee PresentationZigbee Presentation
Zigbee Presentation
Maathu Michael
 

Viewers also liked (16)

Ajax On S2 Odp
Ajax On S2 OdpAjax On S2 Odp
Ajax On S2 Odp
 
openHAB @ Eclipse DemoCamp Darmstadt
openHAB @ Eclipse DemoCamp DarmstadtopenHAB @ Eclipse DemoCamp Darmstadt
openHAB @ Eclipse DemoCamp Darmstadt
 
openHAB @ Devoxx 2012
openHAB @ Devoxx 2012openHAB @ Devoxx 2012
openHAB @ Devoxx 2012
 
IoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3BIoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3B
 
Home Automation with LinkSprite IO
Home Automation with LinkSprite IOHome Automation with LinkSprite IO
Home Automation with LinkSprite IO
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linux
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
Zig Bee
Zig BeeZig Bee
Zig Bee
 
Build your own block chain
Build your own block chainBuild your own block chain
Build your own block chain
 
Basics of Vhdl
Basics of VhdlBasics of Vhdl
Basics of Vhdl
 
Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies Practical Applications of Block Chain Technologies
Practical Applications of Block Chain Technologies
 
Zigbee network
Zigbee networkZigbee network
Zigbee network
 
Zigbee technology ppt edited
Zigbee technology ppt editedZigbee technology ppt edited
Zigbee technology ppt edited
 
Zigbee ppt
Zigbee pptZigbee ppt
Zigbee ppt
 
zigbee full ppt
zigbee full pptzigbee full ppt
zigbee full ppt
 
Zigbee Presentation
Zigbee PresentationZigbee Presentation
Zigbee Presentation
 

Similar to Embedded Linux Odp

Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
Yen-Chin Lee
 
unixtoolbox
unixtoolboxunixtoolbox
unixtoolbox
wensheng wei
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
Philip Polstra
 
2345014 unix-linux-bsd-cheat-sheets-i
2345014 unix-linux-bsd-cheat-sheets-i2345014 unix-linux-bsd-cheat-sheets-i
2345014 unix-linux-bsd-cheat-sheets-i
Logesh Kumar Anandhan
 
Jana treek 4
Jana treek 4Jana treek 4
Jana treek 4
Jana Treek
 
KCC_Final.pdf
KCC_Final.pdfKCC_Final.pdf
KCC_Final.pdf
Oleg Sehelin
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
biicode
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
Opersys inc.
 
Unixtoolbox
UnixtoolboxUnixtoolbox
Unixtoolbox
Jake Shlayen
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
qqlove2
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
sonipradeep
 
Unixtoolbox
UnixtoolboxUnixtoolbox
Unixtoolbox
LILIANA FERNANDEZ
 
Unixtoolbox
UnixtoolboxUnixtoolbox
Unixtoolbox
radikalzen
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
sonipradeep
 
Develop
DevelopDevelop
Develop
minimalpk
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
sptlove
 

Similar to Embedded Linux Odp (20)

Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
unixtoolbox
unixtoolboxunixtoolbox
unixtoolbox
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
 
2345014 unix-linux-bsd-cheat-sheets-i
2345014 unix-linux-bsd-cheat-sheets-i2345014 unix-linux-bsd-cheat-sheets-i
2345014 unix-linux-bsd-cheat-sheets-i
 
Jana treek 4
Jana treek 4Jana treek 4
Jana treek 4
 
KCC_Final.pdf
KCC_Final.pdfKCC_Final.pdf
KCC_Final.pdf
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
Unixtoolbox
UnixtoolboxUnixtoolbox
Unixtoolbox
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
 
Unixtoolbox
UnixtoolboxUnixtoolbox
Unixtoolbox
 
 
 
Unixtoolbox
UnixtoolboxUnixtoolbox
Unixtoolbox
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
 
Develop
DevelopDevelop
Develop
 
unixtoolbox.pdf
unixtoolbox.pdfunixtoolbox.pdf
unixtoolbox.pdf
 
 
 

More from ghessler

Joomla! Installation
Joomla! InstallationJoomla! Installation
Joomla! Installation
ghessler
 
Joomla Presentation
Joomla PresentationJoomla Presentation
Joomla Presentation
ghessler
 
Apache Commons Overview
Apache Commons OverviewApache Commons Overview
Apache Commons Overview
ghessler
 
Overview Of Xaware
Overview Of XawareOverview Of Xaware
Overview Of Xaware
ghessler
 
Gimp In Hollywood
Gimp In HollywoodGimp In Hollywood
Gimp In Hollywood
ghessler
 
JCatapult
JCatapultJCatapult
JCatapult
ghessler
 
Service Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMixService Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMix
ghessler
 

More from ghessler (7)

Joomla! Installation
Joomla! InstallationJoomla! Installation
Joomla! Installation
 
Joomla Presentation
Joomla PresentationJoomla Presentation
Joomla Presentation
 
Apache Commons Overview
Apache Commons OverviewApache Commons Overview
Apache Commons Overview
 
Overview Of Xaware
Overview Of XawareOverview Of Xaware
Overview Of Xaware
 
Gimp In Hollywood
Gimp In HollywoodGimp In Hollywood
Gimp In Hollywood
 
JCatapult
JCatapultJCatapult
JCatapult
 
Service Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMixService Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMix
 

Recently uploaded

Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 

Recently uploaded (20)

Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 

Embedded Linux Odp

  • 1. Embedded Linux Crash Course Eric Gustafson http://embedded.gustafson-consulting.com ericg@gustafson-consulting.com
  • 2. Agenda ● What is “Embedded”? ● Example Walk Through ● Why Linux as an embedded platform? ● References – Convention: colored names have a reference in the references.
  • 3. What is Embedded? ● Embedded is a very nebulous term. ● My Definition: NOT a General Purpose Computer ● Some Linux Examples: ● TiVo ● PrismIQ ● Google Phone (Android) ● RioReceiver ● Home Routers ● Soekris – ActionTec (Qwest DSL) ● An Old PC
  • 4. Target System “Application” BusyBox C Library (uClibc) (system programs) Linux Kernel Boot syslinux (on disk) BIOS (firmware) Hardware – Intel x86 / PC Architecture
  • 5. System Boot 1. Hardware Reset → Bootloader ● BIOS Executes → syslinux (i.e. DOS format floppy/CF) ● syslinux → loads the Linux Kernel 2. Linux Kernel initializes ● Kernel mounts initrd.gz, the “root” filesystem. 3. Kernel → /sbin/init (from BusyBox) 4. init → /etc/rc (sh script – developer provided) 5. rc script → “Application”
  • 6. The Build Artifacts – What makes up our system – ● Hardware – provided ● BIOS – provided ● syslinux – {download, precompiled} ● Linux Kernel – BUILD ● µclibc (C Library) - BUILD ● BusyBox (core programs) – BUILD ● “Application” – BUILD
  • 7. Cross Compiler Tool Chain – How to build the Artifacts – ● Cross Compilation – Gnu Binutils ● Assembler, linker, etc. – Gnu C Compiler – C Library – uClibc ● Others: Newlib, Gnu C Library – Linux Kernel – just the headers ● Packaging – initrd.gz – cramfs tools ● Alternatives: ext2fs, jffs2, many others
  • 8. End to End Build – Getting our hands a little dirty – ● Buildroot ● http://buildroot.uclibc.org – Menu based configuration – Many options for configuration and architecture – Does everything ● builds cross compiler tool chain ● compiles kernel, C library (μClibc), BusyBox ● packages root filesystem image – Leaves all artifacts, and configuration, in place. – Buildroot is an excellent place to start.
  • 9. From Scratch – Getting our hands really dirty – ● Build Cross Development Tools – Build Binutils – Install Linux Kernel Headers – Build gcc-initial (no C Library dependencies) – Build C library (μClibc) – Build gcc-final (which uses the C library) ● X-Compile Target Artifacts – Configure & Compile Linux Kernel → bzImage (the Kernel) – Configure & Compile BusyBox – Compile “Application”
  • 10. From Scratch (2) – Getting our hands really dirty – ● Package Root Filesystem – Make a temp directory to act as “/”, call it “root_dir” – Place BusyBox, μClibc, and “Application” in directory “root_dir” using a typical root layout. – mkfs -t cramfs root_dir initrd – gzip -9 initrd → “initrd.gz”, the initrd image ● Place Artifacts on boot media. – Create a DOS format floppy (or CF card) – syslinux /dev/fd0 # only needed the first time – Mount /dev/fd0 ● Create and copy syslinux.cfg to /dev/fd0 – This is a small config file w/ kernel boot arguments ● Copy kernel, bzImage, to /dev/fd0 ● Copy the root filesystem, initrd.gz, to /dev/fd0
  • 11. Why Linux? ● Open Source ● Modifications are common, and easy. ● Entire tool chain is freely available – low cost to entry. ● The Kernel has LOTS of configurable drivers. – Common embedded chipset support. – Theres more than just chipset support though. ● File systems, network protocols, and lots more. ● Momentum – Linux's success is feeding on itself.
  • 12. References ● Compiler Tools ● C Libraries – GNU Binutils - – μClibc - http://uclibc.org/ http://www.gnu.org/software/binutils – Newlib - – GNU C Compiler - http://sourceware.org/newlib/ http://gcc.gnu.org – Gnu C Library - ● GCC requires GMP and MPFR http://www.gnu.org/software/libc/ – GMP - http://gmplib.org/ – MPFR - http://www.mpfr.org/ ● Linux Kernel – http://www.kernel.org/ – http://www.linuxdocs.org/ HOWTOs/Kernel-HOWTO.html
  • 13. References ● Boot loaders ● File system creation – syslinux - – cramfs - http://syslinux.zytor.com/wiki/ http://sourceforge.net/projects/cramfs/ ● pxelinux – Ethernet Boot – JFFS2 - ● isolinux – CD Boot http://sourceware.org/jffs2/ – GRUB - – Ext2fs - http://e2fsprogs.sourceforge.net/ext2.html http://www.gnu.org/software/grub/ – LILO ● http://lilo.go.dyndns.org/ ● http://tldp.org/HOWTO/LILO.html
  • 14. References ● Cross Dev Systems ● Embedded Linux Howto – Buildroot - – http://linuxant.hit.bg/Embedded- http://buildroot.uclibc.org/ Linux-Howto.html – crosstools - http://www.kegel.com/crosstool/