arm开发板上电设置静态ip_ARM开发板修改设置静态IP

本文介绍了如何在ARM开发板上设置静态IP地址,包括直接配置网口IP和修改shell程序的方法。通过编辑/etc/eth0-setting文件并调整权限,避免了每次开机都需要手动设置IP的困扰。
摘要由CSDN通过智能技术生成

微博搜索 bindingly   欢迎关注

所用IP是dhcp服务器自动分配的IP地址,每次要使用开发板的IP都很麻烦,更麻烦的是每次还要在代码里改IP。要是有个路由器也好解决,给这个端口固定一个IP地址,而我恰恰是用的交换机还是没办法配置的那种交换机。那就只能通过命令行改IP地址。

一般有两改法:

一、直接配置网口IP地址和掩码

ifconfig eth0 10.150.11.2 netmask 255.254.0.0

在使用命令source命令进行同步,再通过ifconfig查看IP地址,此时地址改成功了。但这种改法也是很麻烦的,每次重启、开机后都得改。

(解释下source:

在linux下man source得到如下解释:

source filename [arguments]

Read  and execute commands from filename in the current shell environment and return the exit status ofthe last command executed from filename.  If filename does not contain a slash, filenames in  PATH  areused  to find the directory containing filename.  The file searched for in PATH need not be executable.

When bash is not in posix mode, the current directory is searched if no file is found in PATH.  If  thesourcepath  option  to the shopt builtin command is turned off, the PATH is not searched.  If any argu‐ments are supplied, they become the positional parameters when filename  is  executed.   Otherwise  the positional parameters are unchanged.  The return status is the status of the last command exited within the script (0 if no commands are executed), and false if filename is not found or cannot be read.

说白了就是:在当前bash环境下读取并执行FileName中的命令。该命令通常用命令“.”来替代。对你修改的文件进行同步,省去了重启开发板的操作。)

二、修改相应的shell程序

开发板一启动就给分配了IP地址,说明它是自启动的,那就肯定可以自启动的shell程序etc/initd/rcS中找到相应的信息,果不其然,

/sbin/ifconfig lo 127.0.0.1

/etc/init.d/ifconfig-eth0

fa-network-service

现在就是顺着找ifconfig-eth0 ,查看该文件得到如下信息,

#!/bin/sh

echo -n Try to bring eth0 interface up......>/dev/ttySAC0

if [ -f /etc/eth0-setting ] ; then

source /etc/eth0-setting

if grep -q " / nfs " /etc/mtab ; then

echo -n NFS root ... > /dev/ttySAC0

else

DEV_ADDR=`cat /sys/class/net/eth0/address`

if [ "$DEV_ADDR" = "00:00:00:00:00:00" ]; then

ifconfig eth0 down

ifconfig eth0 hw ether $MAC

fi

ifconfig eth0 $IP netmask $Mask up

route add default gw $Gateway

fi

echo nameserver $DNS > /etc/resolv.conf

该文件肯定和/etc/eth0-setting有关,再顺着找到这个文件,发现就是在这里改,该文件如下:

IP=10.150.11.2

Mask=255.254.0.0

Gateway=10.150.1.1

DNS=10.150.1.1

MAC=08:90:90:90:90:90

在这里根据你的需要去改,MAC地址最好不要去改,别的随便改,注意:=两边不能有空格,要是空格就修改不成功或出现如下错误,大家写习惯代码总喜欢两边空格。

Try to bring eth0 interface up....../etc/init.d/ifconfig-eth0: /etc/eth0-setting: line 1: IP: not found

/etc/init.d/ifconfig-eth0: /etc/eth0-setting: line 2: Mask: not found

/etc/init.d/ifconfig-eth0: /etc/eth0-setting: line 3: Gateway: not found

/etc/init.d/ifconfig-eth0: /etc/eth0-setting: line 4: DNS: not found

ifconfig: bad address 'up'

可是重启的时候发现还是会自动获取IP地址,那就肯定和DHCP有关,在etc/下有个DHCPD的文件卷,我直接简单粗暴的把那里面的一个可执行文件直接用命令chmod 000 dhcpcd-run-hooks,当然你也可以直接备份再删除。等你要用的时候再把权限改过来就好。

到此修改结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值