Embedded Linux USB Ethernet Gadget 사용하기


LAN이나 WiFi가 없는 보드에서 개발하기엔 불편한 부분이 많다
가장 불편한 부분은 수정하여 빌드한 바이너리 파일을 보드에 올려 테스트 할 떄마다 전체 커널 이미지를 다시 올려야하는 수고스러움 이다. 이때 유용하게 사용할 수 있는 방법이 USB Ethernet gadget을 연결하여 NFS등을 사용하는 것이다.

USB Ethernet Gadget 커널 설정 방법

Kernel menuconfigDevice Drivers > USB support > USB Gadget Support에서 Ethernet Gadget (with CDC Ethernet support)를 선택한다RNDIS support도 선택해야 한다.


특정 프로세서에서는 kernel config이외에 다른 설정이나 소스 수정이 필요한 경우도 있다. Allwinner A20이나 A64등의 경우 usb gadget 커널 드라이버 소스에서 is_udc_enable=1을 해주는 등의 소스 수정도 필요하다.
Sunxi_udc.c
static u8 is_udc_enable = 1;

커널 빌드 후 이미지를 디바이스에 올린 다음 부팅한다.
부팅 후 ifconfig를 사용하여 usb0ip를 설정할 수 있다.


디바이스를 windows PCUSB로 연결하면,
디바이스 드라이버를 설치하라고 나오는 경우 커널 소스의 Documents/USB/linux.inf를 설치한다.
USB Serial Port라고 인식하는 경우, 장치 관리자에서 드라이버 업데이트를 선택하여 수동으로 위 linux.inf 드라이버를 설치한다.

드라이버는 서명이 안되어 있어, 드라이버 인증을 사용하지 않는 모드로 부팅하여 사용하던지, 관리자 모드의 windows powershell에서 아래 명령어를 사용하고 리부팅 후 설치해야 한다.
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
[note] enable 명령어 -> bcdedit.exe -set loadoptions ENABLE_INTEGRITY_CHECKS

연결이 완료되면 아래 그림과 같이 연결된다.



IP는 수동으로 설정하면 된다. 디바이스에서 설정한 IP와 같은 서브넷 주소를 사용하면 된다. 그리고, 서브넷 접두사 길이는 24로 설정한다.


VirtualBox등을 사용할 때 네트워크 설정에서 아래와 같이 Linux USB Ethernet/RNDIS Gadget을 선택하면 된다.





댓글

이 블로그의 인기 게시물

간단한 cfar 알고리즘에 대해

간단한 칼만 필터(Kalman Filter) 소스 코드와 사용 예제

windows에서 간단하게 크롬캐스트(Chromecast)를 통해 윈도우 화면 미러링 방법

바로 프로젝트 적용 가능한 FIR Filter (low/high/band pass filter )를 c나 python으로 만들기

CA-CFAR 예제 코드