Powerpoint presentation (start office ?)

Download Report

Transcript Powerpoint presentation (start office ?)

Building x86 Based
Embedded Linux Systems
Presented by:
GREG UNGERER
[email protected]
Lineo Inc
825 Stanley St
Woolloongabba Qld 4102
Australia
Ph: +61 7 3435 2888
www.lineo.com
(C) Copyright 2001, Lineo Inc (www.lineo.com)
PRESENTATION OUTLINE
1. What is an Embedded System?
2. Why x86 CPU's and Linux
3. Howto (booting, kernel, libraries, apps, etc)
4. Demos
5. Thoughts
6. References
(C) Copyright 2001, Lineo (www.lineo.com)
What is an Embedded System?
"Computing system used within some device or
product whose primary function is not to be a
computer”
• minimal hardware
• reduced/simple or no user interface
• physical and cost constraints
• "hidden"” from user
(C) Copyright 2001, Lineo (www.lineo.com)
Why x86 CPU?
• not technical reasons!
• well understood, documented and common
• multiple silicon vendors
• wide range of performance and price points
• flow down from PC/workstations
(C) Copyright 2001, Lineo (www.lineo.com)
Why use Open Source?
• source code available
• low cost, no license fees
• tools freely available (and modifiable)
• advanced functionality and features
• huge range of software available
• active development community
• standardized and well known API sets
(C) Copyright 2001, Lineo (www.lineo.com)
Problems?
• no video console
• no mass storage (no hard drive)
• minimal RAM
• FLASH or ROM as non-volatile storage
• how to boot?
• how to debug (kernel, apps, etc)?
(C) Copyright 2001, Lineo (www.lineo.com)
System Boot
• x86 boot is complicated (backwards compatibility)
• license a conventional BIOS ($$$)
• develop your own BIOS (boot loader)
• flexible (can use with other OS)
• fast
• support FLASH and miscellaneous hardware
• augment Linux kernel with a loader
(C) Copyright 2001, Lineo (www.lineo.com)
Linux Kernel
• very minimal changes required
• configure to suit hardware
• remove unwanted drivers
• may need to develop new drivers for new hardware
(C) Copyright 2001, Lineo (www.lineo.com)
FLASH and Filesystems
• FLASH or ROM for file store
• MTD (Memory Technology Driver)
• ROMfs filesystem for read only
• JFFS/JFFS2 for real read/write filesystem in FLASH
• cramfs in newest Linux kernels
• RAM disks can be useful
(C) Copyright 2001, Lineo (www.lineo.com)
Libraries
• Glibc is common choice
• very large ~1.5MB
• can be leaned up with special tools
• uC-libc
• light weight ~0.2MB
• not a full implementation of standard libc
• shared libraries a good thing
(C) Copyright 2001, Lineo (www.lineo.com)
Applications
• standard Linux apps mostly
• some specialized applications around
• busybox - standard file and system utilities
• sash - small shell
• roll your own or use packaged binaries
(C) Copyright 2001, Lineo (www.lineo.com)
Tools
• be very carefull of host build environment
• don’t use local header files
• don't link against local libraries
• standard gcc/gas/ld tool chain
• as86/bcc for boot loader (real mode x86)
(C) Copyright 2001, Lineo (www.lineo.com)
Demos
• VPN router
• NAS box
(C) Copyright 2001, Lineo (www.lineo.com)
Thoughts
• you can do embedded with x86
• don't expect a PC/Workstation when you do
• think small
(C) Copyright 2001, Lineo (www.lineo.com)
REFERENCES
• Linux Documentation
http://www.linuxdoc.org
• Embedded applications (busybox, sash and more)
http://www.opensource.lineo.com
• MTD driver pages
http://www.linux-mtd.infradead.org
(C) Copyright 2001, Lineo (www.lineo.com)