<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    嵌入式linux中使用 DHCP功能描述

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    嵌入式linux中使用 DHCP功能描述

     

    busybox中udhcpc的默認script腳本地址為
    #define DEFAULT_SCRIPT   CONFIG_UDHCPC_DEFAULT_SCRIPT
    #define CONFIG_UDHCPC_DEFAULT_SCRIPT "/usr/share/udhcpc/default.script"
    我想之所以以它作為默認地址,肯定有他的道理,所以在這個地址上創建它[luther.gliethttp]

    luther@gliethttp:/vobs/initramfs$ mkdir usr/share/udhcpc/ -p
    luther@gliethttp:/vobs/initramfs$ cp ~/busybox-1.14.3/examples/udhcp/simple.script usr/share/udhcpc/default.script
    luther@gliethttp:/vobs/initramfs$ chmod +x usr/share/udhcpc/default.script
    在/etc/inittab中加入下面一行語句:
    ::once:"/sbin/udhcpc >/dev/null 2>&1" # udhcpc會退出,所以不能使用respawn,必須為once,1次,否則將一直出現udhcpc重啟log信息
    就這樣簡單的幾行ip和dns就能自動獲取了[luther.gliethttp]
    其實有些東西就可以放在rcS等啟動腳本中,有些可以到init腳本中去完成.
    # /sbin/udhcpc

     

     

     由于要使用網絡通訊,所以不可避免的要用到dhcp。理想的網絡通訊方式是下面3種都要支持:

      1,接入已有網絡。這便要求可以作為dhcp客戶端。

      2,作為DHCP服務器,動態分配IP。

      3,指定固定IP

      第3種情況沒有什么好說的,簡單說下前2種情況。

      使用步驟:

      (1)在內核的網絡項里面把DHCP配置上;

      (2)在busybox里面把[*]udhcp server(udhcpd)

      [*]udhcp client(udhcpc)都選上。

      udhcpd就是終端設備作為DHCP服務器

      udhcpc就是終端設備作為DHCP客戶端

      busybox里面對dhcp都已經給出例子了,

      [zhh@localhost busybox-1.14.1]$ ls ./examples/udhcp/

      sample.bound sample.deconfig sample.nak sample.renew sample.script simple.script udhcpd.conf

      比如使用udhcpc時

      就可以直接把simple.script拿來使用,改不改名字都可以,busybox里面默認的目錄文件是/usr/share/udhcpc/default.script

      可以查看下幫助

      # udhcpc --help

      BusyBox v1.14.1 (2010-01-22 10:35:16 CST) multi-call binary

      Usage: udhcpc [-Cfbnqtvo] [-c CID] [-V VCLS] [-H HOSTNAME] [-i INTERFACE]

      [-p pidfile] [-r IP] [-s script] [-O dhcp-option]... [-P N]

      -V CLASSID Vendor class identifier

      -i INTERFACE Interface to use (default: eth0)

      -H,-h HOSTNAME Client hostname

      -c CLIENTID Client identifier

      -C Suppress default client identifier

      -p file Create pidfile

      -r IP IP address to request

      -s file Run file at DHCP events (default /usr/share/udhcpc/default.script)

      -t N Send up to N request packets

      -T N Try to get a lease for N seconds (default 3)

      -A N Wait N seconds (default 20) after failure

      -O OPT Request DHCP option OPT (cumulative)

      -o Do not request any options (unless -O is also given)

      -f Run in foreground

      -b Background if lease is not immediately obtained

      -S Log to syslog too

      -n Exit with failure if lease is not immediately obtained

      -q Quit after obtaining lease

      -R Release IP on quit

      -P N Use port N instead of default 68

      -a Use arping to validate offered address

      #

      這樣就很好理解了。

      下面就說說使用udhcpd,同樣可以直接把busybox自帶的udhcpd.conf作為參考,怎么設置該文件就不詳述了,去參考相關文檔即可。看看udhcpd怎么使用

      # udhcpd --help

      BusyBox v1.14.1 (2010-01-22 10:35:16 CST) multi-call binary

      Usage: udhcpd [-fS] [-P N] [configfile]

      DHCP server

      -f Run in foreground

      -S Log to syslog too

      -P N Use port N instead of default 67

      幫助一目了然。

      我使用的時候直接

      #udhcpd /etc/udhcpd.conf

      即可。

      還有一個租約文件要簡要說說,使用udhcpd時會要求建立一個租約文件,按照提示創建一個就行了,它起什么作用呢?就是為了記錄客戶端所獲得的IP,如果沒有租約文件,則會重新給客戶端分配一個新IP,如果有,則使用原先分配的IP。

    http://blog.sina.com.cn/s/blog_6d7e4eba0100r64r.html

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全