busybox网络配置

想找一些现成的busybox配置脚本启动网络搜到的都是些介绍性质的,彼此拷来拷去的东西,没办法.自己看脚本配置,很简单,几分钟就搞定了.过程从 busybox的启动脚本:/etc/rc.d/init.d/network的启动过程终可以看到网设备的初始化过程.首先/etc /network.conf终定义了NETWORKING和网关的值,如果是yes那么从network.d中找设备的配置文件.(在linux发行版中看network配置,它地网卡配置在/etc/sysconfig目录下)
network如下;

#!/bin/ash
#
# Network interface(s) init script
#
# config: /etc/network.conf
#    /etc/network.d/interface.[devname]

. /etc/rc.d/init.d/functions
. /etc/network.conf

if [ "$NETWORKING" != "yes" ]; then
    echo "Networking is disabled in /etc/network.conf"
    exit 0
fi

case "$1" in
start)
    for i in /etc/network.d/interface.*
    do
        if [ -r "$i" ]; then
            . $i
            if [ "$DHCP" = "yes" ]; then
                echo -n "Starting DHCP for interface $INTERFACE: "
                udhcpc -b -i "$INTERFACE" /
                    -p "/var/run/udhcpc.$INTERFACE.pid" /
                    > /dev/null
            else
                echo -n "Setting up interface $INTERFACE: "
                ifconfig "$INTERFACE" "$IPADDRESS" /
                    netmask "$NETMASK" /
                    broadcast "$BROADCAST" up
            fi
            check_status
        fi
    done
   
    if [ "$USE_GATEWAY" = "yes" -a -n "$GATEWAY" ]; then
        echo -n "Setting default route: "
        route add default gw $GATEWAY
        check_status
    fi
    ;;
stop)
    if [ "$USE_GATEWAY" = "yes" -a -n "$GATEWAY" ]; then
        echo -n "Removing default route: "
        route del -net 0.0.0.0
        check_status
    fi

    for i in /etc/network.d/interface.*
    do
        if [ -r "$i" ]; then
            . $i
            echo -n "Shutting down interface $INTERFACE: "
            ifconfig $INTERFACE down
            check_status
            if [ "$DHCP" = "yes" ]; then
                kill `cat "/var/run/udhcpc.$INTERFACE.pid"`
                sleep 1
            fi
        fi
    done
    ;;
restart)
    $0 stop
    $0 start
    ;;
status)
    ifconfig
    route
    ;;
*)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
esac


所以设计网络初始化如下:

在/etc/rc.d/init.d/start中加文件联结如下;
ln -s ../init.d/network 02network

定义/etc/network.conf如下:
NETWORKING=yes
USE_GATEWAY=yes
GATEWAY=192.168.2.1

在etc中加目录network.d,并且定义v/etc/network.d/interface.eth0如下;
DHCP=no
INTERFACE=eth0
IPADDRESS=192.168.1.3
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
按照上述步骤可以添加网卡配置.

如果输入命令
echo 1 > /proc/sys/net/ip_forward 那么可以实现转发。

通过上述步骤可以自动完成网络系统的配置.


下面是转载的网上的文章,实际上可以更加简单,busybox编译的时候确定选上不需要inetd启动,那么在启动过程中直接添加:telnetd就可以了。

转贴:    进入busybox源代码目录,选择telnet,telnetd.后


确保在ramdisk的sbin目录下存在inetd和in.telnetd或telned。在ramdisk中的mnt/etc目录中,确保存在文件fstab,service,inetd.conf,passwd文件
确保fstab文件中存在none            /dev/pts        devpts mode=0622       0 0这一行
确保services文件中存在telnet          23/tcp 这一行
确保inetd.conf中存在telnet stream tcp     nowait root    /sbin/in.telnetd        in.telnetd
确保passwd文件中存在root::0:0:root:/:/bin/sh,表示没有密码的root帐号
在kernal的代码中,通过makemenuconfig,在Character devices中选中Unix98 PTY support在File systems中选中/dev/pts file system for Unix98 PTYs退出后make zImage即可
在ramdisk的启动文件mnt/etc/init.d/rcS中,在mount –a的后面下一行加入inetd,使系统启动的时候就加载telnetd服新建inetd.conf文件,内容如下:
#
telnetstream tcp nowait root    /usr/sbin/telnetd
运行inetd inetd.conf

在网上google了一天,最终可以确定要使用telnetd,内核必须配置以下项:
dev/pts file system for Unix98 PTYs
Unix98 PTY support
(256) Maximum number of Unix98 PTYs in use (0-2048)
可我使用的2.6.14.1的内核,make menuconfig根本找不到这些配置项!那么内核是否支持这些选项呢?cat /proc/filesystems发现已支持devpts文件系统,那么uinx98 pty呢?
查看内核的Kconfig和Makefile文件,发现只要CONFIG_UNIX98_PTYS=y就会编译支持devpts文件系统和unix98的功能。而选择了嵌入式CPU内核会默认CONFIG_UNIX98_PTYS=y。所以我的内核已经支持telnet。
fstab文件中也加载了devpts文件系统:
devpts          /dev/pts        devpts defaults    00
inittab文件中也指明了telnet的动作:
tty0::askfirst:-/bin/sh
为什么还不行呢?
困惑!后来仔细想想,应该是设备文件节点的问题。我在开发板上移植2.6内核和驱动时一直没有使用devfs。因为devfs虽然方便,但同时也阻止了对设备文件节点的了解,且2.6内核已放弃了devfs。
那么使用telnet应该创建那些文件节点呢?devpts会在/dev/pts下自动创建节点,还有什么呢?google了一会没有答案。后来忽然想起Kconfig文件中好象些说明,再去看一看,原来是这样:
         A pseudo terminal (PTY) is a software device consisting of two
halves: a master and a slave. The slave device behaves identical to
a physical terminal; the master device is used by a process to
read data from and write data to the slave, thereby emulating a
terminal. Typical programs for the master side are telnet servers
and xterms.
Linux has traditionally used the BSD-like names /dev/ptyxx for
masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
has a number of problems. The GNU C library glibc 2.1 and later,
however, supports the Unix98 naming standard: in order to acquire a
pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
terminal is then made available to the process and the pseudo
terminal slave can be accessed as /dev/pts/. What was
traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
是因为缺少ptmx设备文件!查看Documentation/devices.txt文件,好了。
mknod -m 666 ptmx c 5 2
再试试,OK可以telnet开发板了!
我是直接使用的busybox的telnetd,busybox支持用inetd管理telnetd,有兴趣的朋友可以试  原文地址 http://hi.baidu.com/zmingliu/blog/item/c5ad9b6345df58670d33facc.html
文章出处:飞诺网(www.firnow.com):http://sys.firnow.com/linux/x8002010n08m/27s90182373.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置busybox的静态路由之前,您需要确保已经正确设置了相关的功能并重启了路由器。您可以在"无线"页面和"设置"页面中进行相关的设置。一旦设置完成并重启路由器后,您可以按照以下步骤配置busybox的静态路由: 1. 首先,打开终端或命令行界面,并登录到您的路由器。 2. 输入命令`busybox route`来查看当前的路由表。这将显示出当前所有的路由信息。 3. 根据您的网络拓扑结构和需求,确定您需要添加的静态路由的目标网络和下一跳网关地址。 4. 使用命令`busybox route add -net 目标网络网段 gw 下一跳网关地址`来添加静态路由。将"目标网络网段"替换为您想要添加的目标网络网段,将"下一跳网关地址"替换为您要指定的下一跳网关地址。 5. 输入命令`busybox route`再次查看路由表,确保您的静态路由已经成功添加并生效。 请注意,具体的命令和操作可能会因您所使用的路由器型号和固件版本而有所不同。因此,建议您参考您的路由器的用户手册或相关文档,以获取更详细和准确的配置步骤。 <span class="em">1</span> #### 引用[.reference_title] - *1* [dd-wrt fantasia](https://download.csdn.net/download/search_net/4404510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值