2

Linux ベースのボードとホスト マシン (WinXP/Win7/Ubuntu など) の間で RNDIS 接続を確立する必要があります。

RNDIS ケーブルを使用してボードを接続すると、すべてのホストが IP アドレスを認識して解決を開始します。ボード側では、起動時にコマンドを実行して静的 IP を与えました。

ifconfig usb0 169.254.1.1 netmask 255.255.0.0 up

しかし、ホスト マシンが RNDIS IP をネゴシエートするのに長い時間がかかり、そのたびに169.254.abc.xyz.

169.254.1.2この Linux ボードに接続されている任意のホストに静的 RNDIS IP (たとえば ) を割り当てたいと考えています。誰かがこれを達成する方法を決定するのを手伝ってくれますか? ホスト側では、特別な RNDIS ドライバーは使用しません。デフォルトの USB-Ethernet ドライバーがダウンロードされます。Linux のバージョンは 2.3.62 です。

4

2 に答える 2

2

わかりました..答えがわかりました....実際には、インターフェイスusb0を介してdhcpサーバーを起動する必要があります。したがって、USBホストがdhcp IPをシークしようとするときはいつでも、デバイスで実行され、usb0インターフェイスでリストされているdhcpサーバーが呼び出しに応答し、IPを割り当てます。IPプール内の1つのIPを割り当てるだけでIPを修正するには(udhcpd.confファイルで実行できます)

サーバーudhcpdを次のように起動します。

busybox udhcpd /etc/udhcpd.conf

以下は、私が使用したdhcpd.confのサンプルです。

# Sample udhcpd configuration file (/etc/udhcpd.conf)
# Values shown are defaults

# The start and end of the IP lease block
start       169.254.10.102
end     169.254.10.102

# The interface that udhcpd will use
interface   usb0

# The maximum number of leases (includes addresses reserved
# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected
# if it's bigger than IP lease block, but it ok to make it
# smaller than lease block.
#max_leases 254

# The amount of time that an IP will be reserved (leased to nobody)
# if a DHCP decline message is received (seconds)
#decline_time   3600

# The amount of time that an IP will be reserved
# if an ARP conflict occurs (seconds)
#conflict_time  3600

# How long an offered address is reserved (seconds)
#offer_time 60

# If client asks for lease below this value, it will be rounded up
# to this value (seconds)
#min_lease  60

# The location of the pid file
#pidfile    /var/run/udhcpd.pid

# The location of the leases file
#lease_file /var/lib/misc/udhcpd.leases

# The time period at which udhcpd will write out leases file.
# If this is 0, udhcpd will never automatically write leases file.
# Specified in seconds.
#auto_time  7200

# Every time udhcpd writes a leases file, the below script will be called
#notify_file            # default: no script
#notify_file    dumpleases  # useful for debugging

# The following are bootp specific options
# next server to use in bootstrap
#siaddr     192.168.0.22    # default: 0.0.0.0 (none)
# tftp server name
#sname      zorak       # default: none
# tftp file to download (e.g. kernel image)
#boot_file  /var/nfs_root   # default: none

# Static leases map
#static_lease 00:60:08:11:CE:4E 192.168.0.54
#static_lease 00:60:08:11:CE:3E 192.168.0.44

# The remainder of options are DHCP options and can be specified with the
# keyword 'opt' or 'option'. If an option can take multiple items, such
# as the dns option, they can be listed on the same line, or multiple
# lines.
# Examples:
#opt    dns 192.168.10.2 192.168.10.10
option  subnet  255.255.255.0
#opt    router  192.168.10.2
#opt    wins    192.168.10.10
#option dns 129.219.13.81   # appended to above DNS servers for a total of 3
option  domain  local
option  lease   864000      # default: 10 days
#option msstaticroutes  10.0.0.0/8 10.127.0.1       # single static route
#option staticroutes    10.0.0.0/8 10.127.0.1, 10.11.12.0/24 10.11.12.1
# Arbitrary option in hex form:
option  0x08    01020304    # option 8: "cookie server IP addr: 1.2.3.4"

# Currently supported options (for more info, see options.c):
#opt lease      NUM
#opt subnet     IP
#opt broadcast  IP
#opt router     IP_LIST
#opt ipttl      NUM
#opt mtu        NUM
#opt hostname   STRING      # client's hostname
#opt domain     STRING      # client's domain suffix
#opt search     STRING_LIST # search domains
#opt nisdomain  STRING
#opt timezone   NUM     # (localtime - UTC_time) in seconds. signed
#opt tftp       STRING      # tftp server name
#opt bootfile   STRING      # tftp file to download (e.g. kernel image)
#opt bootsize   NUM     # size of that file
#opt rootpath   STRING      # (NFS) path to mount as root fs
#opt wpad       STRING
#opt serverid   IP      # default: server's IP
#opt message    STRING      # error message (udhcpd sends it on success too)
#opt vlanid     NUM     # 802.1P VLAN ID
#opt vlanpriority NUM       # 802.1Q VLAN priority
# Options specifying server(s)
#opt dns        IP_LIST
#opt wins       IP_LIST
#opt nissrv     IP_LIST
#opt ntpsrv     IP_LIST
#opt lprsrv     IP_LIST
#opt swapsrv    IP
# Options specifying routes
#opt routes     IP_PAIR_LIST
#opt staticroutes   STATIC_ROUTES # RFC 3442 classless static route option
#opt msstaticroutes STATIC_ROUTES # same, using MS option number
# Obsolete options, no longer supported
#opt logsrv     IP_LIST # 704/UDP log server (not syslog!)
#opt namesrv    IP_LIST # IEN 116 name server, obsolete (August 1979!!!)
#opt cookiesrv  IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used
#opt timesrv    IP_LIST # RFC 868 time server, rarely(never?) used
# TODO: in development
#opt userclass  STRING      # RFC 3004. set of LASCII strings. "I am a printer" etc
#opt sipserv    STRING LIST # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs
于 2013-03-14T12:28:41.677 に答える
0

しばらくの間、udhcpd サーバーのテスト中にエラーがスローされました。だから私は少し変更を加えました。最初に /var/lib/misc/udhcpd.lease ファイルを作成し、conf ファイルを次のように変更しました。

# Sample udhcpd configuration file (/etc/udhcpd.conf)
# Values shown are defaults

# The start and end of the IP lease block
start       169.254.10.102
end     169.254.10.103

# The interface that udhcpd will use
interface   usb0

# The maximum number of leases (includes addresses reserved
# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected
# if it's bigger than IP lease block, but it ok to make it
# smaller than lease block.
max_leases  1

# The amount of time that an IP will be reserved (leased to nobody)
# if a DHCP decline message is received (seconds)
#decline_time   3600

# The amount of time that an IP will be reserved
# if an ARP conflict occurs (seconds)
#conflict_time  3600

# How long an offered address is reserved (seconds)
#offer_time 60

# If client asks for lease below this value, it will be rounded up
# to this value (seconds)
#min_lease  60

# The location of the pid file
pidfile /var/run/udhcpd.pid

# The location of the leases file
lease_file  /var/lib/misc/udhcpd.leases

# The time period at which udhcpd will write out leases file.
# If this is 0, udhcpd will never automatically write leases file.
# Specified in seconds.
#auto_time  7200

# Every time udhcpd writes a leases file, the below script will be called
#notify_file            # default: no script
#notify_file    dumpleases  # useful for debugging

# The following are bootp specific options
# next server to use in bootstrap
#siaddr     192.168.0.22    # default: 0.0.0.0 (none)
# tftp server name
#sname      zorak       # default: none
# tftp file to download (e.g. kernel image)
#boot_file  /var/nfs_root   # default: none

# Static leases map
#static_lease 00:60:08:11:CE:4E 192.168.0.54
#static_lease 00:60:08:11:CE:3E 192.168.0.44

# The remainder of options are DHCP options and can be specified with the
# keyword 'opt' or 'option'. If an option can take multiple items, such
# as the dns option, they can be listed on the same line, or multiple
# lines.
# Examples:
#opt    dns 192.168.10.2 192.168.10.10
option  subnet  255.255.255.0
#opt    router  192.168.10.2
#opt    wins    192.168.10.10
#option dns 129.219.13.81   # appended to above DNS servers for a total of 3
option  domain  local
option  lease   864000      # default: 10 days
#option msstaticroutes  10.0.0.0/8 10.127.0.1       # single static route
#option staticroutes    10.0.0.0/8 10.127.0.1, 10.11.12.0/24 10.11.12.1
# Arbitrary option in hex form:
#option 0x08    01020304    # option 8: "cookie server IP addr: 1.2.3.4"

# Currently supported options (for more info, see options.c):
#opt lease      NUM
#opt subnet     IP
#opt broadcast  IP
#opt router     IP_LIST
#opt ipttl      NUM
#opt mtu        NUM
#opt hostname   STRING      # client's hostname
#opt domain     STRING      # client's domain suffix
#opt search     STRING_LIST # search domains
#opt nisdomain  STRING
#opt timezone   NUM     # (localtime - UTC_time) in seconds. signed
#opt tftp       STRING      # tftp server name
#opt bootfile   STRING      # tftp file to download (e.g. kernel image)
#opt bootsize   NUM     # size of that file
#opt rootpath   STRING      # (NFS) path to mount as root fs
#opt wpad       STRING
#opt serverid   IP      # default: server's IP
#opt message    STRING      # error message (udhcpd sends it on success too)
#opt vlanid     NUM     # 802.1P VLAN ID
#opt vlanpriority NUM       # 802.1Q VLAN priority
# Options specifying server(s)
#opt dns        IP_LIST
#opt wins       IP_LIST
#opt nissrv     IP_LIST
#opt ntpsrv     IP_LIST
#opt lprsrv     IP_LIST
#opt swapsrv    IP
# Options specifying routes
#opt routes     IP_PAIR_LIST
#opt staticroutes   STATIC_ROUTES # RFC 3442 classless static route option
#opt msstaticroutes STATIC_ROUTES # same, using MS option number
# Obsolete options, no longer supported
#opt logsrv     IP_LIST # 704/UDP log server (not syslog!)
#opt namesrv    IP_LIST # IEN 116 name server, obsolete (August 1979!!!)
#opt cookiesrv  IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used
#opt timesrv    IP_LIST # RFC 868 time server, rarely(never?) used
# TODO: in development
#opt userclass  STRING      # RFC 3004. set of LASCII strings. "I am a printer" etc
#opt sipserv    STRING LIST # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs

実際、接続した人は誰でも同じ固定IPを与えるというstatic_leaseでIPを与えようとしましたが、成功しませんでした。

于 2013-03-15T10:13:41.237 に答える