SlideShare a Scribd company logo
2
Preface
Over the years Linux is being used or
embedded as operating system in many
intelligent and smart electronic devices
starting from mobile phone, refrigerator
to cow milking devices apart from
desktops and server computers. Though
Linux is open source, its often difficult
for a beginner to get started. In this
presentation embedded system and
embedded Linux have been introduced
through examples, animation and short
explanation. This presentation is
targeted to the absolute beginner or
embedded software engineer who wants
to be part of exciting world of Linux and
the enthusiast or even manager who just
wants to get idea about embedded
Linux.
3
About Author
Hossain Reja, a graduate in computer
science and engineering from National Institute of
Technology, Hamirpur, has over seventeen years of
expertise in building embedded systems. He has
experience and working knowledge in multiple
domains – process control, set-top box, cable modems,
mobile domains and vehicle electronics and
infotainment. Hossain is passionate about kernel.
4
Introduction to
Embedded
Systems
 Wild Life Preservation is very much
important
 Technology can help to preserve the
wild lives
 One such technology is drone
 Drone is a mini helicopter that can fly
at low altitude and can keep an eye on
the wild lives in a forest
5
Wild Life Preservation
6
Drone – The Flying Machine
 An example of typical drone is a quad-copter
 This drone can take areal images – like wild
lives images in a forest , crop images in a
firming land etc
 These images can be processed to design and
develop various applications like – wild life
preservation, crop pesticide management
 This drone can be controlled by smart phone,
tablet, iPhone and iPad etc
7
Things
Google Glass
A wearable device with optical head mounted
display that helps to navigate, talk to
internet through voice commands and
much more
Nike+ Shoes
This tracks a run and record it and
can communicate with Smart
Phone
Smart Phone
This does not need a description
Smart Watch
A computerized wristwatch that
essentially is a smart phone, phone
app can run on it and it’s application
is bound by your imagination
8
Some more things
In-Vehicle Infotainment System
Provides driver assistance
information, navigation,
entertainment inside car and
much more
Learning Thermostat
An smart thermostat that learns your AC
usage behavior and control it saving
energy and connects to internet so
virtually it can be controlled from
anywhere
Smart Refrigerator
Apart from its basic function of
refrigeration, it learns your food stock
and automatically order for you and
takes instruction from you from
anywhere
9
Embedded Systems
 These devices have at least one thing in common
 They are essentially a computer that runs software to accomplish a
specialized function - learning your AC usage behavior, jogging
behavior, food stock in your refrigerator or entertaining you inside
your car on a along drive
 A computer device with specialized function is an Embedded
System
10
Inside
Embedded
Systems
11
Drone – Tear down
Mechanical
 Chassis
 Propeller
Electrical
 Servo motor
Electronics
 Printed Circuit Board
 Digital Camera
12
Drone – PCB Tear Down
 Main board
 Navigation board
Hardware
Vertical
Camera
Flash ROM
(128MB)
16-bit Micro
& 10-Bit ADC
RAM (128MB)
XY-axis
Gyroscope
WiFi
Processor
(ARM)
13
Hardware Components
Processor : Central
Processing Unit
RAM: Main Memory
ROM: Secondary
(Persistent) Memory
Propeller: Driven by Servo
Motor (Navigation)
Gyroscope: Keeps drone stable
(Navigation)
Camera: Wild Life Image Capture,
Weed Detection at Firm House
WiFi: Wireless communication,
Remote Control through Smart
Phone, iPad etc
14
Embedded Hardware and Software
 Hardware
 Operating System
 Application
Operating System
Applications
Hardware
ApplicationOS
15
Embedded Hardware and Software
Hardware
Vertical
Camera
Flash ROM
(128MB)
16-bit Micro
& 10-Bit ADC
RAM (128MB)
XY-axis
Gyroscope
WiFi
Processor
(ARM)
Operating System
 Linux
 Android (Linux based)
 Windows
 VxWorks
 iOS
Application Examples
 Navigation
 Video capture and image
processing
 Wild image detection
 Wild Life Protection
 Navigation board
16
Embedded Linux
17
Linux as Embedded OS
Application
Hardware
Linux OS
18
Booting Process – x86
BIOS/EFI/UEFI
Boot Loader
(First Stage) Boot
Loader
(Second
Stage)
(grub, elilo) Kernel
(bzImage)
User
Application
(init)
 Staged booting process
 Main components
 BIOS/EFI/UEFI
(Firmware)
 Boot Loader (First Stage,
optional)
 Boot Loader (elilo, grub
etc)
 Linux Kernel
 User application
19
Booting Process – x86
BIOS/EFI/UEFI
Boot Loader
(First Stage)
Boot Loader
(Second Stage)
(grub, elilo)
Kernel
(bzImage)
User
Application
(init)
* Starts on power
on/reset
* Does basic
initialization
*Does basic test
* Loads and runs First
Stage Boot Loader in
SRAM
* Initialize DRAM
* Loads and run
Second Stage Boot
Loader from DRAM
* Boot loader with
full festuree
*Iinitialize
hardware (DRAM)
* Loads Linux
kernel from a file
system (i.e. SD
card/Flash)
* Runs linux kernel
* Linux kernel
initializes all the
subsystems
(memory manager
scheduler, device
drivers etc)
* Runs first user
space program
* User space start-up
runs
* Mutli-user or
Graphical systems up
and running and ready
to be used
 Staged boot process
 System partially
initialized and
specific task is
achieved at each
stage from power on
to system boot (user
prompt or
application)
 Embedded system
generally prompt for
user login prompt,
it start application
during the boot
process
automatically
20
Boot Process - ARM
ROM Code
init SRAM
Load boot strap on SRAM
Runs SRAM
Boot Strap
Init clock, SDRAM
Load u-boot from Flash to
SDRAM
Runs u-boot
u-boot
Uncompress zImage
Loads it to DRAM
Runs Kernel
Linux Kernel
Initialize all sub-system (clock,
memory manager, scheduler,
device driver, file system etc)
Runs user process init
User space init process
rootfs
Storage ViewExecution View
Flash
(u-boot.bin)
MTD/SD/MMC
(zImage)
SD/MMC/MTD
rootfs
DRAM
(u-boot)
DRAM
kernel
(uncompressed zImage)
DRAM
(init and ...)
Flash
ROMROM
(ROM code)
SRAM
(boot strap)
21
Customization Required for Embedded Linux
ROM Code
Boot Strap
u-boot
Linux Kernel
Provided by chip manufacturer and
available in chip
Provided by chip manufacturer
and available in chip
u-boot project
http://www.denx.de/wiki/U-Boot
main line kernel source code
https://www.kernel.org
No change required
No change required
Customization Required as per
the hardware
Configuration, customization and
extension are required
rootfs Need to build a root file
systems where all required
software will be available
Need to build a root file systems
where all required software will
be available
Actions on Software ComponentsSoftware Components
22
Boot Loader
23
U-boot
 Under Construction
24
EFI
 Under Construction
25
Linux Kernel
LinuxKernel
Hardware
26
Linux Kernel Components
Veritical
Camera
Flash ROM
(128MB)
16-bit Micro
& 10-Bit ADC
RAM (128MB)
XY-axis
Gyroscope
WiFi
Memory
Manager
Virtual
Memory
Manager
Network
Drivers
Network
Network
Protocol
Scheduler
Process
Management
Character
Devices
Device
Drivers
Block/MTD
Devices
File System
Virtual File
System
Processor
(ARM)
• Process Management
• Memory Management
• I/O Management
(File system)
• Network
Management
• Device Management
UserSpace
27
Kernel Space & User Space
System Call (Linux Kernel Gateway)
System Software, Middleware, Application
Scheduler
Block/MTD
Devices
Character
Devices
Network
Drivers
Memory
Manager
Process
ManagementFile
System
Device
Drivers
NetworkVirtual
Memory
Manager Network
Protocol
Virtual File System
KernelSpace
(Privileged)
Hardware
Hardware
• Kernel Space
• User Space
• System Calls – gateway to
kernel from user space
28
Kernel Space & User Space
UserSpace
System Calls (Kernel Gateway)
System Software (glibc, libudev, ...)
Hardware
Hardware
Kernel
Kernel
Space
Middleware
Network
Services ()
Internet
Services
(Webkit)
Graphics
Services
(Qt)
Media
Services
(pulseaudio,
gstreamer...)
KernelComponents
29
Kernel Code Organization
Scheduler
Process
Manage-
ment
Character
Devices
Device
Drivers
Memory
Manager
Virtual
Memory
Manager
Network
Drivers
Network
Network
Protocol
Block/M
TD
Devices
File
System
Virtual File System
Hardware
HardwareKernelCode
ConfigurationConfiguration
mmdrivers
i2c
mmc
fs
ext4
jffs2
net
wireless
ipv4
kernel
sched
timer
30
Kernel Source Organization
KernelComponents
31
Kernel Configuration
SchedulerBlock/MT
D Devices
Character
Devices
Network
Drivers
Memory
Manager
Process
Manage-
mentFile
System
Device
Drivers
NetworkVirtual
Memory
Manager Network
Protocol
Virtual File System
Hardware (ARM, USB, SD, Flash...)
Hardware
....
CONFIG_ARM=y
CONFIG_USB=y
CONFIG_EXT4=y
....
CONFIG_MTD=y
• Configure kernel based on
hardware and features
required
• Eliminate kernel
components or features
that are not required to
optimize the image size
32
Linux System Build
Environment
33
Build Environment
Host (Development PC) Target
• Cross Development
Platform
34
Build Tools
gcc - Compiler, Assembler, Linker
binutils - binary manipulation apps
gdb - software debugger
Host (Development PC)
35
Tools Brief Note
arm-linux-gnueabi-gcov Coverage testing tool
arm-linux-gnueabi-gprof Display call graph profile
arm-linux-gnueabi-nm List symbols from object files
arm-linux-gnueabi-objcopy Copy and translate object files
arm-linux-gnueabi-objdump Display information from object file
arm-linux-gnueabi-readelf Display information from elf file
arm-linux-gnueabi-strip Discard symbols from object files
binutils for ARM architecture with EABI
36
Tools Brief Note
arm-linux-gnueabi-gcc C compiler
arm-linux-gnueabi-cpp C++ compiler
arm-linux-gnueabi-ld Linker & Loader
arm-linux-gnueabi-as Assembler
Complier tool chain for ARM architecture
with EABI
37
Building Blocks (ARM…)
Host PC
tool chain-
Compiler,
Assembler
, Linker
root file
system
source
kernel
source
u-boot
source
Target
bzImage
u-boot.bin
rootfs
38
Embedded Linux Building Activities
Kernel Configuration - Genrally configuration are supplied by the board supplier to start with, however some
changes may require to meet some specification
Board Specific Changes - Hardware configuration that depends on the user setting like device address, IRQ etc
SoC Specific Changes - The kernel may have support to the SoC, however some configuration may be required
Device Specific Drivers - If new devices are available and the driver is not present in the mainline kernel, driver
for that device need to be devloped
Kernel Optimization - Kernel may be optimized for space, some unnecessary modules or features may be
disabled
Kernel Debugging - Kernel provides may debugging features built int he kernel code, one need to enable those
features int he kernel configuration
39
Embedded Linux Components Build Process
Get sources
Configure and Apply patches
Build
40
Boot Loader
Build
41
U-boot
Boot Loader Build
hr@ed# wget https://www.kernel.org/pub/linux/kernel/v3.0/linux-
3.13.tar.xz
hr@ed# tar xJvf linux-3.13.tar.xz
hr@ed# cd linux-3.13
hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
vexpress_defconfig
hr@ed# make menuconfig
hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
vexpress_defconfig
hr@ed# patch -l < [patch files]
Get
BusyBox
source
Configure
& Patch
Build
42
See Your Freshly Baked u-boot Run…
Run u-boot…
# qemu-system-arm -M vexpress-a9 -m 256 M -nographic -kernel uboot.bin
Run u-boot
with qemu
See your u-
boot run
43
Linux Kernel
Build
44
Kernel Configuration
Linux Kernel Source
Kernel Config (.config)
(Drone)
Kernel Config (.config)
(Learning Thermostat)
Kernel Image
(zImage)
- Drone
Kernel Image
(bzImage)
- Learning Thermostat
45
Kernel Configuration
 Add Text
46
Kernel Patch
Linux Kernel Source
(Base kernel)
Kernel Patch
(customization,
extension on base
kernel)
Resultant Kernel
Source Code
Kernel Config
(.config)
(Drone)
Resultant Kernel
Source Code
Kernel Build Image
(bzImage/zImage)
apply patch
build
47
Linux Kernel Build
Linux Kernel Build
hr@ed# wget https://www.kernel.org/pub/linux/kernel/v3.0/linux-
3.13.tar.xz
hr@ed# tar xJvf linux-3.13.tar.xz
hr@ed# cd linux-3.13
hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
vexpress_defconfig
hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
vexpress_defconfig
hr@ed# patch -l < [patch files]
Get
Kernel
source
Configure
& Patch
Build
48
See Your Freshly Baked Kernel Run…
 Add Text
Run Linux kernel…
# qemu-system-arm -M vexpress-a9 -m 256 M -nographic -kernel zImage
Run Linux
kernel with
qemu
See your
Linux
kernel run
49
Root File
System Build
50
Root File System
C Library (glibc.so)
Kernelboot
loader
cp, mv, ls, modprobe, ...
init and init
script
shell
device filesprocfs, sysfs
/bin, /usr, /lib, /sbin
...
Minimal Root File System
• C library (glibc)
• Basic Linux commands
• Linux Shell
• Device files
• procfs and sysfs
• Init Script
51
C Library
glibc (POSIX interfaces)
C standard library (string operations, )
folder pipestimer
filesprocess signal
memory
manager
mutexthread
semaphore
shared memory
C Library (glibc)
• Process management
• Memory management
• File Management
• Process Synchronization
52
Root File System - BusyBox
 Update
C Library (glibc.so)
BusyBox
53
BusyBox Build
hr@ed# wget http://www.busybox.net/downloads/busybox-1.20.0.tar.bz2
hr@ed# tar xjf busybox-1.20.0.tar.bz2
hr@ed# cd busybox- busybox-1.20.0
hr@ed# $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
hr@ed# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
hr@ed# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install
Apply patch if any
Get
BusyBox
source
Configure
& Patch
Build
Root File System with BusyBox
54
Root File System
Rootfs with BusyBox
# cd _install
# mkdir proc sys dev etc etc/init.d
# mknod /dev/tty2 c 4 2
# mknod /dev/tty3 c 4 3
# mknod /dev/tty4 c 4 4
# chmod +x etc/init.d/rcS
# find . | cpio -o --format=newc > ../rootfs.img
#!/bin/sh
#File : /etc/init.d/rcS
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s
Create
folders
Create
device
node
Create
rootfs cpio
image
Create
/etc/init.d/
rcS
55
Root File System
Rootfs with busybox
# qemu-system-arm -M vexpress-a9 -m 256M -kernel zImage -initrd rootfs.img -
append "root=/dev/ram rdinit=/sbin/init"
Run Linux
with
BusyBox
rootfs
# Welcome to myLinux
See your
Linux with
BusyBox
run

More Related Content

What's hot

Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
shimosawa
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
Linaro
 
Run Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoRun Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using Yocto
Marco Cavallini
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
Sherif Mousa
 
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
 
Android Internals
Android InternalsAndroid Internals
Android Internals
Opersys inc.
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
RuggedBoardGroup
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
Shay Cohen
 
linux device driver
linux device driverlinux device driver
linux device driver
Rahul Batra
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
Sherif Mousa
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
Emertxe Information Technologies Pvt Ltd
 
Android Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and OrganizationAndroid Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and Organization
National Cheng Kung University
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
guest547d74
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Emertxe Information Technologies Pvt Ltd
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
RISC-V International
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKB
shimosawa
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
Kernel TLV
 
Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)
Tushar B Kute
 

What's hot (20)

Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 
Run Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoRun Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using Yocto
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
 
linux device driver
linux device driverlinux device driver
linux device driver
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
 
Android Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and OrganizationAndroid Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and Organization
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKB
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)
 

Viewers also liked

Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
Jaime Barragan
 
FreeRTOS API
FreeRTOS APIFreeRTOS API
FreeRTOS API
Vincent Claes
 
Proprietary Vs Open
Proprietary Vs OpenProprietary Vs Open
Proprietary Vs Open
dahliana
 
Windows CE
Windows CEWindows CE
Windows CE
Mayank Garg
 
Skinning Android for Embedded Applications
Skinning Android for Embedded ApplicationsSkinning Android for Embedded Applications
Skinning Android for Embedded Applications
VIA Embedded
 
Building
BuildingBuilding
Building
Satpal Parmar
 
android vs symbian
android  vs symbianandroid  vs symbian
android vs symbian
AJAL A J
 
Embedded Linux Talk Uni Forum
Embedded Linux Talk Uni ForumEmbedded Linux Talk Uni Forum
Embedded Linux Talk Uni Forum
Sumant Diwakar
 
Linux Mint
Linux MintLinux Mint
Linux Mint
Nashwan Doaqan
 
MIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAs
MIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAsMIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAs
MIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAs
MIPI Alliance
 
MIPI DevCon 2016: Implementing MIPI C-PHY
MIPI DevCon 2016: Implementing MIPI C-PHYMIPI DevCon 2016: Implementing MIPI C-PHY
MIPI DevCon 2016: Implementing MIPI C-PHY
MIPI Alliance
 
Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]
Ionela
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
Vandana Salve
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
Linaro
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
Patrick Bellasi
 
Performance Tuning Xen
Performance Tuning XenPerformance Tuning Xen
Performance Tuning Xen
The Linux Foundation
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
Sherif Mousa
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 Arch
Sherif Mousa
 
Advancement on embedded linux-v2
Advancement on embedded linux-v2Advancement on embedded linux-v2
Advancement on embedded linux-v2
Ir. Dr. R.Badlishah Ahmad
 

Viewers also liked (20)

Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
FreeRTOS API
FreeRTOS APIFreeRTOS API
FreeRTOS API
 
Proprietary Vs Open
Proprietary Vs OpenProprietary Vs Open
Proprietary Vs Open
 
Windows CE
Windows CEWindows CE
Windows CE
 
Skinning Android for Embedded Applications
Skinning Android for Embedded ApplicationsSkinning Android for Embedded Applications
Skinning Android for Embedded Applications
 
Building
BuildingBuilding
Building
 
Paper5
Paper5Paper5
Paper5
 
android vs symbian
android  vs symbianandroid  vs symbian
android vs symbian
 
Embedded Linux Talk Uni Forum
Embedded Linux Talk Uni ForumEmbedded Linux Talk Uni Forum
Embedded Linux Talk Uni Forum
 
Linux Mint
Linux MintLinux Mint
Linux Mint
 
MIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAs
MIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAsMIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAs
MIPI DevCon 2016: Multiple MIPI CSI-2 Cameras Leveraging FPGAs
 
MIPI DevCon 2016: Implementing MIPI C-PHY
MIPI DevCon 2016: Implementing MIPI C-PHYMIPI DevCon 2016: Implementing MIPI C-PHY
MIPI DevCon 2016: Implementing MIPI C-PHY
 
Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
 
Performance Tuning Xen
Performance Tuning XenPerformance Tuning Xen
Performance Tuning Xen
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 Arch
 
Advancement on embedded linux-v2
Advancement on embedded linux-v2Advancement on embedded linux-v2
Advancement on embedded linux-v2
 

Similar to Introduction to Embedded Linux

outpass system
outpass systemoutpass system
outpass system
Dhivakar K
 
Lec9chap8f04
Lec9chap8f04Lec9chap8f04
Lec9chap8f04
screaminc
 
Slim Server Theory
Slim Server TheorySlim Server Theory
Slim Server Theory
Gaurav Paliwal
 
Introduction to Mobile Operating System.pptx
Introduction to Mobile Operating System.pptxIntroduction to Mobile Operating System.pptx
Introduction to Mobile Operating System.pptx
aparna14patil
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
Benjim Thomas Mathew
 
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
Linaro
 
Linux fundamentals Training
Linux fundamentals TrainingLinux fundamentals Training
Linux fundamentals Training
Love Steven
 
File000148
File000148File000148
File000148
Desmond Devendran
 
Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...
Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...
Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...
IOSR Journals
 
robotics for embedded systems.pptx
robotics for embedded systems.pptxrobotics for embedded systems.pptx
robotics for embedded systems.pptx
VikasMahor3
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
Cliff Samuels Jr.
 
The Pc And Its Operating Systems
The Pc And Its Operating SystemsThe Pc And Its Operating Systems
The Pc And Its Operating Systems
Amber Wheeler
 
Windows Architecture Explained by Stacksol
Windows Architecture Explained by StacksolWindows Architecture Explained by Stacksol
Windows Architecture Explained by Stacksol
Stacksol
 
IRJET - Development of Embedded Linux System from Bare Board
IRJET - Development of Embedded Linux System from Bare BoardIRJET - Development of Embedded Linux System from Bare Board
IRJET - Development of Embedded Linux System from Bare Board
IRJET Journal
 
It6601 mobile computing unit 5
It6601 mobile computing unit 5It6601 mobile computing unit 5
It6601 mobile computing unit 5
RMK ENGINEERING COLLEGE, CHENNAI
 
The Real Time Drowisness Detection Using Arm 9
The Real Time Drowisness Detection Using Arm 9The Real Time Drowisness Detection Using Arm 9
The Real Time Drowisness Detection Using Arm 9
IOSR Journals
 
Windows Embedded in the Real World
Windows Embedded in the Real WorldWindows Embedded in the Real World
Windows Embedded in the Real World
ukdpe
 
os.ppt
os.pptos.ppt
os.ppt
banu236831
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
Satya Harish
 
PLAYSTATION OPERATING SYSTEM
PLAYSTATION OPERATING SYSTEMPLAYSTATION OPERATING SYSTEM
PLAYSTATION OPERATING SYSTEM
Shubhansh Kathal
 

Similar to Introduction to Embedded Linux (20)

outpass system
outpass systemoutpass system
outpass system
 
Lec9chap8f04
Lec9chap8f04Lec9chap8f04
Lec9chap8f04
 
Slim Server Theory
Slim Server TheorySlim Server Theory
Slim Server Theory
 
Introduction to Mobile Operating System.pptx
Introduction to Mobile Operating System.pptxIntroduction to Mobile Operating System.pptx
Introduction to Mobile Operating System.pptx
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
 
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
 
Linux fundamentals Training
Linux fundamentals TrainingLinux fundamentals Training
Linux fundamentals Training
 
File000148
File000148File000148
File000148
 
Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...
Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...
Implementation of Cmos Camera Device Driver and Wifi Technology on S3c2440 Us...
 
robotics for embedded systems.pptx
robotics for embedded systems.pptxrobotics for embedded systems.pptx
robotics for embedded systems.pptx
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
 
The Pc And Its Operating Systems
The Pc And Its Operating SystemsThe Pc And Its Operating Systems
The Pc And Its Operating Systems
 
Windows Architecture Explained by Stacksol
Windows Architecture Explained by StacksolWindows Architecture Explained by Stacksol
Windows Architecture Explained by Stacksol
 
IRJET - Development of Embedded Linux System from Bare Board
IRJET - Development of Embedded Linux System from Bare BoardIRJET - Development of Embedded Linux System from Bare Board
IRJET - Development of Embedded Linux System from Bare Board
 
It6601 mobile computing unit 5
It6601 mobile computing unit 5It6601 mobile computing unit 5
It6601 mobile computing unit 5
 
The Real Time Drowisness Detection Using Arm 9
The Real Time Drowisness Detection Using Arm 9The Real Time Drowisness Detection Using Arm 9
The Real Time Drowisness Detection Using Arm 9
 
Windows Embedded in the Real World
Windows Embedded in the Real WorldWindows Embedded in the Real World
Windows Embedded in the Real World
 
os.ppt
os.pptos.ppt
os.ppt
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
 
PLAYSTATION OPERATING SYSTEM
PLAYSTATION OPERATING SYSTEMPLAYSTATION OPERATING SYSTEM
PLAYSTATION OPERATING SYSTEM
 

Recently uploaded

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 

Recently uploaded (20)

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 

Introduction to Embedded Linux

  • 1.
  • 2. 2 Preface Over the years Linux is being used or embedded as operating system in many intelligent and smart electronic devices starting from mobile phone, refrigerator to cow milking devices apart from desktops and server computers. Though Linux is open source, its often difficult for a beginner to get started. In this presentation embedded system and embedded Linux have been introduced through examples, animation and short explanation. This presentation is targeted to the absolute beginner or embedded software engineer who wants to be part of exciting world of Linux and the enthusiast or even manager who just wants to get idea about embedded Linux.
  • 3. 3 About Author Hossain Reja, a graduate in computer science and engineering from National Institute of Technology, Hamirpur, has over seventeen years of expertise in building embedded systems. He has experience and working knowledge in multiple domains – process control, set-top box, cable modems, mobile domains and vehicle electronics and infotainment. Hossain is passionate about kernel.
  • 5.  Wild Life Preservation is very much important  Technology can help to preserve the wild lives  One such technology is drone  Drone is a mini helicopter that can fly at low altitude and can keep an eye on the wild lives in a forest 5 Wild Life Preservation
  • 6. 6 Drone – The Flying Machine  An example of typical drone is a quad-copter  This drone can take areal images – like wild lives images in a forest , crop images in a firming land etc  These images can be processed to design and develop various applications like – wild life preservation, crop pesticide management  This drone can be controlled by smart phone, tablet, iPhone and iPad etc
  • 7. 7 Things Google Glass A wearable device with optical head mounted display that helps to navigate, talk to internet through voice commands and much more Nike+ Shoes This tracks a run and record it and can communicate with Smart Phone Smart Phone This does not need a description Smart Watch A computerized wristwatch that essentially is a smart phone, phone app can run on it and it’s application is bound by your imagination
  • 8. 8 Some more things In-Vehicle Infotainment System Provides driver assistance information, navigation, entertainment inside car and much more Learning Thermostat An smart thermostat that learns your AC usage behavior and control it saving energy and connects to internet so virtually it can be controlled from anywhere Smart Refrigerator Apart from its basic function of refrigeration, it learns your food stock and automatically order for you and takes instruction from you from anywhere
  • 9. 9 Embedded Systems  These devices have at least one thing in common  They are essentially a computer that runs software to accomplish a specialized function - learning your AC usage behavior, jogging behavior, food stock in your refrigerator or entertaining you inside your car on a along drive  A computer device with specialized function is an Embedded System
  • 11. 11 Drone – Tear down Mechanical  Chassis  Propeller Electrical  Servo motor Electronics  Printed Circuit Board  Digital Camera
  • 12. 12 Drone – PCB Tear Down  Main board  Navigation board Hardware Vertical Camera Flash ROM (128MB) 16-bit Micro & 10-Bit ADC RAM (128MB) XY-axis Gyroscope WiFi Processor (ARM)
  • 13. 13 Hardware Components Processor : Central Processing Unit RAM: Main Memory ROM: Secondary (Persistent) Memory Propeller: Driven by Servo Motor (Navigation) Gyroscope: Keeps drone stable (Navigation) Camera: Wild Life Image Capture, Weed Detection at Firm House WiFi: Wireless communication, Remote Control through Smart Phone, iPad etc
  • 14. 14 Embedded Hardware and Software  Hardware  Operating System  Application Operating System Applications Hardware
  • 15. ApplicationOS 15 Embedded Hardware and Software Hardware Vertical Camera Flash ROM (128MB) 16-bit Micro & 10-Bit ADC RAM (128MB) XY-axis Gyroscope WiFi Processor (ARM) Operating System  Linux  Android (Linux based)  Windows  VxWorks  iOS Application Examples  Navigation  Video capture and image processing  Wild image detection  Wild Life Protection  Navigation board
  • 17. 17 Linux as Embedded OS Application Hardware Linux OS
  • 18. 18 Booting Process – x86 BIOS/EFI/UEFI Boot Loader (First Stage) Boot Loader (Second Stage) (grub, elilo) Kernel (bzImage) User Application (init)  Staged booting process  Main components  BIOS/EFI/UEFI (Firmware)  Boot Loader (First Stage, optional)  Boot Loader (elilo, grub etc)  Linux Kernel  User application
  • 19. 19 Booting Process – x86 BIOS/EFI/UEFI Boot Loader (First Stage) Boot Loader (Second Stage) (grub, elilo) Kernel (bzImage) User Application (init) * Starts on power on/reset * Does basic initialization *Does basic test * Loads and runs First Stage Boot Loader in SRAM * Initialize DRAM * Loads and run Second Stage Boot Loader from DRAM * Boot loader with full festuree *Iinitialize hardware (DRAM) * Loads Linux kernel from a file system (i.e. SD card/Flash) * Runs linux kernel * Linux kernel initializes all the subsystems (memory manager scheduler, device drivers etc) * Runs first user space program * User space start-up runs * Mutli-user or Graphical systems up and running and ready to be used  Staged boot process  System partially initialized and specific task is achieved at each stage from power on to system boot (user prompt or application)  Embedded system generally prompt for user login prompt, it start application during the boot process automatically
  • 20. 20 Boot Process - ARM ROM Code init SRAM Load boot strap on SRAM Runs SRAM Boot Strap Init clock, SDRAM Load u-boot from Flash to SDRAM Runs u-boot u-boot Uncompress zImage Loads it to DRAM Runs Kernel Linux Kernel Initialize all sub-system (clock, memory manager, scheduler, device driver, file system etc) Runs user process init User space init process rootfs Storage ViewExecution View Flash (u-boot.bin) MTD/SD/MMC (zImage) SD/MMC/MTD rootfs DRAM (u-boot) DRAM kernel (uncompressed zImage) DRAM (init and ...) Flash ROMROM (ROM code) SRAM (boot strap)
  • 21. 21 Customization Required for Embedded Linux ROM Code Boot Strap u-boot Linux Kernel Provided by chip manufacturer and available in chip Provided by chip manufacturer and available in chip u-boot project http://www.denx.de/wiki/U-Boot main line kernel source code https://www.kernel.org No change required No change required Customization Required as per the hardware Configuration, customization and extension are required rootfs Need to build a root file systems where all required software will be available Need to build a root file systems where all required software will be available Actions on Software ComponentsSoftware Components
  • 26. LinuxKernel Hardware 26 Linux Kernel Components Veritical Camera Flash ROM (128MB) 16-bit Micro & 10-Bit ADC RAM (128MB) XY-axis Gyroscope WiFi Memory Manager Virtual Memory Manager Network Drivers Network Network Protocol Scheduler Process Management Character Devices Device Drivers Block/MTD Devices File System Virtual File System Processor (ARM) • Process Management • Memory Management • I/O Management (File system) • Network Management • Device Management
  • 27. UserSpace 27 Kernel Space & User Space System Call (Linux Kernel Gateway) System Software, Middleware, Application Scheduler Block/MTD Devices Character Devices Network Drivers Memory Manager Process ManagementFile System Device Drivers NetworkVirtual Memory Manager Network Protocol Virtual File System KernelSpace (Privileged) Hardware Hardware • Kernel Space • User Space • System Calls – gateway to kernel from user space
  • 28. 28 Kernel Space & User Space UserSpace System Calls (Kernel Gateway) System Software (glibc, libudev, ...) Hardware Hardware Kernel Kernel Space Middleware Network Services () Internet Services (Webkit) Graphics Services (Qt) Media Services (pulseaudio, gstreamer...)
  • 31. KernelComponents 31 Kernel Configuration SchedulerBlock/MT D Devices Character Devices Network Drivers Memory Manager Process Manage- mentFile System Device Drivers NetworkVirtual Memory Manager Network Protocol Virtual File System Hardware (ARM, USB, SD, Flash...) Hardware .... CONFIG_ARM=y CONFIG_USB=y CONFIG_EXT4=y .... CONFIG_MTD=y • Configure kernel based on hardware and features required • Eliminate kernel components or features that are not required to optimize the image size
  • 33. 33 Build Environment Host (Development PC) Target • Cross Development Platform
  • 34. 34 Build Tools gcc - Compiler, Assembler, Linker binutils - binary manipulation apps gdb - software debugger Host (Development PC)
  • 35. 35 Tools Brief Note arm-linux-gnueabi-gcov Coverage testing tool arm-linux-gnueabi-gprof Display call graph profile arm-linux-gnueabi-nm List symbols from object files arm-linux-gnueabi-objcopy Copy and translate object files arm-linux-gnueabi-objdump Display information from object file arm-linux-gnueabi-readelf Display information from elf file arm-linux-gnueabi-strip Discard symbols from object files binutils for ARM architecture with EABI
  • 36. 36 Tools Brief Note arm-linux-gnueabi-gcc C compiler arm-linux-gnueabi-cpp C++ compiler arm-linux-gnueabi-ld Linker & Loader arm-linux-gnueabi-as Assembler Complier tool chain for ARM architecture with EABI
  • 37. 37 Building Blocks (ARM…) Host PC tool chain- Compiler, Assembler , Linker root file system source kernel source u-boot source Target bzImage u-boot.bin rootfs
  • 38. 38 Embedded Linux Building Activities Kernel Configuration - Genrally configuration are supplied by the board supplier to start with, however some changes may require to meet some specification Board Specific Changes - Hardware configuration that depends on the user setting like device address, IRQ etc SoC Specific Changes - The kernel may have support to the SoC, however some configuration may be required Device Specific Drivers - If new devices are available and the driver is not present in the mainline kernel, driver for that device need to be devloped Kernel Optimization - Kernel may be optimized for space, some unnecessary modules or features may be disabled Kernel Debugging - Kernel provides may debugging features built int he kernel code, one need to enable those features int he kernel configuration
  • 39. 39 Embedded Linux Components Build Process Get sources Configure and Apply patches Build
  • 41. 41 U-boot Boot Loader Build hr@ed# wget https://www.kernel.org/pub/linux/kernel/v3.0/linux- 3.13.tar.xz hr@ed# tar xJvf linux-3.13.tar.xz hr@ed# cd linux-3.13 hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig hr@ed# make menuconfig hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig hr@ed# patch -l < [patch files] Get BusyBox source Configure & Patch Build
  • 42. 42 See Your Freshly Baked u-boot Run… Run u-boot… # qemu-system-arm -M vexpress-a9 -m 256 M -nographic -kernel uboot.bin Run u-boot with qemu See your u- boot run
  • 44. 44 Kernel Configuration Linux Kernel Source Kernel Config (.config) (Drone) Kernel Config (.config) (Learning Thermostat) Kernel Image (zImage) - Drone Kernel Image (bzImage) - Learning Thermostat
  • 46. 46 Kernel Patch Linux Kernel Source (Base kernel) Kernel Patch (customization, extension on base kernel) Resultant Kernel Source Code Kernel Config (.config) (Drone) Resultant Kernel Source Code Kernel Build Image (bzImage/zImage) apply patch build
  • 47. 47 Linux Kernel Build Linux Kernel Build hr@ed# wget https://www.kernel.org/pub/linux/kernel/v3.0/linux- 3.13.tar.xz hr@ed# tar xJvf linux-3.13.tar.xz hr@ed# cd linux-3.13 hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig hr@ed# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig hr@ed# patch -l < [patch files] Get Kernel source Configure & Patch Build
  • 48. 48 See Your Freshly Baked Kernel Run…  Add Text Run Linux kernel… # qemu-system-arm -M vexpress-a9 -m 256 M -nographic -kernel zImage Run Linux kernel with qemu See your Linux kernel run
  • 50. 50 Root File System C Library (glibc.so) Kernelboot loader cp, mv, ls, modprobe, ... init and init script shell device filesprocfs, sysfs /bin, /usr, /lib, /sbin ... Minimal Root File System • C library (glibc) • Basic Linux commands • Linux Shell • Device files • procfs and sysfs • Init Script
  • 51. 51 C Library glibc (POSIX interfaces) C standard library (string operations, ) folder pipestimer filesprocess signal memory manager mutexthread semaphore shared memory C Library (glibc) • Process management • Memory management • File Management • Process Synchronization
  • 52. 52 Root File System - BusyBox  Update C Library (glibc.so) BusyBox
  • 53. 53 BusyBox Build hr@ed# wget http://www.busybox.net/downloads/busybox-1.20.0.tar.bz2 hr@ed# tar xjf busybox-1.20.0.tar.bz2 hr@ed# cd busybox- busybox-1.20.0 hr@ed# $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig hr@ed# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig hr@ed# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install Apply patch if any Get BusyBox source Configure & Patch Build Root File System with BusyBox
  • 54. 54 Root File System Rootfs with BusyBox # cd _install # mkdir proc sys dev etc etc/init.d # mknod /dev/tty2 c 4 2 # mknod /dev/tty3 c 4 3 # mknod /dev/tty4 c 4 4 # chmod +x etc/init.d/rcS # find . | cpio -o --format=newc > ../rootfs.img #!/bin/sh #File : /etc/init.d/rcS mount -t proc none /proc mount -t sysfs none /sys /sbin/mdev -s Create folders Create device node Create rootfs cpio image Create /etc/init.d/ rcS
  • 55. 55 Root File System Rootfs with busybox # qemu-system-arm -M vexpress-a9 -m 256M -kernel zImage -initrd rootfs.img - append "root=/dev/ram rdinit=/sbin/init" Run Linux with BusyBox rootfs # Welcome to myLinux See your Linux with BusyBox run