Raspberry Pi® User Guide
This edition first published 2016
© 2016 Eben Upton and Gareth Halfacree
Registered office
John Wiley & Sons Ltd., The Atrium, Southern Gate, Chichester, West Sussex, PO19 8SQ, United Kingdom
For details of our global editorial offices, for customer services and for information about how to apply for permission to reuse the copyright material in this book please see our website at www.wiley.com.
The right of the authors to be identified as the authors of this work has been asserted in accordance with the Copyright, Designs and Patents Act 1988.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, except as permitted by the UK Copyright, Designs and Patents Act 1988, without the prior permission of the publisher.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.
Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The publisher is not associated with any product or vendor mentioned in this book. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought.
Library of Congress Control Number: 2016946656
Trademarks: Wiley and the Wiley logo are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates in the United States and/or other countries, and may not be used without written permission. Raspberry Pi and the Raspberry Pi logo are registered trademarks of the Raspberry Pi Foundation. All other trademarks are the property of their respective owners. John Wiley & Sons, Ltd. is not associated with any product or vendor mentioned in the book.
Google Drive™ is a registered trademark of Google™.
A catalogue record for this book is available from the British Library.
ISBN 978-1-119-26436-1 (Pbk); ISBN 978-1-119-26438-5 (ePDF); ISBN 978-1-119-92437-8 (ePub)
Some of the people who helped bring this book to market include the following:
Editorial and Production
VP – Professional Technology Strategy
Barry Pruett
Associate Director–Book Content Management
Martin Tribe
Executive Commissioning Editor
Jody Lefevere
Project Editor
John Sleeva
Technical Editor
Andrew Scheller
Manager of Content Development and Assembly
Mary Beth Wakefield
Editorial Assistant
Matthew Lowe
Marketing
Marketing Manager
Lorna Mein
Associate Marketing Manager
Carrie Sherrill
EBEN UPTON is a founder and trustee of the Raspberry Pi Foundation, and serves as its Executive Director. He is responsible for the overall software and hardware architecture of the Raspberry Pi, and for the Foundation’s relationships with its key suppliers and customers. In an earlier life, he founded two successful mobile games and middleware companies, Ideaworks 3d Ltd. and Podfun Ltd., and held the post of Director of Studies for Computer Science at St John's College, Cambridge. He holds a BA, a PhD, and an MBA from the University of Cambridge.
In his day job, Eben works for Broadcom as an ASIC architect and general troublemaker.
GARETH HALFACREE is a freelance technology journalist and the co-author of the Raspberry Pi User Guide alongside project co-founder Eben Upton. Formerly a system administrator working in the education sector, Gareth's passion for open source projects has followed him from one career to another, and he can often be seen reviewing, documenting, or even contributing to projects including GNU/Linux, LibreOffice, Fritzing, and Arduino. He is also the creator of the Sleepduino and Burnduino open hardware projects, which extend the capabilities of the Arduino electronics prototyping system. A summary of his current work can be found at http://freelance.halfacree.co.uk.
ANDREW SCHELLER is a freelance software developer based in Cambridge in the UK. He has worked on many projects for a variety of clients, including updating the Raspberry Pi NOOBS software to run on the Raspberry Pi 2. Prior to going freelance, he served as a tools programmer for Sony Computer Entertainment, working on a number of titles, including MediEvil Resurrection for the PlayStation Portable and 24: The Game for the PlayStation 2. While there he developed a localisation system which has become adopted as the standard by all Sony game studios worldwide. He spends some of his free time working on open source software, and has been using Linux for more than 20 years. He enjoys walking, cycling, and climbing, and holds a BSc (Hons) in Computer Science from Durham University.
Introduction
“CHILDREN TODAY ARE digital natives”, said a man I got talking to at a fireworks party. “I don’t understand why you’re making this thing. My kids know more about setting up our PC than I do.”
I asked him if they could program, to which he replied: “Why would they want to? The computers do all the stuff they need for them already, don’t they? Isn’t that the point?”
As it happens, plenty of kids today aren’t digital natives. We have yet to meet any of these imagined wild digital children, swinging from ropes of twisted-pair cable and chanting war songs in nicely parsed Python. In the Raspberry Pi Foundation’s educational outreach work, we do meet a lot of kids whose entire interaction with technology is limited to closed platforms with graphical user interfaces (GUIs) that they use to play movies, do a spot of word-processed homework, and play games. They can browse the web, upload pictures and video, and even design web pages. (They’re often better at setting the satellite TV box than Mum or Dad, too.) It’s a useful toolset, but it’s shockingly incomplete, and in a country where 20 percent of households still don’t have a computer in the home, even this toolset is not available to all children.
Despite the most fervent wishes of my new acquaintance at the fireworks party, computers don’t program themselves. We need an industry full of skilled engineers to keep technology moving forward, and we need young people to be taking those jobs to fill the pipeline as older engineers retire and leave the industry. But there’s much more to teaching a skill like programmatic thinking than breeding a new generation of coders and hardware hackers. Being able to structure your creative thoughts and tasks in complex, non-linear ways is a learned talent, and one that has huge benefits for everyone who acquires it, from historians to designers, lawyers, and chemists.
Programming Is Fun!
It’s