Embedded GNU/Linux System Architecture
- Intro
- Linux Intro
- History of Unix
- Origin of Free Software
- History of Linux
- Minix was a mess
- UNIX wars
- GNU has failed to deliver a kernel (HURD)
- Internet
- OpenSource? (development methodology)
- Free software (social movement)
- GNU/Linux
- www.youtube.com/watch?v=Z8ugRM3-twc YouTube - Linus Torvalds on GNU/Linux?
- Alexa Traffic Rank for http://www.youtube.com/watch?v=WVTWCPoUt8w: 3www.youtube.com/watch?v=WVTWCPoUt8w YouTube - The Origins of Linux - Linus Torvalds?
- Linus vs. Tanenbaum
- The Tanenbaum-Torvalds Debate
- Linux is obsolete
- More Linux is obsolete
- Monolithic vs. Microkernel
- Linux Blog
- Kernel ports
- Linux Kernel
- Link kernel development
- kernel history
- figures of recect Linux Kernels
- Background Info
- Licensing Models
- Standards and Portability in the Unix world
- Working with Free Software
- Finding help
- communities
- mailing lists
- Unix Philosophy
- artu
- everything is a file
- premature optimization
- KISS
- rule of silence
- data dominates
- small is beautiful
- When in doubt, use brute force.
- Linux Intro
- host playground
- architecture
- shell
- users/groups
- Detailed look at the Linux filesystem hierarchy
- devices
- user land-kernel interface
- daemon
- booting
- quick look at /proc
- permissions
- hard and soft links
- three more permission bits
- real/effective uid/gid
- scheduler
- process/task/thread
- IPC
- simple
- shell redirection
- shell out (blechen)
- tempfiles
- advanced
- message passing
- pipes
- unnamed
- named
- signals
- message queues
- unnamed
- name
- semaphores
- unnamed
- named
- pipes
- shared memory
- a two step approach
- sockets
- message passing
- IPC techniques you should try to avoid
- simple
- Host Linux 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)
- Debugging & Profiling
- Debugging
- intro
- what is a bug?
- types of bugs?
- strategy
- simple tools
- lsof
- strace
- proc
- /proc/pid
- /proc/
- top
- advanced tools
- local debugging
- on host
- hello world
- core dump
- null pointer
- on target
- target gdb
- target gdbtui
- on host
- remote debugging
- target gdbserver
- host
- gdb
- ddd
- JTAG/BDI as gdbserver
- u-boot
- before relocation
- after relocation
- find offset address
- add debug info to U-boot to confirm findings
- DULG: GDB startup and utility files
- u-boot
- simple debugging with bdi u-boot only with JTAG/BDI
- local debugging
- more info
- intro
- Profiling
- what is profiling?
- types
- time profiling
- coverage
- why?
- when?
- how?
- profiling vs. tracing
- tools
- system timers
- time
- gprof
- gcov
- oprofile
- system timers
- more info
- Debugging
- Real-time
- prerequisites
- kernel-user space
- interrupts
- reentrant code
- what is real-time?
- Real-time Linux
- vanilla Linux vs. real-time Linux
- real-time performace/effort staircase
- explicit preemption points
- implicit preemption point
- real-time preemption patch
- Can Linux handle real-time requirements?
- fully preemptive kernel
- hard real-time extensions
- RTLinux
- RTAI
- Xenomai
- Xenomai vs. RTAI
- Real time with Adeos/Xenomai (Introduction)
- Adeos
- The Xenomai real time framework
- Xenomai Architecture
- Interrupt shield (better RTDM)
- SW stack
- skins
- roadmap - future outlook
- Xenomai 3
- transition to it
- RTDM
- Xenomai/Solo
- Xenomai 3
- Case study: Migrating from RTOS (VRTXsa) to Xenomai-Linux
- Try it out
- which kernel/adeos patch?
- get adeos patch
- get kernel
- get xenomai
- patch kernel
- build kernel + fdt
- copy over to tftp
- adjust symbolic links
- build xenomai user space support
- install xenomai user space support
- cyclictest
- load the cpu
- telnetd
- load the cpu
- more info:
- prerequisites
- 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
- Administration
- version control
- bug tracking
- wiki
- central build environment per platform
- host Linux distro
- target Linux distro
- toolchain
- libraries
- headers
- packages
- rootfs
- kernel
- bootloader
- toolchain
- transition from windoze
- Development
- build scripts/makefiles
- coding
- user space
- kernel space
- debugging
- user space
- kernel space
- code reviews
- coding standard
- how to reproduce a release?
- build environment
- host Linux distro snapshot
- target Linux distro snapshot
- code
- version control
- build environment
- Administration
- 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
- git intro
- build it
- flash it (JTAG/BDI)
- check it
- commands
- restore factory settings
- downloadable environment
- create
- download
- execute
- more info
- U-Boot and Linux
- DULG - U-Boot and Linux
- The powerful U-Boot command line interface
- DULG - U-Boot Command Line Interface
- DULG - Information Commands
- DULG - Memory Commands
- DULG - Flash Memory Commands
- DULG - Execution Control Commands
- DULG - Download Commands
- DULG - Environment Variables Commands
- DULG - Flattened Device Tree support
- DULG - Special Commands
- DULG - Storage devices
- DULG - Miscellaneous Commands
- DULG - U-Boot Environment Variables
- DULG - U-Boot Scripting Capabilities
- DULG - U-Boot Standalone Applications
- DULG - U-Boot Image Formats
- DULG - U-Boot Advanced Features
- Building U-Boot
- U-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
- show how for each
- build the kernel
- more info
- rootfs [root file system (NFS here)]
- at the moment given by ELDK
- kilauea.dtb [flat device tee blob (tftp)]
- what is flat device tree?
- build it
- 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 image
- rootfs on a ramdisk
- create
- run
- MTD
- rootfs on JFFS2
- create
- caveat: does it fit?
- increase partition
- mtd memory map
- mtdparts
- flat device tree
- increase partition
- run
- rootfs on cramfs
- create
- caveat: mkcramfs
- run
- create
- rootfs on read only ext2
- comparison flash file systems
- further info
