Learn Raspberry Pi with Linux by Peter Membrey, David Hows Original English language edition published by Apress, Inc. Copyright c 2013 by Apress. Kor



Similar documents
iOS ÇÁ·Î±×·¡¹Ö 1205.PDF


학위논문홍승아.hwp

라즈베리파이 프로그래밍_130912(최종).indd

13Åë°è¹é¼Ł

untitled

<BEC6BFF4BCD2BDCCBAB8B0EDBCAD28C3D6C1BE E687770>

<BAD2B9FDBAB9C1A620BAB8B0EDBCAD5FC5EBC7D55F FB9DFB0A3BBE7C6F7C7D45F33C2F720B1B3C1A428B1D7B8B22020C3DFC3E2292E687770>

*BA_00

<BFDCB1B9C0CE20C5F5C0DAB1E2BEF7C0C720B3EBBBE7B0FCB0E82E687770>

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 중간착취의 금지 41 - 대판 , 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 , 2002도3883 [남녀고용평등법위

PDF

°æÁ¦Àü¸Á-µ¼º¸.PDF

<5BC6EDC1FD5DBEEEBEF7C0CCC1D6B3EBB5BFC0DAC0CEB1C7BBF3C8B2BDC7C5C2C1B6BBE7C3D6C1BEBAB8B0EDBCAD28BAB8C0CCBDBABEC6C0CC292E687770>

<3036C7E2BCF6C3D6C1BEBABB2E687770>

언리얼엔진4_내지_ indd

정책연구개발사업 2010-위탁 대학 등록금의 합리적 책정을 위한 실행방안 연구 연 구 책 임 자 공 동 연 구 자 송동섭(단국대학교) 이동규(충남대학교) 이창세(재능대학) 한창근(인하공업전문대학) 연 구 협 력 관 장미란(교육과학기술부) 교육과학기술부 이 연구는 201

유니 앞부속

고용허가제와 방문취업제 외국인의 취업 및 사회생활 사본

User's Guide

untitled


xviii EBS 수능강의 서비스를 활용하는 이유는 수능시험에 연계되기 때문이라는 응답 이 학생 61.7%, 학부모 73.2%로 가장 많았고, EBS 수능강의 서비스를 활용하 지 않는 이유는 학생의 경우 사교육 때문이라는 응답이 26.9%, 혼자 공부하는 것으로 충분하

사물인터넷비즈니스빅뱅_내지_11차_ indd

<5BB1E2BABB5D5FB0F8B0F8BACEB9AE5FBDC3B0A3C1A6B1D9B9ABBFCD5FC0B0BEC6C8DEC1F7BFA15FB5FBB8A55FB4EBC3BCC0CEB7C25FC8B0BFEBB0FAC0C75FBFACB0E8B9E6BEC85F2D5FB9AEB9CCB0E62E687770>


라즈베리파이_내지_ indd

2008 다문화가족의중장기전망및대책연구 : 다문화가족의장래인구추계및사회ㆍ경제적효과분석을중심으로 ㆍ ㆍ 2009

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su


<5B33B9F8B0FAC1A65D20B9E6BCDBBDC9C0C7BDC3BDBAC5DB20B0B3BCB1B9E6BEC8BFACB1B82DC3D6C3D6C1BE2E687770>

0

2016년이렇게달라집니다_ 전체 최종 1223.indd

KeyMission 360 KeyMission ( ).... 4K UHD., 60 cm... ii KeyMission 360

<28BCF6BDC D B0E6B1E2B5B520C1F6BFAABAB020BFA9BCBAC0CFC0DAB8AE20C1A4C3A520C3DFC1F8C0FCB7AB5FC3D6C1BE E E687770>

알아 둘 사항 아이오드 제조사는 본 기기에 하드디스크를 포함하여 출고하지 않습니다. 따라서 하드디스크에 문제가 발생할 경우, 구매처 또는 해당 하드디스크 서비 스센터에 문의 하시기 바랍니다. 정해진 용도 외의 사용으로 발생한 문제에 대해서, 당사는 어떠한 책임도 지지

2005 중소기업 컨설팅 산업 백서

INDUS-8.HWP

CONTENTS.HWP


GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

Clover 부트로더를 이용한 해킨토시 설치방법

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

AVG PC TuneUp User Manual

Nikon KeyMission 360. KeyMission 360 ( 1.5) SnapBridge 360/170 ( 1.1). SnapBridge 360/170., SnapBridge 360/170 OS.. KeyMission 360/ SnapBridge 360/170

제 출 문 중소기업청장 귀하 본 보고서를 중소기업 원부자재 구매패턴 조사를 통한 구매방식 개선 방안 연구 의 최종보고서로 제출합니다 한국산업기술대학교 산학협력단 단 장 최 정 훈 연구책임자 : 이재광 (한국산업기술대학교 부교수) 공동연구자 : 노성호

<C1A4C3A5BFACB1B D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770>


Sun Java System Messaging Server 63 64

99-18.hwp

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

< BACFC7D1B1B3C0B0C1A4C3A5B5BFC7E228B1E2BCFABAB8B0ED D D20C6EDC1FD2035B1B32E687770>

라즈베리파이를이용한사물인터넷_내지(1도)_최종_ indd


Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Solaris Express Developer Edition

연구요약 1. 서론 연구의 목적 본 연구는 청소년 교육정책의 바람직한 방향을 설정하고, 미래지향적인 정책과제와 전략, 그리고 비전을 도출하기 위해 수행되었다. 이를 위해 지 난 15년간의 청소년 교육 환경 및 정책의 변화를 분석하고, 향후 15년간 의 청소년 교육 환경

FreeBSD Handbook

Flute-GR_BV199_DOS.indb

CD-RW_Advanced.PDF

A 0 D5-a (XQD Card Type) D5-b (CF Card Type)

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

세계 비지니스 정보

97_00

영암군 관광종합개발계획 제6장 관광(단)지 개발계획 제7장 관광브랜드 강화사업 1. 월출산 기( 氣 )체험촌 조성사업 167 (바둑테마파크 기본 계획 변경) 2. 성기동 관광지 명소화 사업 마한문화공원 명소화 사업 기찬랜드 명소화 사업 240

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

2004 IRISPen 사용자 설명서-본문-용지크기 조정-폰트포함.PDF

Gentoo linux 설치기록

슬라이드 1

LCD Monitor

슬라이드 제목 없음

untitled

문서 대제목

스마트폰 저렴하게 구매하는곳

MySQL-Ch10

Copyright 0, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT RIGHTS Programs, software, databases, and related


P2WW HNZ0

DR-M140 사용 설명서

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

Assign an IP Address and Access the Video Stream - Installation Guide

´ë±â-ÃÑ°ýº¸°í¼Ł.PDF

LCD Monitor

대표이사등의확인서명( ) I. 회사의 개요 1. 회사의 개요 1. 연결대상 종속회사 개황(연결재무제표를 작성하는 주권상장법인이 사업보고서, 분기ㆍ 반기보고서를 제출하는 경우에 한함) (단위 : 백만원) 상호 설립일 주소 주요사업 직전사업연도말 자산총액 지배

목차 개요 3 섹션 1: 해결 과제 4 APT(지능형 지속 위협): 이전과 다른 위협 섹션 2: 기회 7 심층 방어 섹션 3: 이점 14 위험 감소 섹션 4: 결론 14 섹션 5: 참조 자료 15 섹션 6: 저자 소개 16 2

< B9AEC8ADBFB9BCFA20C6AEB7BBB5E520BAD0BCAE20B9D720C0FCB8C128B1E8C7FDC0CE292E687770>

A+H/W-CH16

<BBE7B8B3B4EBC7D0B0A8BBE7B9E9BCAD28C1F8C2A5C3D6C1BE E687770>

10X56_NWG_KOR.indd

ii 2008 Advanced Micro Devices Inc. 판권 본사 소유. 이 문서의 내용은 Advanced Micro Devices, Inc.( AMD ) 제품과 함께 제공됩니다. AMD 는 이 간행물 내용의 정확 성 또는 완전성에 대해 진술 및 보증을 하지

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

차례 사용하기 전에 준비 및 연결 간편 기능 채널 관련 영상 관련 음성 관련 시간 관련 화면잔상 방지를 위한 주의사항... 4 각 부분의 이름... 6 제품의 설치방법 TV를 켜려면 TV를 보려면 외부입력에 연결된 기기명을 설정하려면..

Mango220 Android How to compile and Transfer image to Target

직업편-1(16일)


휠세미나3 ver0.4

CONTENTS 목차 1. 전원 및 설치시 주의사항 2 2. 시스템 사용시 바른 자세 4 3. 시스템 구성품 확인 5 슬림형 케이스1 6 슬림형 케이스2 7 타워형 케이스1 8 타워형 케이스2 9 일체형 케이스1 10 망분리형 케이스 시스템 시작 및 종료


R50_51_kor_ch1

Boot Camp 설치 및 설정 설명서

Transcription:

R A S P B E R R Y P I L I N U X

Learn Raspberry Pi with Linux by Peter Membrey, David Hows Original English language edition published by Apress, Inc. Copyright c 2013 by Apress. Korean edition copyright c 2014 by J Pub. All rights reserved. 이 책의 한국어판 저작권은 대니홍 에이전시를 통한 저작권사와의 독점계약으로 제이펍에 있습니다. 신저작권법에 의하여 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단복제를 금합니다. R A S P B E R R Y P I L I N U X 초판 1쇄 발행 2014년 2월 28일 지은이 피터 멤브리, 데이비드 하우스 옮긴이 배장열 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406 2009 000087호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr / 이메일 jeipub@gmail.com 편집부 이민숙, 이 슬, 이주원 / 소통 기획팀 현지환 용지 에스에이치페이퍼 / 인쇄 한승인쇄사 / 제본 광우제책사 ISBN 978 89 94506 87 6 (93000) 값 25,000원 이 책은 저작권법에 따라 보호를 받는 저작물이므로 무단 전재와 무단 복제를 금지하며, 이 책 내용의 전부 또는 일부를 이용하려면 반드시 저작권자와 제이펍의 서면 동의를 받아야 합니다. 잘못된 책은 구입하신 서점에서 바꾸어 드립니다. jeipub@gmail com

R A S P B E R R Y P I L I N U X 속표지 2

이 책에 기재된 내용을 기반으로 한 운용 결과에 대해 저자, 역자, 소프트웨어 개발자 및 제공자, 제이펍 출판사는 일체 의 책임을 지지 않으므로 양해 바랍니다. 이 책에 등장하는 각 회사명, 제품명은 일반적으로 각 회사의 등록 상표 또는 상표입니다. 본문 중에는 TM,, 마크 등이 표시되어 있지 않습니다. 책에 관한 문의사항은 역자(justdoit709@gmail.com) 혹은 제이펍 출판사(jeipub@gmail.com)로 연락주시기 바랍니다.

나의 아내 새라(Sarah), 아들 케이딘(Kaydyn), 절친한 친구 재키 쿠(Jacqui Koo)와 마크 스티븐스(Mark Stephens)에게, 그들이 있어 나의 세상이 돌아간다. Peter Membrey 나의 가족, 피터(Peter)와 베브(Bev)에게, 그들의 아낌없는 지원에 감사한다. David Hows

차 례 옮긴이 머리말 지은이 소개 감수자 소개 감사의 글 XI XVI XVI XVI CHAPTER 1 들어가며 라즈베리 파이 한 조각 1 XVI 따끈따끈한 파이가 도착하다 2 재료 목록 4 USB 5 USB 5 HDMI 6 HDMI 7 SD 7 SD 8 USB 9 10 10 리눅스 11 11 14 SD 카드에 라즈비안 넣기 15 15 dd 19 첫 시동 24 파이 설정하기 26 27 28 31 32 33 34 36 정리 38 CHAPTER 2 경치 감상하기 39 LXDE, 첫 만남 40 42 42 44 시작 메뉴 45 Accessories 47 Education 55 Internet 58 Programming 60 System Tools 62 Preferences 63 정리 65 vi

CHAPTER 3 익숙해지기 67 고색창연한 컴퓨터 68 69 70 71 터미널의 세 가지 종류 74 74 GUI 75 SSH 76 커맨드라인의 세계로 84 다른 쉘 88 정리 89 CHAPTER 4 성공으로가는파일의경로 91 파일 정리 시스템이란? 92 94 94 95 96 96 모든 것은 파일로 통한다 97 파일시스템 배치도 100 100 root 100 etc 101 proc 101 var 101 boot 102 bin sbin 102 dev 102 home 103 lib 103 lost+found 103 mnt 104 media 104 usr 104 opt 104 srv 105 sys 105 tmp 105 105 실전으로 뛰어들기 106 pwd 106 ls 107 touch 108 mkdir 109 mv 110 cp 110 rm 112 114 사용자와 그룹 115 파일 권한 116 120 바로 가기와 링크 125 정리 127 차례 vii

CHAPTER 5 필수 명령 129 보스 되기 130 RTFM 133 시스템 리소스 모니터링 134 135 136 CPU 136 137 138 free 138 139 142 파일 명령 147 150 154 cron 158 정리 160 CHAPTER 6 커맨드라인에서 파일 편집하기 161 텍스트 파일이란? 162 경쟁자들 164 나노 시작하기 166 167 169 172 174 빔 시작하기 174 176 177 179 180 182 182 184 186 187 188 정리 190 CHAPTER 7 파이 관리하기 191 파이에 원격으로 액세스하기 192 192 DNS 193 SSH 193 BASH: 기본 코딩 언어 194 BASH 195 195 vs 197 198 200 200 if 201 202 206 208 211 viii

배시 활용: init 스크립트 212 case 214 fork 215 run 215 init 216 보안과 사용자 관리 219 219 220 정리 222 CHAPTER 8 세상에 하나뿐인램프 223 첫 발걸음 224 리눅스의 L 225 아파치의 A 225 228 233 MySQL의 M 233 MySQL 234 Structured Query Language 235 PHP의 P 249 간단한 웹 앱 253 HTML 253 256 258 260 263 264 DB 266 267 268 정리 269 CHAPTER 9 와이파이(WiPi): 무선 컴퓨팅 271 와이파이(WiPi) 준비하기 272 간단한 제약부터 풀기 273 273 GUI 274 와이파이(WiFi)로 구현하는 진정한 와이파이(WiPi) 279 GUI 284 287 290 전원의 필요성 없애기 291 유전원 USB 어댑터 292 정리 293 차례 ix

CHAPTER 10 라즈베리 스파이(sPi) 295 필요한 재료 296 CHAPTER 11 사전 준비 297 시작하기 297 dmesg 297 302 모션 캡처 302 308 경계경보 발령! 308 SSMTP 309 mutt 312 313 315 모두 합치기 316 316 317 318 1 322 2 323 325 327 이제 어디로? 328 정리 330 파이 미디어 센터 331 XBMC 비디오 332 334 sed 339 341 344 XBMC 시작하기 및 사용하기 345 XBMC 348 349 에어플레이(Airplay)로 음악 스트리밍하기 350 356 Airport 356 정리 357 찾아보기 358 x

옮 긴 이 머 리말 라즈베리 파이가 세상에 첫선을 보이고 많은 시간이 흘렀습니다. 그동안 관련 온라인 카 페도 이곳저곳 생겨나고 라즈베리 파이를 다루는 서적도 늘어나 라즈베리 파이에 관한 기 초적인 지식을 습득하기도 무척 편해졌습니다. 또한, 파이를 활용한 각양각색의 전자기기 프로젝트도 웹 사이트 등을 통해 어렵지 않게 접할 수 있게 되었습니다. 손바닥만한 리눅 스 컴퓨터인 라즈베리 파이가 우리, 그리고 우리의 아이들에게 전자공학, 컴퓨터 공학 등 을 학습할 수 있는 훌륭한 도구가 된다면 이것이 바로 진정한 IT 강국으로 가는 첩경이 아 닐까 생각합니다. 이런, 너무 거창한가요? 말씀드린 대로 라즈베리 파이는 손바닥만한 리눅스 컴퓨터입니다. 따라서 리눅스로 할 수 있는 일이라면 라즈베리 파이에서도 무리 없이 해낼 수 있겠죠. 여기에다 각종 전자 부품 을 연결하고 프로그래밍하여 세상에 둘도 없는 신기한 물건 을 만들 수도 있습니다. 꼭 세 상에 둘도 없는 신기한 물건이어야만 라즈베리 파이의 진가가 발휘되는 것은 아니겠죠? 흔 해 빠진 CCTV도 라즈베리 파이를 활용하여 이메일 알림 기능을 추가하면 새로운 장비로 거듭날 수 있습니다. 바로 이 책에서 다루고 있는 내용이기도 합니다. 그런데 한 가지 짚고 넘어가야 할 대목이 있습니다. 파이가 리눅스(데비안 리눅스인 라즈비안 리눅스)로 돌아가는 컴퓨터이다 보니 어느 정도 는 리눅스를 사용할 수 있어야 한다는 것입 니다. 특히 마이크로소프트의 윈도 운영체제만 사용해 본 사람이라면 파이에서 해야 하 는 기본적인 작업, 이를테면 파일 복사나 삭제, 디렉터리 관리 등이 낯설 것입니다. 윈도에 비해 추가로 알아야 하는 내용도 적지 않습니다. 파일의 권한을 알지 못하면 기껏 작성한 옮긴이 머리말 xi

소스 파일을 실행조차 할 수 없을지도 모릅니다. 물론 늘 작업하던 윈도에서 소스 파일을 편집하고, 이 파일을 파이에서 사용할 수도 있겠지만, 여간 번거로운 일이 아닐 것입니다. 파이를 위해 리눅스를 따로 배우기도 만만치 않고, 따로 배운다고 해도 파이와 직접적으 로는 관련이 적은 내용이 너무 많아 엄두가 나지 않는 것도 사실입니다. 또한, 따로 배우 는 시간과 노력도 무시할 수 없습니다. 이 책은 바로 이런 상황을 염두에 두었습니다. 데비 안 계열의 라즈비안 리눅스를 파이에 필요한 것만 배울 수 있다면 여러모로 효율적일 것이 라는 판단이 이 책의 출발점입니다. PC를 처음 다루는 사용자들을 위한 학습서를 펼쳐 보 면 대개 PC의 역사와 간략한 구조 등 주변 이야기부터 윈도 7이나 8에 대한 사용법, 자주 사용하는 유틸리티를 비롯한 기본적인 프로그램에 대한 소개 및 활용법, 그리고 PC를 관 리하는 방법 등이 실려 있습니다. 마찬가지로, 이 책에도 라즈베리 파이가 무엇이고 어떤 구조를 갖추고 있는지, 라즈비안 운영체제를 어떻게 사용하고 활용해야 하는지, 자주 사 용하는 프로그램은 무엇이 있고 어떻게 설치하여 활용할 수 있는지, 라즈베리 파이를 어 떻게 활용하고 어떻게 관리해야 하는지 등의 적잖은 이야기가 실려 있습니다. 라즈베리 파이를 통해 리눅스 사용자가 많아지고, 흥미로운 각종 전자기기 프로젝트를 공 유하며 더 나은 것으로 발전시킨다면, 우리의 IT 장래도 더욱 밝아질 것으로 생각합니다. 또 거창해졌죠? 어찌 됐든, 이 책에서는 라즈베리 파이를 속속들이 파헤치고, 들여다보며 분석하고 있습니다. 독자 여러분은 이 책을 통해서 파이에 관한 기본적인 지식을 쌓을 수 있습니다. 많은 사람이 사용하고 있는 에디터인 nano나 vim에 대해서도 자세히 알 수 있 고, 기본적인 리눅스 명령, 배시 쉘을 사용하는 쉘 스크립트 등을 익힐 수도 있습니다. 리 눅스로 구축하는 웹 서버인 LAMP에 대해서도 여러 경험을 할 수 있습니다. 그리고 이어 지는 세 가지 주제를 통해 라즈베리 파이의 강점을 고스란히 느낄 수 있습니다. 이제 여러분 손에 들려 있는 것은 더 이상 단순한 전자회로 보드가 아닙니다. 전기도 별로 먹지 않고, 비싸지도 않지만 고성능 데스크톱 PC에 뒤질 것 없는 온전한 PC입니다. 자, 이 PC로 무엇을 하고 싶으신가요? 늘 그렇듯, 편하게 읽을 수 있도록 많은 노력을 기울였습니다. 아무쪼록 이 책이 독자 여러 분께 많은 도움이 되기를 바랄 뿐입니다. 혹시라도 이 책에 대해서 궁금한 점이 있으시다 xii

면 역자 메일인 justdoit709@gmail.com으로 보내주시기 바랍니다. 최대한 빠른 시일 안에 성심성의껏 답변해 드리겠습니다. 이 책이 세상의 빛을 보기까지 많은 사람이 땀과 수고를 아끼지 않았습니다. 그분들을 대 표하여 제이펍 장성두 대표님께 진심으로 감사하다는 말씀을 드립니다. 마지막으로, 사랑 하는 아내와 딸 서정에게도 고맙다는 말을 전합니다. 사랑합니다. 옮긴이 옮긴이 머리말 xiii

지 은 이 소 개 Peter Membrey 공인 IT 전문가로서 15년간 리눅스와 오픈 소스 솔루션에 몸담았다. 17살부터 RHCE(Red Hat Certified Engineer, 레드햇 공인 엔지니어)로서 활동하고 있는 피터는 레드햇에서 일하는 영광을 누리기도 했다. 또한, 오픈 소스 솔루션 관련 책도 몇 권 집필했다. 그는 리버풀 대 학에서 IT 관련 석사 학위(정보 보안)를 취득했고, 현재 홍콩 폴리테크닉 대학에서 박사 학 위를 준비하고 있다. 그의 연구 분야는 클라우드 컴퓨팅, 빅 데이터 과학, 보안 등이다. 현 재 피터 멤브리는 홍콩에서 멋진 아내 새라와 아들 케이딘과 함께 살고 있다. 다만, 그의 광둥어 실력은 나날이 퇴보하고 있다. David Hows 호주 뉴사우스웨일즈 소재 울런공(Woolongong) 대학을 우수한 성적으로 졸업했다. 데이비 드가 처음으로 컴퓨팅에 몸담게 된 것은 큰돈을 들이지 않고도 집에 있던 컴퓨터의 성능 을 높이고자 갖은 노력을 기울였던 때로 거슬러 올라간다. 그의 IT 경력은 그렇게 시작되 어 시스템 관리자, 성능 엔지니어, 소프트웨어 개발자, 솔루션 아키텍트, 데이터베이스 엔 지니어 등을 두루 거쳤다. 데이비드는 여러 해째 축구에 갖은 노력을 기울였지만 허사였 다. 그의 커피잔에는 Grumble Bum(투덜이) 라는 문구가 선명하다. xiv

감 수 자 소 개 Stewart Watkiss 영국 헐(Hull) 대학에서 전자공학 석사 학위를 취득했다. 그는 1990년대 말 집에 있던 컴 퓨터에 플로피 디스크를 가지고 처음으로 리눅스를 설치하던 시절부터 지금까지 변함없 는 리눅스 팬이다. 그는 리눅스 시스템 관리자로 일하면서 2006년 LPIC(Advanced Linux Certification) 2를 통과했고, 사람들의 리눅스 자격증 취득을 돕고자 PenguinTutor라는 웹 사이트를 만들었다(http://www.penguintutor.com). 라즈베리 파이가 출시되자마자 주문한 뒤 파이를 프록시 서버, 미디어 센터 등으로 활용 하며 취미용 전자 부품 프로젝트를 진행하고 있다. 이후 파이를 세 개나 더 주문하고는 자 신이 직접 두 아이에게 컴퓨터를 가르치고 있다. 감수자 소개 xv

감 사의글 의심의 여지없이 이 책의 진정한 주인공은 라즈베리 파이 재단과 라즈베리 파이 커뮤니티 다. 그들이 없었다면 우리도 이 자리에 없었을 것이기 때문이다. 우리에게 파이를 제공해 준 라즈베리 파이 재단은 비영리 자선단체로서 뜨거웠던 저 80년대의 개발 열기를 다시금 활성화하고, 어린 학생들에게 멋진 컴퓨팅 세계에 발을 들여놓도록 저렴한 플랫폼을 제공 하려는 목적을 이루어 나가고 있다. 라즈베리 파이 재단은 디지털 격차의 해소를 위해 많 은 일을 하고 있으며, 일반인들에게 컴퓨팅의 맛을 선사하고 있다. 응당 우리에게 감사받 을 만하다. 라즈베리 파이 재단이 심장이라면 라즈베리 파이 커뮤니티는 영혼이다. 파이 커뮤니티는 사람들에게 기술적 숙련도가 부족하더라도 어렵지 않게 파이를 시작할 수 있도록 필요한 도구와 지원을 아끼지 않았다. 이들은 무수히 많은 시간(과 돈)을 투자하며 파이와 관련 된 각종 도구를 만들고, 문제를 해결하고, 포팅하고, 해킹하고, 테스트했다. 주저하지 말고 http://www.raspberrypi.org/에 찾아가 우리의 말을 되새겨보기 바란다. xvi

들 어가며 얼핏 들으면 일요일 오후마다 할머니께서 구워주시는 파이인가 하는 생각도 들게 하는 라 즈베리 파이는 사실 컴퓨터다. 이미 많은 것을 알고 있을지도 모르지만(솔직히 이름과 로고 만 보면 선뜻 와 닿지도 않는다.) 라즈베리 파이는 컴퓨터보다 더욱 많은 일을 할 수 있다. 정 말 많다. 1982년에는 명작이라 할 수 있는 코모도어 64가 출시되었는데, 판매량이 1,700만 대에 육 박했을 정도로 베스트셀러였다. (개인적인 시각에서) 그보다 더욱 중요한 것은 코모도어 64(이하 C64)가 나의 첫 컴퓨터였다는 사실이다. 내 생일은 크리스마스 며칠 뒤인데, C64가 출시된 지 10년이 다 되던 해에, 그러니까 내 아홉 번째 생일이 얼마 남지 않은 크리스마스 에 새로운 모델인 C64C를 선물로 받았다. C64C는 기존 모델과 코스메틱만 다른 모델이었 다. 나는 모든 것이 설정된 상태로, 더구나 멋진 14인치 TV까지(리모컨도 함께 들어 있었다!) 연결된 채로 C64C를 받았다. 아마도 추측건대, 아버지가 한 가지 꾀를 내신 것 같았다. 내가 자는 동안 C64C의 설정을 모두 마무리해 놓으면, 크리스마스 아침이 되었을 때 내가 C64C를 이리저리 만지고 노느라 당신은 단 몇 분이라도 단잠을 더 즐길 수 있을 거라 생 각하셨던 것이다. 하지만 아쉽게도 상황은 계획대로 흘러가지 않았다. 모든 것이 설정되고 C64C의 신호를 받을 수 있게끔 TV도 맞춰졌지만, 정작 중요한 한 가지가 빠졌다. 게임을 어떻게 로드하는 지 아무도 내게 알려주지 않은 것이었다. 아버지는 당연히 늦잠을 잘 수 없었다. 들어가며 xvii

당시에는 CD라는 것이 존재하기 전이라(CD를 구경한지도 오래된 것 같다) 게임은 카세트 테이프에 담겨 제공되었는데, C64에서 플레이하려면 특별한 테이프리코더인 데이터세트 (datasette)에 넣어야 했다. 그런데 이 데이터세트는 내 컴퓨터에 연결된 시간보다 매장에 비 치된 시간이 훨씬 길 만큼 만져본 일이 별로 없어서, 무엇이든 컴퓨터에 로드하려면 할 수 없이 설명서를 끝없이 탐독하고 또 탐독해야 했다. 하지만 이것이 오히려 극적인 결과를 낳았다. 구닥다리 베이직(BASIC, Beginners All purpose Symbolic Instructiuon Code)으로 프로그 래밍하는 법을 배운 것이다(아직도 이 이름을 기억하고 있다니 믿어지는가?). 지금 이 이야기에 눈을 뗄 수 없겠지만, 내가 왜 이토록 장황하게 끌고 가는지 한번 생각 해 보기 바란다. 앞의 사건들은 20년도 더 전에 일어난 일들이다. 지금 와서 그 사건들이 어떤 상관관계가 있을까? 처음의 그 기계를 이리저리 만지다 두 번째로 아미가(아직도 나에 게는 최고의 기계다)를 손에 쥐게 되었는데, 컴퓨터가 할 수 있는 일이 무엇인지 진정으로 이 해한 때가 바로 그 무렵이었다. 아미가는 그 당시 PC에 비해서도 전력 소비가 형편없었지 만, 더 뛰어난 그래픽과 사운드를 무기 삼아 PC를 압도했다. 아미가의 하드웨어가 매우 정 교하게 디자인되었기에 가능한 일이었다. 열혈 아미가 사용자들은 최고로 리소스가 넘치 는 사람들이었다. 리얼타임 클록 포트를 고속 저장 장치용 커넥터에 연결한다는 것을 누 가 상상이나 할 수 있었을까? 그 모든 것은 사람들이 부품 하나하나가 어떻게 구성되었는지 꿰고 있었기 때문에 가능한 일이었다. 각 부품이 어떻게 동작하는지 사람들이 정확하게 알고 있었기에 최대한 이용할 수 있었던 것이다. 요즘 내가 진행하고 있는 업무는 빠른 것을 더 빠르게 하는 것이다. 일 말이라도 성공에 대한 희망을 가지려면 모든 것의 동작 방식을 알아야 한다. 많은 회사가 일을 추진하기 위해 나와 같은 사람을 필요로 하지만 곧 어떤 문제에 봉착하게 된다. 그것 은 바로 컴퓨터를 정말로 속속들이 알고 있는 사람을 점점 더 찾기 어려워진다는 점이다. 우리 같은 사람은 멸종 위기종에 속한다. 라즈베리 파이 재단이 필사적으로 되돌리고자 하는 것이 바로 그런 상황이다. 그래서 어떻게 됐을까? 상황이 바뀌었다. 컴퓨터는 한쪽 구석을 차지한 호기심 덩어리에 서 모든 사람의 삶의 기본 요소로 자리 잡았다. 컴퓨터는 그냥 당연히 동작하고 사람들은 xviii

사용 방법만 알면 되는 수준까지 진화했다. 마치 자동차와 흡사하다. 사람들은 자동차가 어떻게 동작하는지 어느 정도는 알고 있지만, 크게 관심을 보이는 경우는 흔치 않다. 자동 차는 사람들을 이곳에서 저곳으로 이동시켜 주고 그 기능이 관심의 대상이 되기도 하지 만 자동차가 어떤 과정을 거쳐 그렇게 하는지까지는 관심의 대상이 아니다. 사람들은 컴 퓨터 또한 같은 차원으로 바라본다. 사람들은 컴퓨터를 켜고 소프트웨어를 설치하는 방 법에 관해 대충은 알고 있지만, 실제로 저수준에서 어떻게 동작하는지는 흥미롭게 바라보 지도, 어떤 연관성을 생각하지도 않는다. 그 결과 컴퓨팅 자체에 흥미를 보이는 사람들이 더욱 줄어들고, 아이콘을 더블 클릭하는 것 말고도 다른 것이 있다고 생각하는 사람들도 더욱 줄어들고 있다. 이런 문제는 학교와 대학에까지 퍼졌다. 프로그래밍을 가르치는 일은 비교적 힘들다. 프로 그래밍을 가르치려면 사람들에게 선뜻 이해하기 어려운 사고방식을 요구해야 하기 때문이 다. 지금까지 대학은 컴퓨터 과학 과정을 개설할 때 논리 게이트, 메모리 동작 과정, CPU 프로그래밍 방법 등부터 가르쳤다. 이런 기초 지식을 발판으로 삼아 C를 가르치는 것이 전 통적인 순서였다. 고급 언어인 C는 실행 환경이 되는 하드웨어를 직접 다룰 수 있다는 장점 이 있기 때문이었다. 하드웨어를 이해하면 C를 대하기가 훨씬 더 수월해진다. 하지만 수강 인원이 늘어나면서 가르칠 시간은 더욱 제한을 받게 되었고, 컴퓨팅 기초 지 식이 부족한 상태에서 수업에 참여하는 학생들이 많아지자 대학의 교수 체계에 변화가 불 가피해졌다. 직접적인 저수준 하드웨어 강의 과정은 전격적으로 배제한 채, 자바 또는 기 타 스크립트 언어만을 가르치기 시작했다. 이들 언어는 전부 성가신 일 을 자동으로 처리 해 주기 때문에 배우는 사람 입장에서는 이런 저수준 동작이 처음부터 존재하지도 않았 던 것처럼 관심 밖으로 밀어낼 수 있었다(그 결과 어떤 문제가 일어날 수도 있지만 개의치 않았 다. 무한 메모리의 허상 참고). 이를 생산성 관점에서 본다면 그저 환상적이라 할 수도 있지만, 수준이 한 단계 높아지면 (데이터를 처리해야 하거나 느려 터진 스크립트를 손봐야 할 때) 갈피를 잡지 못하고 우왕좌왕하 게 되었다. 더욱 심한 경우에는 다른 사람이 성능 개선에 필요한 기법을 말해줘도 어느 곳 을 말하는지 모르기도 했다. 들어가며 xix

물론 모든 대학이 같은 과정을 경험한 것은 아니다. 나는 홍콩 폴리텍 대학에서 공부하 고 있는데, 이곳의 컴퓨터 아키텍처 과정은 매우 치밀하고, 다양한 분야를 아우른다. 좋 은 성적을 받고 싶다면 CPU 시뮬레이터 프로그램에 사용할 CPU 캐시를 구현할 수 있어 야 한다. 이 과정을 선택한 학생들이 배워야 할 내용이 상당하다는 것은 말할 필요도 없 을 것이다. 하지만 실제로 우리가 해야 하는 것은 이보다 더 많다. 대학원 공부를 시작할 때 관심을 끌어내는 것은 너무 늦다. 나는 초등학교 마지막 학년이었을 때 일곱 살짜리 아 이들에게 BBC 베이직으로 프로그래밍하는 방법을 가르친 적이 있었는데(수료한 아이들은 학교로부터 수료증을 받기까지 했다), 그때 아이들의 반응이 무척 좋았다. 컴퓨팅은 여러분의 마음속에 가상 세계를 만들어 주고(아이들은 앙증맞은 텍스트 기반 어드벤처 게임을 즐거운 마 음으로 만들었다) 절대 권력을 여러분의 손안에 쥐어 주었다. 아이들은 마법을 만들고, 새로 운 도로를 내고, 비밀 출입구를 만드는 등 마음껏 창의력을 발휘했다. 물론 아이들 혼자 서는 할 수 없는 일들이다(겨우 일곱 살일 뿐). 하지만 새롭고 멋진 것을 만들어낼 희망이 아 이들에게 있었다. 50MB 5 000MB xx

그 희망이 바로 에벤 업튼(Eben Upton)과 라즈베리 파이 재단이 세상에 돌려주려고 하는 것이다. 그들은 그 잊혀진 예술에 다시 불을 붙여 이제 다시 컴퓨터를 멋지고 흥미로운 것 으로 만들고자 한다. 그런 목적으로 그들은 컴퓨터를 만들었다. 오늘의 기준으로도 전혀 밀리지 않는 컴퓨터를 만들어낸 것이다. 그렇다면 노트북만큼 강력한가? 글쎄다. 아마 그 렇지는 않을 것이다. 하지만 주머니에 찔러 넣을 수 있고(별로 좋은 생각은 아니지만), 발열도 많지 않으면서 전기 또한 별로 먹지 않는 노트북을 단돈 35달러에 살 수 있는가? 이 질문 에 그렇다 라고 대답한다면 나는 정말로, 진짜 정말로 그런 노트북이 어디에 있는지 묻고 싶다. 왜냐면 지금 당장 사러 가야 하니까! 그런 컴퓨터를 한번 봐야겠다고 마음먹어도 핵심은 여전히 가격이다. 라즈베리 파이는 누 구든지 깊게 고민하지 않아도 기꺼이 선택할 수 있는 컴퓨터다. 당장 일을 시작할 수 있는 보급형 노트북은 대략 500달러 정도이고, 맥북 프로는 거의 네 배가 더 드는데 아무 생각 없이 지를 수는 없다. 특히 취미 삼아 이것저것 테스트하는 용도로는 더더욱 그럴 수 없 다. 하지만 35달러라면, 동영상 스트리밍 사이트의 월간 정액권보다도 저렴한 파이라면 문 제는 달라질 수 있다. 매달 새 파이를 장만할 수 있다는 뜻이니 말이다! 어느 면에서 보더라도 결국 가격으로 귀결된다. 라즈베리 파이를 어떤 식으로 정의하든, 매장에 놓인 라즈베리 파이가 어떤 약속을 하더라도 결국 흥미를 끄는 요소는 가격이다. 파이를 사려고 달려가는 사람은 크게 두 부류다. 첫 번째는 이미 리눅스를 많이 알고 있는 들어가며 xxi

사람들이다. 이들에게 파이는 주머니 속 서버를 의미한다. 그것도 저렴한 가격으로 구입이 가능한 서버 말이다. 그들에게는 덩치만 크고, 공간만 차지하는 데스크톱 PC, 전기만 하염 없이 먹어치우면서 한쪽 구석에 놓인 히터만큼이나 열을 내는 데스크톱 PC가 더 이상 필 요치 않다. 잠깐! 물론 전력 소모가 낮은 멋진 시스템이 포장도 화려하게 두르고 사람들을 유혹한다면 기꺼이 살 수도 있다. 하지만 그런 시스템은 가격이 저렴하지 않다. 운영 비용 은 낮아도 판매 가격 자체는 전혀 그렇지 않다는 것이다. 반면, 파이 같은 장치는 운영 비 용, 구매 비용 모두 저렴하다. 꽤 신뢰할 만한 서버를 구축하는 데도 전혀 모자라지 않다. 자신이 첫 번째 무리에 속하지 않는다면 어떻게 해야 할까? 걱정부터 앞세워야 할까? 절 대로 아니다. 그 이유는 바로 이 책이 두 번째 사람들을 위한 것이기 때문이다. 35달러짜 리 작고 멋진 컴퓨터가 마음에 들고 이 컴퓨터로 무언가 끝내주는 일을 하고 싶은데 방법 을 모르는 사람들을 위한 책이라는 뜻이다. 우리가 바라보는 파이의 가장 큰 장점은 재미 를 위해, 테스트를 위해 부담 없이 구매할 정도의 가격이라는 점이다. 가족들이 사용하는 PC를 바꾸지 않아도 되고, 몇 달씩 할부로 장만하지 않아도 된다. 아무런 죄책감 없이 이 런저런 별 이상한 방법으로도 파이를 주무를 수 있다. 주로 사용하는 컴퓨터라 망가지면 어떡하나(가족들이 불같이 화를 낼지도 모른다), 손상된 부품을 고치느라 쓸데없는 돈을 쓰지 는 않을까 걱정할 이유도 없다. 파이는 일반적인 PC에 충분히 근접했기 때문에(아키텍처는 다소 다르다) 파이에서도 PC에서 하던 일 대부분을 그대로 할 수 있다. 사실, 이 책에서 가장 먼저 소개한 것도 그런 내용 이다. 따라서 아무것도 없는 맨바닥에서 시작해야 한다는 것은 아니다. 이미 알고 있는 지 식을 파이에 적용하기만 하면 되니 모든 일이 쉽게 풀릴 것이다. 당연히 첫 번째 사람들이 할 수 있는 일들을 두 번째 사람들도 얼마든지 할 수 있다. 두려워하지 말지어다. 우리가 있다. 이 책을 한 번 다 읽으면 그 모든 일을, 그리고 더 많은 일을 해낼 수 있을 것이다! 지금 당장 파이를 사러 달려갈 이유는 한두 가지가 아니다. 실제로 책을 쓰고 있는 지금 도 주문에서 배송까지 3주가 걸리고, 파이가 처음 출시되었을 때 리셀러들은 하루 만에 100,000건의 선주문을 받을 정도였다. 파이를 손에 쥐기까지 소요되는 시간은 지금도 달 라지고 있지만 말 그대로 빠르면 빠를수록 좋지 않겠는가? xxii

그렇다면 라즈베리 파이는 왜 이렇게 관심을 끌고 있을까? 하나의 종교처럼 추종자도 많 고 몇 달씩 기다려야 하는데도 무엇 때문에 라즈베리 파이가 인기를 끄는 것일까? 25 OK. 불타는 금요일을 보내는 것보다 훨씬 저렴한 비용이 든다는 점을 파이의 유일한 인기 비결로 생각하는 사람, 거수! 여기저기 보인다. 라즈베리 파이 재단의 목적은 칭찬할 만하 지만, 이 강력한 기계를 우리의 손에 들려주기 위해 그들이 집중하고 있는 것은 바로 통장 잔고를 바닥나지 않게 하는 가격이다. 정말로 모든 사람이 군침을 흘리도록 만드는 것은 무료로 생각해도 될 만한 컴퓨터 하드 웨어가 아니다. 그보다는 리눅스를 운영할 수 있는 온전한 컴퓨터라는 점이다. 이는 서버 를 의미하고, 홈 오토메이션과 비디오 스트리밍을 의미하며, 상상할 수 있는 그 무엇도 가 능하게 한다는 것을 의미한다. 25 35 25 35 A B BBC B 10 100 USB B USB USB USB B 10 들어가며 xxiii

파이가 마음에 든다면 하나 더 장만하는 것도 좋다. 그렇지 않을까? 50달러면 비용이 두 배로 들지만 재미도 두 배로 늘어난다. 파이 두 대가 서로 소통하게끔 네트워크를 구성할 수도 있으니, 한번 고려해 볼 만하지 않은가? 나는 컴퓨터에 어떤 문제가 생겨 잠시라도 사용할 수 없는 상황이 벌어지면 마음이 불편 해진다. 무언가 시도하다 실수로라도 하드디스크를 날리고 싶지도 않다(예전에 그랬던 적이 있었다). 여러분도 새로 산 최신 컴퓨터를 오버클로킹하지 말라는 이야기를 많이 들었을 것 이다. 컴퓨터를 켠 지 한 시간도 채 안 돼 크게 망가진다면 그리 좋은 경험은 아닐 것이다. 하드웨어는 쉽게 망가지지 않는다(CPU의 핀에 테이프를 두른다거나 CPU 속도 제한 락을 제거 한다든가). 반면, 가족 앨범을 삭제한다거나, 6개월째 끙끙대며 매달렸던 프로젝트 파일을 날려 버리는 일은 쉽게 일어날 수 있다(우리가 각 장이 끝날 때마다 백업을 괜히 하는 것이 아니 다). 하지만 파이에 핵공격을 퍼부어도 사라지는 것은 25달러뿐이다. 메인 PC를 망가뜨리 면 벌어질 수 있는 일들보다 훨씬 안전하다. 혹자는 지금 내가 언급한 공포의 순간들을 메인 PC가 아니라 VM에서 작업한다면 얼마 든지 피할 수 있다고 (꽤 정확하게) 지적한다. 진짜 하드웨어를 사용할 때만큼 재미가 없다 (진짜 하드웨어는 냄새부터 다르다)는 주장은 차치하고서라도 VM은 부품 하나하나를 만지작 대는 장점을 제공하지는 못한다. 우선, 가상 머신은 메인 컴퓨터가 실행 중일 때만 켜진 다. 노트북을 들고 여기저기 다닌다면 가상 머신은 가정용 웹 서버의 훌륭한 대안이 될 수 없다. 또한, 혹시라도 메인 컴퓨터를 재시동하기라도 한다면 가상 머신은 그와 함께 역사 속으로 사라진다. TV로 영화를 스트리밍하고 있었다면, 가족들의 따가운 눈총을 받게 될 지도 모른다. 진짜 하드웨어를 가지고 있다면, 얼마든지 안전하게 독립적으로 각종 실험에 집중할 수 있다. xxiv

파이의 전력 소모는 가히 경이롭다. 사실, 파이 모델 A는 300mA의 전기만 먹을 뿐이다. 다 시 말해, 파이를 USB 포트에 연결해도 된다는 뜻이다. 애플에 따르면 내가 사용하고 있는 아이맥은 아이들(idle)에서 94W, CPU가 최대로 동작할 때 241W를 소모한다고 한다. 파이 모델 A는 기껏해야 1.4W만 소비한다. 모델 B는 3.5W다. 전기를 엄청나게 절약하는 셈이다. 당연히 이 수치는 파이 자체가 소모하는 전력이고, 함께 사용하는 USB 장치를 제외한 값 이다. 이런저런 전기 먹는 하마를 파이에 연결한다면 전력 소비도 그만큼 늘어날 것이다. ARM CPU TV 700MHz 700MHz PC 10 700MHz 라즈베리 파이의 모든 장점을 확인하고 나면, 왜 35달러짜리 컴퓨터를 그보다 수십 배는 더 비싼 컴퓨터에도 견줄 수 있는지 궁금하기도 하고, 어디서 그런 가격 차이가 나는지도 들어가며 xxv

궁금할 것이다. 메인 컴퓨터로 하던 일 대부분을 할 수 있는 기계가 그토록 저렴하다면 다 른 기계의 가격에 분명 문제가 있다. 결과적으로는 강력한 노트북을 훨씬 더 저렴하게 만 들 수 있다면, 이윤의 폭은 줄어도 판매량이 크게 늘어 더 많은 돈을 벌 수 있을 것이다. 어느 정도는 맞는 말이지만, 파이가 아무리 강력하다고 해도 메인 컴퓨터를 대체할 수 없 다. 파이를 제한하는 것은 특별한 한 가지가 아니라 기능과 가격을 저울질한 일련의 디자인 결정이다. 이 때문에 파이는 최고가 되기에 다소 부족하다. 그렇다고 해도 파이는 여전히 환상적인 플랫폼이다. 이제 파이를 빛나게 하는 구성 요소 하나하나를 살펴보기로 하자. ARM CPU 파이가 여느 데스크톱 PC와 가장 눈에 띄게 다른 점은 바로 CPU다. 인텔이나 AMD 프로 세서를 장착한 데스크톱 PC와 달리 파이에는 ARM 기반 CPU가 장착되었다. CPU(Central Processing Unit)는 실제로 프로그램을 실행하는 구성 요소다. CPU가 프로그램을 실행하기 위해서는 프로그램이 CPU가 이해할 수 있는 언어로 번역되는 것이 먼저다. 모든 CPU는 프로그램을 실행하지만 자신이 이해하는 언어가 따로 있다. ARM CPU는 인텔이나 AMD 용으로 작성된 명령을 이해하지 못한다. 우리가 쉽게 구할 수 있는 소프트웨어 대부분(마 이크로소프트 윈도나 각종 게임)은 인텔이나 AMD용으로 작성된 것이다. 따라서 이들은 라 즈베리 파이에서 실행되지 않는다. 물론 파이에서 윈도 XP를 사용하지는 않을 것이다. 다만, ARM CPU가 어떤 장점을 제공 하는지 그것이 알고 싶을 뿐이다. 첫 번째는 ARM CPU가 전력을 적게 소비한다는 점이 다. 사실 ARM은 전력 사용량과 발열 문제가 매우 중요한 임베디드 하드웨어 업계에서 생 겨났다는 사실을 생각하면 그다지 놀랍지 않은 장점이다. 실제로 ARM은 몇 가지 형태로 현재 우리가 사용하고 있는 거의 모든 스마트폰에서 찾아볼 수 있다. 아이폰4s, 삼성 갤럭 시 S3도 예외는 아니다. ARM CPU는 전 세계에서 가장 널리 사용되는 프로세서라고 할 수 있으며 DVD 플레이어나 각종 가전제품, 심지어 자동차에도 사용된다. 그리고 ARM CPU는 발열량이 매우 적다. 파이의 CPU에는 히트싱크도 없다는 게 보이는 xxvi

가? 인텔이나 AMD CPU에는 틀림없이 거대한 쿨링팬이 쉴 새 없이 돌아가고 있을 것이 다. 그러지 않으면 CPU가 타버릴 수도 있기 때문이다. 발열이 너무나 걱정되는 나머지 수 랭식 쿨링 시스템을 갖추고 CPU의 온도를 관리하는 사람도 있다. 마지막 장점은 가격 대비 성능이다. 병목현상의 원인은 대개 CPU의 데이터 처리 능력이 아니라 CPU로의 데이터 입력 속도다. CPU는 하드디스크보다 월등히 빠르다. 과거에도 그 랬고 지금도 그렇다. 그리고 최신식 CPU가 아니더라도 컴퓨터의 각 구성 요소를 연결하 는 버스보다 빠르다. 그렇다면 이런 사실로 알 수 있는 것은 과연 무엇일까? 가격적인 부 담 없이 어떤 일을 하는 데는 저가형 CPU로도 충분하다는 사실일 것이다. ARM 8 2012 8 ARM ARM 8 ARM ARM AMD PC ARM PC ARM ARM ARM 8 512MB 파이 모델 B는 램이 512MB다(원래 256MB이었지만, 2012년 10월 512MB로 변경되었다). 이 램을 시스템과 GPU(Graphics Processing Unit)가 나눠 사용한다. 이 책을 쓰는 데 사용하고 있는 들어가며 xxvii

노트북에는 8GB의 램이 장착되었고 집에서 사용하는 데스크톱 PC에는 16GB의 램이 장 착되었다는 점(각각 16배와 32배가 된다), 그리고 512MB마저도 최대 절반까지 GPU와 공유한 다는 점을 생각해 보면 파이의 램은 다소 약해 보인다. 과연 512MB 램으로 무엇을 할 수 있을까? 모델 A나 구형 모델 B에는 이보다도 적은 256MB가 장착되었으니 이것으로 할 수 있는 일이 있기라도 한 것일까? 글쎄, 대답은 생각하는 것보다 훨씬 더 많다 는 것이다. 윈도 95는 단지 8MB의 램(계산하기 편하게 파이의 1/32이라고 하자)으로 프로그램을 실행할 수 있도록 디자인되었다. 한때 찬란 했던 코모도어 64는 겨우 64KB의 램(이에 비하면 파이는 4,000배가량이나 많다)으로 사람들을 즐겁게 하는 수천 가지 게임을 실행할 수 있었다. 그렇다면 어째서 우리는 요즘 컴퓨터에 그렇게 많은 메모리를 필요로 하게 된 것일까? 우 선, 메모리가 매우 저렴하기 때문이다. 그리고 아주 적은 메모리로도 얼마든지 엄청난 일 을 할 수 있지만, 그런 기술은 이미 구식이 됐기 때문이기도 하다. 그렇다면 메모리가 부 족할 일이 별로 없을 텐데도 어째서 메모리 최적화에 상당한 노력을 기울이는 것일까? 8GB의 램이 50달러라면 여기저기서 몇 MB를 절약하느라 프로그래머가 며칠까지는 아니 어도 몇 시간은 정성을 쏟을 수 있을까? 아마 그렇지는 않을 것이다. 파이는 실험용 플랫폼임을 명심해야 한다. 데스크톱 PC의 대체품이 아니다. 그리고 리눅 스(특히 GUI가 없는 리눅스)는 프로그램에 메모리를 남겨두느라 자체적으로 사용하는 메모 리는 얼마 되지 않는다. 파이는 메모리를 적정 수준까지만 장착하여 성능을 크게 희생하 지 않고도 가격 경쟁력을 갖췄다. GPU GPU는 CPU의 특수한 형태다. CPU는 일반적으로 모든 일을 도맡아 처리한다. 한마디로 팔방미인인 셈이다. 반면, GPU는 한 가지 일만 맡아 처리한다. GPU는 디스플레이를 렌더 링하는 데 필요한 복잡한 수학적 계산을 전문적으로 처리하도록 디자인되었다. 처음에는 주로 3D 그래픽 렌더링을 처리했지만, 요즘에는 그것보다 일상적인 컴퓨팅으로 치우치는 xxviii

경향을 보인다. 가령 포토샵 등의 애플리케이션이 사진의 품질을 개선할 때, GPU는 이미 지에 어떤 알고리즘을 적용한다. 이는 원래 CPU의 몫이었다. 오늘날의 포토샵은 여러 프 로세싱 작업을 GPU에 떠넘기는데, 이는 전문화된 GPU가 더 빠르게 작업을 처리할 수 있 기 때문이다. CPU의 힘을 빌리지 않고 GPU 단독으로 작업을 처리하는 것이다. 파이 등의 장치에서 GPU가 중요한 주된 이유는 프로세서의 성능이 다소 떨어지더라도 고 품질 디스플레이를 무난하게 처리하고, 비디오 스트림을 디코딩할 수 있기 때문이다. 파이 의 프로세서가 느리지만 그래픽을 산뜻하게 처리할 수 있을 뿐만 아니라 미디어 장치로도 손색이 없는 이유가 바로 이 GPU 때문이다. 일반적으로 GPU는 직접 관리해야 하는 대상이 아니다. 하지만 GPU가 무거운 그래픽 작 업을 CPU로부터 떠맡을 수 있다는 사실을 이해함으로써 파이의 ARM이 발휘하는 강력 함을 좀 더 확신할 수 있을 것이다. B 이더넷 포트에 관해 무슨 할 말이 있겠냐고 생각할지도 모르겠다. 다분히 직관적인 구성 요소이므로, 단순히 케이블을 꽂으면 네트워크에 액세스할 수 있고, 케이블이 없으면 네트 워크에 연결하지 못하는 것 아니냐고 생각하기 마련이다. 간단한 이야기가 아닐까? 내 경우를 말하자면 유선 네트워크에 연결하는 기능은 매우 중요하다. 와이파이는 문제를 일으킬 때가 종종 있고, 때로는 아예 사용할 수 없는 상태가 되기도 한다(특히 파이를 무선 AP로 사용한다면 더더욱 그렇다). 이더넷 포트가 딸린 파이는 10달러를 더 치러야 하지만, 내 경험상 네트워크 미지원 장치는 나중에 10달러보다 더 큰 노력과 시간을 뺏어간다. 한마디 로 무척 번거로워지는 것이다. 또는 모델 A에 USB 네트워크 카드를 추가로 장착해도 된다 (엄밀히 말하면 모델 B는 네트워크 카드가 USB를 통해 연결된 형태다). 하지만 그러기 위한 비용 이 10달러가 넘고 툭 튀어나온 네트워크 카드가 보기에도 좋지 않다. 아니면 이렇게 생각 할 수도 있다. 네트워크를 사용하지 않을 때 USB에 다른 장치도 연결해야지. 하지만 실제 로 그러는 경우는 보지 못했다. 정작 네트워크가 필요할 때 사용하지 못하고 포기해야 할 가능성이 농후하다. 들어가며 xxix

하지만 모델 A를 선택해도 되는 이유가 한 가지 있다. 이더넷 포트가 없기 때문에 소비 전 력이 매우 낮아진다는 것이다. 대부분의 사용자에게는 큰 의미로 와 닿지는 않겠지만, 배 터리 팩이 장착된 파이를 사용하여 프로젝트를 구상한다면, 가급적 전력 소비를 낮춰야 하는 것에 민감해질 수 있다. 크게 보자면 나는 모델 B를 장만하라고 권하겠다. 네트워크를 활용할 수 있어서다. 이더넷 을 사용할 일이 없다고 100% 장담한다면야(또는 전력 소비에 상당히 민감하다면)비용을 더 들 여 모델 B를 장만할 이유는 없을 것이다. USB 요즘에 USB가 없는 장치는 보지 못했다. 거의 모든 주변기기는 USB를 통해 연결되고, 그 점은 파이도 예외가 아니다. 표준 USB 키보드나 마우스를 연결하면, 리눅스는 해당 드라 이버를 갖추고 있으니 곧바로 사용할 수 있다. 다른 USB 장치도 마찬가지다(모델 B의 이더 넷 카드). 모델 A와 B 둘 다 USB 2.0을 지원한다. 다만, 모델 A에는 USB 포트가 하나뿐이고, 모델 B에는 두 개가 장착되어 있다. 연결할 USB 장치가 여럿이라면 모델 B가 적합하겠지만, 기 본적인 데스크톱 PC 정도로만 사용한다면 외부 USB 허브를 사용해도 무방하다. GPIO GPIO(General Purpose Input/Output) 포트는 매우 흥미로운 구성 요소로, 파이의 핵심으로 생 각할 수 있다. 이 포트로 파이에 하드웨어를 쉽게 연결할 수 있고, 파이에서는 소프트웨어 로 하드웨어를 제어할 수 있다. 가령, 온도계나 광센서를 파이에서 사용하려면 GPIO 포트 를 통해 파이에 연결하게 된다. 하드웨어 프로젝트에 별로 관심이 없다면 GPIO 포트 같은 것은 신경 쓰지 않아도 된다. 하지만 다양한 하드웨어와 파이를 통합하거나, 파이를 독창적인 발명품의 두뇌로 사용하 고자 한다면 GPIO 포트는 하드웨어를 제어하기 위한 좋은 방법이 될 것이다. xxx

이제 파이가 무엇이고 왜 특별한지 충분히 이해했으리라 생각한다. 낮은 가격이라는 장점 덕택에 쉽게 손에 쥘 수 있다. 데스크톱 PC로 할 수 있는 일 전부를 파이가 제공하지는 않 아도 상당히 매력적인 서버 플랫폼임은 말할 것도 없고, 부족함이 전혀 없는 실험실용 컴 퓨터로도 충분한 성능을 제공한다. 자, 이제 이 책에서는 무엇을 할까? 이 책은 크게 3부로 구성되어 있다. 1부에서는 GUI를 설정하고 실행하는 과정을 선보인다. GUI를 들어본 적이 없다면 1부부터 시작해야 할 것 이다. 파이는 모든 것을 갖추고 있지만, 상자에서 꺼내 곧바로 사용할 수는 없고 약간의 설정이 필요하다. 그다지 복잡한 과정은 아니다. 간편하고 쉽게 파이 여행을 떠날 수 있도 록 우리가 모든 준비를 해둘 것이다. 2부에서는 커맨드라인을 소개하고, 그 사용법을 다룬다. (나 자신을 포함하여) 많은 사람이 웬만한 일은 커맨드라인으로 처리한다. 커맨드라인은 빠르고 강력하며 언제나 사용할 수 있다(네트워크를 통해 작업하는 등 GUI를 사용할 수 없을 때에도). 다만, 사람들이 익숙하게 사 용하던 GUI보다 다소 까다롭다. 그렇다고 걱정할 것은 없다. 커맨드라인에 익숙해져 집처 럼 편안해지도록 우리가 인도할 것이다. 3부에서는 실제로 여러 흥미로운 일을 벌일 것이다. 이곳에서는 행복한 마음으로 커맨드 라인을 사용하여(다른 사람들에 비해 두각을 나타낼 수 있도록) 다소 깊은 내용까지 다루며 파 이를 활용할 것이다. 몇 가지 대단한 주제가 다뤄지는 것이다. 브렌단 호런(Brendan Horan) 의 Practical Pi Projects 의 하드웨어 및 소프트웨어 프로젝트를 진행하는 데 써먹을 수 있 는 탄탄한 기초 지식을 제공할 것이다. 들어가며 xxxi

1장에서는 리눅스가 무엇이고, 왜 라즈베리 파이에서 사용하는지 살펴본다. 몇 가지 서로 다른 배포판 을 가볍게 훑어보고 모든 리눅스 가 왜 실은 같은 것인지를 설명한다. 라즈베 리 파이를 좀 더 가까운 곳에서 들여다보고 파이의 특별한 점이 무엇인지 살펴본다. 그리 고 GUI를 설정하여 실행하는 과정을 선보인다. 간단한 따라 하기를 통해 파이의 데스크 톱(바탕 화면)을 살펴보면 1장은 마무리된다. 이어지는 내용은 데스크톱(바탕 화면) 여행이다. 필수 애플리케이션을 소개하며 인터넷, 이 메일, 인스턴트 메시지 앱 등을 다룬다. 그리고 음악과 비디오에 관한 내용을 선보인다. 이 장을 일독하면 라즈베리 파이를 사용하더라도 별다른 불편 없이 일상적인 컴퓨팅 작업을 할 수 있을 것이다. 웹 브라우징, 이메일 전송 등을 가벼운 마음으로 할 수 있게 되면, 파이의 GUI를 이렇게 저렇게 매만져 볼 것이다. 데스크톱 배경 변경하기 부터 시작하여 즐겁게 파이를 사용할 수 있도록 이것저것 자잘하게 손질도 하고, 더 좋은 환경으로 꾸밀 것이다. 이제 다루는 내용이 다소 달라진다. 파이를 다른 컴퓨터처럼 사용하는 것은 마찬가지이지 만 수준을 한 단계 올린다. 리눅스의 장점을 고스란히 누리기 위해, 그리고 몇 가지 흥미 로운 프로젝트를 직접 체험하기 위해 껍질을 벗겨내고 한 꺼풀 더 깊이 들어갈 것이다. 출발점은 커맨드라인이다. 리눅스와 매우 정확하고 강력하게 소통하기 위한 수단이 바로 커맨드라인이다. 처음에는 이 낯선 외계 환경으로 느리고 부드럽게 진입할 것이다. 쉘에 관해서 여러 가지를 다룰 텐데, 쉘의 유래, 중요성 등을 심도 있게 언급할 것이다. 그리고 xxxii

쉘의 역사도 잠깐 다루겠다. 쉘의 역사(그 자체로도 흥미롭다)를 알면 쉘의 장점을 최대한 활용하는 데 도움이 되기 때문이다. 커맨드라인에 익숙해지면 가장 중요한 주제가 기다린다. 이때, 다른 책에서는 실행할 명령 들을 소개하지만(그것도 물론 훌륭한 접근이다), 여기서는 명령이 실행되는 전후 사정부터 다 룰 것이다. 우선, 리눅스의 파일시스템을 살펴보고, 모든 유닉스 기반 운영체제의 핵심인 모든 것은 파일이다. 라는 철학을 설명한다. 덜컥 겁부터 날 수 있지만, 걱정할 만큼 깊게 들어가지는 않는다. 다만, 이 과정에서 몇 가지 새로운 명령을 소개하고 여러 가지로 활용할 것이다. 커맨드라인이 무엇이고 어떻게 사용하는지, 리눅스에서는 파일이 어떻게 배치되는지 이해 했으므로 모든 준비는 마무리되었다. 루트가 되는 법(우주의 왕자 히맨이 파워 업 하는 장면을 기억하는가? 히맨이 누구냐고?)을 다루고 새 애플리케이션이나 도구를 어떻게 설치하는지 선 보인다. 또한, 여러분을 키보드 마니아로 만들어 줄 몇 가지 유용한 커맨드라인 기술을 소 개한다. 이제 여러분은 마우스 클릭보다 키보드가 몇 배는 더 편해질 것이다. 다음 들를 곳은 파일 편집 이다. 두 가지 에디터를 선택한다. 하나는 나노다. 나노(nano)는 간단하고 사용하기 쉬운 에디터로서 일반적인 목적으로 사용할 수 있다. 나는 환경 설정 파일에서 조금씩 수정할 내용이 있을 때 주로 나노를 사용한다. 조금 더 무거운 작업에는 빔(vim)이 적당하다. 빔은 온갖 종류의 마술과도 같은 코드와 단축키를 지원한다(마치 던 전스 앤드 드래곤즈 를 플레이하는 느낌이다). 단축키와 명령을 모두 머릿속에 담는다면 영원히 빔과 함께할 것이다. 우리 같은 사람에게는 늘 나노가 곁을 지켜주겠지만... 들어가며 xxxiii

이곳에서는 시스템 서비스를 살펴보고 리눅스에서 일어날 수 있는 문제를 들여다본다. 똑 똑한 리눅스처럼 작업할 수 있는 여러 가지를 선보일 텐데, 지금까지 실행했던 여러 도구 와 달라지는 것은 없다. 이를 적용하여 서비스를 시작하고 중지하는 과정을 다룰 것이다, 네트워크 서비스는 서버가 일용할 양식이나 다름없다. 사람들은 대부분 사용자의 관점에 서 네트워크 서비스를 사용했지만 여기서는 가장 적나라한 내용을 습득하게 된다. 서버 하면 곧바로 떠오르는 OpenSSH와 아파치 웹 서버를 이곳에서 다룬다. 그리고 인터넷으 로 직접 서버를 운영하면 부딪힐 수 있는 실제 위험에 대해서도 다룬다. 여러분이 만든 서 버에 무단으로 진입할 수 있는 권한을 얻어내려는 사람은 널렸다. 그들은 여러분이 누구인 지에는 별 관심이 없다. 호들갑 떨 필요는 없다. 해야 할 것과 하지 말아야 할 것을 간단히 정리하여 이곳에 소개할 것이다. 스크립트는 쉘 명령을 한데 담아 배시(또는 다른 쉘)가 실행할 수 있게 만든 텍스트 파일이 다. 이 간단한 형태로도 스크립트는 강력한 힘을 발휘하고 많은 일들을 할 수 있다. 가령, 비교적 적은 노력으로 특정 작업을 자동화할 수 있고 대단히 인상적인 도구를 만들 수도 있다. 이곳의 목표는 모든 독자의 전문가화가 아니다. 스크립트의 강력한 맛을 직접 느낄 수 있게 하는 것이다. 이를 마법이라 한 것이 우습기도 하겠지만, 세 시간씩이나 걸릴 일을 단 한 줄의 명령으로 4초 만에 끝나는 걸 본다면 생각이 달라질 것이다. 고전적인 프로젝트를 시작한다. 바로 램프(LAMP, 즉 Linux, Apache, MySQL, PHP)다. 이곳에 서는 파이가 왜 소규모 웹 서버로서 이상적인지를 설명하고, 어째서 램프가 완벽한 동적 웹 사이트 개발 환경일 뿐만 아니라 이동형 웹 사이트로도 각광을 받는지 언급한다. xxxiv

WiPi 작은 네트워크 서버보다 한결 재밌는 것은 무엇일까? 선이 없는 작은 네트워크 서버일 것 이다! 이곳에서는 USB 무선 네트워크 어댑터를 사용하여 파이가 아무런 선 없이 세상과 소통할 수 있는 방법을 소개한다. 여기서 한 걸음 더 나아가 파이에서 선을 모조리 제거하 여 배터리만으로도 파이를 사용할 수 있도록 한다. spi 누가 몰래 방에 들어와 펜을 죄다 훔쳐갔는지 알고 싶은가? 스파이(sPi)가 모든 것을 책임 진다! 이곳에서는 파이에 웹캠을 연결하여 방을 감시하게 하고, 움직임이 포착되면 이를 찍는 방법을 소개한다. 그뿐만이 아니다. 사진을 찍는 즉시 이메일로 보내 침입자를 확인 할 수도 있다. 제임스 본드도 가지지 못한 최첨단 장치다. MC Pi 마지막으로, 그러나 중요성은 전혀 밀리지 않는 이곳에서는 파이를 개인 미디어 센터로 활 용하는 방법이 펼쳐진다. 비디오를 TV로 스트리밍하는 방법, 음악을 공유하는 에어포트 장치로 활용하는 방법 등이 소개된다. 고화질 비디오를 스트리밍함으로써 파이의 진정한 능력이 펼쳐질 것이다. 우리는 이미 많은 것을 다루었다. 컴퓨팅이 지난 세월 어떻게 변화했는지 살펴봤고, 그런 변화가 컴퓨터를 바라보는 우리의 시각에, 일상생활에서 컴퓨터를 어떻게 사용하는지에 어떤 영향을 미쳤는지 들여다보았다. 더불어 컴퓨터가 교육 현장에서 어떻게 인식되는지 에 어떤 영향을 미쳤는지, 학생들이 습득하는 지식의 깊이와 너비에는 또 어떤 영향력을 들어가며 xxxv

행사했는지 생각해 보았다. 우리는 간단하게나마 라즈베리 파이 재단을 언급했고, 파이가 그런 현재 상황을 타개할 수 있는 출발점이 되었으면 하는 재단의 희망도 소개했다. 뒤이어, 우리는 파이를 손에 쥐어야 하는 좀 더 매력적인 이유와 파이가 개발 및 실험을 위한 이상적인 플랫폼인 이유를 찾아보았다. 또한, 우리는 라즈베리 파이를 하드웨어 차원에서 들여다보며 일반적인 데스크톱 PC와 무엇이 어떻게 다른지를 다루었다. 파이의 장단점을 거론하며 이런 결정은 왜 해야 하고 저런 결정은 왜 해서는 안 되는지, 사용자에게 어떤 영향력을 발휘할 수 있는지도 살펴보 았다. 이제 거창했던 들어가며 의 막을 내리고자 한다. 지금까지 함께한 파이 패키지여행에서 잠 깐씩만 언급했던 주제들을 분문에서 심도 있게 다룰 것이다. 이제 책상 위에 파이를 올려놓고 파이와 함께할 시간이다! xxxvi

1 라즈베리 파이 한 조각 CHAPTER 이 장은 우리의 손이 바빠지는 곳이다. 서둘러 준비하고 달릴 생각에 들어가며 를 건너뛰 어야겠다고 마음먹었다면, 괜찮다. 문제될 것은 없다. 이 장에서 제공하는 내용이 버겁지 않을 것이기 때문이다. 하지만 곧 들어가며 를 다시 찾겠다고 포스트잇으로 표시는 해두 는 것이 좋다. 그곳에서 파이 보드에 관한 배경 지식과 파이가 왜 그렇게 특별한 대우를 받는지 많은 내용을 접할 수 있어서다. 이제 팔을 걷어붙이자! 파이의 포장을 뜯고 파이가 동작하는 데 필요한 것을 하나씩 정리 하여 살펴보기로 한다. 그 가운데서도 한 가지에는 특별한 관심을 쏟아야 한다. 바로 파이 가 동작하기 위해 반드시 필요한 라즈비안 리눅스다(잠시 뒤에 더욱 자세한 내용을 다룰 것이 다). 라즈비안을 실행하는 것 외에 환경 설정도 해야 하는데, 다소 전문적이고 리눅스 전 용인 옵션이 상당수 존재한다. 물론, 이곳에서 다룰 것이니 한숨을 쉬지 않아도 될 듯하 다. 1장에서는 라즈베리 파이의 모습을 충분히 감상하기 바란다. 2장에서는 실제로 무엇 을 할 수 있는지 살펴볼 것이다. 1

자, 오랫동안 기다린 택배 기사가 드디어 제품을 들고 초인종을 눌렀다. 둘둘 말린 에어캡 을 뜯으니 작은 상자가 한눈에 들어온다( 는 표현이 핵심이다). 작은 상자를 이리저리 돌려 보며 달랑 이것뿐인가? 하는 생각이 스친다. 혹시나 하는 마음에 택배 상자 안팎을 다시 확인하지만, 작은 상자 외에는 눈에 보이는 것이 없다. 이럴 때 흔히 하는 행동이 있다. 상 자를 흔들어 보고 내용물을 꺼내 보는 것. 막상 내용물을 꺼내 봐도 눈에 띄는 것은 없다. 독자 여러분에게 알린다. 라즈베리 파이를 주문하면 라즈베리 파이가 손에 쥐는 전부다 (그림 1 1 참고). 1 1 포장을 뜯으니 나온 것 2 CHAPTER 1

커다란 고딕체 문구가 눈에 들어온다. GETTING STARTED, 즉 다. 그리고 라즈베리 파이의 웹 사이트 주소도 보인다. 새로운 장난감을 받아들고 상자를 열어 보는 대신, 상자 옆면을 이리저리 확인하는 사람이라면 이 문구가 시작해 보고 싶은 욕구를 불러일으킬지 도 모르겠다. 우리가 라즈베리 파이를 손에 들고 처음 한 일은 바로 라즈베리 파이 웹 사이 트에 방문한 것이었지만, 라즈베리 파이를 직접 눈으로 확인하고는 한동안 흥분을 가라앉 히지 못했다. 상자의 다른 면에는 아무런 내용도 없어 이것이 바로 라즈베리 파이야. 라며 들뜬 마음으로 자랑하기에는 무언가가 빠진 것 같았지만, 사무실 사람들에게 라즈베리 파 이가 얼마나 작은지 꺼내 보여주고 싶다는 생각을 주체할 수 없었다. 믿거나 말거나 우리에 게 동지가 생겼다. 첨단 기술에 푹 빠진 또 한 명의 이 새로운 파이 사용자는 파이 상자를 스탠드로 개조하고는 고딕체 문구가 그리워 아쉬워하고 있다(포장지는 3주 째 행방불명). http://raspberrypi.org/downloads/에 가보면 앞으로의 여정을 시작하기에 좋은 곳임을 어렵지 않게 알 수 있다. 여기서도 곧 관련 내용을 다룰 것이다. 아직 파이를 주문하지 않았다면 (또는 택배 기사를 간절히 기다리고 있다면), 그림 1 2가 대리만족의 대상이 될 수 있을 것이다. 그림 1 2는 마우스와 나란히 가져다 놓은 라즈베리 파이의 모습이다. 1 2 라즈베리 파이와 일반 마우스를 나란히 놓은 모습 파이의 크기가 작고, 담긴 상자 또한 작다는 것은 익히들 알고 있겠지만, 막상 손에 쥐어 봐야만 얼마나 작은지 실감할 수 있을 것이다. 우리도 파이를 사람들에게 보여주려고 손 에 쥐어본 뒤에야 작은 크기를 실감하고는 잠시 할 말을 잊었다. 3

하지만 갑자기 말문이 막힌 데는 또 다른 이유가 있었는데, 이런 종류를 처음 접한 것 아 닌데도 파이를 손에 드니 어떻게 동작시켜야 하는지 잠시 막막해졌기 때문이었다. 이유 야 어쨌든 잠시나마 할 말을 잃고 무언가 특별한 것(적어도 전자부품 마니아가 집 주위를 어슬 렁대도 발견할 수 없는 그런 것)이 있어야 파이가 동작하는 것은 아닐까 하는 생각이 불현듯 스쳤다. TV 애니메이션 덱스터의 실험실 에나 나올 법한 잡동사니를 갖추지 않았다면 몇 가지를 직접 마련해야 한다. 그래도 대부분이 동네 컴퓨터 부품 매장에서 쉽게 구할 수 있는 것 들이라 한편으로는 다행이다. 일일이 발품을 팔 여력이 없다면, 필요한 것들을 하나로 모 아놓은 스타터 키트를 여러 업체에서 제공하고 있으니 관심을 가져볼 만하다. 이들 스타 터 키트는 수시로 구성품이 변경되므로 구매하기 전에 꼼꼼히 확인하는 것이 필수다. Note 이 책에서는 HDMI만 다룰 생각이지만(그래서 다음 리스트에서도 디스플레이 항목이 하나뿐이다), DVI 나 컴포지트, 스카트(SCART) 등 다른 디스플레이 장치를 사용해도 무방하다. 물론, 적당한 케이블과 어 댑터는 반드시 있어야 한다. 파이를 바삭하게 구워내려면 다음의 재료가 필요하다. 라즈베리 파이 마이크로 USB 케이블(전원용) USB 전원 어댑터(전원용) HDMI 케이블: 타입 A 타입 A(모니터나 TV에 연결함) HDMI 디스플레이 장치 SD 카드: 2GB에서 64GB 사이(저장용), 최소 8GB 권장 이 책을 번역하면서 사용한 라즈비안은 2014년 1월 7일자 버전입니다. 2013년 9월 25일자 버전부터 필요한 SD 카드의 최소 용량이 2GB에서 4GB로 변경되었는데, 그 밖에 무엇이 달라졌는지에 관해서는 관련 지면에서 간단하게 언급하겠습니다. 4 CHAPTER 1

SD 카드 어댑터 USB 키보드와 마우스 USB 안드로이드 폰이나 킨들을 가지고 있다면 파이에 전원을 공급하는 케이블이 따로 필요 없 다. 그렇다고 이 케이블이 데이터 전송용으로 사용되는 것은 아니다. USB 포트에서 전원 을 끌어다 사용하더라도(데스크톱 PC나 노트북에 꽂으면 된다) 다른 목적으로 USB 커넥터를 사용할 수 없다. USB 커넥터는 종류가 여러 가지이며, 말로 다 설명하기에는 무리가 있다. 그림 1 3을 참고하기 바란다. 1 3 USB 커넥터의 종류 가장 먼저 관심을 둘 커넥터는 그림에서 가장 왼쪽에 있는 USB다. 얼핏 보면 미 니 USB 플러그(왼쪽에서 두 번째)와 비슷하다고 생각할 수 있으므로 주의를 요한다. 일부러 시간 내서 매장에 갔다가 엉뚱한 케이블을 골라 오지 않도록 눈여겨 봐두자. USB 별로 주의를 기울일 내용이 없다. 일반적인 USB 포트로 파이 모델 A(이더넷 포트가 내장되 지 않은 버전)에 전원을 공급할 수 있고, 모델 B에도 테스트 용도로는 그럭저럭 사용할 수 있다. 파이를 PC 옆에 두고 사용한다면 대체로 무난하지만, 파이만 따로 사용하겠다면 아 5

마도 상황이 달라질 것이다. 설령, PC 등과 함께 사용한다 해도 노트북에서 전원을 끌어 다 사용한다면 문제가 생길 수도 있다. 파이는 쉬지 않고 동작하는데, 노트북을 이리저리 가지고 다닐 수는 없는 노릇이 아닌가. 다행히 수많은 장치가 USB를 충전 수단으로 채택한 덕에 주 어댑터는 어디서든 저렴한 가 격에 구할 수 있다. 어떤 어댑터를 준비해야 하는지는 전적으로 취향의 문제다. 하지만 파 이 모델 B는 700mA가 필요한데, 어느 정도는 여유가 있어야 하므로 적어도 1A짜리로 준 비하는 것이 좋다. 우리가 여러 차례 진행한 과학적인 테스트(발품을 팔아 매장을 돌아다니며 각양각색의 제품을 분석했다)로는 1A짜리가 가장 보편적이었다. 500mA짜리 어댑터와 우연 히 마주친 적이 있었는데, 일반적인 USB 장치(파이 모델 A 포함)에 사용한다면 모를까, 파이 에는 적당하지 않다. HDMI 지난 몇 년 사이 HDMI는 모니터나 TV에 장치를 연결하기 위한 표준으로 자리 잡 았다. HDMI는 디스플레이 장치가 이를 지원하기만 한다면 쉽게 연결할 수 있다는 점에서 대단히 편리하다. 별로 피부에 와 닿지 않는 말인 것 같지만, 사실 불과 얼마 전까지만 해 도 TV와 모니터는 서로 별개의 디스플레이 장치로 취급받았고, 컴퓨터를 TV나 VCR, 모 니터에 직접 연결하는 방법도 없었다(흥미로운 것은 20년 전에는 모든 가정용 컴퓨터가 TV에 직 접 연결되었다는 사실이다. 코모도어 64나 스펙트럼이 그 예다). 물론, 특별한 하드웨어와 일부 최 첨단 장치가 다양한 커넥터를 제공하기는 했지만, 이 두 디스플레이 장치는 서로 다른 세 상에서 어울리지 못했다. 다행히 파이는 HDMI를 사용한다. 따라서 과거의 한계를 훌쩍 뛰어넘을 수 있게 되었다. 파이를 디스플레이 장치에 연결하려면 타입 A 타입 A 케이블이 필요하다. 타입 A는 TV 나 모니터 뒷면에서 찾아볼 수 있는 크기다. 준비할 것은 적당한 케이블, 즉 양쪽 끝이 같 은 크기인 타입 A 케이블이 전부다. 가전제품은 대부분 타입 A를 사용한다. 따라서 Xbox 360을 가지고 있거나 노트북에서 HDMI를 지원한다면, 필요한 케이블을 이미 가지고 있 을 확률이 높다. 6 CHAPTER 1

HDMI 이미 예상했겠지만, HDMI 지원 디스플레이가 필요할 것이다. 최근 몇 년 사이 HDMI가 폭넓게 채택되었기 때문에 새로 출시되는 TV는 예외 없이 하나 또는 그 이상의 HDMI 포 트를 달고 시장에 나온다. 요즘은 포트가 서너 개씩 달린 제품도 흔히 볼 수 있다. 이런저 런 디지털 장치를 연결할 일이 많아서 그런 듯하다. 사용하고 있는 TV나 모니터가 HDMI를 지원하는지 쉽게 알 수 있는 방법이 있다. 곧장 HDMI 포트가 있는지 찾아보면 될 일이다. 아마도 모니터보다는 TV에 HDMI 포트가 달 렸을 확률이 높지만, 요즘 출시되는 저가형 모니터 또한 HDMI를 지원하는 경우가 많다. 우리의 경우, 거실에 놓인 TV는 HDMI를 지원하는데도 모니터는 구식인지 지원하지 않았 다. 물론, 거실에는 TV가 한 대뿐이므로 마룻바닥에 책상다리를 하고 앉아 파이의 동작 을 지켜보기에는 아무래도 답답하다. 결국, 우리는 HDMI를 지원하는 새 모니터를 장만하 기로 했다. DVI 컨버터를 구매할 수도 있었지만, 모처럼 번쩍번쩍하는 새 장난감을 살 좋 은 기회를 버릴 수 없었다. 만일 TV나 모니터를 사용할 수 있는 여건이 아니라면, HDMI를 지원하는 저렴한 TV나 모니터를 장만해야 할 것이다. 다만, 앞에서도 언급했듯이 파이는 HDMI뿐만 아니라 컴포 지트도 지원하므로 이를 대안으로 생각해도 좋다. SD 컴퓨터에는 대부분 어떤 형태로든 하드 드라이브가 장착되어 주 저장소로 사용된다. 노 트북에 장착되는 하드디스크조차도 덩치가 파이보다 크고, 최근에 등장한 SSD가 전력 소 비 면에서 월등하기는 해도 파이가 소비하는 전력량과는 비교 자체가 되지 않는다. 그러 나 다행히 대안이 있다. 하드디스크처럼 덩치 큰 장치 대신에 오랫동안 디지털 카메라에 사용된 기술인 플래시 메모리를 적용할 수 있다. 플래시 메모리 카드는 용량이나 성능 면 에서 하드디스크에 필적하지 못하지만, 전력 소비 면에서는 타의 추종을 불허하고 크기 또 한 하드디스크의 경쟁 상대가 아니다. (파이가 지원하는 최대 용량인) 64GB가 아직은 획기적 이지 않지만, 파이에 사용하기에는 차고도 넘친다. 7

SD 카드는 표준화되었기 때문에 구구절절이 설명할 까닭은 없다. 고성능 카드가 필요하다 면 10으로 분류되는 것을 사용하면 되지만, 어떤 종류든 사용하는 데는 기본적으 로 같다. 그렇기는 해도 파이에 사용할 수 없는 SD 카드는 분명 존재한다. 듣도 보도 못한 제조업체의 제품이라면 인식되지 않기도 한다. 요즘에는 시중에 유통되는 메모리 카드의 종류가 워낙 많지만, 그림 1 4에 등장한 SD 카 드와 모양이 대부분 같다. 1 4 SD 카드, 어댑터, 마이크로 SD 카드 왼쪽이 전형적인 SD 카드이고, 오른쪽이 마이크로 SD 카드다. 모두 스마트폰, 특히 안드 로이드 폰에 널리 사용된다. 스마트폰에 함께 제공되는 SD 카드는 대부분 용량이 작아서 용량이 더 큰 카드를 새로 장만하는 경우도 많다. 어느 것을 골라야 하는지 갈팡질팡한다면, 어댑터(그림 1 4에서 가운데)에 마이크로 SD 카 드를 끼워 사용하는 것도 좋은 방법이다. 요즘에는 스마트폰에서 마이크로 SD 카드를 많 이들 사용한다. 반면, 노트북에는 SD 카드가 흔히 사용된다. 어댑터만을 따로 판매하는 경우를 본 적은 없지만, 그래도 누가 알겠는가? 예상치 못한 곳에서 떡하니 나타날지! SD SD 카드를 장만했으면 이제 실제로 사용할 방법이 필요하다. 파일에는 SD 카드 슬롯이 내 장되어 있어서 SD 카드를 바로 꽂을 수 있지만, 다른 저장 장치를 갖추지 않았기 때문에 SD 카드에 리눅스 등을 설치하지 않으면, 파이는 빈껍데기에 불과하다. 문제는 SD 카드에 8 CHAPTER 1

리눅스를 설치하려면 이미 리눅스 등이 설치된 컴퓨터에서 SD 카드를 읽고 쓸 수 있어야 한다는 것인데, 결국 이러지도 저러지도 못하는 상황과 마주하게 된 셈이다. 리눅스가 설 치된 다른 사람의 SD 카드를 빌릴 수 있다고 하더라도, 파이에서 새 SD 카드에 리눅스를 복제하는 방법은 없다. 디지털 카메라가 보편화됨에 따라 컴퓨터에 SD 카드 리더가 많이들 장착되었다. 이른바 PC로도 불리는 컴퓨터에는 여러 카드를 다양하게 지원하도록 이런저런 모양의 슬 롯이 장착되었다. 다시 말해, 이미 SD 카드를 읽을 수도 있다는 뜻이다. 카드 리더가 없다 면 근처 컴퓨터 매장에서 저렴한 멀티카드 리더를 장만해야 할 것이다. 일반적으로 카드 리더는 대단히 저렴하고 지원하는 카드 종류도 다양하다. SD 카드를 지원하는지만 살펴보 면 힘들게 번 돈이 아깝지 않을 것이다. 참고삼아 우리가 사용하는 리더를 그림 1 5에 나 타내었다. 1 5 멀티카드 리더 USB 마지막으로, 중요성은 매한가지인 것이 바로 키보드와 마우스다. 파이에 고급 기술이 적용 되었어도 텔레파시를 가지지는 않았으므로, 제어하기 위해서는 어떤 방법이 필요하다. 이 는 당연한 상식이겠지만, 요즘의 컴퓨터가 USB 어댑터 형태보다는 블루투스를 직접 지원 하며 무선 키보드와 마우스 등으로 무장한 경우가 많다. 그러다 보니 현재 그런 키보드와 마우스를 사용하고 있다면 이들은 파이에서 동작하지 않을 수도 있다(파이에는 블루투스가 9

없다). 다만, 어떤 키보드와 마우스든 파이에 아무런 문제없이 동작하므로 블루투스 등에 관해서 더 이상 언급할 이유는 없는 것 같다. 파이에 사용한답시고 물어물어 찾아가 원하 는 것을 구매하여 집으로 들고 왔더니, 막상 올바로 동작하지 않아 한숨만 내쉴 일은 없 다는 것을 상기시키기 위해 키보드와 마우스를 간단히 언급했을 뿐이다. 드디어 우리가 원하는 것을 모두 갖췄다! 이들을 파이에 연결하는 일은 대단히 쉽다. 특 히, 각 장치의 모양이 제각각이라 단 한 군데 슬롯에만 들어맞으니 괜히 걱정할 까닭도 없 다(완성된 파이의 모습이 그림 1 6이다). 1 6 파이 준비 끝! 각 장치를 제대로 연결하고 전원을 연결했다면 TV를 켠다. 마주하는 것은 바로 아무것도 없는 시커먼 화면이다. PC나 노트북이 켜지면 바이오스(BIOS)로 불리는 작은 소프트웨어가 여러 과정을 사용자 대신 처리한다. BIOS는 메모리를 테스트하고, 기본 디스플레이 장치를 설정하며, 각종 장 치를 모두 초기화한다. 일부 컴퓨터(주로 애플에서 생산한 컴퓨터)에는 BIOS 대신 EFI가 들어 10 CHAPTER 1

있기도 하다. 어찌 됐든 (우리의 시각에서) 이 둘은 기본적으로 같다. 사용된 기술은 서로 다를지언정, 마지막 단계에서 부트로더로 제어권을 넘기는 것은 바로 이 소프트웨어다. 참 고로 부트로더는 운영체제의 시작을 담당하는 소프트웨어다. BIOS는 원래 대단히 시끄럽다. 무슨 문제라도 생기면 (어디 구석에 처박혀 있을 BIOS 설명서에 나 나옴 직한 숫자 코드와 함께) 삑 소리를 쉬지 않고 쏟아 내거나 알아듣지도 못할 메시지를 화면에 잔뜩 뿌려댄다. 물론, 도움을 주려고 그러는 것이겠지만 말이다. 별 효용성이 없을 지도 모르지만, 적어도 컴퓨터가 아직 살아있다는 단적인 증거는 된다. SD 카드에 시동 가 능한 운영체제가 없다면, 파이 보드에 작은 빨간색 LED가 켜지 더라도 파이는 아무 일도 하지 못한다. 화면이 깜빡이는 등 생명의 흔적을 기대했다면(그렇게 기대한 사람, 분명히 있 다. 우리가 그랬기 때문이다), 지지리 운도 없는 사람이다(그는 파이가 죽었다고 생각할 것이다). 이제 파이에 생명(시동 가능한 운영체제)을 불어넣어야 한다는 사실을 알게 되었을 것이다. 이제부터 마스터플랜 2차 과정으로 나아가자. 리눅스가 우리를 기다리고 있다! 이 책은 초보자를 대상으로 하고 있기 때문에 시간이 다소 걸리더라도 리눅스에 관해 이 야기할 것이다. 리눅스의 시작, 특별한 점, 자주는 아니지만 사람들이 쉽게 저지르는 실수 등이 이야기의 주제다. 이미 알고 있는 이야기라면(또는 주체 자체에 관심이 없다면), 얼마든 지 다음 절인 라즈비안 다운로드하기 를 걸러도 무방하다. 하지만 빠르게 정리하고자 한 다면 일독을 권한다. 질문은 간단하지만 그 파장은 감당할 수 없을 정도다. 통조림을 열었더니 벌레가 마구 쏟 아져 나온다면 피하지 않을 사람이 누가 있겠는가? 질문의 파장은 그 정도다. 기술적 측 면에서 리눅스는 한 가지 대상을 가리키지만, 일반적인 측면으로 확대하면 사정이 달라진 11

다. 일반적으로 운영체제라면 마이크로소프트의 윈도와 애플의 OS X이 자주 거론된다. 나는 윈도를 사용해. 라는 말뜻을 모르는 사람을 없을 것이다. 하지만 윈도가 리눅스로 바뀌면 말의 뜻이 달라진다. 리눅스는 운영체제의 커널만을 의미한다. 커널은 장치 드라이버를 처리하거나 네트워크 또는 하드디스크에 간편하게 액세스할 수 있는 방법을 제공하는 등 저수준 제어를 처리한 다. 실제로 리눅스를 사용할 수 있도록 해주는 것은 리눅스를 둘러싼 소프트웨어 전체다. 이 자체는 별 문제가 아니지만, 리눅스를 둘러싼 소프트웨어에 어떤 것들이 있는지 이해 하기 시작하면 이내 머릿속이 복잡해지고 만다. 컴퓨팅 세계에는 무시해도 좋은 단순 의 견 또는 소수 의견이란 없다! 앞에서 말한 소프트웨어를 가리켜 오픈 소스(open source)로 부른다. 오픈 소스는 모든 사람 이 저마다의 방식대로 얼마든지 재조립할 수 있다. 그런 이유에서 사람들은 자신만의 리눅 스 배포판, 즉 특정 목적에 부합하기 위해 리눅스 커널을 중심으로 고유 생태계를 조성한 운영체제를 만들기 시작했다. 가령, 레드햇 엔터프라이즈 리눅스(RHEL, Red Hat Enterprise Linux)는 오랜 시간에 걸친 탄탄한 안정성을 바탕으로 하드웨어를 폭넓게 지원했다. 반면, 페도라(Fedora)는 6개월마다 릴리스되어 최신 환경을 발 빠르게 지원했다. 젠투(Gentoo)는 사용자가 소스 코드에서 직접 소프트웨어를 빌드하도록 했다(시스템에 최적화할 수 있는 것이 장점이다). 데비안(Debian)은 새로운 기능의 소개 대신 안정성과 보안을 강점으로 내세웠다. 12 CHAPTER 1

Peter Membrey http://www. youtube.com/watch?v=c-1lqigh6ci 그렇다면 어느 것이 최선일까? 목적에 따라 다르다! 완벽한 배포판은 없다. 특정 작업 에 최적인 배포판만이 있을 뿐이다. 파이에서는 공식적으로 지원하는 플랫폼이 라즈비안 (Raspbian)이다. 데비안 배포판이 기반인 라즈비안이 공식적으로 지원되는 리눅스인데다 사 용하기에도 가장 쉽기 때문에 (그리고 가장 빠르게 업데이트되고, 문제가 생겼을 때도 단시간에 해결할 수 있다는 이유에서도) 우리는 이 책에서 라즈비안을 사용할 것이다. 우리와는 생각이 다르다면, 브랜든 호런(Brendan Horan)의 Practical Raspberry Pi (Apress)가 훌륭한 선택이 될 것이다. Practical Raspberry Pi 에서는 페도라의 설치 방법과 젠투의 커스텀 빌드 방법 (내공을 쌓고 싶다면 의미 있는 주제다)을 매우 깊이 있게 다루고 있다. 리눅스 커널이 1990년대 초에 처음 등장했을 때만 해도 컴퓨팅 세계에 지금과 같은 지대 한 영향력을 발휘하게 되리라고 어느 누구도 상상하지 못했다. 리눅스 커널 발표 이전부터 오픈 소스 소프트웨어는 이미 자리를 잡은 지 오래였고, 유닉스 플랫폼을 위한 수많은 도 구가 발표되었었다(그 가운데 하나가 바로 가공할 만한 성능이 자랑인 GCC 컴파일러다). 하지만 이들은 모두 단순한 도구였고 소프트웨어 패키지였다. 다만, 이들을 실행하려면 전용 운 영체제(당시에는 하나밖에 없었다)가 필요했는데, 그런 이유에서 오픈 소스 철학에 온전하게 부합하기 위해 이들 도구가 실행될 오픈 소스 커널에 대한 필요성이 대두되었다. 그 결과 물이 바로 리눅스다. 리눅스 커널이 컴퓨팅 세계에 어떻게 자유와 희망을 선사했는지 언 급하는 사람은 많다(그렇다고 그들이 말하는 것이 진실이 아니라는 것은 물론 아니다). 우리는 그 보다 오픈 소스가 어떻게 일반 대중에게 다가갔는지를 언급하고자 한다. 이제 세상은 리눅스를 품었다. 우리는 리눅스로 무엇을 할 수 있을까? 원하는 것은 뭐든 지 할 수 있다. 파이에 무료로 설치하는 것도 그것에 포함된다. 13

드디어 우리는 파이를 포장한 상자의 시작하기 주소인 http://raspberrypi.org/downloads/에 접속했다. 라즈비안을 다운로드하기 위해서다. 이곳에는 라즈비안을 다운로드할 수 있는 링크뿐만 아니라 유용한 여러 도구나 라즈베리 파이에서 사용할 수 있는 다른 리눅스 배 포판들을 다운로드할 수 있는 링크도 제공된다. 라즈비안이 아닌 다른 리눅스에 관해서 는 앞에서도 간단하게 언급했지만, 그런 다소 색다른 배포판에 관심이 간다면 다음의 왜 라즈비안인가? 를 훑어보기 바란다. ARM PC PCI PC 전통적으로 리눅스 배포판은 CD나 DVD 형태로 제공된다. 선택한 배포판을 다운로드하 면, 실행할 수 있는 파일이 아닌 이미지 형태의 파일을 입수하는 것이다. 이들 이미지는 기본적으로 실제 운영체제의 복제품이나 다름없는데, 다운로드한 이미지를 CD에 쓰면 이 CD는 원본과 동일한 복제품이 되는 것이다. 하지만 라즈비안은 (그리고 파이는) 조금 다 르다. CD ROM 또는 플로피 드라이브가 내장돼 있지 않아서다. 그래서 우리는 CD 또는 DVD의 이미지를 다운로드하는 것이 아니라 SD 카드의 이미지를 다운로드한다. SD 카드 의 이미지 안에는 라즈비안이 설치되어 곧바로 사용할 수 있다. 14 CHAPTER 1

라즈비안은 웹 사이트에서 직접 다운로드할 수도 있고(미러 사이트가 많다), 비트토렌트 (BitTorrent)를 통해서도 다운로드할 수 있다. 비트토렌트가 더 빠를 때도 적지 않은데, 소 스 포지(Source Forge)의 부담을 줄이는 데도 도움이 된다. 하지만 비트토렌트를 지원하지 않는 곳이 더러 있는 데다가(가령, 사무실), 비트토렌트의 동작 방식 때문에 좋지 못한 성능 을 보일 때도 있다. 따라서 마음 편하게 직접 다운로드 방식을 선택하는 것도 좋은 방법이 다. 우리는 라즈비안 위지 버전을 사용할 것이다. 다운로드할 수 있는 배포판 리스트에서 맨 위에 등장하는 버전이다. SD 라즈비안을 SD 카드에 넣는 일은 단순히 파일을 복사하는 것처럼 쉽지는 않다. 라즈비안 이미지 파일은 SD 카드에 설치되었을 때를 사진 찍듯이 옮겨놓은 것이기 때문에, 이미지 파일을 SD 카드에 그냥 복사하면 라즈비안 이미지가 올바로 복사되지 않는다. 그러므로 이미지 파일을 직접 SD 카드로 쓰기 작업을 해야 하는데, 앞에서 언급한 대로 이런 일을 해주는 도구가 필요하다. Note 다운로드한 이미지 파일은 ZIP 형식으로 압축되었다. 윈도 7에서는 파일을 더블 클릭하면 가 열린다. 이곳에서 다른 곳으로 이미지 파일을 직접 복사할 수 있는데, 폴더가 적당할 듯싶다. 맥에 서는 압축 파일을 더블 클릭하는 것만으로 이미지 파일이 폴더에 자동으로 풀린다. 윈도에서 이미지 쓰기 도구로 추천하는 것은 뻔한 이름이 붙은 이미지 라이터(Image Writer) 다. 라즈베리 파이 다운로드 웹 페이지에서 해당 링크를 찾을 수 있으며, 그림 1 7에서처럼 Download 버튼을 클릭하면 바이너리 버전을 다운로드할 수 있다. SD 15

1 7 이미지 라이터의 바이너리 버전 다운로드하기 PC에 어떤 소프트웨어가 설치되었는지에 따라 압축 파일을 여는 방식이 달라진다. 폴더 형태로 열릴 수도 있고, 즐겨 사용하는 ZIP 프로그램이 있다면 그 프로그램에서 열릴 수 도 있다. 어느 쪽이든 압축된 파일들을 전부 풀어내야 애플리케이션을 올바로 실행할 수 있을 것이다. 윈도에 내장된 자체 도구를 사용할 때는 압축 파일을 더블 클릭하면 압축 파 일이 폴더처럼 Windows 탐색기에서 곧바로 열린다. 1 를 선택하고, 뒤이어 나타나는 창에서 항목에 체크 표시가 되어 있는지 확인한다. 2 버튼을 클릭하면 파일들이 담긴 폴더가 열린다. 3 이곳에서 프로그램을 더블 클릭한다. 이 프로그램에는 디지털 서명이 없기 때문에 그 림 1 8과 같은 경고를 받게 된다. 16 CHAPTER 1

1 8 Image Writer를 실행하면 나타나는 경고 메시지 4 이 도구는 본연의 기능(디스크 장치에 직접 수행하는 쓰기 작업)을 수행하기 위해 저수준 액세스가 필요하다. 윈도는 프로그램이 컴퓨터를 변경하려 한다고 경고하는 것이다. 를 클릭하여 계속 진행한다. 5 그림 1 9와 같은 오류 메시지가 등장할지도 모르겠다. 우리가 테스트를 진행한 두 대 의 컴퓨터에서 이런 오류가 일어났다. 혹시라도 같은 오류가 일어난다면 세상에 나 같은 사람이 또 있구나. 정도로 생각하기 바란다. 1 9 이미지 라이터가 열릴 때 오류가 발생했다. Note 이미지 라이터는 시작할 때만 쓰기 작업을 수행할 SD 카드를 찾는다. 따라서 애플리케이션을 실행하기 전에 SD 카드를 삽입해야지, 거꾸로 하면 SD 카드가 인식되지 않는다. 이미지 라이터가 오래된 버전이라면 일어날 수 있는 버그입니다. 최신 버전에서는 이 버그가 해결되었다고 합니다. SD 17

6 우리의 경우에는 쓰기 작업을 수행할 드라이브가 E:\다. 작업을 할 때는 각 상황에 맞 는 드라이브를 골라야 할 것이다. Device 드롭다운 메뉴가 비었다면, 이미지 라이터 를 닫았다 다시 연다. 가끔씩 이상한 동작을 보일 때가 있다. 올바른 드라이브를 고 르는 일이 얼마나 중요한지는 반드시 인지하고 있어야 한다. 카메라에서 사용하던 SD 카드를 다른 드라이브에 꽂아 두었다가 혹시라도 이 드라이브를 쓰기 작업용으로 잘 못 지정하면, 그동안 쌓인 소중한 추억이 한순간에 사라진다. 생각만 해도 끔찍하다! 7 올바른 장치를 선택하고(확신하지 못하겠다면 를 확인한다), 라즈비안 이미지를 찾 아 선택했다면 Write 버튼을 클릭한다. 상당한 시간이 걸리므로(SD 카드의 속도에 따라 다소 차이가 난다) 잠시 휴식을 취하는 것도 좋겠다. 하지만 진행 속도가 차츰 빨라지 는 특성을 보이니 무조건 답답하게만 생각할 필요는 없다. 그림 1 10은 이미지 라이터 의 동작 모습이다. 그림에서 알 수 있듯, SD 카드에 쓰기 작업을 수행하고 있는 이미 지 파일이 현재로서는 최신 버전의 라즈비안이다. 1 10 이미지를 쓰고 있는 이미지 라이터의 동작 모습 8 완료되면 SD 카드를 꺼내 파이에 끼워 넣는다. 이제 파이를 즐길 시간이다! 지금 당장 시작하려면 첫 시동 절로 페이지를 휘리릭 넘긴다. Note 그림 1-10을 자세히 들여다보면 파일의 확장명이.img임을 알 수 있다. 여기서 흔히 저지르는 실수 가운 데 한 가지는 img 파일이 아닌 zip 파일로 이미지를 쓰려고 하는 것이다(확장명을 제외한 나머지 파일명 이 같으니 세심한 주의가 필요하다). 제대로 된 파일을 선택했는지 다시 한 번 살펴보아야 한다. 이 책을 번역하면서 사용한 라즈비안은 2014년 1월 7일자 버전입니다. 18 CHAPTER 1

dd 이제부터 소개할 내용은 맥 사용자를 위한 것으로, 맥에서도 SD 카드에 이미지를 쓰는 작업이 얼마나 쉬운지 보여주려 한다. 아뿔싸! 그럴 수 없을 것 같다. 간편하고 쉽게 라즈 비안 이미지를 쓸 수 있는 방법이 없어서다. 디스크 유틸리티(Disk Utility)는 여러 면에서 탁 월한 성능을 보이지만, 우리의 표준 이미지 파일을 다룰 방법은 알고 있지 못하다. 이미지 파일을.dmg 파일(맥 고유 이미지 파일 형식)로 변환하려고 시도했지만 이 역시 불가능했다. 문제를 해결하는 데 도움이 될 만한 도구를 다운로드할 수 있지 않을까 하여 웹을 뒤적였 지만 눈에 띄는 것은 하나도 없었다. 기껏 찾아낸 것들은 예외 없이 터미널 작업보다 나은 구석이 하나도 없었다. 그래서 어쩔 수 없이 우리는 손을 고생시키기로 했다. 처음 생각했던 대로 커맨드라인을 사용하는 방법이다. 다만, 우리가 하려는 작업이 무엇인지 구체적으로 깊이 파헤치지는 않 을 것이다. 사용할 명령 대부분이 앞으로 이 책에서 사용할 리눅스 명령들과 기본적으로 같기 때문이다. 지금은 우리를 믿고 따라와 주기 바란다. 우선, 터미널을 열어야 한다. 터미널은 의 에 있다. 앞으로 사용할 명 령을 한군데로 모아 이 절 끝부분에 제공하고자 한다. 직관적인 이해를 돕기 위해서다. 물 론, 시스템 환경이 약간씩 달라 유동적인 부분도 있을 것이다. 터미널을 열면 루트 사용자가 되기 위해서 sudo를 사용해야 한다. 루트 사용자는 윈도 시 스템에서 관리자(Administrator)에 해당한다. 저수준 장치를 다루는 일은 꽤 위험하다. 이는 보안 문제 때문인데, 일례로 바이러스 등이 하드디스크에 직접 쓰기 작업을 하면 곤란하지 않겠는가! 따라서 일반 사용자가 저수준 명령을 직접 실행할 수는 없다. 다시 말해, 우리에게는 라즈비안 이미지를 SD 카드에 직접 쓸 수 있는 권한이 없다. 루트 사용자는 시스템에 무한정 액세스할 수 있으므로, 우리가 원저자의 원고가 오래되어 지금과 많이 달라졌습니다. 맥에도 윈도처럼 GUI 환경에서 작업할 수 있는 도구가 여럿 있습니다. 제이펍 웹 사이트(http://jpub.kr/)의 글로벌 네트워크 카테고리에서 관련 내용을 참고하시기 바랍니다. SD 19

루트 사용자가 된다면 라즈비안 이미지를 SD 카드에 쓸 수 있다. 다음 명령을 실행하면 우 리는 루트 사용자가 된다. sudo -i 명령을 실행하면 루트 사용자에 해당하는 프롬프트가 열리고 슈퍼 사용자 에 걸맞은 권 한이 부여될 것이다. 개별 명령을 입력할 때 sudo를 앞에 붙여 실행할 수도 있지만, 사용 할 명령이 한두 개가 아니므로 지금처럼 하는 것이 한결 편하다. sudo는 처음 실행되면 패 스워드를 물어 온다(늘 사용하던 패스워드). 패스워드로 인증 과정이 통과되면 루트 프롬프 트가 나타난다. Caution 이제부터는 시스템에서 어떤 일이든 할 수 있는 권한이 생겼다. 이는 라즈비안 이미지를 작업할 수 있다 는 뜻도 되지만, 한편으로는 시스템을 망가뜨릴 수 있다는 뜻도 된다. 유닉스 시스템에서 루트는 하려는 일이 무엇인지 스스로 잘 알고 있는 사용자로 인정받은 존재다. 따라서 유닉스는 될 수 있으면 루트의 작 업을 간섭하지 않는다. 다시 말해, 루트로 어떤 명령을 실행할 때 사용자 스스로가 주의를 기울이지 않으 면 시스템이 망가질 수도 있다. 명령을 입력하고 엔터를 누르기 전에 반드시 이중, 삼중으로 명령을 확인 하고 살펴야 한다. 할 일이 끝나면 지체 없이 터미널을 닫는 것도 빠트려선 안 된다. 자, 이제 무엇을 할까? 우선, SD 카드가 시스템에서 어떤 장치로 인식되었는지부터 확인해 야 한다. 만에 하나라도 주 하드디스크를 SD 카드 장치로 오인한다면 생각하기도 싫은 결 과가 발생할 것은 뻔하다. 일반적으로 가정할 수는 있겠지만(가령, /dev/disk0은 시스템 디스크 다), 리스크를 제한하기 위해서라도 원칙을 엄격히 적용하여 전체 과정을 진행할 것이다. 가장 먼저, SD 카드가 맥에 연결되지 않은 상태에서 다음과 같이 mount 명령을 실행한다. mbp:~ root# mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) mbp:~ root# 20 CHAPTER 1

출력 결과는 여러분의 경우와 정확히 일치하지 않고 조금씩 다르다. devfs로 시작하는 행 과 map으로 시작하는 두 행은 운영체제의 일부분이므로 무시한다. 우리가 초점을 맞출 곳은 첫 번째 행, 즉 시스템 디스크를 나타내는 /dev/disk0s2 on /이다. 이 행은 우리가 건 드리면 안 된다는 의미에서 중요하다. 시스템에 따라 다른 행이 더 출력되는 경우도 있을 텐데, 네트워크 드라이브나 다른 디스크 이미지가 연결되었다면 그에 해당하는 내용이 표 시된다. 이 단계에서 특별히 할 일은 없다. 시스템 상태를 파악하자는 것이 우리의 의도다. OK. 이제 SD 카드를 삽입한다. SD 카드는 디지털 카메라에서 곧바로 사용되도록 대개 포맷된 상태로 유통되고는 한다(요즘에는 SD 카드를 다시 포맷하는 카메라가 많다). 파인더의 아래에 그림 1 11처럼 SD 카드가 나타난다. 1 11 파인더에 나타난 SD 카드 SD 카드가 자동으로 마운트되었기 때문에 터미널로 돌아가 mount 명령을 다시 실행하면 출력 결과가 다음과 같이 바뀌게 된다. 다음은 새로 출력된 결과다. mbp:~ root# mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk2s2 on /Volumes/UNTITLED (msdos, local, nodev, nosuid, noowners) mbp:~ root# 새 디스크가 추가되었다고 알린 마지막 행이 우리가 눈길을 줄 곳이다. 여기서는 disk2가 포함된 행인데, disk2가 마운트된 곳(/Volumes/UNTITLED)이 보인다. 바로 이곳에 이미지를 써야 한다. Caution BSD 시스템에서는 디스크를 여러 조각으로 나눈다. 여기서는 마운트된 파일시스템이 disk2s2에 있다. 구체적으로 말하면, disk2, slice2다. 이렇게 구분지어 표시되면 원하는 슬라이스(조각)를 직접 참조할 수 있는데, 우리는 장치 전체에 쓰기 작업을 해야 하므로 /dev/disk2만 알고 있으면 된다. SD 21

한 가지 골칫거리가 있다. SD 카드가 마운트되어 사용할 수 있는 동안에는 SD 카드에 직 접 쓰기 작업을 수행할 수 없다. 파인더에서 SD 카드를 추출하면, 파일시스템이 언마운트 될 뿐만 아니라 장치 자체도 추출된다. 이렇게 되면 우리는 아무것도 할 수 없다. 장치가 존재해야 쓰기 작업을 수행할 수 있기 때문이다. 이 상황을 타개하려면 맥 전용 명령을 사 용하여 수동으로 파일시스템을 언마운트해야 한다. 사용할 맥 전용 명령은 diskutil이다. 맥에도 유닉스에서 사용하는 일반적인 언마운트 명령인 umount를 사용할 수는 있지만(이 에 관해서는 나중에 다루기로 한다) 맥에서 SD 카드를 작업 대상으로 사용하는 순간, umount 는 동작하지 않고 장치가 사용 중이라는 경고가 표시된다. diskutil은 이런 상황에서 장치 를 별문제 없이 언마운트할 수 있다. 다음과 같이 명령을 실행한다. mbp:~ root# diskutil unmount /dev/disk2s2 Volume UNTITLED on disk2s2 unmounted mbp:~ root# 우리는 슈퍼 사용자 권한을 부여받았으므로 쓰기 작업의 대상인 SD 카드 장치를 한쪽 구 석으로 격리시켜, 카드 자체에 쓰기 작업을 수행할 수 있도록 파일시스템을 언마운트했다. 이제 남은 일은 실제로 쓰기 작업을 수행하는 것뿐이다. 이 작업에 사용할 도구는 dd다. dd는 장치에서 읽어다 장치로, 쓰는 일만 담당하는 다분 히 고리타분한 도구다. 파일시스템에도 관심이 없고, 하드디스크와 SD 카드가 어떻게 다 른지 알고 있지도 않다. 어디에서 읽어다 어디로 쓰는지 신경조차 쓰지 않고 읽기와 쓰기 를 수행할 뿐이다. 우리는 이런 식의 유닉스 원칙을 뒤에서 다시 다룰 것이다. 지금으로서 는 dd의 장점만 이해하고 쓰기 작업을 계속 진행하기로 하자. dd를 사용하려면 두 가지를 알고 있어야 한다. 읽어올 곳(if = 인수)과 쓸 곳(of = 인수)이다. 쓸 곳(/dev/disk2)은 정해졌는데, 읽어올 곳은 어떻게 될까? 앞에서부터 차근차근 진행했다 면 라즈비안 이미지는 홈 폴더의 에 자리를 잡고 있을 것이다. 이 위치를 터미널에 간편하게 입력할 수 있는 방법이 있다. 우선, 다음을 입력한다(엔터는 아직 누르지 않음). dd if= 22 CHAPTER 1

파인더에서 또는 이미지 파일이 있는 폴더로 이동하여, 이미지 파일을 클릭한 채 터미널 창으로 끌고 온다. 입력하지도 않았는데 이미지의 전체 경로가 자동으로 dd if= 오 른쪽으로 들어갔을 것이다. 결과는 다음과 비슷하다. dd if=/users/myuser/downloads/2012-08-16-wheezy-raspbian.img 이렇게 해서 입력 파일이 지정되었다. 이제 쓸 곳을 지정한다. 쓸 곳은 앞에서 살펴본 대 로 /dev/disk2다. 여기에 bs=512를 추가할 텐데, 이 때문에 dd가 이미지를 쓸 때 한 번에 쓰 는 조각의 크기가 더 커진다(쓰기 작업이 완료되기까지 걸리는 시간이 줄어든다). 전체 명령은 다음과 같다. dd if=/users/miggyx/downloads/2012-08-16-wheezy-raspbian.img of=/dev/disk2 bs=512 이 명령이 수행되는 데는 적지 않은 시간이 소요될지도 모른다(분 단위가 아니라 시간 단위일 수도 있다). 이미지의 크기가 2GB인데다, 카드 리더의 평균적인 속도가 변변치 못하기 때문 이다. 우리는 USB 어댑터를 최신 맥북 프로에 장착하여 작업했는데, 두 시간 가량 걸렸다. 쓰기 작업이 완료되면 커맨드 프롬프트로 돌아온 것을 확인할 수 있을 것이다. OK! 지금까지의 과정이 윈도에서 진행했던 것만큼 쉽지도 않고, 직관적이지도 않다고 인 정한다. 하지만 커맨드라인에서 작업한 전체 과정을 들여다보면 의도한 작업을 정확하고 군더더기 없이 진행할 수 있다는 사실을 알 수 있을 것이다. 여러 장점을 누릴 수 있는 커 맨드라인 작업에 관해서는 3장에서 다시 다루고자 한다. 다음은 앞에서 언급한 대로 과정 전체를 진행하면서 실행한 명령을 한데 모은 것이다. 지 금까지 설명한 부분 중에서 미흡한 점이 있다거나, 명령의 실행 결과에 미심쩍은 구석이 있다면 다음 내용을 참고삼아 비교해 보기 바란다. SD 23

Last login: Wed Sep 19 13:48:40 on ttys000 mbp:~ pmembrey$ sudo -i Password: mbp:~ root# mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) <<SD Card inserted>> mbp:~ root# mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk2s1 on /Volumes/UNTITLED (msdos, local, nodev, nosuid, noowners) mbp:~ root# diskutil unmount /dev/disk2s1 Volume UNTITLED on disk2s1 unmounted mbp:~ root# dd if=/users/pmembrey/downloads/2012-08-16-wheezy-raspbian.img of=/dev/disk2 bs=512 mbp:~ root# 자, (힘겹게) 준비한 SD 카드를 가지고 이제 다음 단계로 나아가자. 마라톤과도 같은 과정이었지만, 한 번은 거쳐야 하는 것을 무사히 넘겼으니 크게 숨을 내 쉬어 보자. 요령만 파악하면 유동적인 부분에도 쉽게 적용할 수 있을 것이다. 따끈따끈한 SD 카드를 파이에 넣고 드디어 파이를 시동해 보자. 키보드와 마우스, 모니터 를 연결한 뒤, 마지막으로 전원 케이블을 연결한다. 별다른 문제가 없다면 그림 1 12와 비 슷한 화면이 등장할 것이다. 24 CHAPTER 1

1 12 파이의 첫 시동. 살아있네! 비슷한 화면이 등장한다면(기쁨의 눈물을 흘릴 필요까지야...) 파이가 시동되어 동작하는 것이 다! 혹시 문제가 발생했다면 몇 가지 원인을 찾아보자. 맨 먼저 확인할 것은 파이의 빨간 LED에 멋지게 불이 들어왔는지다. 당연한 이야기로 생 각하겠지만, 분명히 첫 번째로 확인할 것이라고 언급했지만, 그러지 않는 실수는 의외로 잦다. 분명 여러분의 책상도 우리처럼 이런저런 케이블이 주렁주렁 늘어져 있을 테니, 케 이블을 엉뚱한 커넥터에 꽂는다거나 전원 케이블에 연결된 전원이 실은 꺼져 있다(가령, 일 부 노트북은 대기 모드로 진입할 때 USB 장치를 끈다)고 해도 외관상 별 티가 나지 않을 것이 다. 어찌 됐든, 가장 먼저 확인할 곳이 바로 전원 관련 장치들이다. 실수로라도 그런 문제 들이 생길 때 알아챌 수 있는 사람은 당사자뿐이라는 사실을 염두에 두어야 한다. 도움을 구한답시고 여러 포럼 같은 곳에 질문을 게시했다가 어느 순간 어라, 케이블이 빠져 있 네! 라는 말이 툭 튀어나올 때가 적지 않다. 두 번째로 확인할 것은 TV 또는 모니터의 입력 단자다. 요즘 TV는 대개 입력 단자가 여럿 이고, 모니터의 디폴트 입력 단자 또한 HDMI가 아닌 경우도 드물지 않다(우리의 모니터도 그렇다). 다만, 그런 경우 우리가 어떻게 하라고 정확하게 말해주기 어렵다. 사용하는 장비 에 따라 상황이 다르기 때문이다. 그래도 이와 관련된 문제는 해결하기가 어렵지 않으니 25

그나마 다행이라고 하겠다. 입력 단자를 하나씩 테스트하면서 파이가 켜지는지 확인만 하 면 될 일이다. 한 가지 흥미로운 사례가 있다. TV에는 분명히 HDMI2로 표시되었는데 막 상 파이를 연결하고 보니 HDMI3 포트에 연결되었다는 것이다. 왜 그런지 우리로서도 알 길이 없다. 파이에 문제가 있는 줄 알고 TV의 입력 단자를 하나씩 바꿔가며 테스트해 보 지 않은 탓이니, 답답함과 짜증으로 지나간 시간이 아까울 뿐이다. 세 번째로 확인할 것은 SD 카드를 슬롯에 끝까지 밀어 넣었느냐다. 파이는 SD 카드를 인 식하여 시동하지 않는 이상, 글자 그대로 아무 일도 하지 않는다. 만일 시커먼 화면만 보인 다면 SD 카드를 슬롯에 끝까지 밀어 넣지 않아 파이가 SD 카드를 인식하지 않은 탓일 가 능성이 크다. SD 카드를 슬롯에 끝까지 밀어 넣었는데도 마찬가지 증상이 나타나면, SD 카드에 이미지를 쓸 때 오류가 있었다고 생각해야 한다. 그럴 때는 페이지를 뒤로 넘겨 마 지막 절을 다시 한 번 훑어보고 SD 카드를 다시 준비하는 것이 좋다. 그래도 문제가 해결 되지 않으면, 다시 말해 케이블을 모두 확인했고, 입력 단자 또한 정상적으로 동작하며, 파이의 LED에 불이 들어온다면 그때부터는 정말로 힘들어진다. 화가 날지도 모르겠지만, 우리가 골칫거리 파이를 직접 보지 않는 이상 아무런 도움도 주지 못한다. 어둠 속에서도 언제나 희망은 있듯이, 여러분 또한 마찬가지다. 라즈베리 파이 커뮤니티의 수많은 사람에 게 도움을 요청할 수 있다. 라즈베리 파이 공식 포럼에 방문하려면 www.raspberrypi.org에 서 Forum 링크를 클릭한다. 웹 페이지 상단 메뉴에 해당 링크가 있다. 포럼 첫 페이지의 Using the Raspberry Pi 아래에 몇 가지 주제가 보일 것이다. Troubleshooting을 클릭해도 되고, 상단의 검색을 활용해도 된다. (분명히 누군가에게는 의미 있는 내용이겠지만, 적어도 우리에게는) 이해할 수도 없는 텍스트가 쉴 새 없이 화면에 쏟아져 나오다 그림 1 13과 비슷한 설정 화면이 마침내 모습을 드러낸다. 바로 이곳에서 파이를 여러 목적으로 사용할 수 있도록 설정한다. 다음 번에 파이가 시동 될 때는 산더미 같은 텍스트가 아니라 멋진 배경 화면이 화면을 가득 메우게 할 수 있다. 26 CHAPTER 1

1 13 첫 시동: 파이를 설정할 시간 여기서는 기본적인 설정 옵션만을 다룰 것이다. 언제든지 여기로 돌아와 필요한 옵션을 변경하여 파이를 재시동할 수 있으니, 어서 모니터 앞에 앉아 옵션 하나하나씩 파헤치길 바란다. 우선 파이가 데스크톱으로 직행할 수 있도록 3번 Enable Boot to Desktop/Scratch 옵션에서 그래픽 데스크톱을 선택한다. 첫 번째로 관심을 둘 옵션은 Expand Filesystem이다. 그 이름에서 알 수 있듯, 이 옵션은 파일시스템을 SD 카드 전체로 확장한다. 우리가 다운로드한 이미지는 압축을 풀면 크기 가 대략 2GB다. 2GB짜리 파일을 SD 카드에 쓴 것이다. 사용하고 있는 SD 카드가 8GB짜 리라고 해도 처음 2GB 이상은 사용할 수 없다. 따라서 파일시스템을 확장하여 사용할 수 있는 공간을 늘려줘야 한다. 이렇게 된 데는 이유가 있다. 사람들이 사용하는 SD 카드는 용량이 제각각인데, 각각의 용량에 맞춰 이미지 파일을 만들 수는 없으므로 동일한 이미 지를 설치한 뒤 SD 카드에서 남은 용량으로 파일시스템을 확장하면 일이 간단해진다. 옵 션을 선택할 때는 위, 아래 화살표키를 사용하여 해당 옵션으로 이동한 뒤 엔터를 누르면 세부 옵션이 나타나지만, 파일시스템을 확장할 때는 1번 옵션에서 엔터만 누르면 된다. 새 로 시동하면 파일시스템의 크기가 재조절된다는 메시지가 나타날 것이다. 엔터를 누르면 다시 메인 메뉴로 돌아온다. 27

다음 설정할 옵션은 키보드다. 메뉴에서 International Options를 선택하면 세부 메뉴가 나 타나는데, I3번 Change keyboard Layout을 선택한다. 라즈비안에는 영국 키보드 레이아웃 이 디폴트로 적용되었다. 여기서 한 가지 주의할 점이 있다. 라즈비안은 실로 다양한 키보 드를 지원하고 있는데, 이것이 오히려 혼동을 유발할 수도 있다. 가령, 여러분이 사용하고 있는 키보드가 제네릭 104 키보드인지 105 키보드인지 구별할 수 있는가? 우리도 무엇이 다 른지 알지 못한다. 그래서 우리는 그림 1 14와 같이 디폴트인 Generic 105 key (Intl) PC를 선 택하기로 했다. 1 14 키보드 고르기 정확한 모델을 찾았다면 주저하지 말고 해당 키보드를 선택한다. 그러나 키보드의 종류를 확신하지 못할 때는 우리를 따라 같은 키보드를 선택하는 것이 좋다. 키보드를 선택했으 면 엔터를 누르고 다음 화면으로 이동한다. 이제 사용할 키맵을 골라야 한다. 디폴트는 영국(UK) 키맵이므로 각 상황에 맞는 키맵을 선택해야 할 것이다. 맨 아래에 보이는 Other를 선택하고 엔터를 누른 뒤, 원하는 키맵을 선택한다. 다시 한 번 엔터를 누르면 다음 화면으로 이동한다. 28 CHAPTER 1

1 15 키보드 레이아웃 고르기 이어서 나타난 메뉴(그림 1 16)에서 무엇을 선택해야 할지 모르겠어도 자신을 학대할 이유 는 없다. 그런 사람이 꽤 있어서 하는 말이다. 대개의 경우, 키보드 디폴트만으로도 충분 하다. 선택한 키보드에 이미 특수키를 누를 수 있는 키 조합이 제공되기 때문이다. 이 옵 션을 변경해야 하는 사람이라면 무엇을 왜 변경해야 하는지 이미 알고 있다는 뜻이므로, 모르고 있는 사람이 굳이 알려고 할 필요도 없고 디폴트 옵션을 변경할 이유도 없다. 미 심쩍더라도 그냥 엔터키를 누른다. 뒤이어 나타난 메뉴(그림 1 17)도 전작과 마찬가지다. 다 시 한 번 엔터를 누른다. 디폴트 옵션이면 충분하다. 1 16 키보드 설정 커스터마이즈하기 29

1 17 키보드 설정 커스터마이즈하기 - 계속 다음 메뉴(그림 1 18)는 오래된 리눅스 사용자에게만 의미가 있다. 과거에는 GUI에 문제가 있을 때 Ctrl + Alt + 백스페이스를 눌러 GUI 세션을 재시동 할 수 있었다. GUI가 발전을 거듭하여 안정성을 담보하고, 리눅스가 주류로서 세를 불리면서 이 기능은 별 효용성을 띠 지 않게 되었다. 우리도 이 기능이 유용하다고 생각할 때가 있지만 실제로 사용하지 않은 지 꽤 되었다. 디폴트는 No다. 사용자들 대부분 이 기능을 사용할 일이 없을 것이다. 이 기 능이 마음에 들어 꼭 한번 써보고 싶다면, 언제든지 이 설정 화면으로 돌아와 해당 기능을 활성화할 수 있다. 디폴트를 그대로 사용하려면 엔터만 누른다(다시 메인 메뉴로 복귀한다). 1 18 X 서버 킬 스위치를 활성화하시겠습니까? 30 CHAPTER 1

그 다음은 pi 사용자의 계정에 쓰일 패스워드를 변경하는 옵션이다. pi는 이 책 전체에서 사용할 계정이고, 특별한 경우를 제외하고는 파이에 필요한 유일한 계정이기도 하다. 처음 에는 디폴트 패스워드인 raspberry로 설정되어 있다. 이 패스워드로 누구나 로그인할 수 있 으므로, 무단 침입자로부터 파이를 지켜내려는 의지가 강하지 않더라도 나중을 위해 패스 워드를 변경해두는 것이 여러모로 좋다. 파이의 활용도가 높아져 인터넷을 통해서도 파이 에 액세스할 수 있게 되고, 어쩌다 보니 디폴트 패스워드를 그대로 사용하게 될지도 모르 겠다. 좋지 않은 일이 일어나지 말라는 법은 없다. 그러니 지금 기회에 패스워드를 꼭 변경 하도록 하자. Change User Password를 선택하고 엔터를 누른다. 그림 1 19와 비슷한 화면 이 등장할 것이다. 1 19 패스워드를 설정할 시간 설정 도구는 표준 명령인 passwd를 실행한다. 그 때문에 깔끔한 메뉴가 아니라 텍스트 프 롬프트가 화면에 나타난다. 새로운 패스워드를 입력하고(대소문자를 구별한다. HeLLo와 hello, Hello는 서로 다르다) 엔터를 누른다. 입력되는 패스워드는 보안 때문에 화면에 나타나지 않는 다. 패스워드를 화면에 표시할 때 흔히 통용되는 애스터리스크(*)도 표시되지 않으므로, 실 제로 패스워드를 입력하는지도 겉으로만 보아서는 알 수 없다. 패스워드를 입력하고 엔터를 누르면 다시 패스워드를 물어온다. 엔터를 누르면 설정 메뉴로 돌아간다(반갑지 않은가?). 31

다음은 로케일 설정이다. 사용자의 지역을 리눅스에 알려주면 유용한 여러 가지를 결정 할 수 있다. 예를 들면, 세 자리마다 어떤 구분 기호를 넣는지, 통화 기호는 무엇을 사용 하는지 등이다. 가령, 미국에서라면 1,000.00으로 쓰겠지만, 유럽에서는 대부분 1.000,00 으로 쓴다. 어떤 방식을 사용하든 상황에 맞으려면 지역을 올바로 설정해야 한다. Internationalisation Options를 선택한 뒤, Change Locale을 선택한다. 상당히 긴 로케일 리스트가 나타난다(그림 1 20 참고). 각 항목의 처음 두 글자는 언어를 가 리키고, 그 다음 두 글자는 지역을 나타낸다. 가령, en_us는 미국의 영어 사용자에 커스터 마이즈된 로케일이다. 반면, en_gb는 영국의 영어 사용자를 위한 로케일이다. 이렇게 언 어와 지역이 짝을 이루고 있으므로 사용자에게 알맞은 로케일을 구체적으로 선택할 수 있 다. 선택할 때는 스페이스 바를 사용한다. 같은 로케일의 ISO 8859와 UTF 8 버전 둘 다 필 요하면 그렇게 선택해도 된다. 다만, 모든 로케일을 전부 선택하면 파이가 모든 로케일 정 보를 일일이 만드느라 시간이 매우 오래 걸린다고 경고한다. 사실, 우리는 이 옵션을 선택 했다가 로케일 여러 가지를 생성하는 데만도 엄청난 시간이 걸려 아예 전원 케이블을 뽑아 버리기도 했다. 어찌 됐든 로케일을 선택한 뒤에는 탭을 눌러 Ok 버튼으로 이동한다. 이어 서 엔터를 누르면 다음 화면으로 이동한다. 바뀐 화면에서는 디폴트 로케일을 선택해야 한 다(그림 1 21 참고). 디폴트 로케일을 선택하고 엔터를 누르면 다시 주 설정 메뉴로 돌아간다. 1 20 사용할 로케일 선택하기 32 CHAPTER 1