Mac OS X를 사용하는 사람들에게 OS X 10.11 El Capitan은 몇가지 문제가 있었다. 그 중 가장 큰 문제가 RNDIS를 사용할 수 없다는 것이었다. 그 이전 버젼까지는 HORNDIS를 사용하면 되었는데 El Capitan으로 가면서 호환성에 문제가 생겨 horndis를 사용할 수 없게 되어 버렸다.
HORNDIS 개발자가 시간이 없어 변경된 부분을 수정해 주지 않아 다른 사람들이 몇가지 work around를 제시하긴 했지만 어느것도 안정적으로 사용하기에는 무리였다.
그런데 Mac OS 10.12인 Sierra로 오면서 OS내에 RNDIS 드라이버가 기본으로 들어있게 되어 이제는 horndis를 따로 설치하지 않아도 out-of-box로 바로 사용할 수 있게 되었다.
특히 Raspberry pi zero의 경우 별도의 이더넷 커넥터가 없어 따로 USB-to-serial 아답터를 사용해 콘솔을 연결해 주지 않으면, USB케이블로 맥과 연결해 rndis를 통해 USB/Ethernet gadget으로 사용해야 하는데 이제는 맥에 USB케이블로 연결만 하면 바로 USB/Ethernet gadget으로 잡히게 된다.
(처음 연결하면 IPv4 구성은 DHCP로 되어 있고 IP주소는 169.x.x.x로 나오는데 위와 같이 구성은 '수동', IP주소는 자신이 사용하고자 하는걸로 변경해 주면 된다.)
상세한 설정 방법은 이전 포스트(라즈베리 파이 제로를 USB 케이블 하나로 사용하기)를 참고하면 된다.
2016년 10월 10일 월요일
2016년 8월 26일 금요일
라즈베리 파이 제로를 USB 케이블 하나로 사용하기 (Use Raspberry Pi Zero as RNDIS/Ethernet gadget through single USB cable)
라즈베리 파이를 사용할 때 USB 케이블 하나로 전원공급부터 컴퓨터와 네트웍 통신을 해서 ssh로 접속해 제어할 수 있는 방법이 라즈베리 파이 제로를 RNDIS/Ethernet gadget으로 만들어 주는 것이다.
이를 위해서는 먼저 라즈베리 파이 부팅 이미지가 들어있는 sd카드를 PC에 연결해서 내용을 보면 다음과 같은 파일들이 들어 있다.
위의 파일들 중에 cmdline.txt와 config.txt 두개의 파일을 수정해야 한다.
먼저 config.txt 파일을 에디터로 열어준다.
파일의 맨 마지막 부분에 'dtoverlay=dwc2' 를 추가하고 저장해 준다.
다음은 cmdline.txt 파일을 오픈해서 rootwait 뒷부분에 'modules-load=dwc2,g_ether'를 추가하고 저장해 준다. 여기서 주의할 것은 이 파일에는 엔터키는 사용하지 않는다. 모든 파라미터는 스페이스로 구분된다.
이제 모든 변경이 끝났으니 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을 날려 응답이 오는걸 확인해 보면 된다.
이를 위해서는 먼저 라즈베리 파이 부팅 이미지가 들어있는 sd카드를 PC에 연결해서 내용을 보면 다음과 같은 파일들이 들어 있다.
![]() |
| Raspian SD card 내의 파일 |
먼저 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을 날려 응답이 오는걸 확인해 보면 된다.
Labels:
라즈베리 파이,
라즈베리 파이 제로,
bonjour,
Raspberry Pi,
raspberry pi zero,
RNDIS,
rndis/ethernet gadget
윈도우7용 RNDIS 드라이버 설치하기 (Install RNDIS driver for Windows 7)
RNDIS 장치를 컴퓨터에 연결하면 윈도우가 그에 맞는 디바이스 드라이버를 찾게 된다.
이미 설치되어 있다면 바로 사용할 수 있지만 설치되어 있지 않으면 아래와 같은 메시지가 나오게 된다.
그러면 장치관리자로 가서 보면 RNDIS 가 드라이버가 설치되지 않았다고 장치 이름 앞에 노란색으로 '!' 마크가 붙어 있는걸 볼 수 있다.

장치를 선택한 다음 마우스 오른쪽 버튼을 눌러 '드라이버 소프트웨어 업데이트...'를 선택한 다.
디바이스 드라이버 검색방법을 물으면 '컴퓨터에서 드라이버 소프트웨어 찾아보기'를 선택한다.
그러면 '드라이버 소프트웨어 업데이트' 창이 열리게 된다. 그 창에서 '컴퓨터의 장치 드라이버 목록에서 직접 선택'을 선택해 준다.
그러면 디바이스의 종류를 묻는 창이 나타난다. 여기서 'Network adapters'를 선택하고 'Next'를 눌러준다.
그러면 아래 창이 나오게 된다. 왼쪽의 제조업체에서 'Microsoft Corporation'을 선택하면 오른쪽에 두 종류의 네트워크 어댑터가 보이는데 이 중에 'Remote NDIS Compatible Device'를 선택하고 'Next' 버튼을 눌러준다.
아래와 같은 화면이 나오면 RNDIS 드라이버가 정상 설치된 것이다. 이제부터 USB에 연결한 RNDIS 장치가 네트웍장치로 보일 것이다.
이미 설치되어 있다면 바로 사용할 수 있지만 설치되어 있지 않으면 아래와 같은 메시지가 나오게 된다.
그러면 장치관리자로 가서 보면 RNDIS 가 드라이버가 설치되지 않았다고 장치 이름 앞에 노란색으로 '!' 마크가 붙어 있는걸 볼 수 있다.

장치를 선택한 다음 마우스 오른쪽 버튼을 눌러 '드라이버 소프트웨어 업데이트...'를 선택한 다.
디바이스 드라이버 검색방법을 물으면 '컴퓨터에서 드라이버 소프트웨어 찾아보기'를 선택한다.
그러면 '드라이버 소프트웨어 업데이트' 창이 열리게 된다. 그 창에서 '컴퓨터의 장치 드라이버 목록에서 직접 선택'을 선택해 준다.
그러면 디바이스의 종류를 묻는 창이 나타난다. 여기서 'Network adapters'를 선택하고 'Next'를 눌러준다.
그러면 아래 창이 나오게 된다. 왼쪽의 제조업체에서 'Microsoft Corporation'을 선택하면 오른쪽에 두 종류의 네트워크 어댑터가 보이는데 이 중에 'Remote NDIS Compatible Device'를 선택하고 'Next' 버튼을 눌러준다.
아래와 같은 화면이 나오면 RNDIS 드라이버가 정상 설치된 것이다. 이제부터 USB에 연결한 RNDIS 장치가 네트웍장치로 보일 것이다.
이제 장치관리자에 가 보면 RNDIS/Ethernet Gadget 드라이버가 정상적으로 설치된 걸 볼 수 있다.
Labels:
Microsoft,
Remote NDIS,
RNDIS,
RNDIS driver,
Windows 7,
Windows 7 RNDIS
2013년 5월 30일 목요일
HoRNDIS - 맥용 RNDIS 드라이버
대부분의 ARM 개발 보드 또는 안드로이드 폰의 Native USB tethering 기능을 사용하려면 필수적으로 필요한것이 RNDIS 프로토콜 드라이버이다.
RNDIS 프로토콜은 MS에서 개발한 자체 프로토콜이라 Mac OS X에서 사용하기가 거의 힘들었다.
하지만 HoRNDIS가 나와 이제 맥에서도 RNDIS 프로토콜을 사용할 수 있게 되었다.
kext 형태이기 때문에 TAP/TUN kext를 사용하는 프로그램들(OpenVPN, CISCO VPN, tunnelblick등)과도 충돌하지 않고 사용할 수 있다.

HoRNDIS (http://joshuawise.com/horndis) 를 설치해주고 RNDIS 프로토콜을 사용하는 장치를 USB포트에 연결하면 위와 같이 새로운 네트웍 디바이스가 보이게 되므로 필요한 설정을 해 주면 된다.
RNDIS 프로토콜은 MS에서 개발한 자체 프로토콜이라 Mac OS X에서 사용하기가 거의 힘들었다.
하지만 HoRNDIS가 나와 이제 맥에서도 RNDIS 프로토콜을 사용할 수 있게 되었다.
kext 형태이기 때문에 TAP/TUN kext를 사용하는 프로그램들(OpenVPN, CISCO VPN, tunnelblick등)과도 충돌하지 않고 사용할 수 있다.
HoRNDIS (http://joshuawise.com/horndis) 를 설치해주고 RNDIS 프로토콜을 사용하는 장치를 USB포트에 연결하면 위와 같이 새로운 네트웍 디바이스가 보이게 되므로 필요한 설정을 해 주면 된다.
피드 구독하기:
글 (Atom)



























