More Linux for LessRobin Getz (firstname.lastname@example.org)
From cell phones, to digital TV recorders, to routers, to bar code scanners, Linux is becoming the operating system of choice in many embedded applications. While there are many differences between developing native Linux on a quad processor system with 16Gig of Memory and 250Gig of RAID storage developing a cross compiled Linux for a processor that costs less than price of a good sandwich, limited to 16Meg of SDRAM, and 4 Meg of Flash, there are a many things that are exactly the same.
This tutorial will teach the attendees what kind of Linux based networked systems are possible to deploy using low cost hardware, and open source software. Every person will be given a device upon the start of the class, and by the end, they will have created and debugged a few innovative different devices. This 4 hour session will be broken down into multiple 1 hr sections:
- Setting up your development host for cross compile environments (This requires you to have (a) have an x86 Laptop, with serial (or USB) and ethernet. (b) be able to install either rpm, deb or emerge packages (c) have common embedded applications pre-installed minicom, kermit, tftpserver, nfs server, ddd, eclipse, etc).
- Cross compiling a kernel/distribution for an embedded target. Using the tools installed in the first hour, we will build a kernel and all the user space required for an embedded target. (This requires you to be comfortable configuring your development system for cross builds. You should know how to build, install, and run, a standard kernel.org kernel).
- Developing embedded device drivers, using kgdb via ethernet, and Eclipse. Using the kernel we compiled in the 2nd hour, we will look at kernel internals, and poke the hardware showing that embedded driver development is pretty easy. (You should have Eclipse or DDD installed on your host, and be comfortable with the user interface).
- Embedded application development, using the system we have developed, we will look at two applications - Linphone (make free phone calls on free software), Networked Audio Player (play audio files on a smb or nfs share), Networked Oscilloscope (capture an analog signal -> gnuplot -> boa)
By the end of this tutorial, attendees will understand that many standard out of the box GNU/Linux applications can run on low cost hardware with little to no porting effort.