기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요.
이솝 C100 보드를 가지고 리눅스 및 안드로이드 포팅 공부를 하려고 하는 중입니다.
usb를 통한 nfs 환경을 구축하려고 하는데 제대로 동작을 하지 않습니다.
기존에 ARM9에서는 dnw 명령 통해 커널을 올리고 usb nfs 환경을 설정하여 사용하였습니다.
그런데 C100 보드에서는 dnw 명령을 통해 커널까지는 올라가느데 루트파일시스템이 nfs로
구동이 되지가 않습니다.
커널은 android-2.6.29-aesop-RTM10.tar.gz 을 사용하였고
$ make ntc100_android_defconfig
$ make uImage
이렇게 빌드를 하였습니다.
부팅 로그 마지막 부분입니다.
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
s3c-fimc: fimc_configure_subdev: v4l2 subdev board registering failed
s3c-fimc: fimc_configure_subdev: v4l2 subdev board registering failed
S5PC1XX TVOUT Driver, (c) 2009 Samsung Electronics
s5p-tvout s5p-tvout: hpd status is cable removed
s3c2410-rtc s3c2410-rtc: setting system clock to 2010-01-01 00:51:01 UTC (1262307061)
IP-Config: Device `usb0' not found.
Looking up port of RPC 100003/2 on 192.168.1.1
usb 1-2: new full speed USB device using s3c2410-ohci and address 2
usb 1-2: device descriptor read/64, error -62
usb 1-2: device descriptor read/64, error -62
usb 1-2: new full speed USB device using s3c2410-ohci and address 3
usb 1-2: device descriptor read/64, error -62
usb 1-2: device descriptor read/64, error -62
usb 1-2: new full speed USB device using s3c2410-ohci and address 4
usb 1-2: device not accepting address 4, error -62
usb 1-2: new full speed USB device using s3c2410-ohci and address 5
usb 1-2: device not accepting address 5, error -62
어디서부터 디버깅을 해야하는 지 감이 오질 않아 이렇게 도움을 구합니다.
호스트 환경 설정이 잘못된 것인지 커널 옵션을 건드려야 하는지 모르겠습니다.
호스트는 Ubuntu 12.04 (VirtualBox) 이고 환경 설정은 이솝에 올라온 usb_nfs_howto 문서와
인터넷을 참고하여 아래와 같이 구성하였습니다.(arm9(s3c2440/s3c2443)에서는 잘 동작하였습니다.
/etc/network/interfaces
--------------------------------------------------------------------------------
allow-hotplug usb0
iface usb0 inet static
address 192.168.1.1
netmask 255.255.255.0
up iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
up echo 1 > /proc/sys/net/ipv4/ip_forward
down iptables -t nat -D POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
down echo 0 > /proc/sys/net/ipv4/ip_forward
/etc/udev/rules.d/85-ifupdown.rules
--------------------------------------------------------------------------------
SUBSYSTEM=="net", GOTO="net_start"
GOTO="net_end"
LABEL="net_start"
# Bring devices up and down only if they're marked auto.
# Use start-stop-daemon so we don't wait on dhcp
ACTION=="add", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow hotplug $env{INTERFACE}"
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow hotplug $env{INTERFACE}"
LABEL="net_end"
/etc/udev/rules.d/80-dnw.rules
--------------------------------------------------------------------------------
1 # USB bulk device
2 SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="1234", RUN+="/usr/local/bin/smdk- usbdl -f /home/target/tftpboot/uImage"
그리고 u-boot 부트 옵션은 아래와 같습니다.
mtdpart=40000 3c0000 3000000
bootdelay=5
baudrate=115200
ethaddr=00:40:5c:26:0a:02
filesize=22FCD0
fileaddr=C0008000
netmask=255.255.255.0
bootcmd=dnw 0xc0008000;bootm 0xc0008000
bootargs=root=/dev/nfs rw nfsroot=192.168.1.1:/home/target/nfs/rootfs_nfs ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0::usb0:off console=ttySAC1,115200n81 mem=256M
gatewayip=192.168.1.1
ipaddr=192.168.1.2
serverip=192.168.1.1
stdin=serial
stdout=serial
stderr=serial
잘 못된 부분이나 살펴봐야할 부분이 있으면 알려주십시요.
고수님들의 도움부탁드립니다.
감사합니다.
일단 저도 오래된 얘기라 자료를 봐야하는데, usb gadget의 cdc ethernet이 동작 안할 수도 있습니다.
usb0가 아니라 eth0라야 합니다.
왜냐하면 ethernet을 사용해야 하기 때문에 그렇습니다. 자료실의 usb nfs는 v210용으로 작업된 것입니다.
aesop-c100 usermanual을 올립니다. 참고 바랍니다.