포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

오드로이드(ODROID)에 이더넷(유선랜) 기능이 없어 개발시 불편한 점이 한가지 있습니다.

커널이나 부트로더 개발은 USB 전송을 이용해서 편리하고 빠르게 할수 있으나
안드로이드 시스템이나 일반 리눅스 Root File System을 개발하기에는 좀 불편하다는 것입니다.
T-Flash를 빼서 PC에 연결해서 복사하고 다시 넣어 테스트 하는 과정을 반복하다보면 시간 소모가 많습니다.
그래서 NFS로 부팅할수 있는 방법을 찾아 보았습니다.

목표: Odroid의 USB Gadget Ethernet Driver를 이용하여 NFS 부팅을 가능하게 한다.
결론: 됩니다. 아주 고속으로 100M이더넷보다 훨씬 빠르고 안정적으로...

참고 자료
http://bec-systems.com/site/418/how-to-set-up-a-nfs-rootfs
http://elinux.org/Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB


커널 설정부터 수정합니다. 소스는 손댈필요 없으니 간단합니다.
make menuconfig
<1> NFS 기능 활성화 (모두 빌트인으로 체크 합니다)
File systems -> Network File System -> NFS client support 를 체크하고
NFS client support for NFS version 3 및 Root file system on NFS 를 선택
<2> 이더넷 가젯 활성화 (모두 빌트인으로 체크 합니다)
Device Drivers -> USB support -> USB Gadget Support -> USB Gadget Drivers를 선택하여
Ethernet Gadget (with CDC Ethernet support)로 변경 (빌트인 시켜야함)
* 기존에는 Android Composite(ADB+UMS)로 되어 있었음.

빠져나와서 커널 빌드
(빌드 및 커널 이미지를 전송하고 기록하는 방법은 아래 링크 참고)
http://dev.odroid.com/projects/linux/

수정된 커널만 적용하여 T-flash의 안드로이드로 부팅을 하고 Odroid와 개발 호스트(리눅스)가 USB로 연결되어 있다면
호스트 측에서 lsusb 명령으로 살펴보면 다음과 같은 새로운 장치가 붙어 있다는것을 확인할 수 있습니다.
Bus 001 Device 010: ID 0525:a4a2 Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget

그리고 ifconfig 해보면 아래와 같이 이더넷 장치가 보이죠~~
usb0      Link encap:Ethernet  HWaddr ea:e9:0a:53:0f:1d 
          inet6 addr: fe80::e8e9:aff:fe53:f1d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


이제 Odroid와 Host PC에 각각 유선랜 이더넷 장치가 양쪽에 하나씩 생긴것 입니다.

물론 이렇게 가젯을 올리면 기존에 사용하던 안드로이드용 ADB+UMS 가젯이 없어지므로 다소 제약이 있긴하지만, 추후에 ADB+UMS+LAN 형식으로 Composite driver를 만들수 있을것 같습니다.
물론 다른 리눅스(Debian-ARM이나 ARM-Ubuntu)를 올릴때에는 문제가 없겠죠..


그럼 이제 호스트 PC에 루트 파일시스템을 준비하고, NFS server 설정을 하여 부팅을 시켜봅니다.

이미 개발 호스트에 nfs-kernel-server가 설치되어 있다고 가정합니다. 우분투기준으로 말씀드립니다.
없다면 # apt-get install nfs-kernel-server 를 통해 설치하시길...

NFS의 Root File System의 위치는 /nfsroot 라고 가정.. 나중에 여러가지 RootFS들이 올수도 있음.
# sudo mkdir /nfsroot

빌드한 Android Root File System의 위치는 ~/myandroid/rootfs 라고 가정하고 이것을 복사합니다.
# sudo mv ~/myandroid/rootfs /nfsroot/

옮기지 말고 symbolic-link를 걸어도 좋습니다. 제 생각에는 이 방법이 정석입니다.
하여간 루트파일 시스템은 /nfsroot/rootfs에 준비가 되었습니다.

다음과 같이 NFS Client에 노출될 디렉터리를 추가합니다.
#sudo gedit /etc/exports
편집창이 뜨면 아래 내용 추가
/nfsroot/rootfs *(no_root_squash,sync,rw)

그리고 위 편집한 내용이 NFS 서버에 영향이 미치도록 NFS server daemon 다시 기동시킵니다.
# sudo /etc/init.d/nfs-kernel-server restart

이제 마지막으로 Odroid의 u-boot 설정만 바꾸면 되겠죠.
현재 T-flash 기준의 bootargs는 다음과 같습니다.
bootargs=root=/dev/mmcblk0p2 rw rootfstype=ext3 mem=384m init=/init  console=ttySAC0,115200
이 것을 NFS 환경에 맞게 다음과 같이 변경하여야 합니다. (savenv 필요)
setenv bootargs 'root=/dev/nfs rw ip=192.168.0.133::255.255.255.0 mem=384m init=/init  console=ttySAC0,115200 nfsroot=192.168.0.250:/nfsroot/rootfs,nolock,rsize=1024,wsize=1024'

그리고 커널 부팅중 서버에서 USB가 인식 되자마자 호스트에서 다음과 같이 입력합니다.
# sudo ifconfig usb0 192.168.0.250
지금은 이 부분이 자동으로 안되지만... .. udev에 rules 추가하면 될것 같기는 합니다.
잘 아시는분께서 꼭 도와주시길 바랍니다. 꼭 !!!

하여간 이렇게 하고나면, 안드로이드가 부팅이 됩니다.. T-Flash보다 더 빠릅니다.
기존 100M급 이더넷보다도 훨씬 빠르고 편리합니다. 일명 "광속 USB 480MBPS 가상 이더넷"이라 부르겠습니다.
이제 앞으로 만들 보드에는 절대로 이더넷을 넣지 않을 생각입니다. 아래와 같은 이유로...


<1> 부트로더/커널/루트파일 시스템 개발이 모두 초고속 USB만으로 가능하므로...
<2> 어차피 보안장비나 네트웍장비는 저렴하고 강력한 전용 CPU들이 많아 범용 AP로는 경쟁력이 전혀 없으므로...

<3> 이더넷 칩과 RJ-45 수급이 상당히 귀찮고 생산도 번잡스러우니...


끝으로 이 USB Gadget 방법으로 NFS 부팅에 성공하신 분이나 실패하신분들 모두 댓글 부탁드립니다.

Angstrom이나 OpenEmbedded 등등 여러 종류의 시스템을 테스트하는데 생각보다 재미있습니다.

꼭 한번 사용해 보시고, 문제점 있으면 피드백 바랍니다.


추신: 이렇게 만들고 나서 호스트측에 Network Bridge 설정만 잘해주면 Odroid에서 무선랜 환경이 아니더라도 인터넷을 사용할수 있을것 같습니다. 정말 가제트 같네요..


고현철

2010.01.11 05:09:29
*.226.23.224

수고하셨습니다...^^

 

내일 여러가지 정리가 끝나면 함 시도해봐야겠네요...

 

추신: iptables를 이용해서 NAT를 구성하면 인터넷도 상관이 없이 쓸 수 있습니다.

 

수요일 정도에 해보고 하우투 올리겠습니다.

 

그리고, opensimpad.org 에도 약간의 usb networking howto가 있었던 것으로 기억이 납니다....

이제현

2010.01.11 06:48:00
*.120.74.180

네.. 동참 바랍니다.

현재 목표는 Ubuntu를 한번 올려 보는겁니다..    HDMI에 우분투 화면을 띄우고..

오드로이드 본체는 마우스로 동작시키는 프로젝트입니다..  언제끝날지 모르겠지만..ㅎㅎ

just4you

2010.01.11 06:13:56
*.201.127.99

USB에서 Ethernet을 에뮬레이팅해주는 기능은...

크게 ECM과 EEM, NCM 이렇게 3가지가 지원합니다.. ATM도 있지만 이더넷이라고 볼 수 없어서...

 

L사에서 Android 폰을 개발하는데 ECM 사용하고 있다고 들었습니다..

Linux Kernel 2.6.2x 버전 중반부터 ECM과 EEM 클래스 드라이버까지 포함이 되어 있는걸로 알고있습니다..

(제가 리눅스에 대한 정보를 확인하는걸 잘 못해서.. 정확한 버전을 말씀드리기가 어렵네요..

 그리고 NCM은 현재 지원이 되는지는 모르겠습니다.. 가장 마지막에 나온 프로토콜이라서...)

 

제가 앞으로 해야할 일이 그 쪽 부분인데..

리눅스 개발을 해본적이 없어서 시간이 좀 걸리겠지만 도움을 드릴 수 있도록 노력하겠습니다.. ^^;

유형목

2010.01.11 18:28:42
*.216.81.162

컴팩의 iPAQ H3630 초기 모델에 리눅스를 올려서 USB NET으로 연결했던 기억이 납니다.


PDA에서 잡히는 장치명은 usbnet 이었고 hotplug 가 지원되긴 했지만 IP설정을 위해서

스크립트를 작성했었습니다. 근데 이게 한번만 동작하고 USB케이블을 뺐다가 다시 끼우면

동작을 안해서, 그 이후로는 어떻게 처리했었는지 기억이 안나는군요. --;


NFS mount 도 잘 됬었고(부팅후 별도로 mount, NFS RootFS는 아니었음), VNC로 연결해서 리눅스 데스크탑에 화면을 띄울수도 있었습니다. 제가 기억나는건 여기까지로군요.

이제현

2010.01.11 06:46:28
*.120.74.180

제가 사용하고 있는 것은 ECM입니다. EEM은 잘 모르겠네요.


저도 해외 사이트에서 힌트를 얻어 살짝 해보니깐.. 2시간 만에 그냥 되더군요..

사실은 S사에서 커널 릴리즈할때 이미 다 개발해서 넣어둔것을 제가 꺼내서 사용했을 뿐입니다.

이 ECM은 상당히 오래된 역사가 있는듯 합니다.

8~9년 전쯤 PDA에 리눅스 포팅하는 일이 유행이던 시절, 이더넷칩이 없어도 네트웍을 사용할수 있도록 하기위해서 시작되었다는 설도 있고요. ^.^


삽질에 동참 할 분이 생겨서 다행입니다. ㅎㅎㅎ

just4you

2010.01.11 11:21:39
*.201.127.99

ECM -> EEM -> NCM 이런 순서로 나왔구요.. ECM은 Full Speed까지 지원하는 스펙입니다..

아마 ECM 최근 드라이버들은 High Speed도 지원할껍니다..

(그리고 USB.org 문서에 의하면 EEM 1.0(2005.02)이 ECM에서 페이로드를 줄인 스펙이고,

  NCM이 ECM의 향상된 버전이라고 되어있습니다..)

 

EEM 드라이버가 커널 2.6.2x 중반부터인가 들어간 걸로 알고요..

ECM은 역사가 꽤 됐으니깐 훨씬 이전 버전부터 커널에 드라이버가 포함되었겠죠..

(EEM 정의한 것만도 5년인데..)

그러니 개발했다라기 보단 포팅이 더 가깝지 않을까 싶습니다..

 

그보다도 리눅스 개발이 처음이라.. 뭘 어찌해야하는지 참 막막하네요... =.=

이제현

2010.01.11 20:32:34
*.120.74.180

Odroid에서 테스트한 ECM이 High speed로 동작하는 것은 확인하였습니다.

그런데 Payload가 줄었을 경우 속도 개선이 얼마나 될지 궁금하군요..


유형목

2010.01.11 18:36:39
*.216.81.162

usb net 가젯이 인식되는 시점이 중요할것 같인 하지만, usb0로 되어 있는 이더넷 장치명을 eth0 로 바꿀수 있으면 부팅할때 USB 로도 NFS 마운트를 처리할수 있을것 같은 생각이 듭니다.

이제현

2010.01.11 20:33:37
*.120.74.180

현재 usb0인 상태에서도 NFS 부팅은 잘 되고 있습니다.

다만 브릿지를 만들면 할수 있는 일이 많아 질것 같아서요...

유형목

2010.01.11 18:39:58
*.216.81.162

써 놓고 보니 횡설수설 한듯..-_-;


서버쪽에서는 별도의 셋팅을 했는지 전혀 기억이 없습니다. 옛날 자료를 한번 찾아봐야겠군요.

just4you

2010.01.11 20:28:19
*.11.206.224

이더넷 장치가 없다면.. u-boot에서 tftp를 이용하려면...

u-boot에서 이미 ECM을 통해 네트웍 설정이 되어 있어야 할 것은데.. 맞나요?

이제현

2010.01.11 20:40:55
*.120.74.180

현재 오드로이드 u-boot에서는 삼성에서 만든 조금은 이상한 프로토콜 "DNW" 라는 것을 사용해서 커널/부트로더 이미지를 USB를 통해 전송하고 있습니다.

그 뒤에 커널이 부팅되면서 ECM이 활성화되어 NFS 루트로 부팅되는 구조입니다.


참고로 DNW는 단순한 벌크 인터페이스로 24xx 시절부터 윈CE 개발용으로 사용했던것 같은데, 벤둑스께서 리눅스로 포팅을 하셨고, 이것을 박형관님께서 6410용으로 수정을 하셨는데... 이걸 오드로이드에서도 사용하고 있습니다.


이미 편하게 사용하고 있기에, 부트로더용 gadget 드라이버를 포팅하는 일은 생각하고 있지 않습니다..

just4you

2010.01.11 21:14:33
*.11.206.224

DNW로 TFTP 기능을 비슷하게 구현한게 있단 말씀이시죠..?

 

그리고 혹시나 윈도우용 USB ECM 드라이버가 있나요?

이제현

2010.01.11 21:48:41
*.120.74.180

넵... tftp대신에 DNW를 사용합니다. 다소 불편하지만..

dnw daemon같은걸 만든다면 좀 편리하겠죠..


XP에는 드라이버가 내장되어 있습니다. 따라서 inf 만 있으면 되죠.

inf는 커널 소스의 아래 폴더에서 찾을수 있습니다.

linux/Documentation/usb/linux.inf

정철진

2010.02.12 08:36:23
*.38.194.172

정말 알고싶은 부분인데 잘 설명해 주셔서 감사합니다.

 

제가 개발하는 보드에 적용할수 있을진 모르겠지만.

 

도전해 보겠습니다.

뱀틴

2010.03.08 18:49:49
*.184.149.59

저 같은 경우는 /etc/network/interface 파일에 usb0 관련 프로파일을 추가 해주고.. 네트워크 매니저를 끄고 네트워킹 데몬을 사용하니까 됩니다.. 근데 문제는 처음엔 자동으로 잡는데 그 다음 부터는 연결할때마다 네트워킹 데몬을 리스타트 해야되네요... 뭔가 다른 방법이 있을까요?..

강민규

2010.04.26 22:28:29
*.94.41.89

/etc/network/interface 에 아래와같이 추가해보세요


iface usb0 inet static

address 192.168.129.1

netmask 255.255.255.0

 

auto usb0

liky

2010.10.28 21:16:42
*.165.72.115

안녕하세요 usb nfs관련하여 동작하지않아서 도움을받고자합니다.

우선 ubuntu9.10을 virtualbox에 깔아서 사용하고있습니다.

그리고 virtual box usb filter를 USB_NFS_HOWTO.pdf문서에 있는대로 2개설정했습니다.

ubuntu를 부팅한후 serial창에서 dnw 0x20008000 을 입력한후에 ubuntu에서 lsusb명령으로보면 아래와같이 드라이버가

잘 잡힙니다.

root@guest1-laptop:~# lsusb
Bus 001 Device 023: ID 04e8:1234 Samsung Electronics Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

 

smdk-usdl프로그램으로 zImage다운로드도 잘 됩니다.
root@guest1-laptop:~# smdk-usbdl -a 0x20008000 -f /tftpboot/zImage
SMDK42XX,S3C64XX USB Download Tool
Version 0.20 (c) 2004,2005,2006 Ben Dooks <[email protected]>

S3C64XX Detected!
=> found device: bus 001, dev 023
=> loaded 2296840 bytes from /tftpboot/zImage
=> Downloading 2296850 bytes to 0x20008000
=> Data checksum 1977
=> usb_bulk_write() returned 2296850

 

그런다음 커널이 부팅되면서  s3c-udc CDC Composite Gadget [0324]  장치가 virtualbox 의 usb장치표시 항목에

나타나는데도 불구하고 ubuntu 에서 lsusb명령을 치면 아래와같이 아무것도 나타나지 않습니다.

호스트 상에서 또다른 드라이버를 설치해줘야하나요. 여기서 진도가 나가지 않네요..조언부탁드립니다.
root@guest1-laptop:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
root@guest1-laptop:~#

유형목

2010.10.28 23:02:42
*.131.99.183

다음 링크의 문서를 참고하시기 바랍니다. 버추얼박스상의 우분투 리눅스에서도 잘 동작됩니다. ^^;


http://www.aesop.or.kr/?document_srl=342015

liky

2010.10.29 01:21:25
*.165.72.115

링크시켜주신 문서대로 하는데도 동작시키지 못하고 있습니다. 제가 어딘가 잘못하고있을텐데요

어디가 잘못됬는지 몰라서 귀찮게도 다시 올려드리네요^^

아래는 현재 ubuntu 에 설정된 정보와 부팅로그입니다. 좀 도와주시면 감사하겠습니다.

 

==>vim /etc/udev/rules.d/85-ifupdown.rules 파일 내용입니다.

ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --backgroung --pidfile /var/run/network/bogus --startas /sbin/if    down --allow auto $env{INTERFACE}" LABEL="net_end"
   
  KERNEL=="usb0" RUN+="/etc/init.d/nfs-kernel-server restart"
  SUBSYSTEM=="usb", ACTION=="add", DRIVERS=="?*", KERNEL=="usb0", NAME="eth0"

==>vim /etc/network/interfaces파일내용입니다<==

auto lo
  iface lo inet loopback
  
  #auto eth0
  #iface eth0 inet dhcp
  #address 192.168.56.101
  #netmask 255.255.255.0
  #network 192.168.56.0
  #broadcast 192.168.56.255
  #gateway 192.168.56.1
 
 auto usb0
 iface usb0 inet static
 address 192.168.56.101
 netmask 255.255.255.0
 broadcast 192.168.56.255
 #gateway 192.168.56.1
 up /sbin/iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
 up echo 1 > /proc/sys/net/ipv4/ip_forward
 down /sbin/iptables -D POSTROUTING -t nat -o eth0 -j MASQUERADE
 down echo 0 > /proc/sys/net/ipv4/ip_forward

==>그다음에 ubuntu를 껐다가 다시 부팅시켰습니다. 그런후 아래와같이 ifconfig를 했을때 나온결과입니다

       virtualbox에서  network설정을 bridged로 한 상태입니다.

root@guest1-laptop:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:ce:2e:38 
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fece:2e38/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6121 errors:0 dropped:0 overruns:0 frame:0
          TX packets:83 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:372267 (372.2 KB)  TX bytes:11695 (11.6 KB)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:116 errors:0 dropped:0 overruns:0 frame:0
          TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:9772 (9.7 KB)  TX bytes:9772 (9.7 KB)

root@guest1-laptop:~#

 

==>vim /etc/exports 에 작성한 내용입니다.

/root/work/hk_eclair_2.1_r2/rootfs *(no_root_squash,no_subtree_check,sync,rw)

작성후

root@guest1-laptop:~# /etc/init.d/nfs-kernel-server restart
 * Stopping NFS kernel daemon                                                                                        [ OK ]
 * Unexporting directories for NFS kernel daemon...                                                                  [ OK ]
 * Exporting directories for NFS kernel daemon...                                                                    [ OK ]
 * Starting NFS kernel daemon                                                                                        [ OK ]
root@guest1-laptop:~# 

 

==> u-boot에설정한 boot argument입니다. <==

setenv bootargs mem=256M init=/init root=/dev/nfs rw nfsroot=192.168.56.101:/root/work/hk_eclair_2.1_r2/rootfs ip=192.168.56.102:192.168.56.101:192.168.56.1:255.255.255.0::usb0:off console=ttySAC0,115200 androidboot.console=s3c2410_serial2

 

==> 현재 터미널창에나오는 커널 부팅메세지입니다.<==

IP-Config: Complete:
     device=usb0, addr=192.168.56.102, mask=255.255.255.0, gw=192.168.56.1,
     host=192.168.56.102, domain=, nis-domain=(none),
     bootserver=192.168.56.101, rootserver=192.168.56.101, rootpath=
Looking up port of RPC 100003/2 on 192.168.56.101
rpcbind: server 192.168.56.101 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/1 on 192.168.56.101
rpcbind: server 192.168.56.101 not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
Root-NFS: Server returned error -5 while mounting /root/work/hk_eclair_2.1_r2/ro
otfs
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
b300         1931264 mmcblk0 driver: mmcblk
  b301         1051365 mmcblk0p1
  b302          264740 mmcblk0p2
  b303          264740 mmcblk0p3
b308         7829504 mmcblk1 driver: mmcblk
  b309         7829439 mmcblk1p1
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

 

위와같이 나오고 역시나 ubuntu에서도 lsusb했을때 usb장치가 잡히지 않고있습니다.

커널이미지는 eclair-2.6.29.0-hardkernel.tar.gz를 오드로이드 사이트에서 받아서 nfs client와 cdc ethernet기능을 선택한후

다시 빌드한 이미지입니다.

초보라서 잘모르고 따라하는데 잘 안되네요^^

 

유형목

2010.10.29 05:20:51
*.131.99.183

문서에 나온대로 우분투리눅스의 usb0 는 192.168.1.1 로, V210 보드의 usb0는 192.168.1.2 로, 게이트웨이는 192.168.1.1 로 셋팅하여 다시 시도해 보시기 바랍니다.


제 노트북에서 버추얼박스에 우분투리눅스 설치한 다음 셋팅된 결과는 다음과 같이 나옵니다.

-------------

eth0      Link encap:Ethernet  HWaddr 08:00:27:09:f3:c9 
          inet addr:192.168.0.23  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe09:f3c9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2899 (2.8 KB)  TX bytes:5952 (5.9 KB)
          Interrupt:19 Base address:0xd000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:190 errors:0 dropped:0 overruns:0 frame:0
          TX packets:190 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:17540 (17.5 KB)  TX bytes:17540 (17.5 KB)

usb0      Link encap:Ethernet  HWaddr be:71:cc:1c:85:7c 
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::bc71:ccff:fe1c:857c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:176 errors:0 dropped:0 overruns:0 frame:0
          TX packets:419 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:24792 (24.7 KB)  TX bytes:541683 (541.6 KB)
----------


eth0의 192.168.0.23은 인터넷 공유기로 부터 자동으로 할당받은 IP주소이고, usb0의 192.168.1.1 주소는 수동으로 셋팅해준겁니다. V210 보드에서 테스해본 결과 안드로이드 2.2 화면은 잘 나옵니다.

liky

2010.10.30 00:20:56
*.165.72.115

바쁘신상황에서도 답변해주셔서 감사합니다 .

제환경에서는 usb0가 생기지 않아서ubuntu쪽에서 g_ether드라이버를 올리니까 아래와 같이 usb0과 usb1이 생기네요..

그래도 정상적인 동작을 하지않습니다. (ubuntu ip도 문서에있는대로 192.168.1.1로 맞추었습니다)

현재 노트북은 외부랜과연결되어있고요 오드로이드는 USB로 노트북에 연결했습니다(공유기는사용하지않았습니다)

root@guest1-laptop:~# modprobe g_ether

root@guest1-laptop:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:ce:2e:38 
          inet addr:211.194.234.199  Bcast:211.194.234.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fece:2e38/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8006 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:482410 (482.4 KB)  TX bytes:13422 (13.4 KB)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:372 errors:0 dropped:0 overruns:0 frame:0
          TX packets:372 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:32524 (32.5 KB)  TX bytes:32524 (32.5 KB)

usb0      Link encap:Ethernet  HWaddr 7a:f5:69:c8:09:1a 
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::78f5:69ff:fec8:91a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:73 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9167 (9.1 KB)  TX bytes:3470 (3.4 KB)

usb1      Link encap:Ethernet  HWaddr 5e:39:ff:0f:30:0f 
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::5c39:ffff:fe0f:300f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3176 (3.1 KB)  TX bytes:10189 (10.1 KB)

root@guest1-laptop:~# lsusb
Bus 003 Device 002: ID 0525:a4a2 Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
root@guest1-laptop:~#

 

Bus 003 Device 002: ID 0525:a4a2 Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget
위에 표시된대로 Vender와 Product ID가 0x0525 와 0xA4A2로 virtualbox filter에 설정한 것과

같게나옵니다. 그래도 동작하지 않고 panic만나네요^^

 

유형목

2010.10.30 01:04:26
*.131.99.183

뭔가 설정이 꼬인것 같군요 usb0만 나와야 정상입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

초보자를 위한 부트로더/커널/안드로이드 빌드 환경 설정 및 실습 [10]

USB만을 이용한 NFS 부팅 [23]

Android WiFi 포팅하기 file [6]

간단한 uBoot 사용 및 환경 설정 방법 [4]

uboot에서 ubifs 이미지 nand에 쓰는 방법 [4]

U-Boot 실무 위주의 간단한 강좌 #1 - Makefile 사용법 file [3]

android-x86/Donut 을 viliv S5에 포팅해본본 내용입니다. [3]

  • pinebud
  • 2010-06-25
  • 조회 수 18591

Linux 2.6 커널의 이해 (Embedded World) file [19]

임베디드 시스템 포팅 가이드(PXA255 ) #1 file [7]

임베디드 엔지니어를 위한 리눅스 커널 file [9]

Making ARM-EABI Toolchain #1 - Crosstool 환경 설정 file [1]

범용 운영체제를 위한 리눅스 커널 완전분석 file [5]

이광우님 android v4l2 camera porting자료 file [6]

Crosstool 0.43 - ARM Softfloat / ARM11-VFP EABI 지원 file [6]

u-boot.lds 분석(aesop6410)

mdev and udev 사용 방법 및 적용 가이드 file

U-Boot 및 펌웨어에서 MMU 매핑코드 분석 방법 [2]

ARM EABI cross-toolchain howto file [4]

embedded linux porting guide(ppcboot & mpc860) file [4]

고현철님의 리눅스 Root File System 만들기 동영상 강좌 [2]

사용자 로그인