Introduction to the RaspberryPi
Duration: 3 Days
Course Background
The goals of this course are to get attendees up to speed with the basics of setting up and running applications on Linux systems. The course will cover not only Linux running on the Raspberry Pi, but, also regular Linux running either standalone or on VMWare running on a Window platform. In this way attendees will be introduced to Linux in general, and to Linux on the RaspberryPi in particular. Attendees will also learn how to set up and configure RaspberryPi's and connect up displays, mice and keyboards, as well as how to connect RaspberryPi's to computer networks.
At the Linux user level the course covers key topics essential to understanding Linux such as logging on, Linux file systems, TCP/IP networking, user accounts and security, the Linux boot process, terminals and serial ports, and basic shell programming.
Each attendee will be given a RaspberryPi to take with them after the course, and, much more importantly the knowledge and confidence to apply their new found skills not only to Linux running on a PC or a RasbperryPi, but to other Linux devices also.
This is a practical hands on course with the split between theory and practice being about 50% theory and 50% practice
Course Benefits
Getting started with Linux is a daunting task, and Linux on a small embedded system such as the RaspberryPi appears to be even more daunting. There are so many things to learn all at once. This includes such things as finding your way around linux, as well as understanding a whole host of commands and utilities. Worry not - the whole point of this course is to expose all these mysteries in a logical, structured and understandable way.
You'll learn fundamentals such as user accounts, Unix permissions and access control. You'll gain confidence in finding your way around Linux system installations using standard Linux commands.
You'll become familiar with the vi editor and be able to use it proficiently to create and modify files. You'll learn, the principles of how Linux boots, both on PCs (GRUB, LILO) and on embedded systems (U-Boot).
You'll get a good introduction to working with the standard Unix tools and utilities (including the BusyBox toolset on the RaspberryPi). You'll also learn how to set up and configure disk based, in memory, and flash file systems.
You'll gain the skills needed to configure ethernet and serial communications ports and TCP/IP networking. And you'll learn how to use package managers (both RPM and APT) to install software.
Course Prerequisites and Target Audience
Attendees should have some familiarity with using computers and possibly some basic programming experience, e.g. with JavaScript, or Visual Basic for Applications (VBA). You are not required to be Linux experts, or even to have much experience with Linux systems. A positive attitude to open source software is, however, very helpful, as well as an enthusiasm for exploring and playing around with new technoloties. The goals of this course are to get. The course will cover not only Linux running on the Raspberry Pi, but, also regular Linux running either standalone or on VMWare running on a Window platform.
Course Outline
- Starting up Linux on a PC and starting up Linux on a RaspberryPi
- Logging on to Linux
- Linux as a multi-user, multi-tasking operating system
- Accessing the command line (terminal and desktop)
- Accessing and using manual pages
- Introduction to command shells
- Understanding command syntax
- Executing commands at the command line
- Common command line tasks
- Piping and redirection
- Managing user accounts
- Performing RPM and APT package related operations
- Understanding the filesystem hierarchy standard (FHS)
- Changing directories and listing directory contents
- Creating, viewing and appending files
- Copying and moving files and directories
- Creating directories
- Deleting files and directories
- Finding files on linux
- Managing file permissions and ownership
- Viewing processes from the command line
- Understanding the runlevel concept
- Understanding the concepts underlying multiuser processes, multitasking and multi-threading
- Basic network configuration
- Overview of the network-related command-line tools
- Basic Linux user security features
- Managing Linux users and groups
- Managing and securing the linux user environment
- Securing files and directories with permissions
- An overview of the various types of Linux filesystems
- Overview of configuring linux filesystem partitions
- Overview of configuring and managing a linux file system
- Backing up and restoring a file system
- Working with Flash File Systems and SD/MMC cards
- Overview of bootloaders and the Linux boot process
- Overview of run levels and system settings
- Overview of startup shell scripts and services
- Network components and architecture
- Configuring a network connection
- Configuring and managing routes
- Testing a network interface
- Enabling network services
- Installing Linux as a standalone operating system on a PC
- Linux as a way of extending the usefulness of older PCs in the classroom
- Installing Linux on a RaspberrPi
- Configuring and testing your Linux installations
- Setting up a Web server - Apache on the PC, lighttpd on the RaspberrPi
- Let there be video and sound - Installing and configuring Audio and Video applications on the RaspberryPi