현재 모토로이를 우분투와 윈도우7 에 세팅해서 개발중에 있다.
윈도우7 은 모토로이 드라이버가 있어서 설치하면 된다.

우분투는 따로 모토로라에서 드라이버를 제공하지 않는다.
우분투의 usb 장치를 인식시키는 방법을 사용한다. 이때 udev 를 이용한다.
테스트는 우분투 8.04 hardy 버전과 9.10 karmic 버전에서 테스트했다.

먼저 안드로이드 SDK 를 설치한다.

$ adb devices

를 해보면.. (sdk 의 tools 디렉토리에  adb 명령이 있다.)

List of devices attached
???????????? no permissions


처럼 나온다.
디바이스가 인식되지 않아서 그렇다. udev 를 이용해 인식시켜보자.
(정확히 말하면 권한이 없다고 해야 겠다. lsusb 로는 이미 인식은 되어 있다)

모토로이를 연결하고 lsusb 명령을 내려보면.
$ lsusb

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 22b8:41db Motorola PCS
Bus 001 Device 002: ID 148f:2573 Ralink Technology, Corp. RT2501USB Wireless Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 05af:0802 Jing-Mold Enterprise Co., Ltd
Bus 004 Device 002: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub



이런식으로 나온다. 모토로이가 어떤 것인지 딱 감이 올 것이다.

Bus 001 Device 005: ID 22b8:41db Motorola PCS


adb 에서 인식할 수 있도록, 장치를 등록한다.(진한 부분이 핵심이다)

관리자 권한으로 udev rules 를 만들어 준다.

# vi /etc/udev/rules.d/99-android.rules


위와 같이 파일을 만들어서 내용은 다음과 같이 넣어준다.(vi 등의 편집기)

SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", SYMLINK+="android_adb", MODE="0666"


한줄로 위 내용을 적어주고, 저장한다.

$ ls /etc/udev/rules.d/ -al
합계 24
drwxr-xr-x 2 root root 4096 2010-02-14 01:54 .
drwxr-xr-x 3 root root 4096 2009-12-06 02:15 ..
-rw-r--r-- 1 root root 1405 2009-12-21 20:25 70-persistent-cd.rules
-rw-r--r-- 1 root root  787 2009-12-11 00:51 70-persistent-net.rules
-rw-r--r-- 1 root root   91 2010-02-14 01:54 99-android.rules
-rw-r--r-- 1 root root 1157 2009-10-16 15:01 README


위처럼 rules 파일을 만들어 주면 된다.

udev 를 다시 실행시켜주면 정상적으로 사용할 수 있게 된다.(관리자권한 필요)


/etc/init.d/udev restart
또는
restart udev


이때 모토로이의 usb 저장소(외장형 SD)도 같이 인식되는 것을 볼 수 있다.


adb 명령을 다시 해보면.(처음과 다른것을 볼 수 있다)

$ adb devices
List of devices attached
04031826748580332373    device


위 처럼 인식된 장치가 보이게 된다.(보이는 숫자는 다를 것이다.)

이클립스에서 빌드명령을 내려보면, 타겟이 모토로이로 지정되어 뜨게 된다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
ubuntu hardy 를 설치해 사용중인데,(데스크탑)
보통 /etc/network/interfaces 에서 네트웍인터페이스카드에 대한 설정을 한다.
static 으로 할지, dhcp 로 ip를 할당받을 지 등등...
auto eth0
iface eth0 inet dhcp
이런식이지.

근데, 무선랜(USB)을 설정하려고 보다보니, eth0 에 대한 dhcp 설정이 없다.
헐!  달랑
auto lo
iface lo inet loopback
만 있네.  어떻게 eth0 이 올라와 있지,dhcp 로 ip 할당도 받고?

udev 로 eth0 까지는 인식하는 것 같지만, ip 할당을  /etc/network/interfaces 에 없이 처리하나?
/etc/udev/rules.d/70-persistent-net.rules:SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="{eth0맥어드레스}", ATTR{type}=="1", NAME="eth0"
위 처럼 udev 가 eth0 를 잡기는 하는데, dhcp 는? 어디서?
dhcp client 가 직접?    내가 뭔가 잘못알고 있나?
udev 쪽 만으로  알아서 잡나?

모를일이다. ^^;;


ps. dhcp3/dhclient.conf  에도 따로 설정이 있는 것 같지는 않은데.
initramfs-tools/initramfs.conf  에   DEVICE=eth0  가 있지만, 그 설정은 아닌 것 같고.
다른 ubuntu 8.10 깔린 것을 살펴보니,  
auto eth0 만 있고, iface eth0 inet dhcp 는 주석처리되어 있다. 
그래도 IP를 할당 받았네.  뭔가 처리해주는 놈이 있을 듯 한데. 뭐지?


# 추가 : NetworkManager 라는 놈이 그 역할을 하는 듯 하다.
떠있는 프로세스를 보니 이런 프로세스가 있다.(ps ax)
/sbin/dhclient -d -sf /usr/lib/NetworkManager/nm-dhcp-client.action -pf /var/run/dhclient-eth0.pid -lf /var/run/dhclient-eth0.lease -cf /var/run/nm-dhclient-eth0.conf eth0
그놈(Gnome)의 애플릿? 인 듯 한 NetworkManager 가 알아서 dhclient 를 띄워주나 보다.
음. 그럼 X윈도를 띄우지 않으면 네트웍이 안 잡히려나?(그건 나중에 테스트 해보고..)


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,