Microsoft MVP성태의 닷넷 이야기
글쓴 사람
홈페이지
첨부 파일
 

Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 이더넷 카드로 쓰는 방법

우선, 간단하게 라즈베리 파이 제로를 다음의 명령어로 환경 구성을 해줍니다.

# 비밀번호 변경 & 국제화 옵션 변경 (ko_KOR.UTF-8 UTF-8, en_us.UTF-8 UTF-8)
# SSH 활성화
sudo raspi-config

# apt의 cache 업데이트
sudo apt-get update

# 설치된 소프트웨어 업그레이드
sudo apt-get upgrade

# firmware 업데이트
sudo rpi-update

# 한글 폰트 설치 (없으면, chromium browser에서 한글이 깨짐)
sudo apt-get install fonts-unfonts-core fonts-unfonts-extra

# 디스크 공간 확인하고,
df -h

# 파이 전원 끄거나
sudo shutdown -h now

# 재시작
sudo reboot

이 외에 samba를 구성해 윈도우 PC에서 파일 교환을 쉽게 할 수 있도록 추가!

Samba를 이용해 윈도우와 Raspberry Pi간의 파일 교환
; https://www.sysnet.pe.kr/2/0/11352




자, 그럼 본격적으로 여러분들의 라즈베리 파이를 이더넷 카드로 변신시켜 볼까요? ^^

사실 이에 대해서는 다음의 글에 자세하게 나와 있습니다.

Raspberry Pi Zero - Programming over USB! (Part 1)
; https://blog.gbaman.info/?p=699
; https://gist.github.com/gbaman/50b6cca61dd1c3f88f41

즉, Raspberry Pi Zero에 있는 OTG 기능 덕분에 파이 장치 자체를 다른 컴퓨터의 USB 장치로 인식시키는 것이 가능합니다.

Because of this, if setup to, the Pi can act as a USB slave instead, providing virtual serial (a terminal), virtual ethernet, virtual mass storage device (pendrive) or even other virtual devices like HID, MIDI, or act as a virtual webcam!


그러니까, 다음과 같은 식으로 컴퓨터에 연결해 독자적인 사용자 정의 USB 장치로써 구동시킬 수 있다는 것입니다.

raspberry_otg_ether_0.PNG


OTG 모드로 가장 쉽게 장치로 인식시킬 수 있는 것이 가상 이더넷인데요, 바로 이번 글에서 실습해 볼 대상입니다. ^^

자, 그럼 Raspberry Pi Zero - Programming over USB! (Part 1) 글의 내용에서 설명한 대로 따라 해 볼까요? ^^

우선, 라즈베리 파이에 설치한 운영체제가 Jessie 이상이어야 한다고 하는데 근래에 구매한 것이라면 모두 Jessie 이상 버전이니 그냥 넘어가면 됩니다. 그래도 굳이 확인하고 싶다면 os-release 파일 내용을 봐야 합니다.

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL=="http://www.raspbian.org/RaspbianBugs"

VERSION 값이 8인 경우가 jessie이고, 9로 오면서 stretch로 바뀐 것입니다.

운영체제의 OTG 지원을 확인했으니, 이제 "File Manager"를 이용해 "/boot" 디렉터리의 "config.txt" 파일을 열어 다음의 라인을 추가해줍니다. (관리자 권한이 필요하기 때문에 "sudo nano /boot/config.txt"와 같은 식으로 파일을 열어야 합니다.)

dtoverlay=dwc2

그다음 역시 같은 디렉터리의 "cmdline.txt" 파일을 열어 rootwait 다음에 "modules-load=dwc2,g_ether" 내용을 추가해 줍니다. 같은 라인에 추가하는 것이기 때문에 다음과 같이 파일 내용이 출력되어야 합니다.

$ sudo cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether

끝났습니다. 이제 Raspberry Pi Zero를 유선 USB 이더넷 카드처럼 사용하면 됩니다. 다음 화면에 보이는 것처럼, 전원 케이블과 HDMI 케이블도 모두 떼어내고 "USB to Micro B" 타입의 케이블로 직접 파이와 컴퓨터를 연결해 주면 됩니다.

raspberry_otg_ether_1.PNG

컴퓨터에 연결하면 USB 케이블로부터 전원을 공급받아 파이가 가상 이더넷 카드로써 동작을 합니다. 이로 인해 컴퓨터에는 유선 랜 장치가 다음과 같이 "USB Ethernet/RNDIS Gadget"으로 뜨게 됩니다.

raspberry_otg_ether_2.PNG

우와~~~ OTG는 정말 재미있는 기능입니다. ^^




더욱 재미있는 것은, OTG 모드라고 해서 파이를 운영체제로 사용할 수 없는 것은 아니기 때문에 이때 모니터를 연결하면 파이가 부팅된 화면을 볼 수 있습니다. 심지어 컴퓨터와의 USB 연결을 해제하고 다시 그 USB 단자에 키보드/마우스를 연결하면 여전히 파이의 입력 도구로 사용이 됩니다.

한 마디로 정리하면, 단지 기존의 파이 운영체제 동작에 OTG 기능이 추가되는 것이나 다름없습니다.

참고로, 전원 케이블은 항상 연결해 두는 것이 좋습니다. 왜냐하면 무심코 컴퓨터로부터 파이의 USB 케이블을 빼면 (파이의) 전원이 일순간에 나가기 때문입니다. 따라서, 그냥 전원 케이블은 꽂아 두고 컴퓨터의 USB 장치로 동작시키고 싶을 때에만 연결하는 식으로 동작시키는 것이 안전합니다.



윈도우즈 사용자를 위한 라즈베리 파이 제로 W 모델을 설정하는 방법
; https://www.sysnet.pe.kr/2/0/11372

Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 이더넷 카드로 쓰는 방법
; https://www.sysnet.pe.kr/2/0/11353

Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 키보드로 쓰는 방법
; https://www.sysnet.pe.kr/2/0/11354

Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스로 쓰는 방법
; https://www.sysnet.pe.kr/2/0/11355

Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스 + 키보드로 쓰는 방법
; https://www.sysnet.pe.kr/2/0/11356

Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스로 쓰는 방법 (절대 좌표)
; https://www.sysnet.pe.kr/2/0/11364

Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 키보드 및 마우스로 쓰는 방법 (절대 좌표, 상대 좌표, 휠)
; https://www.sysnet.pe.kr/2/0/11369

라즈베리 파이 용 C++ 프로젝트에 SSL Socket 적용
; https://www.sysnet.pe.kr/2/0/11411

Raspberry Pi/Windows 다중 플랫폼 지원 컴파일 관련 오류 기록
; https://www.sysnet.pe.kr/2/0/11373

Linux 3: 라즈베리 파이 - (윈도우의 NT 서비스처럼) 부팅 시 시작하는 프로그램 설정
; https://www.sysnet.pe.kr/2/0/11374


[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]





[최초 등록일: ]
[최종 수정일: 8/9/2018 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 



2017-11-15 01시07분
참고로, 라즈베리 파이 제로 모델에서는 .NET Core가 지원되지 않습니다. 실행하게 되면 다음과 같은 식의 오류가 발생하는데,

$ dotnet
Segmentation fault

다음의 글에서 그 이유를 설명합니다.

.NET Core on Raspberry Pi
; https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md

"Note: Pi Zero is not supported because the .NET Core JIT depends on armv7 instructions not available on Pi Zero."
정성태

... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
11384정성태12/5/20174225오류 유형: 437. Visual C++ - Cannot open include file: 'SDKDDKVer.h'
11383정성태9/18/20194415디버깅 기술: 110. 비동기 코드 실행 중 예외로 인한 ASP.NET 프로세스 비정상 종료 현상 [1]
11382정성태12/4/20175573오류 유형: 436. System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired 예외 발생 시 "[Pre-Login] initialization=48; handshake=1944;" 값의 의미
11381정성태11/30/20173278.NET Framework: 702. 한글이 포함된 바이트 배열을 나눈 경우 한글이 깨지지 않도록 다시 조합하는 방법(두 번째 이야기)파일 다운로드1
11380정성태11/30/20173831디버깅 기술: 109. windbg - (x64에서의 인자 값 추적을 이용한) Thread.Abort 시 대상이 되는 스레드를 식별하는 방법
11379정성태11/30/20173079오류 유형: 435. System.Web.HttpException - Session state has created a session id, but cannot save it because the response was already flushed by the application.
11378정성태11/29/20174661.NET Framework: 701. 한글이 포함된 바이트 배열을 나눈 경우 한글이 깨지지 않도록 다시 조합하는 방법 [1]파일 다운로드1
11377정성태11/29/20174333.NET Framework: 700. CommonOpenFileDialog 사용 시 사용자가 선택한 파일 목록을 구하는 방법 [3]파일 다운로드1
11376정성태11/28/20174724VS.NET IDE: 123. Visual Studio 편집기의 \r\n (crlf) 개행을 \n으로 폴더 단위로 설정하는 방법
11375정성태11/28/20173023오류 유형: 434. Visual Studio로 ASP.NET 디버깅 중 System.Web.HttpException - Could not load type 오류
11374정성태8/9/20185489사물인터넷: 14. 라즈베리 파이 - (윈도우의 NT 서비스처럼) 부팅 시 시작하는 프로그램 설정
11373정성태7/16/20183960오류 유형: 433. Raspberry Pi/Windows 다중 플랫폼 지원 컴파일 관련 오류 기록
11372정성태10/2/20186969사물인터넷: 13. 윈도우즈 사용자를 위한 라즈베리 파이 제로 W 모델을 설정하는 방법 [3]
11371정성태11/25/20174366오류 유형: 432. Hyper-V 가상 스위치 생성 시 Failed to connect Ethernet switch port 0x80070002 오류 발생
11370정성태11/25/20173486오류 유형: 431. Hyper-V의 Virtual Switch 생성 시 "External network" 목록에 특정 네트워크 어댑터 항목이 없는 경우
11369정성태5/15/20204647사물인터넷: 12. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 키보드 및 마우스로 쓰는 방법 (절대 좌표, 상대 좌표, 휠) [1]
11368정성태11/25/20177484.NET Framework: 699. UDP 브로드캐스트 주소 255.255.255.255와 192.168.0.255의 차이점과 이를 고려한 C# UDP 서버/클라이언트 예제 [2]파일 다운로드1
11367정성태11/25/20177988개발 환경 구성: 337. 윈도우 운영체제의 route 명령어 사용법
11366정성태11/25/20174097오류 유형: 430. 이벤트 로그 - Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object.
11365정성태11/25/20173077오류 유형: 429. 이벤트 로그 - User Policy could not be updated successfully
11364정성태8/9/20183776사물인터넷: 11. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스로 쓰는 방법 (절대 좌표) [2]
11363정성태8/9/20184266사물인터넷: 10. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스 + 키보드로 쓰는 방법 (두 번째 이야기)
11362정성태12/26/20194666오류 유형: 428. 윈도우 업데이트 KB4048953 - 0x800705b4 [2]
11361정성태11/22/20174694오류 유형: 427. 이벤트 로그 - Filter Manager failed to attach to volume '\Device\HarddiskVolume??' 0xC03A001C
11360정성태11/22/20176037오류 유형: 426. 이벤트 로그 - The kernel power manager has initiated a shutdown transition.
11359정성태11/16/20176082오류 유형: 425. 윈도우 10 Version 1709 (OS Build 16299.64) 업그레이드 시 발생한 문제 2가지
... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...