2016년 8월 26일 금요일

라즈베리 파이 제로를 USB 케이블 하나로 사용하기 (Use Raspberry Pi Zero as RNDIS/Ethernet gadget through single USB cable)

라즈베리 파이를 사용할 때 USB 케이블 하나로 전원공급부터 컴퓨터와 네트웍 통신을 해서 ssh로 접속해 제어할 수 있는 방법이 라즈베리 파이 제로를 RNDIS/Ethernet gadget으로 만들어 주는 것이다.



이를 위해서는 먼저 라즈베리 파이 부팅 이미지가 들어있는 sd카드를 PC에 연결해서 내용을 보면 다음과 같은 파일들이 들어 있다.


Raspian SD card 내의 파일
위의 파일들 중에 cmdline.txt와 config.txt 두개의 파일을 수정해야 한다.

먼저 config.txt 파일을 에디터로 열어준다.

config.txt 파일

파일의 맨 마지막 부분에 'dtoverlay=dwc2' 를 추가하고 저장해 준다.

다음은 cmdline.txt 파일을 오픈해서 rootwait 뒷부분에 'modules-load=dwc2,g_ether'를 추가하고 저장해 준다. 여기서 주의할 것은 이 파일에는 엔터키는 사용하지 않는다. 모든 파라미터는 스페이스로 구분된다.

cmdline.txt 수정 전

cmdline.txt 수정 후

이제 모든 변경이 끝났으니 sd 카드를 제거해서 라즈베리 파이 제로에 꼽아주면 된다.

맥의 경우 RNDIS 드라이버를 설치해야 하는데 관련된 내용은 HoRNDIS - 맥용 RNDIS 드라이버 를 참고하면 된다. 단 아쉬운 점은 HoRNDIS가 El Capitan(Mac OS X 10.11)을 지원하지 않아 현재까지는 Yosemite가 설치된 맥에서 까지만 사용할 수 있다.

윈도우의 경우 윈도우 7용 RNDIS 드라이버 설치하기 를 참고해 RNDIS 드라이버를 설치해 주면 된다. 

이제 ssh 클라이언트를 실행해 연결해 보자. 아래 화면은 윈도우용 Tera Term이다. Hostname을 'raspberrypi.local'로 해서 ssh로 연결하면 된다.


첫번째 연결하는 것이면 아래와 같이 security warning이 뜬다. 'Add this machine and its key to the known hosts list'를 체크하고 Continue를 누르면 다음번 부터는 나타나지 않을 것이다.


Username과 Passphrase를 묻는 화면이 나타난다.







디폴트 사용자 이름은 'pi', 암호는 'raspberry' 이다.



로그인이 성공해 프롬프트가 나왔다.


* 'raspberrypi.local' 이름으로 연결이 가능한 건 애플의 Bonjour 기술 덕분이다. 만일 윈도우에서 저 이름으로 접속을 하는데 연결이 안된다면 아이튠즈를 먼저 설치한 다음 다시 시도하면 문제 없이 될 것이다. (아이튠즈를 설치하면 윈도우용 bonjour이 같이 설치되기 때문이다.)

위의 방법으로 하면 편하긴 한데 한가지 문제가 있다.


ifconfig 명령으로 확인해 보면 라즈베리 파이 제로의 네트웍 인터페이스는 usb0인데 그 ip address는 dhcp로 받아오기 때문에 매번 바뀌게 된다.

IP 주소를 고정하려면 /etc/network/interfaces 파일을 수정해 줘야 한다.


에디터로 파일을 열어보면 다음과 같은 내용이 들어 있다.


파일 맨 아래쪽에 빨간색 부분을 추가한 다음 저장해 주면 된다. 아래에서는 라즈베리 파이의 IP주소를 '192.168.10.2'로 지정했다.


이제 라즈베리 파이를 재시동하고 확인해 보면 ip 주소가 바뀐걸 확인할 수 있다.

라즈베리 파이의 설정에 맞춰 pc의 설정도 변경 해 줘야 한다.

윈도우의 경우 먼저 제어판에서 '네트워크 및 공유 센터'를 선택한 다음 '어댑터 설정 변경'을 누른다.


어댑터 중에 RNDIS/Ethernet Gadget을 찾아 선택한 다음 마우스 오른쪽 버튼을 눌러 메뉴에서 '속성'을 선택한다.


Internet Protocol Version 4 (TCP/IPv4)를 선택하고 '속성' 버튼을 누른다.


IP 설정을 넣어주면 된다. 라즈베리 파이가 192.168.10.2를 사용하고 있으므로 윈도우도 192.168.10.x 를 사용해야만 한다. (x는 1~254 사이에서 2를 제외한 임의의 숫자중에 하나)


이제 설정이 끝났으므로 pc에서 라즈베리 파이로 ping을 날려 응답이 오는걸 확인해 보면 된다.



댓글 없음:

댓글 쓰기