一、創建配置文件
從busybox的examples/udhcp/下獲取simple.script文件,復制到嵌入式設備/usr/share/udhcpc/下,並重命名為default.script。
simple.script內容:
#!/bin/sh # udhcpc script edited by Tim Riker <Tim@Rikers.org> RESOLV_CONF="/etc/resolv.conf" [ -n "$1" ] || { echo "Error: should be called from udhcpc"; exit 1; } NETMASK="" if command -v ip >/dev/null; then [ -n "$subnet" ] && NETMASK="/$subnet" else [ -n "$subnet" ] && NETMASK="netmask $subnet" fi BROADCAST="broadcast +" [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" case "$1" in deconfig) echo "Setting IP address 0.0.0.0 on $interface" if command -v ip >/dev/null; then ip addr flush dev $interface else ifconfig $interface 0.0.0.0 fi ;; renew|bound) echo "Setting IP address $ip on $interface" if command -v ip >/dev/null; then ip addr add $ip$NETMASK $BROADCAST dev $interface else ifconfig $interface $ip $NETMASK $BROADCAST fi if [ -n "$router" ] ; then echo "Deleting routers" while route del default gw 0.0.0.0 dev $interface ; do : done metric=0 for i in $router ; do echo "Adding router $i" if [ "$subnet" = "255.255.255.255" ]; then # special case for /32 subnets: # /32 instructs kernel to always use routing for all outgoing packets # (they can never be sent to local subnet - there is no local subnet for /32). # Used in datacenters, avoids the need for private ip-addresses between two hops. ip route add $i dev $interface fi route add default gw $i dev $interface metric $((metric++)) done fi echo "Recreating $RESOLV_CONF" # If the file is a symlink somewhere (like /etc/resolv.conf # pointing to /run/resolv.conf), make sure things work. if test -L "$RESOLV_CONF"; then # If it's a dangling symlink, try to create the target. test -e "$RESOLV_CONF" || touch "$RESOLV_CONF" fi realconf=$(readlink -f "$RESOLV_CONF" 2>/dev/null || echo "$RESOLV_CONF") tmpfile="$realconf-$$" > "$tmpfile" [ -n "$domain" ] && echo "search $domain" >> "$tmpfile" for i in $dns ; do echo " Adding DNS server $i" echo "nameserver $i" >> "$tmpfile" done mv "$tmpfile" "$realconf" ;; esac exit 0
二、執行命令,指定網卡為bridge0
udhcpc -i bridge0
三、執行結果
/ # udhcpc -i bridge0 udhcpc (v1.23.1) started Setting IP address 0.0.0.0 on bridge0 Sending discover... Sending select for 192.168.137.96... Lease of 192.168.137.96 obtained, lease time 604800 Setting IP address 192.168.137.96 on bridge0 Deleting routers route: SIOCDELRT: No such process Adding router 192.168.137.1 Recreating /etc/resolv.conf Adding DNS server 192.168.137.1