Embedded GNU/Linux System Architecture
YouTube? - Linus Torvalds on GNU/LinuxYouTube - The Origins of Linux - Linus
TorvaldsLinus? vs.
TanenbaumThe? Tanenbaum-Torvalds
DebateLinux? is obsoleteMore Linux is obsoleteMonolithic vs.
MicrokernelLinux? BlogKernel? portsLinux
KernelLink? kernel developmentkernel historyfigures of recect Linux Kernels *
Background Info
artueverything is a filepremature optimizationKISSrule of silencedata dominatessmall is beautifulWhen in doubt, use brute force.
architectureshellusers/groupsDetailed look at the Linux filesystem hierarchy devicesuser land-kernel interfacedaemonbootingquick look at /procpermissionshard and soft links three more permission bitsreal/effective uid/gidschedulerprocess/task/threadIPCsimpleshell redirectionshell out (blechen)tempfilesadvancedmessage passingpipesunnamednamedsignalsmessage queuesunnamednamesemaphoresunnamednamedshared memorya two step approachsocketsIPC techniques you should try to avoidHost Linux
SetupInstalling? the ELDKWorking with the ELDKDULGTftp Server
ConfigurationDULGSetup? of the NFS
ServerDULGSetup? of the DHCP
ServerDULGTerminal? Emulation
SetupDULGTest? the host setup
- Designing Unix Applications
- Unix Design Patterns
- Simple Unix Interface Design Patterns
- Advanced Unix Interface Design Patterns
- Unix Inter Process Communication - Simple Techniques
- Unix Inter Process Communication - Advanced Techniques
- IPC techniques to avoid
- Use case: board test software
- Domain specific languages (Minilanguages)
Debuggingintrowhat is a bug?types of bugs?strategysimple toolslsofstraceproc/proc/pid/proc/topadvanced toolslocal debuggingon hosthello worldcore dumpnull pointeron targettarget gdbtarget gdbtuiremote debuggingtarget gdbserverhostgdbdddJTAG/BDI as gdbserveru-bootbefore relocationafter relocationfind offset addressadd debug info to U-boot to confirm findingsDULG: GDB startup and utility filessimple debugging with bdi u-boot only with JTAG/BDImore infoApplication
DebuggingDULG?: Application debuggingDULG: Linux Kernel debuggingProfilingwhat is profiling?typestime profilingcoverage why?when?how?profiling vs. tracingtoolssystem timerstimegprofgcovoprofilemore infoDULG: Profiling techniquesOptimization Techniques
prerequisiteskernel-user spaceinterruptsreentrant codewhat is real-time?Real-time Linuxvanilla Linux vs. real-time Linuxreal-time performace/effort staircaseexplicit preemption pointsimplicit preemption pointreal-time preemption patchCan Linux handle real-time requirements?fully preemptive kernelhard real-time extensionsRTLinuxRTAIXenomaiXenomai vs. RTAIReal time with Adeos/Xenomai (Introduction)AdeosThe Xenomai real time frameworkXenomai
ArchitectureInterrupt? shield (better RTDM)SW stackskinsroadmap - future outlookXenomai 3transition to itRTDMXenomai/SoloCase study: Migrating from RTOS (VRTXsa) to Xenomai-LinuxTry it outwhich kernel/adeos patch?get adeos patchget kernelget xenomaipatch kernelbuild kernel + fdtcopy over to tftpadjust symbolic linksbuild xenomai user space supportinstall xenomai user space supportcyclictestload the cputelnetdmore info:Appnote
- EliMiscellanious
- Installing and using Embedded WEB Servers
- Tools, Scripts, Tipps and Tricks
- More information
- unsorted
- a.out! The early PDP-11 did not contain memory protection. One was expected to jell ‘A.OUT’ before trying new software...
- SW release
Administrationversion controlbug trackingwikicentral build environment per platformhost Linux distrotarget Linux distrotoolchainlibrariesheaderspackages rootfskernelbootloadertransition from windozeDevelopmentbuild scripts/makefilescodinguser spacekernel spacedebugginguser spacekernel spacecode reviewscoding standardhow to reproduce a release?build environmenthost Linux distro snapshottarget Linux distro snapshotcodeversion control *
errno
- target playground
- How to run Linux on the target (kilauea)?
- files needed
- kilauea.cfg [JTAG/BDI config file (tftp)]
- u-boot.bin [bootloader (JTAG/tftp)]
- what is u-boot?
- scripting
- get it
- build it
- flash it (JTAG/BDI)
- check it
- commands
- restore factory settings
- downloadable environment
- more info
U-Boot and
LinuxDULG? - U-Boot and
LinuxThe? powerful U-Boot command line interfaceDULG - U-Boot Command Line
InterfaceDULG? - Information
CommandsDULG? - Memory
CommandsDULG? - Flash Memory
CommandsDULG? - Execution Control
CommandsDULG? - Download
CommandsDULG? - Environment Variables
CommandsDULG? - Flattened Device Tree supportDULG - Special
CommandsDULG? - Storage devicesDULG - Miscellaneous
CommandsDULG? - U-Boot Environment
VariablesDULG? - U-Boot Scripting
CapabilitiesDULG? - U-Boot Standalone
ApplicationsDULG? - U-Boot Image
FormatsDULG? - U-Boot Advanced
FeaturesBuilding? U-BootDULG U-BootU-Boot Tips and Tricks: preboot, update, etc.U-Boot Design Principles * uImage [kernel (tftp)]
-
-
-
- what is uImage?
- which kernel to use?
- the one with ELDK
- latest DENX tested on kilauea
- latest stable mainline
- latest and greatest DENX
- something in between
- get kernel
- build the kernel
- more info
- rootfs [root file system (NFS here)]
- at the moment given by ELDK
- kilauea.dtb [flat device tee blob (tftp)]
- make kernel, device tree,... available
- copy them over to tftp
- adjust symbolic links
- run it on board
- serial
- telnet to JTAG/BDI
- DULG: Designing and buildling root file systems
compressed ramdisk imagerootfs on a ramdiskcreaterunMTDrootfs on JFFS2createcaveat: does it fit?increase partitionmtd memory mapmtdpartsflat device treerunrootfs on cramfscreatecaveat: mkcramfsrunrootfs on read only ext2comparison flash file systemsfurther infoDULG: Flash file systems Using Flash filesystems