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)
1353정성태9/17/201225760.NET Framework: 337. Python의 생성기와 코루틴을 C#으로 표현하면. [2]파일 다운로드1
1352정성태9/13/201223812.NET Framework: 336. .NET Profiler가 COM 개체일까?
1351정성태9/13/201228238디버깅 기술: 49. windbg - .NET Framework 스레드 개체의 COM Apartment 유형 확인하는 방법
1350정성태9/12/201228902개발 환경 구성: 167. (실은) 무료가 아니었던 AWS EC2 서비스 [4]
1349정성태9/11/201260613VS.NET IDE: 74. Visual Studio의 '새 파일'을 UTF-8 인코딩으로 지정하는 방법 [4]
1348정성태9/11/201228082오류 유형: 164. Active Directory - Functional Level 승격이 안 되는 문제
1347정성태9/10/201230506Windows: 62. 윈도우 서버 2012 - Hyper-V 서버 마이그레이션 [1]
1346정성태9/10/201231405Windows: 61. 윈도우 서버 2012 - Active Directory 서버 마이그레이션
1345정성태9/10/201235445스크립트: 12. 파이썬 - Win32 DLL 연동 [2]
1344정성태9/10/201228559오류 유형: 163. .NET Framework 4.5 제거 후 Visual Studio 2010 실행 시 Unknown Error
1343정성태9/8/201242336스크립트: 11. 파이썬(Python) 윈도우 개발 환경 [7]
1342정성태9/6/201226487VS.NET IDE: 73. Visual Studio 2012 - XmlCodeGenerator 마이그레이션
1341정성태9/4/201235837Windows: 60. Hyper-V에서 RemoteFX 없이 DirectX 11 제공 [12]
1340정성태9/4/201228033개발 환경 구성: 166. DOS - ping 결과에서 평균 응답 시간값 추출하기 [3]
1339정성태9/4/201230467개발 환경 구성: 165. 새로운 Visual Studio 2012 원격 디버깅 툴 [5]
1338정성태9/4/201232290.NET Framework: 335. C# - (핸들을 이용하여) 모든 열린 파일을 열람 [6]파일 다운로드1
1337정성태8/30/201222059Phone: 7. 디버거로 실습해 보는 윈도우 폰의 Tombstone 상태파일 다운로드1
1336정성태8/30/201240120.NET Framework: 334. 스레드 비정상 종료로 발생하는 CLOSE_WAIT 소켓 상태 [2]파일 다운로드1
1335정성태8/30/201228859Windows: 59. Hyper-V Internal 네트워크 VM의 인터넷 접속
1334정성태8/29/201248124.NET Framework: 333. 코드로 재현하는 소켓 상태(FIN_WAIT1, FIN_WAIT2, TIME_WAIT, CLOSE_WAIT, LAST_WAIT) [6]
1333정성태8/27/201251609개발 환경 구성: 164. system32 폴더에 있는 파일의 권한 조정 [2]
1332정성태8/23/201223504Team Foundation Server: 48. TFS - Team Project Collection 이전하는 방법
1331정성태8/23/201226642오류 유형: 162. Database '...' already exists. Choose a different database name. (Microsoft SQL Server, Error: 1801)
1330정성태8/22/201227398Team Foundation Server: 47. 5인 이내의 팀, 또는 개인 로컬 소스 관리를 위한 무료 TFS Express
1329정성태8/21/201222877오류 유형: 161. Azure - Storage 삭제가 안되는 경우 [1]
1328정성태8/20/201233287개발 환경 구성: 163. IIS 7 - "MIME Types" 설정 아이콘이 없는 경우
... 136  137  138  139  140  141  142  143  144  145  146  147  [148]  149  150  ...