이솝 임베디드 포럼 WiKi 페이지는 이솝 임베디드 포럼 공동제작 보드를 사용하시는 회원님들이 자유롭게 업데이트 하실 수 있습니다.

 

USB 네트워크 및 다운로드 환경 설정 방법 (VirtualBox)

1. VritualBox 설정

 

윈도우 환경에서 VirtualBox를 사용하여 게스트 OS로 리눅스를 사용할 경우, “RNDIS/Ethernet Gadget”이 인식되었을 때, 수동으로 USB를 연결하면

해당 기능을 게스트 OS인 리눅스에서 사용 할 수 있다.

 

매번 타겟 보드가 부팅할 때마다 매번 연결해주어야 하므로 상당히 번거롭다.

이것을 VirtualBox에서 자동으로 처리하도록 하기 위하여 몇 가지 사전 작업이 필요하다.

 

1) USB filter 추가 - “RNDIS/Ethernet Gadget”

 

VirtualBox 실행 후 게스트 OS 부팅 전, 설정에서 USB를 선택한 뒤, 빈 필터를 추가하고 수정을 선택하여 USB 관련 정보를 입력한다.

하기 내용은 aESOP V210 세트 커널 기준으로 이름, 제조사, 제품 정보는 타겟 보드에 따라 달라질 수 있다.

 

1.jpg
 

이름: Linux 2.6.32.9 with s3c-udc RNDIS/Ethernet Gadget [0323]
 벤더 ID: 0525
 제품 ID: a4a2
 리비전: 0323
 제조사: Linux 2.6.32.9 with s3c-udc
 제품: RNDIS/Ethernet Gadget
 시리얼 번호:
 포트:
 원격지: 아니오

 

2) USB 필터 추가 - dnw(smdk_usbdl)

 

리눅스에서 dnw를 사용해야 할 경우, “RNDIS/Ethernet Gadget” 장치와 마찬가지로 다음의 내용의 USB 필터를 추가하면 된다.

VirtualBox 실행 후 게스트 OS 부팅 전, 설정에서 USB를 선택한 뒤, 빈 필터를 추가하고 수정을 선택하여 USB 관련 정보를 입력한다.

하기 내용은 aESOP V210 세트에 제공된 u-boot 기준으로 이름, 제조사, 제품 정보는 타겟 보드에 따라 달라질 수 있다.

 

2.jpg

 

이름: System MCU SEC S3C6400X Test B/D [0100]
 벤더 ID: 04e8
 제품 ID: 1234
 리비전: 0100
 제조사: System MCU
 제품: SEC S3C6400X Test B/D
 시리얼 번호:
 포트:
 원격지: 아니오

 

3) 윈도우 드라이버 설치

 

윈도우에서 “RNDIS/Ethernet Gadget” 장치를 인식하면 “새 하드웨어 검색 마법사”를 실행하여 드라이버를 설치할 지 묻는다.

이 때 윈도우에서 “RNDIS/Ethernet Gadget” 장치를 사용해야 할 경우가 아니면 취소를 누르면 된다.

 

3.jpg


VirtualBox에서 “RNDIS/Ethernet Gadget” 장치를 사용하기 위하여 "VirtualBox USB"를 설치하여야 한다.

“RNDIS/Ethernet Gadget” USB 필터를 추가한 가상머신이 부팅된 상태이고,

“RNDIS/Ethernet Gadget” 장치가 PC에 인식되었을 때 다음과 같이 "VirtualBox USB"를 묻는데 반드시 설치하여야 한다.

 

4.jpg


위의 작업이 완료되면 가상머신에서 “RNDIS/Ethernet Gadget” 장치를 사용하기 위한 사전작업이 완료된다.

 

2. 리눅스 환경 설정

 

리눅스에서 USB “RNDIS/Ethernet Gadget” 장치 인식 시, usb0 인터페이스가 생성된다.

이를 사용하기 위하여 IP주소를 설정해야 하며 인터페이스도 활성화 시켜야 한다.

 

1) udev의 룰 추가를 통한 usb0 인터페이스 자동인식

udev에 usb0인터페이스 생성 시 IP 주소 할당 및 인터페이스를 활성화 하도록 룰을 추가하여 위 과정을 자동으로 처리하도록 할 수 있다.

/etc/udev/rules.d/85-ifupdown.rules 파일이 없는 경우 파일을 생성하여 아래와 같이 입력한다.

 

ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}"
LABEL="net_end"
KERNEL=="usb0" RUN+="/sbin/ifconfig usb0 192.168.12.1 netmask 255.255.255.0 up"
SUBSYSTEM=="usb", ACTION=="add", DRIVERS=="?*", KERNEL=="usb0", NAME="eth0"


/etc/udev/rules.d/85-ifupdown.rules 파일이 있는 경우 파일을 생성하여 아래의 내용을 추가한다.

 

KERNEL=="usb0" RUN+="/sbin/ifconfig usb0 192.168.12.1 netmask 255.255.255.0 up"
SUBSYSTEM=="usb", ACTION=="add", DRIVERS=="?*", KERNEL=="usb0", NAME="eth0"


위의 작업이 완료된 후 하기의 명령어로 udev에 추가된 룰을 반영하여야 한다.

udevadm control --reload-rules // 룰 갱신
service udev restart // udev 재시작(위 명령어가 동작되지 않을 경우)


2) 인터페이스 정보 추가

 

usb0 인터페이스 생성 시 관련정보를 설정하여 usb0 네트워크 환경을 알맞게 구성할 수 있다.

/etc/network/interfaces 파일에 하기 내용을 추가한다.

 

auto usb0
iface usb0 inet static
address 192.168.12.1
netmask 255.255.255.0
broadcast 192.168.1.255


입력이 완료된 후, 다음의 명령어를 사용하여 네트워크 인터페이스 정보를 갱신한다.

/etc/init.d/networking restart


위의 작업이 완료되면 리눅스에서 “RNDIS/Ethernet Gadget" 장치 인식 시 지정된 주소로 usb0를 자동으로 생성한다.

사용자 로그인