기본 콘텐츠로 건너뛰기

추천 가젯

[Ethics–Focus] 중학교 도덕 ②: II. 우리 · 타인과의 관계 / III. 사회 · 국가 · 지구 공동체와의 관계

개발일지 1일차: 리눅스의 협곡에 오신 것을 환영합니다


본인 김쿼티, 생존 신고합니다.


몇 달 전에 이런 놈을 하나 샀는데요,




라즈베리 파이라는 겁니다. 먹는 거 아닙니다


생각해 보니 그때가 올해 4월 즈음이었죠. 약 3개월간 방치되던 라즈베리 파이를 드디어 개봉했습니다.


라즈베리 파이가 뭔지 모르시는 분들을 위해 설명을 간단히 하자면, 소형 컴퓨터 보드입니다. 우리가 흔히 사용하는 데스크톱 본체를 줄이고 줄이고 줄여서 만든 것이 라즈베리 파이라는 거죠.



라즈베리 파이로 개발하는 하루하루의 고통을 블로그에 전해드리고자 합니다. 일주일에 4~5일 정도 개발일지를 연재할 예정이며, 정확한 연재일과 시간은 정해진 바 없습니다. 그냥 올리고 싶은 대로 올리는 거지 뭐 그럼 일지가 아니잖아


따라서 이 '라즈베리 파이 개발일지' 시리즈는 여러분께 뭔가 알려드리기보다는 철저히 제 중심으로 쓸 예정입니다. 일종의 일기인 셈이죠.


도움의 손길을 건네고 싶으신 분들은 댓글로 저를 구원해 주시면 되겠습니다.



먼저 라즈베리 파이를 산 궁극적인 목표는 오직 NAS(=개인용 클라우드) 미디어 센터 구축입니다. 앞으로 약 15일간 이 짓을 할 예정이며, 개발을 한 날은 개발일지를 작성하여 올릴 계획입니다.





0. 개발에 앞서서

라즈베리 파이 개발을 위해서는 모니터도 필요하고, HDMI 케이블도 필요하고, 그게 아니면 USB 시리얼 케이블이 필요하다 하던데...



그래서 우리 개발의 동반자는 엄선해서 최소한으로만 데려왔습니다. 복잡한 건 싫으니까요.





몇 년된(= 언제 죽을지 모르는) 삼성 8GB 최소 사양 메모리 SD와 집 앞 다이소에서 2,000원에 산 마이크로 SD 카드 리더입니다. 다이소 치곤 꽤 품질이 나쁘지 않더군요.

OS를 구동하는 유일한 통로가 바로 마이크로 SD 카드입니다. 소형 컴퓨터다 보니 전력이 USB를 돌릴 만큼 충분히 공급이 되지 않기 때문인 것으로 추정됩니다.


그리고 무려 배그도 돌아가는 제 자랑스러운 노트북 컴퓨터와 함께합니다. 사실 최하옵에 쿨링팬 풀가동해서 겨우 돌아간다 카더라

제 컴퓨터와 라즈베리 파이 사양은 글 맨 아래에 적어놓을 테니 참고하실 분들은 참고하세요.



1. 라즈비안(Raspbian) 설치하기

준비는 끝났고, 이제 본 과정입니다.

라즈비안은 라즈베리 파이에서 사용하는 운영체제인데, 갤럭시 스마트폰에서는 안드로이드 OS가 돌아가고, 매킨토시에서는 맥 OS가 돌아가듯, 라즈베리 파이에서는 라즈비안이 돌아가는 셈이죠.

먼저 라즈베리 파이 공식 홈페이지에서 라즈비안을 받았읍니다.


참고로 저는 왼쪽에 있는 'With Desktop' 판을 받았습니다. 용량이 큰 게 뭐든 많이 들어가 있지 않을까요... 기능도 많을 테고. 이 운영체제를 SD 카드에 옮길 겁니다.


디스크 유틸리티에서 SD 카드를 포맷하였읍니다.
일단 안전빵(?)으로 형식은 FAT32로 했습니다.
그 전에 포맷도 해 두고,


Etcher라는 프로그램도 다운로드받았습니다. 일반적인 방식 복붙 으로 이동하면 안 된다 하더라구요.

구글링을 해 보니까 SD 카드를 굽는 과정에서 대부분 터미널을 쓰시던데, 저는 귀찮은 관계로 프로그램을 사용하기로 했습니다. 솔직히 터미널 쓰면 너무 오래 걸리고, 복잡하고, 어렵고...

짤 재탕 다들 처음 보는 척 하자구요...
이게 그 Etcher라는 프로그램인데요, 말 그대로 SD 카드를 굽는다는 뜻입니다.
여기서 하라는 대로만 하면 이렇게 자연스럽게 SD 카드 굽는 작업이 끝납니다.


이렇게 드디어 1단계가 끝났습니다. 이제 여러분의 메모리 카드를 라즈베리 파이에 꽂으면 라즈베리 파이를 돌릴 수 있는 거죠!

이제 준비 작업은 거의 끝나간다고 생각했었습니다. 그때까지는.



2. 라즈베리 파이 부팅하기

라즈비안를 메모리 카드에 구워봤습니다.
조오씁니다. 아주 잘 되었네요.


이제 본격적으로 라즈베리 파이 부팅을 하기에 앞서서 저는 몇 가지 작업들을 해 주었습니다.

앞에서 말했듯이 우리는 모니터 따위는 없이 진행한다고 밝혔기 때문에, 다른 컴퓨터에서 라즈베리 파이에 원격으로 접속해야 합니다. 그걸 가능케 하는 것이 SSH라는 것이죠.
텍스트 편집기에 들어가서 'ssh'라는 빈 문서를 생성한 다음에


여기서 확장자(사진에서 하늘색으로 되어 있는 부분)를 떼 주면...

뙇! 하고 이렇게 됩니다.

그리고 config.txt라는 파일이 있는데 여길 들어가서




맨 끝에 'dtoverlay=dwc2'라는 코드를 추가했습니다.


또 cmdline.txt라는 파일에 들어가서
이렇게 좀 고쳤습니다.


이제 라즈베리 파이 부팅을 위한 라즈비안의 모든 준비는 끝났습니다.




라즈베리 파이에 전원을 공급하고 메모리 카드를 꽂아주면


이렇게 불이 들어오면서 부팅이 됩니다. 된다구요!

사진에는 없지만 이후에 라즈베리 파이는 제 노트북에 랜선을 연결해서 인터넷을 공급했습니다. 물론 공유기와 직접 연결해도 되지만 그건 너무 귀찮으니까...

이렇게 2단계가 끝났습니다.



3. 라즈베리 파이 로그인하기

이제 이 상태에서 라즈베리 파이에 로그인을 해 봅시다.


SSH 접속은 "아이디"@"호스트" 커맨드로 하는데, 초기 상태의 라즈베리 파이의 ID는 pi이고 로컬로 연결된 라즈베리 파이에 접속하는 것이므로 raspberrypi.local을 호스트로 쓰면 될 것 같네요.

먼저 맥 터미널에 들어가서 'ssh pi@raspberrypi.local'라고 입력했더니
웬 알 수 없는 영어들이 나옵니다. 해석하자면 'raspberrtpi.local은 인증되지 않은 호스트입니다. 그래도 계속하시겠습니까?'라는 뜻인데요, 당연히 해야 할 거 아닙니까?

via Kingsman: The Secret Service

터미널에 'yes'를 입력하게 되면

라즈베리 파이의 비밀번호를 묻고, 여기에 초기 비밀번호인 raspberry를 입력하면


로그인이 끝납니다! 네, 끝난 거예요. 자세히 보면 터미널이 실행되고 있는 주소가 someones-macbook-pro에서 pi@raspberrypi로 바뀐 것을 볼 수가 있죠.



4. 네트워크 연결하기

언제까지나 유선랜을 쓸 수는 없으니 네트워크 연결을 설정해 줍시다.


sudo nano /etc/wpa_supplicant/wpa_supplicant.conf를 명령에 쳐줍시다. 

sudo는 앞으로 자주 보게 될 코드인데요, 관리자(Super User) 권한으로 명령을 한다(DO)는 뜻이죠. 그래서 Super User DO, SUDO.

nano는 터미널에서 사용할 수 있는 문서 에디터입니다. 그래픽이 잘 되어 있어서 쓰기 좋습니다. 물론 가장 대중적인 에디터는 vi이지만, vi는 쓰기 어려우므로 패—쓰합시다. 그냥 nano 쓰세요. 그래픽도 훨씬 더 좋습니다.
어쨌든 nano "파일 경로" 명령은 해당 경로에 있는 문서를 nano 에디터로 열라는 뜻입니다.

wpa_supplicant.conf 파일은 와이파이 연결을 설정하는 파일입니다. 우리는 이 문서에 우리가 쓸 와이파이에 대한 정보를 작성할 겁니다. 저는 아래와 같이 작성하였습니다.

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
 ssid="네트워크 이름"
 psk="비밀번호"
}

국가를 영국으로 한 이유는 한국으로 네트워크 사용 국가를 지정하면 문제가 생긴다고 하네요. 보통 사람들은 미국으로 설정하던데 저는 그냥 영국이 더 끌리네요. 문제 생기면 바꾸면 되지 뭐... 그런데 그것이 실제로 일어났습니다


네트워크 설정까지 끝내고 ifconfig 명령을 입력하여 무선랜이 제대로 연결되었는지 확인해 봅시다.

명령을 치고 아래로 내려서 wlan0 부분을 확인해 보면...
없네? (원래는 IP주소가 나와야 정상임. 123.456.78.9 이런 식으로.)

다시 한번 wpa_supplicant.conf 파일을 열어봤지만 문제가 없더군요.
그래서 다시 한번 passphrase 명령을 쳐 봤지만, 여전히 와이파이 연결이 안 되고 있습니다. 그것 참 이상하군요.



5. 정적 IP 할당하기

NAS를 만들기 위해서는 정적 IP를 할당해야 합니다. 동적 IP를 사용하면 언제든 IP가 바뀔 수 있으니까요. 시공간을 초월한 접속을 위해서는 고정적인 IP가 필요하겠죠.

sudo nano /etc/dhcp.cd 명령을 입력합시다. 구 버전은 /etc/network/interfaces로 들어가면 된다 하더군요. 하지만 저는 구 버전이 아니기 때문에 아무 상관 읎습니다.

어차피 지금은 무선랜이 불가능하니

interface eth0
static ip="IP 주소"
static routers="기본 게이트웨이"
static domain_name_servers="기본 게이트웨이"

이렇게 수정을 해주고 sudo reboot 명령으로 재부팅을 해주고 이번에는 pi@"IP 주소"로 접속을 시도했습니다.

password:

그랬더니 이렇게 비밀번호를 묻더군요. raspberry를 입력했습니다.

password:
password:

그러고선 다시 비밀번호를 묻더군요. 당연히 raspberry를 입력했습니다.

password:
password:
password:

또 다시 비밀번호를 묻더군요. '뭔가 잘못된 게 있었나?'라는 생각을 하며 raspberry를 입력했습니다.

password:
password:
password:
pi@xxx.xxx.xx.xxx's password:

또 다시 비밀번호를 묻더군요. '이번에는 맞았나 보다!'라는 생각을 하며 raspberry를 입력했습니다.

password:
password:
password:
pi@xxx.xxx.xx.xxx's password:
Permission Denied, please try again.
pi@xxx.xxx.xx.xxx's password:

비밀번호가 틀렸다며 다시 비밀번호를 묻더군요. 이번이 마지막이라는 심정으로 raspberry를 입력했습니다. 그리고 그 결과는...

Received disconnect from xxx.xxx.xx.xxx port 22:2: Tooo many authentication failures. Authentication failed






— To Be Continued...


MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)

2.9GHz Intel Core i5
Intel Iris Graphics 550 1536 MB
8GB 2133MHz LPDDR3


Raspberry Pi 3 Model B

Broadcom BCM2837 SoC
1.2GHz ARM Cortex-A53 MP4
Broadcom VideoCore IV MP2 400MHz
1GB LPDDR2







댓글

가장 많이 본 글