Agenda for Training course Embedded Linux Internals
If you intend to bring a laptop to the training (which is possible) it
should have a GNU/Linux system running on it with at least the
following packages installed:
- gcc GNU C compiler
- NFS server
- xinetd and tftp server
- kermit (usually called ckermit as a package)
- ethereal the network analyzer
- ddd the graphical debugger
- git versioning system
- stgit stacked git
- expect script language
- flex and bison
Day 1:
Introduction, Environment Setup + Host Linux Setup
This is basically the installation of our ELDK (cross toolchain + NFS
root filesystem) but
every concept needed to fully understand this
will be presented, i. e.
- Basic shell concepts needed for ELDK usage
- Concept of UNIX daemons
- (TCP/IP knowledge to understand internet servers)
- The internet superserver
- NFS and its usage
- Detailed look at the Linux filesystem hierarchy
- Introduction to UNIX/Linux startup
Day 2:
Linux on the target
- Connecting to the target for the first time in U-Boot
- The power of U-Boot and its command line
- Configurations of U-Boot
- Compiling the Linux kernel
- Kernel make infrastructure
- Kernel config options
- Kernel command line
- Booting the target into Linux / ELDK rootfs for the first time
- Using our native tools in the ELDK
Day 3:
- Native debugging of simple application
- "Cross-debugging" of applications with gdbserver
- Using the BDI2000 as a "gdbserver" to debug U-Boot
- Using the BDI2000 as a "gdbserver" to debug the Linux kernel
- Overview of Linux architecture and source code structure at a very
detailed level
Day 4:
- Introduction to U-Boot Linux bootstrap and Linux startup
- Revisiting the UNIX file API to see what character drivers have to
be implemented. (open/close, read/write, lseek, ioctl, mmap)
- Taking a look at existing drivers to see how this works
- Discussing a character driver framework implementing all "kernel
hooks"
Day 5:
- Debugging a Linux character driver with the BDI2000
- How to start a new U-Boot port (most problems to solve here will
be needed for the Linux porting)
- Glue between U-Boot and Linux
- Linux parts to adapt when porting to new hardware