First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

RPI 101 Introduction to the RasbperryPi

Duration: 4 Days

Intended 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 technologies.

Course Overview

The goals of this course are to get attendees up to speed with the basics of setting up and running applications on Linux systems. Most of the subjects covered in this course will be applicable not only to Linux running on the Raspberry Pi, but, also regular Linux running either standalone or as a virtual machine running e.g. under VirtualBox on a Microsoft Window platform. 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. Currently the course is based on the RasbperryPi 3

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.

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 Contents

  • Introduction
    • 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
  • Working with the command line and the shell
    • 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
  • Managing directories and files
    • 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
  • Basic use of the vi text editor
  • Understanding and viewing processes
    • Viewing processes from the command line
    • Understanding the runlevel concept
    • Understanding the concepts underlying multiuser processes, multitasking and multi-threading
  • Managing the network configuration
    • Basic network configuration
    • Overview of the network-related command-line tools
  • Managing user access and security
    • Basic Linux user security features
    • Managing Linux users and groups
    • Managing and securing the linux user environment
    • Securing files and directories with permissions
  • Setting up a linux file system
    • 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
  • Understanding System initialisation
    • Overview of bootloaders and the Linux boot process
    • Overview of run levels and system settings
    • Overview of startup shell scripts and services
  • Connecting a system to the network
    • Network components and architecture
    • Configuring a network connection
    • Configuring and managing routes
    • Testing a network interface
    • Enabling network services
  • Installing and Configuring Linux
    • 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