CLICK HERE TO DOWNLOAD PPT ON Embedded Linux
Embedded Linux Presentation Transcript
1.Introduction to Embedded Linux
2.The Linux System
3.Shells
An interface between the Linux system and the user
Used to call commands and programs
An interpreter
Powerful programming language
“Shell scripts” = .bat .cmd EXEC REXX
Many available (bsh; ksh; csh; bash; tcsh)
Character Based and Graphics Based
An interface between the Linux system and the user
Used to call commands and programs
An interpreter
Powerful programming language
“Shell scripts” = .bat .cmd EXEC REXX
Many available (bsh; ksh; csh; bash; tcsh)
Character Based and Graphics Based
4.Linux Kernel
Portability and hardware support Runs on most architectures.
Scalability Can run on super computers as well as on tiny devices (4 MB of RAM is enough).
Compliance to standards and interoperability.
Exhaustive networking support.
Portability and hardware support Runs on most architectures.
Scalability Can run on super computers as well as on tiny devices (4 MB of RAM is enough).
Compliance to standards and interoperability.
Exhaustive networking support.
5.Kernel architecture
6.Devices and Drivers
Each /dev file has a major and minor number
Major defines the device type
Minor defines device within that type
Drivers register a device type
Each /dev file has a major and minor number
Major defines the device type
Minor defines device within that type
Drivers register a device type
7.Embedded Linux
8.What is Embedded Linux?
porting the Linux kernel to run on a particular CPU and board which will be put into an embedded device.
There are many companies that sell embedded Linux solutions.
These usually include a ported Linux kernel with cross-development tools, and sometimes with real time extensions.
the APIs and kernel codebase are the same for embedded Linux as desktop Linux
porting the Linux kernel to run on a particular CPU and board which will be put into an embedded device.
There are many companies that sell embedded Linux solutions.
These usually include a ported Linux kernel with cross-development tools, and sometimes with real time extensions.
the APIs and kernel codebase are the same for embedded Linux as desktop Linux
9.Why Embedded Linux?
Royalty-free
Strong networking support
Has already been ported to many different CPU architectures
Relatively small for its feature set
Easy to configure
Huge application base
Modern OS (eg. memory management, kernel modules, etc.)
Royalty-free
Strong networking support
Has already been ported to many different CPU architectures
Relatively small for its feature set
Easy to configure
Huge application base
Modern OS (eg. memory management, kernel modules, etc.)
10.Embedded Linux System
Boot loader
U-boot
GRUB
…
Kernel
File system
Many types
Boot loader
U-boot
GRUB
…
Kernel
File system
Many types
11.uClibc toolchains
12.Platform specific toolchains
13.Scratchbox
14.qemu
http://qemu.org Fast processor emulator using a portable dynamic translator.
Full system emulation
Emulates the processor and various peripherals Supported: x86, x86_64, ppc, arm, sparc, mips
To know which machine types are supported: qemu-system-arm -M ?
i386, x86_64 system emulation: now close to native speeds thanks to the kqemu kernel module (now GPL v2!).
http://qemu.org Fast processor emulator using a portable dynamic translator.
Full system emulation
Emulates the processor and various peripherals Supported: x86, x86_64, ppc, arm, sparc, mips
To know which machine types are supported: qemu-system-arm -M ?
i386, x86_64 system emulation: now close to native speeds thanks to the kqemu kernel module (now GPL v2!).
15.ARM emulators
Only Free Software, of course!
SkyEye: http://skyeye.sourceforge.net Emulates several ARM platforms (AT91, Xscale...) and can boot several operating systems (Linux, uClinux, and others)
Softgun: http://softgun.sourceforge.net Virtual ARM system with many virtual on-board peripherals. Boots Linux.
SWARM - Software ARM - arm7 emulator http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html Can run uClinux
Only Free Software, of course!
SkyEye: http://skyeye.sourceforge.net Emulates several ARM platforms (AT91, Xscale...) and can boot several operating systems (Linux, uClinux, and others)
Softgun: http://softgun.sourceforge.net Virtual ARM system with many virtual on-board peripherals. Boots Linux.
SWARM - Software ARM - arm7 emulator http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html Can run uClinux
16.Other emulators
ColdFire emulator http://www.slicer.ca/coldfire/ Can boot uClinux
ColdFire emulator http://www.slicer.ca/coldfire/ Can boot uClinux
17.Minicom
Definition: serial communication program
Available in all GNU / Linux distributions
Capabilities (all through a serial link):
Serial console to a remote Unix system
File transfer
Modem control and dial-up
Serial port configuration
Definition: serial communication program
Available in all GNU / Linux distributions
Capabilities (all through a serial link):
Serial console to a remote Unix system
File transfer
Modem control and dial-up
Serial port configuration
18.General purpose toolbox: BusyBox
http://www.busybox.net/
Most Unix command line utilities within a single executable! It even includes a web server!
Sizes less than < 500 KB (statically compiled with uClibc) or less than 1 MB (statically compiled with glibc).
Easy to configure which features to include.
The best choice for
Initramfs / initrd with complex scripts
Small and medium size embedded systems
See http://www-128.ibm.com/developerworks/linux/library/l-busybox/ for a nice introduction.
http://www.busybox.net/
Most Unix command line utilities within a single executable! It even includes a web server!
Sizes less than < 500 KB (statically compiled with uClibc) or less than 1 MB (statically compiled with glibc).
Easy to configure which features to include.
The best choice for
Initramfs / initrd with complex scripts
Small and medium size embedded systems
See http://www-128.ibm.com/developerworks/linux/library/l-busybox/ for a nice introduction.
19.ssh server and client: dropbear
20.Benefits of a web server interface
Many network enabled devices can just have a network interface
Examples: modems / routers, IP cameras, printers...
No need to develop drivers and applications for computers connected to the device. No need to support multiple operating systems!
Just need to develop static or dynamic HTML pages (possibly with powerful client-side JavaScript). Easy way of providing access to device information and parameters.
Reduced hardware costs (no LCD, very little storage space needed)
Many network enabled devices can just have a network interface
Examples: modems / routers, IP cameras, printers...
No need to develop drivers and applications for computers connected to the device. No need to support multiple operating systems!
Just need to develop static or dynamic HTML pages (possibly with powerful client-side JavaScript). Easy way of providing access to device information and parameters.
Reduced hardware costs (no LCD, very little storage space needed)
21.thttpd
Tiny/Turbo/Throttling HTTP server http://acme.com/software/thttpd/
Simple Implements the HTTP/1.1 minimum (or just a little more) Simple to configure and run.
Small Executable size: 88K (version 2.25b), Apache 2.0.52: 264K Very low memory consumption: does not fork and very careful about memory consumption.
Tiny/Turbo/Throttling HTTP server http://acme.com/software/thttpd/
Simple Implements the HTTP/1.1 minimum (or just a little more) Simple to configure and run.
Small Executable size: 88K (version 2.25b), Apache 2.0.52: 264K Very low memory consumption: does not fork and very careful about memory consumption.
22.Other web servers (1)
BusyBox http server: http://busybox.net Tiny: only adds 9 K to BusyBox 1.5 (dynamically linked with glibc on i386, with all features enabled.)! Sufficient features for many devices with a web interface, including CGI, http authentication and script support (like PHP). License: GPL
KLone: http://koanlogic.com/kl/cont/gb/html/klone.html Lightweight but full featured web server for embedded systems. Can enclose dynamic (written in C/C++ <% code %>) and compressed content all in an executable of an approximate size of 150 KB. License: Dual GPL / Commercial. See also http://linuxdevices.com/news/NS8234701895.html
BusyBox http server: http://busybox.net Tiny: only adds 9 K to BusyBox 1.5 (dynamically linked with glibc on i386, with all features enabled.)! Sufficient features for many devices with a web interface, including CGI, http authentication and script support (like PHP). License: GPL
KLone: http://koanlogic.com/kl/cont/gb/html/klone.html Lightweight but full featured web server for embedded systems. Can enclose dynamic (written in C/C++ <% code %>) and compressed content all in an executable of an approximate size of 150 KB. License: Dual GPL / Commercial. See also http://linuxdevices.com/news/NS8234701895.html
23.Boa: http://www.boa.org/ Designed to be simple, fast and secure. Unlike thttpd, no particular care for memory or disk footprint though. Embedded systems: pretty popular, though not targeted by developers.
lighthttpd: http://lighttpd.net Low footprint server good at managing high loads. May be useful in embedded systems too.
lighthttpd: http://lighttpd.net Low footprint server good at managing high loads. May be useful in embedded systems too.
24.Graphical toolkits
Licenses matter here!
Toolkits allowing proprietary applications Nano-X / Microwindows, FLTK, SDL, DirectFB, GTK
GPL toolkits (commercial license required for proprietary apps) MiniGUI, Qt Embedded
Graphical environments and applications Qtopia, Opie, GPE
Web browser based interfaces
Licenses matter here!
Toolkits allowing proprietary applications Nano-X / Microwindows, FLTK, SDL, DirectFB, GTK
GPL toolkits (commercial license required for proprietary apps) MiniGUI, Qt Embedded
Graphical environments and applications Qtopia, Opie, GPE
Web browser based interfaces
25.Linux porting projects
Useful to find patches, binaries, documentation, toolchains... Only ports for embedded systems are listed
arm: http://www.arm.linux.org.uk/ See also http://www.linux-arm.org/ (from ARM Limited)
m68k: http://www.linux-m68k.org/
mips: http://www.linux-mips.org/
ppc: http://penguinppc.org/embedded/
sh: http://linuxsh.sourceforge.net/
xtensa: http://xtensa.sourceforge.net/
Useful to find patches, binaries, documentation, toolchains... Only ports for embedded systems are listed
arm: http://www.arm.linux.org.uk/ See also http://www.linux-arm.org/ (from ARM Limited)
m68k: http://www.linux-m68k.org/
mips: http://www.linux-mips.org/
ppc: http://penguinppc.org/embedded/
sh: http://linuxsh.sourceforge.net/
xtensa: http://xtensa.sourceforge.net/
0 comments