Brain(CE)をRNDISでネットにつなげる
準備
デザインテンプレートは多分どれを選んでも問題なし
2. プロジェクトが開いたら、右側下のほうの「カタログ項目ビュー」を開く
存在しない/わからない場合は、メニューバーの「表示」→「その他のウィンドウ」→「カタログ項目ビュー」
3. 「デバイスドライバー」→「USB機能」→「USB機能クライアント」→「RNDISクライアント」にチェック
Brain起動後行う手順
1. 生成された「rndisfn.dll」をBrainのWindowsフォルダにコピーする
2. レジストリエディタなどで以下の内容をBrainのレジストリに書き込む
code:rndis.reg
REGEDIT4
"Dll"="rndisfn.dll"
"FriendlyName"="Rndis"
"idVendor"=dword:045E
"Manufacturer"="Generic Manufacturer"
"idProduct"=dword:0301
"idProductInternetSharing"=dword:0303
"Product"="Generic RNDIS"
"bcdDevice"=dword:0
"DisplayName"="netmui.dll,#9003"
"Group"="NDIS"
"ImagePath"="rndisfn.dll"
"NoDeviceCreate"=dword:01
"Enabled"=dword:01
"Route"="RndisFn1"
"DisplayName"="netmui.dll,#9002"
"Group"="NDIS"
"ImagePath"="rndisfn.dll"
"BusNumber"=dword:0
"BusType"=dword:0
"RebindOnResume"=dword:0
Pythonを用意するのが面倒な方は同等のCプログラムを書いてコンパイルして投入する
code:set_ip.py
import ctypes
from ctypes import wintypes
iphlpapi = ctypes.windll.iphlpapi
adapter_name = ctypes.c_wchar_p("RndisFn1")
adapter_index = ctypes.c_ulong(0)
iphlpapi.GetAdapterIndex.restype = wintypes.DWORD
iphlpapi.GetAdapterIndex(adapter_name, ctypes.pointer(adapter_index))
class IN_ADDR(ctypes.Structure):
_fields_ = [
("s_b1", ctypes.c_ubyte),
("s_b2", ctypes.c_ubyte),
("s_b3", ctypes.c_ubyte),
("s_b4", ctypes.c_ubyte)
]
address = IN_ADDR(192, 168, 137, 66) # 192.168.137.66
submask = IN_ADDR(255, 255, 255, 0)
nte_context = ctypes.pointer(ctypes.c_ulong(0))
nte_instance = ctypes.pointer(ctypes.c_ulong(0))
iphlpapi.AddIPAddress.restype = wintypes.DWORD
iphlpapi.AddIPAddress(address, submask, adapter_index, nte_context, nte_instance)
インターネットに接続する
1. コントロールパネルを開き、「Freescale usb driver」を開く
2. PCとBrainをUSBケーブルで接続する
3. 「RNDIS」を選択、Applyを押して、表示される警告ウィンドウを閉じる
Windowsではこれによって192.168.137.*が割り当て可能になりますが、OSによって異なると思うのでそれぞれのOSで使用可能になるIPアドレスをPythonスクリプトに記入してください。既定では192.168.137.66にしてあります
3. 事前に用意したPythonスクリプトを実行する
4. インターネット疎通!
Brainがサスペンドするなどして接続が切れた場合は、インターネットに接続するの手順をもう一度行ってください。