EmbeddedLinux
By
Er.Shishir Adhikari
DiscussionTopics
WhatisanembeddedOperatingSystem LinuxasanembeddedOS Buildingkernel Toolsanddevelopment WhoaretheEmbeddedOSdevelopers Applicationsandproducts TheembeddedOSmarket EmbeddedOSResources
WhatisanEmbeddedOS?
computersystemthatperformsa
dedicatedfunctionorisdesigned forusewithaspecificembedded softwareapplication.
EmbeddedsystemsmayuseaROM
basedoperatingsystemorthey mayuseadiskbasedsystem,like aPC.
WhatmakesagoodEmbeddedOS?
Modular Scalable Configurable Smallfootprint CPUsupport Devicedrivers
WhyLinuxasEmbeddedOS?
Royaltyfreelicensing ReliableIPstackandTCP/IP Applications SourcecodefortheOSKernelisOpen SourcecodefortheToolchainsisOpen
WhyLinuxasEmbedded OS?....
Multiplechoicesvs.solesource Robustandreliable Modular,configurable,scalable Superbsupportfornetworkingand
Internet Largepoolofskilleddevelopers
WhyLinuxasEmbedded OS?....
Itisverymodularinnature,
sinceallfeaturesofthesystem thatarenotneededfora specificembeddedsystemcanbe removedfromthekernel. Inaddition,Linuxhasbeen portedsuccessfullytoalarge numberofprocessor architectures,whichallowsitto runonmanydifferenttypesof
WhyLinuxasEmbeddedOS?
ProcessorssupportedbyLinux:
Intel386processors, ARM, CRIS(i.e.ETRAX100LXfromAxis Communications), Motorola68000series, Sparc(SunWorkstations), PowerPC,MIPS,s390(mainframe) andseveralothers.
Thingstoconsiderwhileusing linuxasEmbeddedOS
Whichprocessorsaresupportedby
linux? Whatfeaturesareneededinthe kernelfortheembeddedsystem? Forexample,Linuxcanbeboot fromaROMchipratherthanSCSI harddisk,CDROMs. Devicedriverstobeincluded?
Thingstoconsiderwhileusing linuxasEmbeddedOS
Requirerealtimefeatures? Arealtimeoperatingsystemis
onethathasaguaranteed responsetimetointerrupts. ItispossibletoconvertLinux intoarealtimesystemhowever.
WhatisRealTime?
Arealtimesystemisoneinwhich thecorrectnessofthe computationsnotonlydepends uponthelogicalcorrectnessof thecomputationbutalsouponthe timeatwhichtheresultis produced.Ifthetiming constraintsofthesystemarenot DonaldGillies met,systemfailureissaidto haveoccurred.
WhatisRealTime?
Realtimeinoperatingsystems: Theabilityoftheoperating systemtoprovidearequired levelofserviceinabounded responsetime.
POSIXStandard1003.1
Hardvs.SoftRealTime
Hard wheretheoperationmustbe completedwithinthedeadline, andisvaluelessbeyondthis deadline. Soft Taskscompletedaftertheir respectivedeadlinesareless importantthanthosewhose deadlineshavenotyetexpired.
LinuxRealTimeExtensions
InordertomakeLinuxintoarealtime operatingsystem,thekernelitselfis modifiedslightlysoitcanrunasa taskunderarealtimescheduling process. Inthiscase,adeveloperhasachoice whencreatingsoftwarethathandles interrupt. StandardLinuxdevicedriver(interrupt responsetimeisnotguaranteed)
BuildingaLinuxKernel
Firstdownloadthekernelsource
codehttp://www.kernel.org/,or ftp://ftp.kernel.org/ extractit(uncompress)soyou canbuildit/usr/src/linux folder cd/usr/src tarxzvf<path>/linux 2.2.4.tar.gz
BuildingaLinuxKernel..
Nextselecttheoptionsyouwouldlike includedintothekernel. Runthe'make'command,followedby either'config'(textmodeonly), 'menuconfig'(textmodewithmenus),or xconfig(XWindowsconfigurationmode). #makemenuconfig #makexconfig #aptgetinstallbuildessential (developmenttoolforNepalinux)
Gothroughallthemenuchoices
andenableordisableoptionsand devicedriversasneeded /usr/src/linux/Documentation folderandsubfoldersmany optionsandsettingsdescribed there. Exitandsaveyoursettings. Thesevaluesaresavedinafile named'.config'inthe/ usr/src/linuxfolder
KernelTypes
Kernelmonolithicormodular MonolithickernelLinuxdevice
driversbuiltintothekernel itself.Automaticallyloadedwith kernel. ModularkernelDevicedrivers canbebuiltasmodules.The devicedriverwillhavetobe installedusingscriptsbefore attemptingtousethedevice.
Forembeddedsystems,monolithic
kernelispreferred. Youshouldonlyincludethose specificdevicesthatyoumust supporttogetthesmallest kernelavailable. Forexample,ifyourembedded devicedoesnothavenetwork cards,noneedtoincludeany networkingsupportatallinthe kernel.
Crosscompilerfordifferent EmbeddedProcessor
Crosscompiler Generatestheopcodesforthe
targetprocessor,insteadforthe processorrunningonyour computer. Crosscompilersforalmostall processorssupportedbyLinuxare availablefromtheGNU organizationat http://www.gnu.org/
Buildingkernelforthesame processorarchitecture
#makedep Thiswillscanallthesourcecodeand headerfiles,reads.configfileand updatesvariousinterdependencies betweenkernelsourcecodefilesand options. Thenbuildthekernelitself #makezImage(usinggzipcompression algorithm) #makebzImage(usingbzip2)
Thekernelwilluncompressitself
ontheflywhenattemptingto boot. Thisisdonebyaddingasmall bitof'uncompression'codeto thebeginningofthekernel itself. Duringboottime,thekernelwill thenextractthe'real'kernel fromthefiletomemoryand continuetoboot.
Thekernelimagefile/
usr/src/linux/arch/<arch type>/bootdirectory. zImageorbzImage,dependingon whichtypeofcompressionoption youselected. Putonfloppy,CDROMorFlash ROMorotherbootabledeviceto startrunningLinux.
WhoaretheEmbeddedOSdevelopers?
WindRiverSystems
VxWorks pSOS QNX Integrity
QNXSoftwareSystems
GreenHillsSoftware
WhoaretheEmbeddedOSdevelopers?
MentorGraphics
VRTX PalmOS SymbianOS
PalmComputing
Symbian
Microsoft
EmbeddedNT/XP Realtimecontrol WindowsCE variationofMicrosoft'sWindows operatingsystemforminimalistic computersandembeddedsystems. supportedonIntelx86,MIPS,ARM, andHitachiSuperHprocessors. PocketPC2002 HandheldPCsandPDAs
CommercialEmbeddedLinux
AMIRIXEmbeddedLinux
derivedfromDebian combinesLinuxandJavaforInternetapps kernelcanbeassmallas143KB 400K,designedforwirelessapps
CoollogicCoollinux
CoventiveXlinux
EsfiaRedBlueLinux
CommercialEmbeddedLinux
KYZOPizzaBoxLinux
SAMBAbasedfile,print,CDserver supportsrealtimeandhighavailability apps generalpurposeembeddedsolution generalpurposeembeddedsolution
LineoEmbedix
LynuxWorksBlueCat
MontaVistaLinux
CommercialEmbeddedLinux
NeowareNeoLinux
RedHatderivedforinformationappliances Internetappliuanceandmultimedia generalpurposeembeddedsolution runsfromDiskonChiporCompactFlash
PalmPalmTynux
RedHatEmbeddedLinux
RedSonicRedIceLinux
CommercialEmbeddedLinux
RidgeRunDSPLinux
formultimedia,wireless,RTonDSP lowlatencyenhancedkernel distrotargetsInternetappliances forARMbasedembeddedapps
TimeSysLinuxGPL
TuxiaTASTE
VitalSystemsvLinux
OpenSourceEmbeddedLinux
EmbeddedDebianProject
convertDebiantoanembeddedOS forPC104SBCs formicroprocessorsthatdonthaveMM distrofitsonasinglefloppy
ETLinux
uCLinux
uLinux(muLinux)
OpenSourceLinuxRTOS
ARTLinux realtimeextensionbasedonRTLinux KURT eventscheduleswith10usresolution LinuxSRT forsoftrealtimeappslike multimedia Qlinux providesQualityofService guarantees RTAI hardRealTimeApplication
CommercialLinuxRTOS
ThinLinuxaminimizedLinuxdistribution
fordedicatedcameraservers,X10 controllers,MP3players FSMLabsOpenRTLinux LineoEmbedixRealtime LynuxWorksBlueCatRT REDSonicREDICELinux
RTLinux
Ahardrealtimeminioperating system runsLinuxasitslowestpriority executionthread Linuxthreadcompletelypreemptible Realtimethreadsandinterrupt handlersneverdelayedbynonrealtime operations Supportsuserlevelprogramming MiniRTLimplementationfitsonafloppy
WhatssospecialaboutLinux?
WhatCPUswillitrunon?
IntelX86 MIPS ARM StrongARM PowerPC HitachiSuperH
AnyDevelopmentTools Available?
QT/Embedded OtherGUI/Windowingtoolkits ArcomControlSystems GNUProTools Vendorspecific StandardLinuxtoolset
WhatsItBeingUsedFor?
ControlandMonitoring
Applications IndustrialControllers TVSetTopBoxes(TiVO) HandheldPDAs AutomobileComputers TelecommandNetworkingHardware Myriadandsundryotheruses...
CycladesTS100
NetlinosOS Dual50MHzPowerPC 16MBSDRAM4MBFlash Ethernet/Serial/RS485 Sizeofadeckofcards
SharpZaurus
LineoEmbedix 206MHzStrongARM 64MBDRAM16MBFlash 3.5display(320x240)
64Kcolors Operabrowser&Qtopia QT/EmbeddedGUI
TiVOSetTopBox
HomegrownportofEmbeddedLinux 54MHzPowerPC MultiGBharddisk
Axis2120NetworkCamera
uCLinux BuiltinEthernetport 100MHzETRAXCPU 16MBRAM
HumanoidRobots
Univ.of
Tokyo/Kawanda Ind. DualPentiumCPU RTLinux Height:53inches Weight:121lbs.
Isamu
HumanoidRobots
HOAP
Fujitsu RTLinux Height:48cm Weight:6kg 100units/yr
ForFurtherInfo
WebSites
BlueCatLinuxat
http://www.lynuxworks.com/ HardHatLinuxat http://www.mvista.com/ RTLinuxat http://www.rtlinux.com/ ThinLinuxat http://www.thinlinux.com/ WhiteDwarfLinuxat http://www.emjembedded.com/linux/dimm
ForFurtherInfo
WebSites
LinuxEmbeddedat
http://linuxembedded.com/ LinuxDevices.com http://www.linuxdevices.com/ EmbeddedLinuxConsortium http://www.embeddedlinux.org/index.p AllLinuxDevices http://alllinuxdevices.com/
ForFurtherInfo
WebSites/Magazines
Dr.DobbsEmbeddedSystems http://www.ddjembedded.com/about/ EmbeddedLinuxJournal http://embedded.linuxjournal.com/ EmbeddedSystemsProgramming http://www.embedded.com/mag.htm