WindowsXPでIDEOSをUSBテザリングする

あらすじ

IDEOSはOS本来の機能としてUSBテザリングができるようになっているもののWindowsXPではUSBテザリングが多少手間なので何かの参考になればと思って手順を記録してみました

  1. ActiveSyncをインストール
  2. バイスを認識させるためのinfファイルを準備
  3. IDEOSを接続してUSBテザリングモードに変更
  4. infファイルを指定してデバイスを認識させる

ActiveSyncのインストール

これだけです

infファイルを準備

Googleが用意しているNexus用のinfファイルを元に作成します。
できあがったらこんな感じになるのでこれをideos.infという名前でどこかに保存します

; MS-Windows driver config matching some basic modes of the
; Linux-USB Ethernet/RNDIS gadget firmware:
;
;  - RNDIS plus CDC Ethernet ... this may be familiar as a DOCSIS
;    cable modem profile, and supports most non-Microsoft USB hosts
;
;  - RNDIS plus CDC Subset ... used by hardware that incapable of
;    full CDC Ethernet support.
;
; Microsoft only directly supports RNDIS drivers, and bundled them into XP.
; The Microsoft "Remote NDIS USB Driver Kit" is currently found at:
;   http://www.microsoft.com/whdc/hwdev/resources/HWservices/rndis.mspx


[Version]
Signature           = "$CHICAGO$"
Class               = Net
ClassGUID           = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider            = %Android%
Compatible          = 1
MillenniumPreferred = .ME
DriverVer           = 03/30/2004,0.0.0.0
; catalog file would be used by WHQL
;CatalogFile         = Android.cat

[Manufacturer]
%Android%          = AndroidDevices,NT.5.1

[AndroidDevices]
; Google Nexus One without adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&PID_4E13
; Google Nexus One with adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&PID_4E14
; Google Nexus S without adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&PID_4E23
; Google Nexus S with adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&PID_4E24
; HTC Sapphire without adb
%AndroidDevice%    = RNDIS, USB\VID_0BB4&PID_0FFE
; HTC Sapphire with adb
%AndroidDevice%    = RNDIS, USB\VID_0BB4&PID_0FFC
; Motorola Sholes without adb
%AndroidDevice%    = RNDIS, USB\VID_22B8&PID_41E4
; Motorola Sholes with adb
%AndroidDevice%    = RNDIS, USB\VID_22B8&PID_41E5
; Huawei Ideos with/without adb
%AndroidDevice%    = RNDIS, USB\VID_12D1&PID_1039

[AndroidDevices.NT.5.1]
; Google Nexus One without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&PID_4E13
; Google Nexus One with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&PID_4E14
; Google Nexus S without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&PID_4E23
; Google Nexus S with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&PID_4E24
; HTC Sapphire without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_0BB4&PID_0FFE
; HTC Sapphire with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_0BB4&PID_0FFC
; Motorola Sholes without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_22B8&PID_41E4
; Motorola Sholes with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_22B8&PID_41E5
; Huawei Ideos with/without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_12D1&PID_1039

[ControlFlags]
ExcludeFromSelect=*

; Windows XP specific sections -----------------------------------

[RNDIS.NT.5.1]
Characteristics = 0x84   ; NCF_PHYSICAL + NCF_HAS_UI
BusType         = 15
DriverVer           = 03/30/2004,0.0.0.0
AddReg          = RNDIS_AddReg_NT, RNDIS_AddReg_Common
; no copyfiles - the files are already in place

[RNDIS.NT.5.1.Services]
AddService      = USB_RNDIS, 2, RNDIS_ServiceInst_51, RNDIS_EventLog

[RNDIS_ServiceInst_51]
DisplayName     = %ServiceDisplayName%
ServiceType     = 1 
StartType       = 3 
ErrorControl    = 1 
ServiceBinary   = %12%\usb8023.sys    
LoadOrderGroup  = NDIS
AddReg          = RNDIS_WMI_AddReg_51

[RNDIS_WMI_AddReg_51]
HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismp.sys"

; Windows 2000 and Windows XP common sections --------------------

[RNDIS_AddReg_NT]
HKR, Ndi,               Service,        0, "USB_RNDIS"
HKR, Ndi\Interfaces,    UpperRange,     0, "ndis5" 
HKR, Ndi\Interfaces,    LowerRange,     0, "ethernet"

[RNDIS_EventLog]
AddReg = RNDIS_EventLog_AddReg

[RNDIS_EventLog_AddReg]
HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
HKR, , TypesSupported,   0x00010001, 7

; Common Sections -------------------------------------------------

[RNDIS_AddReg_Common]
HKR, NDI\params\NetworkAddress, ParamDesc,  0, %NetworkAddress%
HKR, NDI\params\NetworkAddress, type,       0, "edit"
HKR, NDI\params\NetworkAddress, LimitText,  0, "12"
HKR, NDI\params\NetworkAddress, UpperCase,  0, "1"
HKR, NDI\params\NetworkAddress, default,    0, " "
HKR, NDI\params\NetworkAddress, optional,   0, "1"

[SourceDisksNames]
1=%SourceDisk%,,1

[SourceDisksFiles]
usb8023m.sys=1
rndismpm.sys=1
usb8023w.sys=1
rndismpw.sys=1
usb8023k.sys=1
rndismpk.sys=1

[DestinationDirs]
RNDIS_CopyFiles_98    = 10, system32/drivers
RNDIS_CopyFiles_ME    = 10, system32/drivers
RNDIS_CopyFiles_NT    = 12

[Strings]
ServiceDisplayName    = "USB Remote NDIS Network Device Driver"
NetworkAddress        = "Network Address"
Android               = "Android"
AndroidDevice         = "Android USB Ethernet/RNDIS"
SourceDisk            = "Ethernet/RNDIS Driver Install Disk"

IDEOSを接続してUSBテザリングモードに変更

USBでIDEOSを接続するとまずはドライブとして認識されます
設定→無線とネットワーク→テザリングとポータブルアクセスポイント→USBテザリング

という順に選択してUSBテザリングにチェックを入れます

infファイルを指定してデバイスを認識させる

チェックを入れると新しいハードウェアを発見するのでファイルを指定してインストールします
ファイルはもちろんideos.infです

juggly.cnのNexusへのインストール手順を説明してくれているページが参考になります