海思视觉Hi3516CV610--开机自动设置ip

目录

方法一

uboot设置

脚本设置

方法二


方法一

uboot设置

在ubootline执行以下命令:

  • 只要用 双引号 " " → 不管加不加括号,U-Boot 都能解析变量!

  • 只要用 单引号 ' ' → 不管加不加括号,U-Boot 全都不解析!

    setenv bootargs "mem=32m console=ttyAMA0,115200 clk_ignore_unused root=ubi0:ubifs rootfstype=ubifs rw ubi.mtd=3 mtdparts=nand:512k(boot),512k(env),4M(kernel),32M(rootfs)"

    设置eth0

    setenv serverip 192.168.18.200
    setenv ethaddr 00:15:00:01:41:27
    setenv ipaddr 192.168.18.100
    setenv netmask 255.255.255.0
    setenv gatewayip 192.168.18.1

    方式一

    setenv bootargs "{bootargs} ip={ipaddr}:{serverip}:{gatewayip}:{netmask}:{board_name}:eth0:off"
    saveenv
    reset

    方式二

    setenv bootargs "mem=32m console=ttyAMA0,115200 clk_ignore_unused root=ubi0:ubifs rootfstype=ubifs rw ubi.mtd=3 mtdparts=nand:512k(boot),512k(env),4M(kernel),32M(rootfs) ip=ipaddr:serverip:gatewayip:netmask:$board_name:eth0:off"
    saveenv
    reset

脚本设置

复制代码
~ # cat /etc/init.d/S80network
#!/bin/sh

ipaddr=
bootp=
gateway=
netmask=
hostname=
netdev=
autoconf=

for ipinfo in `cat /proc/cmdline`
do
        case "$ipinfo" in
        ip=*)
                for var in  ipaddr bootp gateway netmask hostname netdev autoconf
                do
                        eval read $var
                done << EOF
                `echo "$ipinfo" | sed "s/:/\n/g" | sed "s/^[    ]*$/-/g"`
EOF
                ipaddr=`echo "$ipaddr" | cut -d = -f 2`
                [ x$ipaddr == x ] && ipaddr=x
                ;;
        esac
done

[ -z "$ipaddr" ] && exit 0

echo "      IP: $ipaddr"
echo "   BOOTP: $bootp"
echo " GATEWAY: $gateway"
echo " NETMASK: $netmask"
echo "HOSTNAME: $hostname"
echo "  NETDEV: $netdev"
echo "AUTOCONF: $autoconf"

if [ x$ipaddr == x- ] ; then
        # use DHCP
        :
else
        cmd="ifconfig $netdev $ipaddr"
        [ x$netmask != x- ] && cmd="$cmd netmask $netmask"
        eval $cmd
        [ x$gateway != x- ] && route add default gw $gateway
fi

ifconfig lo 127.0.0.1

~ #

方法二

复制代码
~ # cat /etc/init.d/S85network_eth0
#!/bin/sh

NETDEV="eth0"
ETHADDR="00:15:00:01:41:27"
IPADDR="192.168.18.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.18.1"
SERVERIP="192.168.18.200"

echo "==== 配置静态网络:$NETDEV ===="

# 等待网卡出现
i=0
while [ "$i" -lt 10 ]; do
    if ifconfig "$NETDEV" >/dev/null 2>&1; then
        break
    fi
    i=$((i + 1))
    sleep 1
done

if ! ifconfig "$NETDEV" >/dev/null 2>&1; then
    echo "错误:未找到网卡 $NETDEV"
    exit 1
fi

# 配置回环接口
ifconfig lo 127.0.0.1 up

# 配置网卡
ifconfig "$NETDEV" down
ifconfig "$NETDEV" hw ether "$ETHADDR" 2>/dev/null
ifconfig "$NETDEV" "$IPADDR" netmask "$NETMASK" up

# 删除旧默认路由,避免重复执行时报错
route del default 2>/dev/null

# 添加默认网关
route add default gw "$GATEWAY" "$NETDEV"

echo "==== 网络配置完成 ===="
echo "NETDEV:  $NETDEV"
echo "MAC:     $ETHADDR"
echo "IP:      $IPADDR"
echo "NETMASK: $NETMASK"
echo "GATEWAY: $GATEWAY"
echo "SERVER:  $SERVERIP"

exit 0

~ #
相关推荐
不做菜鸟的网工2 天前
BGP特性
网络协议
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
MrSYJ2 天前
TCP协议理解
后端·tcp/ip
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
明月_清风4 天前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假4 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
王二端茶倒水5 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议