Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 4개 있습니다.)
(시리즈 글이 7개 있습니다.)
사물인터넷: 5. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 이더넷 카드로 쓰는 방법
; https://www.sysnet.pe.kr/2/0/11353

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

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

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

사물인터넷: 10. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스 + 키보드로 쓰는 방법 (두 번째 이야기)
; https://www.sysnet.pe.kr/2/0/11363

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

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




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


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

[연관 글]






[최초 등록일: ]
[최종 수정일: 7/10/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at 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."
정성태

... 136  137  138  139  140  141  142  143  144  145  146  147  148  149  [150]  ...
NoWriterDateCnt.TitleFile(s)
1337정성태8/30/201223510Phone: 7. 디버거로 실습해 보는 윈도우 폰의 Tombstone 상태파일 다운로드1
1336정성태8/30/201241363.NET Framework: 334. 스레드 비정상 종료로 발생하는 CLOSE_WAIT 소켓 상태 [2]파일 다운로드1
1335정성태8/30/201230344Windows: 59. Hyper-V Internal 네트워크 VM의 인터넷 접속
1334정성태8/29/201249782.NET Framework: 333. 코드로 재현하는 소켓 상태(FIN_WAIT1, FIN_WAIT2, TIME_WAIT, CLOSE_WAIT, LAST_WAIT) [6]
1333정성태8/27/201253065개발 환경 구성: 164. system32 폴더에 있는 파일의 권한 조정 [2]
1332정성태8/23/201224870Team Foundation Server: 48. TFS - Team Project Collection 이전하는 방법
1331정성태8/23/201228175오류 유형: 162. Database '...' already exists. Choose a different database name. (Microsoft SQL Server, Error: 1801)
1330정성태8/22/201228805Team Foundation Server: 47. 5인 이내의 팀, 또는 개인 로컬 소스 관리를 위한 무료 TFS Express
1329정성태8/21/201224283오류 유형: 161. Azure - Storage 삭제가 안되는 경우 [1]
1328정성태8/20/201234772개발 환경 구성: 163. IIS 7 - "MIME Types" 설정 아이콘이 없는 경우
1327정성태8/19/201239481Windows: 58. Windows 8 정식 버전을 설치해 보고... [14]
1326정성태8/19/201225779오류 유형: 160. Visual Studio 2010 Team Explorer 설치 오류
1325정성태8/15/201225788개발 환경 구성: 162. 닷넷 개발자가 컴파일해 본 리눅스
1324정성태8/15/201227672.NET Framework: 332. 함수형 언어의 코드가 그렇게 빠를까? [4]파일 다운로드1
1323정성태8/4/201229555.NET Framework: 331. C# - 클래스 안에 구조체를 포함하는 경우 발생하는 dynamic 키워드의 부작용 [2]
1322정성태8/3/201229226개발 환경 구성: 161. Ubuntu 리눅스의 Hyper-V 지원 (마우스, 네트워크)
1321정성태7/31/201228531개발 환경 구성: 160. Azure - Virtual Machine의 VHD 파일 다운로드 [2]
1320정성태7/30/201230501Math: 10. C# - (타)원 영역의 마우스 클릭 판단파일 다운로드1
1319정성태7/26/201228627개발 환경 구성: 159. Azure - 네트워크 포트 여는 방법 [1]
1317정성태7/24/201227694오류 유형: 159. SpeechRecognitionEngine.SetInputToDefaultAudioDevice 호출 시 System.InvalidOperationException 예외 발생
1316정성태7/18/201286039개발 환경 구성: 158. .NET 응용 프로그램에서 Oracle XE 11g 사용
1315정성태7/17/201230932개발 환경 구성: 157. Azure - Virtual Machine 구성 [2]
1314정성태7/16/201225621개발 환경 구성: 156. Azure - 2개 이상의 서비스 계정을 가지고 있을 때 프로젝트를 배포하는 방법
1313정성태7/16/201238055오류 유형: 158. Hyper-V 설치 후 VM 시작이 안되는 경우
1312정성태7/15/201237965Math: 9. 황금비율 증명
1311정성태7/15/201230566Math: 8. C# - 피보나치 수열의 사각형과 황금 나선(Golden spiral) 그리기파일 다운로드1
... 136  137  138  139  140  141  142  143  144  145  146  147  148  149  [150]  ...