Raspberry Pi Installation Guide
이 문서는 라즈베리 파이(Raspberry Pi) 운영체제 설치와 기본 환경 설정에 대해 소개합니다. 라즈베리 파이는 영국의 라즈베리 파이 재단이 만든 소형 컴퓨터입니다. 2016년 6월 기준으로 8개의 모델이 출시되었으며, 가격은 25~35$로 아주 저려하게 보급하고 있습니다. 실제로 가격 대비 성능은 매우 우수합니다.
라즈베리 파이는 교육 목적으로 개발되었으나 최근 Internet of Things(IoT)의 이슈로 일반 대중에게도 많이 보급되어 있습니다. 실제로 시중에 라즈베리 파이를 활용한 다양한 예제를 담은 서적도 다수 출간되고 있습니다.
라즈베리 파이를 구동하는 운영체제는 리눅스를 기반으로 하였으나, 라즈베리 파이 2를 출시한 시점에 마이크로소프트의 윈도우도 지원한다고 발표했습니다.
라즈베리 파이는 매력적인 시스템입니다. 이 문서에서 라즈베리 파이에 대한 이야기를 자세히 다루기는 분량상 어려울 것 같습니다. 라즈베리 파이에 대한 더 자세한 내용은 다음 링크에서 확인하실 수 있습니다.
운영체제 이미지 다운로드 및 제작
라즈베리 파이를 구동하기 위한 운영체제를 설치합니다.
먼저 라즈베리 파이 공식 재단 홈페이지에서 운영체제의 이미지 파일을 내려받기합니다. 이 문서에서는 라즈비안(RASPBIAN)을 내려받기 하겠습니다. 라즈비안의 가장 최신버전은 다음 링크에서 내려받을 수 있습니다.
이 파일을 내려 받은 후 압축을 해제하면, .img
파일(2016년 6월 1일 기준으로 최신 버전의 파일 이름은 2016-05-27-raspbian-jessie.img
)이 추출됩니다. 이 파일을 이용하여 라즈비안 설치 파일을 생성합니다. .img
파일은 이미지 버닝 도구를 활용하여 설치 파일을 제작할 수 있습니다.
이 문서에서는 라즈베리 파이 재단에서 소개하고 있는 프로그램(Win32 Disk Imager)을 활용하여 제작하겠습니다. 최신 버전은 다음 링크에서 내려받을 수 있습니다.
Win32 Disk Imager 프로그램을 설치한 후, 이미지를 선택하고 SD 카드 드라이브를 선택한 후 버닝하면 됩니다. 버닝이 완료되면 운영체제가 설치된 것입니다. 프로그램 설치 과정과 이미지 버닝 과정이 복잡하지 않으므로 자세한 설치 과정은 설명하지 않겠습니다.
부팅과 기본 설정
운영체제를 설치한 메모리를 라즈베리 파이에 부착한 후, 전원을 연결하면 자동으로 부팅 과정을 진행합니다. 그러므로 전원을 연결하기 전에 키보드와 마우스, HDMI 케이블, 그리고 무선 랜 카드 등을 미리 연결하고 전원을 연결하는 것을 추천합니다.
부팅이 정상적으로 완료되면, 자동으로 X-Windows 환경으로 진입합니다. 단, 예전 버전을 사용하면 X-Windows 환경으로 진입하지 않는 환경도 있습니다.
터미널을 오픈한 후, 다음 명령어를 입력합니다.
pi@raspberrypi:~
$ sudo raspi-config
가장 먼저 수행할 작업은 Expand Filesystem
명령을 수행합니다. 이 과정은 라즈베리에 설치한 메모리의 모든 공간을 활용하기 위해서 진행합니다.
두 번째로 입력 장치의 설정을 변경합니다. Internationalisation Options
명령을 실행한 후, 다음 순서대로 진행합니다. Change Keyboard Layout Set the keyboard layout to match your keyboard > Generic 104-key PC > Other > Korean > Korean - Korean (101/104 key compatible)
과정으로 진행합니다.
이 과정을 마친 후, Finish
버튼을 누르고 리부팅합니다.
Wi-Fi 설정하기
라즈베리 파이를 무선 환경에서 사용하기 위해 다음 명령을 입력합니다.
pi@raspberrypi:~
$ sudo iwlist wlan0 scan
이 명령이 정상적으로 수행되면, Network Interface Card(NIC)가 스캔한 Access Point(AP)가 출력됩니다. 우리가 연결할 AP의 Service set Identifier(SSID)를 확인합니다.
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
SSID 항목에는 AP의 식별자를 입력하고, PSK에는 AP에 접속하기 위한 비밀번호를 입력합니다.
network={
ssid="AP_NAME"
psk="AP_PASSWORD"
}
Wi-Fi 연결을 확인한 후, 정상적으로 접속이 안되면 다음 명령을 실행합니다.
pi@raspberrypi:~
$ sudo ifdown wloan0
pi@raspberrypi:~
$ sudo ifup wlan0
iptime N500U Device Driver Installation Guide
디바이스 드라이버 내려 받기
pi@raspberrypi:~ $ wget https://github.com/lwfinger/rtl8192du/archive/master.zip
내려받은 디바이스 드라이버 압축 해제하기
pi@raspberrypi:~ $ unzip ./master.zip
압축을 해제한 디렉토리에서 Makefile을 텍스트 편집기로 열고,
/ARCH
를 검색합니다. 이때,ARCH ?= $(SUBARCH)
를 발견하게 되는데, 이 부분을ARCH=arm
으로 변경합니다.디바이스 드라이버를 컴파일 하기 전에 시스템 환경을 확인해야 합니다. 시스템 정보를 확인하기 전에 시스템에 설치된 패키지 인덱스와 패키지 정보를 업데이트 합니다.
pi@raspberrypi:~ $ sudo apt-get update pi@raspberrypi:~ $ sudo apt-get upgrade
현재 시스템의 커널 버전을 확인합니다. 2016년 6월 기준으로 최신 버전의 라즈비안 커널 버전은
4.4.11-v7+
입니다. 커널 버전을 확인하는 방법은 다음과 같습니다.pi@raspberrypi:~ $ cd /lib/modules/ $ ls
라즈베리 파이 커널과 펌웨어 업데이트를 위해 환경 구축(컴파일 환경)이 필요합니다. 컴파일 환경을 확인하기 위해 다음 명령어를 입력합니다.
pi@raspberrypi:~ $ gcc --version
이후 단계를 진행하려면
gcc-4.7
버전을 이용해야 합니다. 그렇지 않으면 정상적으로 이후의 작업을 완료할 수 없습니다. 그러므로 다음 명령어를 이용하여 gcc 버전을 다운그레이드합니다.pi@raspberrypi:~ $ sudo apt-get install dkms build-essential pi@raspberrypi:~ $ sudo apt-get install bc pi@raspberrypi:~ $ sudo apt-get install gcc-4.7 g++-4.7
7단계가 완료되면 다음 명령을 활용하여 라즈베리 파이를 업데이트하고 시스템을 다시 시작합니다. 만약 라즈비안 커널 버전을 확인(
uname -a
)한 후, 다음 경로에 알맞은 파일이 없으면 이 단계를 생략합니다.pi@raspberrypi:~ $ uname -a $ sudo rpi-update
커널 버전을 확인합니다. 2016년 6월 1일 기준으로 8단계가 완료되면
4.4.11-v7+
로 갱신됩니다.pi@raspberrypi:~ $ cd /lib/modules pi@raspberrypi:~ $ ls
다음 웹 사이트에 접속해서 커널 헤더를 내려 받습니다. 반드시 9단계에서 확인한 커널 버전으로 내려 받아야 합니다. 다음 명령은 커널
4.4.11-v7+
의 예제입니다.pi@rpi:/lib/modules/4.4.11-v7+ $ sudo wget https://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-4.4.11-v7%2B_4.4.11-v7%2B-2_armhf.deb
다음으로 2016년 6월 기준 최신 버전에서 디바이스 드라이버를 컴파일하면 오류가 발생합니다. 이 문제를 쉽게 해결하기 위해 라즈베리 파이의 소스를 갱신하겠습니다. (8단계 진행을 생략했으면, 이 단계도 생략합니다).
pi@raspberrypi:~ $ sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod +x /usr/bin/rpi-source && /usr/bin/rpi-source -q --tag-update pi@raspberrypi:~ $ rpi-source
설치된 소스코드를 삭제하고, 이전 단계에서 받은 소스코드로 업데이트하겠습니다.
pi@raspberrypi:/usr/src $ sudo rm -rf linux-* pi@raspberrypi:/usr/src $ sudo cp -rf ~/linux-???형식으로 생성된 디렉토리 linux-headers-4.4.11-v7+
다음 명령을 실행합니다. 수행이 완료된 후, 에러 메시지가 없는지 확인합니다.
pi@raspberrypi:/lib/modules/4.4.11-v7+ $ sudo dpkg -i linux-headers-4.4.11.-v7+_4.4.11-v7+-2_armhf.deb
11단계가 정상적으로 완료되면, /lib/modules/4.4.11-v7+에 빌드(build) 디렉토리가 생성되었는지 확인합니다.
디바이스 드라이버의 압축을 해제한 디렉토리로 이동한 후, 다음 명령을 수행합니다.
pi@raspberrypi:~/rtl8192du-master $ sudo make
ls
명령을 입력하여 디바이스 드라이버가 제대로 컴파일 되었는지 확인합니다. 정상적으로 컴파일이 완료되었다면8192du.ko
파일이 생성됩니다.
15단계에서
8192du.ko
파일이 정상적으로 생성되었으면 다음 명령을 수행합니다.pi@raspberrypi:~/rtl8192du-master $ sudo make install
라즈베리 파이를 부팅할 때, 이 디바이스 드라이버 모듈이 시스템에 등록되도록 설정하겠습니다.
/etc/modules
파일의 제일 마지막에 8192du를 입력한 후, 시스템을 다시 시작합니다.pi@raspberrypi:~ $ sudo vi /etc/modules
dmesg를 입력하여 부팅할 때, 출력된 커널 메시지를 확인하거나 lsmod를 입력하여 모듈에 정상적으로 등록되었는지 확인합니다. 정상적으로 등록되었으면 시스템에 디바이스(iptime N500U)를 장착합니다.
ifconfig
를 입력하여 디바이스(iptime N500U)가 정상적으로 등록되었는지 확인합니다.